Advanced Multi-Physics (AMP)
On-Line Documentation
VolumeIntegralOperator.h
Go to the documentation of this file.
1
2#ifndef included_AMP_VolumeIntegralOperator
3#define included_AMP_VolumeIntegralOperator
4
5#include "AMP/matrices/Matrix.h"
6#include "AMP/operators/libmesh/NonlinearFEOperator.h"
7#include "AMP/operators/libmesh/SourceNonlinearElement.h"
8#include "AMP/operators/libmesh/VolumeIntegralOperatorParameters.h"
9#include "AMP/vectors/MultiVariable.h"
10
11#include <vector>
12
13namespace AMP::Operator {
14
15
22{
23public:
34 explicit VolumeIntegralOperator( std::shared_ptr<const OperatorParameters> params );
35
40
42 std::string type() const override { return "VolumeIntegralOperator"; }
43
47 void reset( std::shared_ptr<const OperatorParameters> ) override;
48
49 void setAuxVariable( std::shared_ptr<AMP::LinearAlgebra::MultiVariable> var )
50 {
52 }
53
54 std::shared_ptr<AMP::LinearAlgebra::Variable> getInputVariable() const override
55 {
56 return d_inpVariables;
57 }
58
59 std::shared_ptr<AMP::LinearAlgebra::Variable> getOutputVariable() const override
60 {
61 return d_outVariable;
62 }
63
64 std::shared_ptr<SourcePhysicsModel> getSourcePhysicsModel() { return d_sourcePhysicsModel; }
65
66 std::shared_ptr<SourceNonlinearElement> getSourceElement() { return d_srcNonlinElem; }
67
68 /*
69 std::shared_ptr<AMP::LinearAlgebra::Matrix> getLinearizedVolumeIntegralOperator(
70 std::shared_ptr<OperatorParameters> params);
71 */
72
73protected:
74 explicit VolumeIntegralOperator( std::shared_ptr<const VolumeIntegralOperatorParameters> params,
75 bool );
76
81 std::shared_ptr<OperatorParameters>
83
84
90
94 void postAssembly() override;
95
100
104 void postElementOperation() override;
105
107
108 void init( std::shared_ptr<const VolumeIntegralOperatorParameters> params );
109
110 std::string d_isInputType;
111
112 std::vector<double> d_elementOutputVector;
114 std::shared_ptr<SourceNonlinearElement> d_srcNonlinElem;
116 std::shared_ptr<SourcePhysicsModel> d_sourcePhysicsModel;
118 std::vector<AMP::LinearAlgebra::Vector::const_shared_ptr>
121 std::vector<AMP::LinearAlgebra::Vector::const_shared_ptr>
125
128 std::vector<size_t> d_dofIndices;
130 std::shared_ptr<AMP::Discretization::DOFManager> d_elementDofMap;
131 std::shared_ptr<AMP::Discretization::DOFManager> d_nodeDofMap;
132
134
135private:
136 std::shared_ptr<AMP::LinearAlgebra::MultiVariable> d_inpVariables; // Input Active variable
137 std::shared_ptr<AMP::LinearAlgebra::MultiVariable> d_auxVariables; // Input Auxillary variable
138 std::shared_ptr<AMP::LinearAlgebra::Variable> d_outVariable; // Output variable
139};
140
141
142} // namespace AMP::Operator
143
144#endif
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
Definition Vector.h:60
std::shared_ptr< const Vector > const_shared_ptr
Definition Vector.h:65
A pointer class to wrap a MeshElementVector.
std::shared_ptr< AMP::Operator::Operator > shared_ptr
Definition Operator.h:29
AMP::LinearAlgebra::Vector::shared_ptr d_multiAuxPtr
void setAuxVariable(std::shared_ptr< AMP::LinearAlgebra::MultiVariable > var)
std::shared_ptr< SourceNonlinearElement > d_srcNonlinElem
VolumeIntegralOperator(std::shared_ptr< const VolumeIntegralOperatorParameters > params, bool)
AMP::LinearAlgebra::Vector::shared_ptr d_outVec
std::shared_ptr< SourceNonlinearElement > getSourceElement()
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
void init(std::shared_ptr< const VolumeIntegralOperatorParameters > params)
std::shared_ptr< AMP::LinearAlgebra::MultiVariable > d_inpVariables
AMP::Mesh::MeshElementVectorPtr d_currNodes
std::shared_ptr< AMP::Discretization::DOFManager > d_nodeDofMap
std::shared_ptr< AMP::LinearAlgebra::Variable > d_outVariable
void preAssembly(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr r) override
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
void preElementOperation(const AMP::Mesh::MeshElement &) override
void reset(std::shared_ptr< const OperatorParameters >) override
std::shared_ptr< AMP::Discretization::DOFManager > d_elementDofMap
VolumeIntegralOperator(std::shared_ptr< const OperatorParameters > params)
std::shared_ptr< AMP::LinearAlgebra::MultiVariable > d_auxVariables
std::vector< AMP::LinearAlgebra::Vector::const_shared_ptr > d_inVec
std::shared_ptr< SourcePhysicsModel > d_sourcePhysicsModel
std::shared_ptr< SourcePhysicsModel > getSourcePhysicsModel()
std::string type() const override
Return the name of the operator.
std::vector< AMP::LinearAlgebra::Vector::const_shared_ptr > d_auxVec
std::shared_ptr< OperatorParameters > getJacobianParameters(AMP::LinearAlgebra::Vector::const_shared_ptr u) override



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page