1#ifndef included_AMP_DiffusionNonlinearFEOperator
2#define included_AMP_DiffusionNonlinearFEOperator
4#include "AMP/operators/diffusion/DiffusionNonlinearElement.h"
5#include "AMP/operators/diffusion/DiffusionNonlinearFEOperatorParameters.h"
6#include "AMP/operators/libmesh/NonlinearFEOperator.h"
7#include "AMP/vectors/MultiVariable.h"
8#include "AMP/vectors/Vector.h"
21 void reset( std::shared_ptr<const OperatorParameters> )
override;
47 std::map<std::string, AMP::LinearAlgebra::Vector::shared_ptr>
getFrozen();
63 std::shared_ptr<OperatorParameters>
75 void init( std::shared_ptr<const DiffusionNonlinearFEOperatorParameters> params );
93 std::shared_ptr<const AMP::LinearAlgebra::Vector>
vec;
94 std::shared_ptr<const AMP::LinearAlgebra::Vector>
frozen;
96 std::map<std::string, InputVectorStruct>
d_active;
105 void resetFrozen( std::shared_ptr<const DiffusionNonlinearFEOperatorParameters> params );
108 std::shared_ptr<const DiffusionNonlinearFEOperatorParameters> params,
bool );
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
A pointer class to wrap a MeshElementVector.
std::vector< double > d_elementOutputVector
std::shared_ptr< AMP::LinearAlgebra::Variable > createOutputVariable(const std::string &name, int varId=-1)
void postElementOperation() override
void postAssembly() override
std::map< std::string, InputVectorStruct > d_active
std::shared_ptr< DiffusionTransportModel > d_transportModel
std::shared_ptr< AMP::LinearAlgebra::Variable > d_outVariable
std::shared_ptr< AMP::LinearAlgebra::MultiVariable > d_inpVariables
void setOutputVariableName(const std::string &name, int varId=-1)
DiffusionNonlinearFEOperator(std::shared_ptr< const DiffusionNonlinearFEOperatorParameters > params, bool)
void reset(std::shared_ptr< const OperatorParameters >) override
std::map< std::string, AMP::LinearAlgebra::Vector::shared_ptr > getFrozen()
std::shared_ptr< AMP::LinearAlgebra::Variable > createInputVariable(const std::string &name, int varId=-1)
AMP::Mesh::MeshElementVectorPtr d_currNodes
void resetFrozen(std::shared_ptr< const DiffusionNonlinearFEOperatorParameters > params)
std::shared_ptr< DiffusionTransportModel > getTransportModel()
std::shared_ptr< std::vector< double > > d_TransportGauss
virtual ~DiffusionNonlinearFEOperator()
std::shared_ptr< AMP::LinearAlgebra::Variable > getVariableForDOFMap(unsigned int id)
unsigned int numberOfDOFMaps()
DiffusionNonlinearFEOperator(std::shared_ptr< const OperatorParameters > params)
void setVector(const std::string &name, AMP::LinearAlgebra::Vector::shared_ptr frozenVec)
std::shared_ptr< OperatorParameters > getJacobianParameters(AMP::LinearAlgebra::Vector::const_shared_ptr u) override
AMP::LinearAlgebra::Vector::shared_ptr d_outVec
void preAssembly(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr r) override
std::vector< std::string > getNonPrincipalVariableIds()
std::string d_PrincipalVariable
std::shared_ptr< DiffusionNonlinearElement > d_diffNonlinElem
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
void setInputVariableName(const std::string &name, int varId=-1)
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
const auto & getPrincipalVariable()
void preElementOperation(const AMP::Mesh::MeshElement &) override
bool isValidVector(AMP::LinearAlgebra::Vector::const_shared_ptr u) override
void init(std::shared_ptr< const DiffusionNonlinearFEOperatorParameters > params)
AMP::LinearAlgebra::Vector::shared_ptr d_TransportNodal
std::shared_ptr< AMP::Operator::Operator > shared_ptr