Advanced Multi-Physics (AMP)
On-Line Documentation
FlowFrapconJacobian.h
Go to the documentation of this file.
1
2#ifndef included_AMP_FlowFrapconJacobian
3#define included_AMP_FlowFrapconJacobian
4
5#include "AMP/operators/Operator.h"
6#include "AMP/operators/subchannel/FlowFrapconJacobianParameters.h"
7
8// Libmesh files
10#include "libmesh/fe_base.h"
11#include "libmesh/fe_type.h"
12#include "libmesh/quadrature.h"
14
15namespace AMP::Operator {
16
22{
23public:
28 explicit FlowFrapconJacobian( std::shared_ptr<const OperatorParameters> params );
29
34
36 std::string type() const override { return "FlowFrapconJacobian"; }
37
45
50 void reset( std::shared_ptr<const OperatorParameters> params ) override;
51
52 /*
53 static bool sort_nodes_in_z ( const libMesh::Node *one , const libMesh::Node *two ) {
54 return (*one)(2) < (*two)(2);
55 }
56 */
57 std::shared_ptr<AMP::LinearAlgebra::Variable> createInputVariable( const std::string &name,
58 int varId = -1 );
59
60 std::shared_ptr<AMP::LinearAlgebra::Variable> createOutputVariable( const std::string &name,
61 int varId = -1 );
62
63 std::shared_ptr<AMP::LinearAlgebra::Variable> getInputVariable() const override;
64
65 std::shared_ptr<AMP::LinearAlgebra::Variable> getOutputVariable() const override;
66
67 void setInputVariableName( const std::string &name, int varId = -1 );
68
69 void setOutputVariableName( const std::string &name, int varId = -1 );
70
71 std::shared_ptr<AMP::LinearAlgebra::VectorSelector> selectOutputVector() const override;
72
73 std::shared_ptr<AMP::LinearAlgebra::VectorSelector> selectInputVector() const override;
74
78 void setZLocations( const std::vector<double> &zloc ) { zPoints = zloc; }
79
80 const auto &getZLocations() { return zPoints; }
81
82 double getCp() { return Cp; }
83
84 double getdCp() { return dCp; }
85
87
92
93 double getHeatCapacity( double T_b )
94 {
95 double cp = 0.0;
96 if ( T_b < 544 ) {
97 cp = 2.4e5;
98 } else if ( 544 <= T_b && T_b < 588 ) {
99 cp = 2.4e5 * ( 1.0 + 2.9e-3 * ( 1.8 * T_b - 1031.0 ) );
100 } else {
101 cp = 2.4e5 * ( 1.0 + 2.9e-3 * ( 1.8 * T_b - 979.4 ) );
102 }
103 return cp;
104 }
105
107 {
108 double dcp = 0.0;
109 if ( T_b >= 544 ) {
110 dcp = 2.4e5 * ( 2.9e-3 * 1.8 * T_b );
111 }
112 return dcp;
113 }
114
115 /*
116 std::shared_ptr< std::vector<double> > getFlowSolution() {
117 return flowSolutionVector;
118 }
119 */
120
121
122public: // Data members (this should be private)
125
128
129 int d_numpoints = 0;
130 std::vector<unsigned int> d_dofIds;
131 std::vector<double> zPoints;
132
133 double d_De = 0;
134 double Cp = 0;
135 double dCp = 0;
136 double d_G = 0;
137 double d_Tin = 0;
138 double d_K = 0;
139 double d_Re = 0;
140 double d_Pr = 0;
141
142 std::shared_ptr<AMP::LinearAlgebra::Variable> d_inpVariable;
143 std::shared_ptr<AMP::LinearAlgebra::Variable> d_outVariable;
144 std::shared_ptr<AMP::LinearAlgebra::Variable> d_SimpleVariable;
145
148
149protected:
150private:
151};
152} // namespace AMP::Operator
153
154#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::LinearAlgebra::Variable > d_outVariable
Input Variable.
FlowFrapconJacobian(std::shared_ptr< const OperatorParameters > params)
std::shared_ptr< AMP::LinearAlgebra::Variable > createOutputVariable(const std::string &name, int varId=-1)
void setOutputVariableName(const std::string &name, int varId=-1)
void reset(std::shared_ptr< const OperatorParameters > params) override
std::shared_ptr< AMP::LinearAlgebra::Variable > createInputVariable(const std::string &name, int varId=-1)
AMP::LinearAlgebra::Vector::shared_ptr d_frozenVec
std::string type() const override
Return the name of the operator.
std::shared_ptr< AMP::LinearAlgebra::VectorSelector > selectInputVector() const override
Return the selector for input vectors.
AMP::LinearAlgebra::Vector::shared_ptr d_localCladVec
void setVector(AMP::LinearAlgebra::Vector::shared_ptr frozenVec)
double d_De
vector to hold z locations
AMP::LinearAlgebra::Vector::shared_ptr flowOutput
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
AMP::LinearAlgebra::Vector::shared_ptr d_localFrozenVec
std::shared_ptr< AMP::LinearAlgebra::Variable > d_inpVariable
Prandtl Number.
AMP::LinearAlgebra::Vector::shared_ptr flowInput
Simple Input Variable.
void setZLocations(const std::vector< double > &zloc)
std::shared_ptr< AMP::LinearAlgebra::Variable > d_SimpleVariable
Output Variable.
std::vector< unsigned int > d_dofIds
Number of points in z direction.
double dCp
Heat Capacity of Coolant.
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
std::shared_ptr< AMP::LinearAlgebra::VectorSelector > selectOutputVector() const override
Return the selector for output vectors.
void setInputVariableName(const std::string &name, int varId=-1)
AMP::LinearAlgebra::Vector::shared_ptr d_cladVec
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr r) override
void setFrozenVector(AMP::LinearAlgebra::Vector::shared_ptr frozenVec)
double d_G
Gradient of Heat Capacity.
std::shared_ptr< AMP::Operator::Operator > shared_ptr
Definition Operator.h:29
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.



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