2#ifndef included_AMP_LinearFEOperator
3#define included_AMP_LinearFEOperator
6#include "AMP/mesh/Mesh.h"
7#include "AMP/mesh/MeshElement.h"
8#include "AMP/operators/LinearOperator.h"
9#include "AMP/operators/libmesh/LinearFEOperatorParameters.h"
13#include "libmesh/libmesh_config.h"
14#undef LIBMESH_ENABLE_REFERENCE_COUNTING
15#include "libmesh/elem.h"
38 std::string
type()
const override {
return "LinearFEOperator"; }
48 virtual void preAssembly( std::shared_ptr<const OperatorParameters> ) = 0;
79 void reset( std::shared_ptr<const OperatorParameters> )
override;
91 std::shared_ptr<AMP::Discretization::DOFManager>
d_inDofMap;
A pointer class to wrap a MeshElementVector.
std::shared_ptr< ElementOperation > d_elemOp
libMesh::Elem * d_currElemPtr
std::shared_ptr< AMP::Discretization::DOFManager > d_outDofMap
AMP::Mesh::MeshElementVectorPtr d_currNodes
virtual void preElementOperation(const AMP::Mesh::MeshElement &)=0
virtual void postElementOperation()=0
std::string type() const override
Return the name of the operator.
virtual void postAssembly()=0
virtual void preAssembly(std::shared_ptr< const OperatorParameters >)=0
LinearFEOperator(std::shared_ptr< const OperatorParameters > params)
void destroyCurrentLibMeshElement()
void createCurrentLibMeshElement()
std::shared_ptr< AMP::Discretization::DOFManager > d_inDofMap
virtual ~LinearFEOperator()
Destructor.
void reset(std::shared_ptr< const OperatorParameters >) override
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.