2#ifndef included_AMP_DirichletMatrixCorrection
3#define included_AMP_DirichletMatrixCorrection
5#include "AMP/operators/boundary/BoundaryOperator.h"
6#include "AMP/operators/boundary/DirichletMatrixCorrectionParameters.h"
7#include "AMP/operators/boundary/DirichletVectorCorrection.h"
8#include "AMP/vectors/Variable.h"
30 std::string
type()
const override {
return "DirichletMatrixCorrection"; }
59 void reset( std::shared_ptr<const OperatorParameters> )
override;
80 void parseParams( std::shared_ptr<const DirichletMatrixCorrectionParameters> );
85 std::shared_ptr<AMP::LinearAlgebra::Variable>
d_variable;
91 std::vector<std::vector<unsigned int>>
d_dofIds;
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
virtual void apply(AMP::LinearAlgebra::Vector::const_shared_ptr, AMP::LinearAlgebra::Vector::shared_ptr) override
void setRHScorrection(AMP::LinearAlgebra::Vector::shared_ptr rhs) override
std::vector< short int > d_boundaryIds
void initRhsCorrectionAdd(AMP::LinearAlgebra::Vector::shared_ptr rhs)
AMP::LinearAlgebra::Vector::shared_ptr d_dispVals
DirichletMatrixCorrection(std::shared_ptr< const OperatorParameters > params)
Constructor.
void reset(std::shared_ptr< const OperatorParameters >) override
bool d_zeroDirichletBlock
bool d_applyMatrixCorrectionWasCalled
void parseParams(std::shared_ptr< const DirichletMatrixCorrectionParameters >)
std::vector< std::vector< double > > d_dirichletValues
void setVariable(const std::shared_ptr< AMP::LinearAlgebra::Variable > &var)
Set the variable for the vector that will used with this operator.
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
void applyMatrixCorrection()
bool d_computedAddRHScorrection
bool d_symmetricCorrection
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
AMP::LinearAlgebra::Vector::shared_ptr d_rhsCorrectionAdd
bool d_skipRHSaddCorrection
const auto & getBoundaryIds()
void initRhsCorrectionSet()
std::shared_ptr< DirichletVectorCorrection > d_rhsCorrectionSet
bool d_skipRHSsetCorrection
void addRHScorrection(AMP::LinearAlgebra::Vector::shared_ptr rhs) override
std::shared_ptr< AMP::LinearAlgebra::Variable > d_variable
std::string type() const override
Return the name of the operator.
std::shared_ptr< AMP::LinearAlgebra::Matrix > d_inputMatrix
virtual ~DirichletMatrixCorrection()
Destructor.
std::vector< std::vector< unsigned int > > d_dofIds
std::shared_ptr< AMP::Operator::Operator > shared_ptr