Advanced Multi-Physics (AMP)
On-Line Documentation
NeumannVectorCorrection.h
Go to the documentation of this file.
1
2#ifndef included_AMP_NeumannVectorCorrection
3#define included_AMP_NeumannVectorCorrection
4
5#include "AMP/operators/boundary/BoundaryOperator.h"
6#include "AMP/operators/boundary/libmesh/NeumannVectorCorrectionParameters.h"
7#include "AMP/operators/boundary/libmesh/RobinPhysicsModel.h"
8
9#include "AMP/discretization/createLibmeshElements.h"
10
11// Libmesh files
12#include "libmesh/libmesh_config.h"
13#undef LIBMESH_ENABLE_REFERENCE_COUNTING
14#include "libmesh/quadrature.h"
15
16#include <string>
17
18namespace AMP::Operator {
19
28{
29public:
31 explicit NeumannVectorCorrection( std::shared_ptr<const OperatorParameters> params );
32
36 void setVariable( const std::shared_ptr<AMP::LinearAlgebra::Variable> &var )
37 {
39 }
40
45
47 std::string type() const override { return "NeumannVectorCorrection"; }
48
51
57
61 void reset( std::shared_ptr<const OperatorParameters> params ) override;
62
67
73
75
77
78 std::shared_ptr<RobinPhysicsModel> getRobinPhysicsModel() { return d_robinPhysicsModel; }
79
80 const auto &getBoundaryIds() const { return d_boundaryIds; }
81
82 const auto &getDofIds() const { return d_dofIds; }
83
84 std::shared_ptr<AMP::LinearAlgebra::Variable> getOutputVariable() const override
85 {
86 return d_variable;
87 }
88
89 std::shared_ptr<AMP::LinearAlgebra::Variable> getInputVariable() const override
90 {
91 return d_variable;
92 }
93
94protected:
99 std::shared_ptr<OperatorParameters>
101
103
104 std::vector<short int> d_boundaryIds;
105
106 std::vector<std::vector<double>> d_neumannValues;
107
108 std::vector<std::vector<unsigned int>> d_dofIds;
109
111
112 // This must be a simple variable not a dual or multivariable
113 std::shared_ptr<AMP::LinearAlgebra::Variable> d_variable;
114
116
118
120
121 std::vector<bool> d_IsCoupledBoundary;
123
124 std::shared_ptr<const NeumannVectorCorrectionParameters> d_params;
125
126 std::shared_ptr<RobinPhysicsModel> d_robinPhysicsModel;
127
128 std::shared_ptr<const libMesh::FEType> d_type;
129 libMeshEnums::Order d_qruleOrder;
130 libMeshEnums::QuadratureType d_qruleType;
131
133
134private:
135};
136} // namespace AMP::Operator
137
138#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::LinearAlgebra::Variable > d_variable
std::shared_ptr< OperatorParameters > getJacobianParameters(AMP::LinearAlgebra::Vector::const_shared_ptr u) override
AMP::LinearAlgebra::Vector::shared_ptr d_variableFlux
std::vector< std::vector< unsigned int > > d_dofIds
AMP::LinearAlgebra::Vector::shared_ptr d_Frozen
void setVariableFlux(const AMP::LinearAlgebra::Vector::shared_ptr &flux)
void setVariable(const std::shared_ptr< AMP::LinearAlgebra::Variable > &var)
void setFrozenVector(AMP::LinearAlgebra::Vector::shared_ptr f)
std::shared_ptr< const libMesh::FEType > d_type
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override
AMP::LinearAlgebra::Vector::shared_ptr d_rhsCorrectionAdd
std::shared_ptr< const NeumannVectorCorrectionParameters > d_params
std::shared_ptr< RobinPhysicsModel > d_robinPhysicsModel
std::vector< std::vector< double > > d_neumannValues
void computeRHScorrection(AMP::LinearAlgebra::Vector::shared_ptr rhsCorrection)
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
std::shared_ptr< RobinPhysicsModel > getRobinPhysicsModel()
Discretization::createLibmeshElements d_libmeshElements
NeumannVectorCorrection(std::shared_ptr< const OperatorParameters > params)
Constructor. This function reads all the parameters required for surface elements.
std::string type() const override
Return the name of the operator.
void reset(std::shared_ptr< const OperatorParameters > params) override
void addRHScorrection(AMP::LinearAlgebra::Vector::shared_ptr rhs) override
AMP::Mesh::MeshElementVectorPtr d_currNodes
std::shared_ptr< AMP::Operator::Operator > shared_ptr
Definition Operator.h:29



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