2#ifndef included_AMP_RobinMatrixCorrection
3#define included_AMP_RobinMatrixCorrection
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"
10#include "AMP/discretization/createLibmeshElements.h"
13#include "libmesh/quadrature.h"
50 std::string
type()
const override {
return "RobinMatrixCorrection"; }
64 void reset( std::shared_ptr<const OperatorParameters> params )
override;
77 std::vector<std::vector<unsigned int>>
d_dofIds;
81 std::shared_ptr<AMP::LinearAlgebra::Variable>
d_variable;
91 const std::vector<libMesh::Real> *
d_JxW;
93 const std::vector<std::vector<libMesh::Real>> *
d_phi;
97 std::shared_ptr<libMesh::FEBase>
d_fe;
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
std::shared_ptr< AMP::Operator::Operator > shared_ptr
std::string type() const override
Return the name of the operator.
AMP::LinearAlgebra::Vector::shared_ptr d_Frozen
virtual ~RobinMatrixCorrection()
const std::vector< libMesh::Real > * d_JxW
std::shared_ptr< AMP::Discretization::DOFManager > d_dofManager
libMeshEnums::FEFamily d_feFamily
std::shared_ptr< AMP::LinearAlgebra::Variable > d_variable
libMeshEnums::QuadratureType d_qruleType
std::shared_ptr< NeumannVectorCorrection > d_NeumannCorrection
libMeshEnums::Order d_feTypeOrder
std::shared_ptr< libMesh::FEBase > d_fe
std::string d_qruleOrderName
std::shared_ptr< NeumannVectorCorrectionParameters > d_NeumannParams
std::vector< std::vector< double > > d_robinValues
libMeshEnums::Order d_qruleOrder
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
std::vector< short int > d_boundaryIds
void setVariable(const std::shared_ptr< AMP::LinearAlgebra::Variable > &var)