Advanced Multi-Physics (AMP)
On-Line Documentation
FickSoretNonlinearFEOperator.h
Go to the documentation of this file.
1#ifndef included_AMP_FickSoretNonlinearFEOperator
2#define included_AMP_FickSoretNonlinearFEOperator
3
4/* AMP files */
5#include "AMP/discretization/DOF_Manager.h"
6#include "AMP/mesh/Mesh.h"
7#include "AMP/mesh/MeshElement.h"
8#include "AMP/operators/diffusion/DiffusionNonlinearFEOperator.h"
9#include "AMP/operators/diffusion/FickSoretNonlinearFEOperatorParameters.h"
10#include <memory>
11
12namespace AMP::Operator {
13
18{
19public:
20 explicit FickSoretNonlinearFEOperator( std::shared_ptr<const OperatorParameters> params );
21
23
24 std::string type() const override { return "FickSoretNonlinearFEOperator"; }
25
26 void reset( std::shared_ptr<const OperatorParameters> params ) override;
27
30
31 std::shared_ptr<OperatorParameters>
32 getParameters( const std::string &type,
34 std::shared_ptr<OperatorParameters> params = nullptr ) override
35 {
36 return d_FickOperator->getParameters( type, u, params );
37 }
38
39 std::shared_ptr<AMP::LinearAlgebra::Variable> getOutputVariable() const override
40 {
41 return d_OutputVariable;
42 }
43
44 std::shared_ptr<AMP::LinearAlgebra::Variable> getInputVariable() const override
45 {
46 return d_FickOperator->getInputVariable();
47 }
48
51 {
52 bool result;
53 result = d_FickOperator->isValidVector( u ) and d_SoretOperator->isValidVector( u );
54 return result;
55 }
56
57 inline auto getFickOperator() { return d_FickOperator; }
58 inline auto getSoretOperator() { return d_SoretOperator; }
59
60protected:
61private:
62 std::shared_ptr<DiffusionNonlinearFEOperator> d_FickOperator;
63 std::shared_ptr<DiffusionNonlinearFEOperator> d_SoretOperator;
64 std::shared_ptr<AMP::LinearAlgebra::Variable> d_OutputVariable;
66};
67} // namespace AMP::Operator
68
69#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::string type() const override
Return the name of the operator.
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
std::shared_ptr< DiffusionNonlinearFEOperator > d_FickOperator
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
bool isValidVector(AMP::LinearAlgebra::Vector::const_shared_ptr u) override
checks input to apply operator for satisfaction of range conditions
void reset(std::shared_ptr< const OperatorParameters > params) override
std::shared_ptr< OperatorParameters > getParameters(const std::string &type, AMP::LinearAlgebra::Vector::const_shared_ptr u, std::shared_ptr< OperatorParameters > params=nullptr) override
std::shared_ptr< AMP::LinearAlgebra::Variable > d_OutputVariable
FickSoretNonlinearFEOperator(std::shared_ptr< const OperatorParameters > params)
std::shared_ptr< DiffusionNonlinearFEOperator > d_SoretOperator
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override
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