2#ifndef included_AMP_SubchannelFourEqNonlinearOperator
3#define included_AMP_SubchannelFourEqNonlinearOperator
5#include "AMP/operators/Operator.h"
6#include "AMP/operators/subchannel/SubchannelOperatorParameters.h"
19 typedef std::unique_ptr<AMP::Mesh::MeshElement>
ElementPtr;
28 std::string
type()
const override {
return "SubchannelFourEqNonlinearOperator"; }
38 void reset( std::shared_ptr<const OperatorParameters> params )
override;
76 std::map<AMP::Mesh::Point, ElementPtr> &,
77 std::map<AMP::Mesh::Point, ElementPtr> & );
80 std::map<AMP::Mesh::Point, double>
getGapWidths( std::shared_ptr<AMP::Mesh::Mesh>,
81 const std::vector<double> &,
82 const std::vector<double> &,
83 const std::vector<double> & );
95 std::shared_ptr<OperatorParameters>
98 std::shared_ptr<const SubchannelOperatorParameters>
d_params;
151 std::vector<std::vector<ElementPtr>>
163 const std::map<AMP::Mesh::Point, ElementPtr> & );
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::vector< double > d_channelDiam
std::map< AMP::Mesh::Point, double > getGapWidths(std::shared_ptr< AMP::Mesh::Mesh >, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &)
Makes map of gap widths to their xy positions.
SubchannelFourEqNonlinearOperator(std::shared_ptr< const OperatorParameters > params)
Constructor.
double Volume(double, double)
std::shared_ptr< const SubchannelOperatorParameters > d_params
std::string d_frictionModel
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override
std::vector< double > d_channelArea
std::shared_ptr< SubchannelPhysicsModel > getSubchannelPhysicsModel()
Get the element physics model.
std::vector< double > d_rodDiameter
double Temperature(double, double)
int getSubchannelIndex(double x, double y)
std::vector< double > d_x
std::vector< bool > d_ownSubChannel
double ThermalConductivity(double, double)
std::vector< double > d_zMinGrid
std::vector< double > d_rodFraction
double getInletTemperature()
Get the Inlet Temperature [K].
void setVector(AMP::LinearAlgebra::Vector::shared_ptr frozenVec)
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
std::shared_ptr< AMP::LinearAlgebra::Variable > d_outVariable
ElementPtr getAxiallyAdjacentLateralFace(const AMP::Mesh::MeshElement *, const AMP::Mesh::MeshElement &, const std::map< AMP::Mesh::Point, ElementPtr > &)
std::shared_ptr< OperatorParameters > getJacobianParameters(AMP::LinearAlgebra::Vector::const_shared_ptr u) override
Gets parameters from nonlinear operator for use in linear operator.
std::vector< double > d_channelMass
std::shared_ptr< SubchannelPhysicsModel > d_subchannelPhysicsModel
std::shared_ptr< AMP::LinearAlgebra::VectorSelector > selectOutputVector() const override
Return the selector for output vectors.
void fillSubchannelGrid(std::shared_ptr< AMP::Mesh::Mesh >)
std::vector< std::vector< ElementPtr > > d_subchannelFace
void getAxialFaces(const AMP::Mesh::MeshElement &, ElementPtr &, ElementPtr &)
std::shared_ptr< AMP::LinearAlgebra::Variable > d_inpVariable
double getOutletPressure()
Get the Outlet Pressure [Pa].
std::vector< double > d_z
double Enthalpy(double, double)
std::shared_ptr< AMP::LinearAlgebra::VectorSelector > selectInputVector() const override
Return the selector for input vectors.
virtual ~SubchannelFourEqNonlinearOperator()
Destructor.
void reset(std::shared_ptr< const OperatorParameters > params) override
void getLateralFaces(std::shared_ptr< AMP::Mesh::Mesh >, std::map< AMP::Mesh::Point, ElementPtr > &, std::map< AMP::Mesh::Point, ElementPtr > &)
Makes map of lateral gaps to their centroids.
std::vector< double > d_zMaxGrid
std::unique_ptr< AMP::Mesh::MeshElement > ElementPtr
std::vector< double > d_y
double DynamicViscosity(double, double)
std::shared_ptr< AMP::LinearAlgebra::Vector > d_cladTemperature
auto getParams()
Get the current operator parameters.
std::vector< double > d_QFraction
std::string type() const override
Return the name of the operator.
std::vector< double > d_lossGrid
std::vector< std::vector< ElementPtr > > d_subchannelElem