2#ifndef included_AMP_SubchannelTwoEqLinearOperator
3#define included_AMP_SubchannelTwoEqLinearOperator
5#include "AMP/operators/LinearOperator.h"
6#include "AMP/operators/subchannel/SubchannelOperatorParameters.h"
7#include "AMP/operators/subchannel/SubchannelPhysicsModel.h"
21 typedef std::unique_ptr<AMP::Mesh::MeshElement>
ElementPtr;
30 std::string
type()
const override {
return "SubchannelTwoEqLinearOperator"; }
32 void reset( std::shared_ptr<const OperatorParameters> params )
override;
44 std::shared_ptr<const SubchannelOperatorParameters>
d_params;
89 double dhdp(
double,
double );
92 double dvdh(
double,
double );
95 double dvdp(
double,
double );
139 std::vector<std::vector<ElementPtr>>
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< AMP::Operator::Operator > shared_ptr
const double d_machinePrecision
double dfdh_lower(double h_minus, double p_minus, double h_plus, double p_plus, double mass, double A, double D)
std::vector< std::vector< ElementPtr > > d_subchannelFace
std::vector< double > d_channelDiam
std::vector< double > d_channelMass
std::vector< double > d_zMaxGrid
std::vector< double > d_lossGrid
std::vector< bool > d_ownSubChannel
void reset(std::shared_ptr< const OperatorParameters > params) override
SubchannelTwoEqLinearOperator(std::shared_ptr< const OperatorParameters > params)
Constructor.
std::string type() const override
Return the name of the operator.
std::vector< double > d_rodDiameter
double dfdp_upper(double h_minus, double p_minus, double h_plus, double p_plus, double mass, double A, double D)
double dfdh_upper(double h_minus, double p_minus, double h_plus, double p_plus, double mass, double A, double D)
double dvdp(double, double)
std::vector< double > d_z
std::shared_ptr< const SubchannelOperatorParameters > d_params
std::string d_frictionModel
double dfdp_lower(double h_minus, double p_minus, double h_plus, double p_plus, double mass, double A, double D)
AMP::LinearAlgebra::Vector::shared_ptr d_frozenVec
std::vector< std::vector< ElementPtr > > d_subchannelElem
auto getParams()
Get the current operator parameters.
int getSubchannelIndex(double x, double y)
std::vector< double > d_rodFraction
virtual ~SubchannelTwoEqLinearOperator()
Destructor.
std::unique_ptr< AMP::Mesh::MeshElement > ElementPtr
std::shared_ptr< SubchannelPhysicsModel > d_subchannelPhysicsModel
std::vector< double > d_y
double dvdh(double, double)
std::vector< double > d_zMinGrid
std::vector< double > d_channelArea
void setFrozenVector(AMP::LinearAlgebra::Vector::shared_ptr frozenVec)
Sets frozen vector.
std::vector< double > d_x
double friction(double h_minus, double p_minus, double h_plus, double p_plus, double mass, double A, double D)
double dhdp(double, double)