Advanced Multi-Physics (AMP)
On-Line Documentation
NonlinearBVPOperator.h
Go to the documentation of this file.
1
2#ifndef included_AMP_NonlinearBVPOperator
3#define included_AMP_NonlinearBVPOperator
4
5#include "AMP/operators/BVPOperatorParameters.h"
6#include "AMP/operators/Operator.h"
7#include "AMP/operators/boundary/BoundaryOperator.h"
8
9namespace AMP::Operator {
10
19{
20public:
32 explicit NonlinearBVPOperator( std::shared_ptr<const OperatorParameters> parameters );
33
38
40 std::string type() const override { return "NonlinearBVPOperator"; }
41
50
56 void reset( std::shared_ptr<const OperatorParameters> params ) override;
57
58 std::shared_ptr<Operator> getVolumeOperator() { return d_volumeOperator; }
59
60 std::shared_ptr<BoundaryOperator> getBoundaryOperator() { return d_boundaryOperator; }
61
63
65
66 std::shared_ptr<AMP::LinearAlgebra::Variable> getInputVariable() const override
67 {
68 return d_volumeOperator->getInputVariable();
69 }
70
71 std::shared_ptr<AMP::LinearAlgebra::Variable> getOutputVariable() const override
72 {
73 return d_volumeOperator->getOutputVariable();
74 }
75
77 {
78 return d_volumeOperator->isValidVector( sol );
79 }
80
81 std::shared_ptr<OperatorParameters>
82 getParameters( const std::string &type,
84 std::shared_ptr<OperatorParameters> params = nullptr ) override;
85
86protected:
90 std::shared_ptr<Operator> d_volumeOperator;
91
97 std::shared_ptr<BoundaryOperator> d_boundaryOperator;
98
99private:
100};
101} // namespace AMP::Operator
102
103#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< BoundaryOperator > d_boundaryOperator
std::shared_ptr< Operator > d_volumeOperator
void reset(std::shared_ptr< const OperatorParameters > params) override
std::shared_ptr< Operator > getVolumeOperator()
std::shared_ptr< OperatorParameters > getParameters(const std::string &type, AMP::LinearAlgebra::Vector::const_shared_ptr x, std::shared_ptr< OperatorParameters > params=nullptr) override
std::shared_ptr< BoundaryOperator > getBoundaryOperator()
bool isValidVector(AMP::LinearAlgebra::Vector::const_shared_ptr sol) override
void modifyRHSvector(AMP::LinearAlgebra::Vector::shared_ptr rhs)
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr, AMP::LinearAlgebra::Vector::shared_ptr) override
void modifyInitialSolutionVector(AMP::LinearAlgebra::Vector::shared_ptr sol)
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
NonlinearBVPOperator(std::shared_ptr< const OperatorParameters > parameters)
std::string type() const override
Return the name of the operator.
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