Advanced Multi-Physics (AMP)
On-Line Documentation
RobinMatrixCorrection.h
Go to the documentation of this file.
1
2#ifndef included_AMP_RobinMatrixCorrection
3#define included_AMP_RobinMatrixCorrection
4
5#include "AMP/operators/boundary/BoundaryOperator.h"
6#include "AMP/operators/boundary/libmesh/NeumannVectorCorrection.h"
7#include "AMP/operators/boundary/libmesh/NeumannVectorCorrectionParameters.h"
8#include "AMP/operators/boundary/libmesh/RobinMatrixCorrectionParameters.h"
9
10#include "AMP/discretization/createLibmeshElements.h"
11
12// Libmesh files
13#include "libmesh/quadrature.h"
14
15#include <string>
16
17namespace AMP::Operator {
18
28{
29public:
34 explicit RobinMatrixCorrection( std::shared_ptr<const OperatorParameters> params );
35
39 void setVariable( const std::shared_ptr<AMP::LinearAlgebra::Variable> &var )
40 {
42 }
43
48
50 std::string type() const override { return "RobinMatrixCorrection"; }
51
57
64 void reset( std::shared_ptr<const OperatorParameters> params ) override;
65
70
71
72protected:
74
75 std::vector<short int> d_boundaryIds;
76
77 std::vector<std::vector<unsigned int>> d_dofIds;
78
79 std::vector<std::vector<double>> d_robinValues;
80
81 std::shared_ptr<AMP::LinearAlgebra::Variable> d_variable;
82
83 double d_hef; // Convective Coefficient
84
85 double d_alpha; // pre-factor solid flux
86
87 double d_beta;
88
89 double d_gamma;
90
91 const std::vector<libMesh::Real> *d_JxW;
92
93 const std::vector<std::vector<libMesh::Real>> *d_phi;
94
95 std::shared_ptr<libMesh::FEType> d_feType;
96
97 std::shared_ptr<libMesh::FEBase> d_fe;
98
99 std::shared_ptr<libMesh::QBase> d_qrule;
100
101 std::string d_qruleOrderName;
102
103 libMeshEnums::Order d_feTypeOrder;
104 libMeshEnums::FEFamily d_feFamily;
105 libMeshEnums::QuadratureType d_qruleType;
106 libMeshEnums::Order d_qruleOrder;
107
109
110 std::shared_ptr<RobinPhysicsModel> d_robinPhysicsModel;
111
112 std::shared_ptr<AMP::Discretization::DOFManager> d_dofManager;
113
114private:
115 std::shared_ptr<NeumannVectorCorrection> d_NeumannCorrection;
116 std::shared_ptr<NeumannVectorCorrectionParameters> d_NeumannParams;
117};
118} // namespace AMP::Operator
119
120#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
std::shared_ptr< AMP::Operator::Operator > shared_ptr
Definition Operator.h:29
std::string type() const override
Return the name of the operator.
AMP::LinearAlgebra::Vector::shared_ptr d_Frozen
const std::vector< libMesh::Real > * d_JxW
std::shared_ptr< AMP::Discretization::DOFManager > d_dofManager
std::shared_ptr< AMP::LinearAlgebra::Variable > d_variable
libMeshEnums::QuadratureType d_qruleType
std::shared_ptr< NeumannVectorCorrection > d_NeumannCorrection
std::shared_ptr< libMesh::FEBase > d_fe
std::shared_ptr< NeumannVectorCorrectionParameters > d_NeumannParams
std::vector< std::vector< double > > d_robinValues
void reset(std::shared_ptr< const OperatorParameters > params) override
std::shared_ptr< libMesh::QBase > d_qrule
Discretization::createLibmeshElements libmeshElements
std::shared_ptr< RobinPhysicsModel > d_robinPhysicsModel
const std::vector< std::vector< libMesh::Real > > * d_phi
std::shared_ptr< libMesh::FEType > d_feType
std::vector< std::vector< unsigned int > > d_dofIds
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr, AMP::LinearAlgebra::Vector::shared_ptr) override
RobinMatrixCorrection(std::shared_ptr< const OperatorParameters > params)
void addRHScorrection(AMP::LinearAlgebra::Vector::shared_ptr rhs) override
void setVariable(const std::shared_ptr< AMP::LinearAlgebra::Variable > &var)



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