https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
FlowChannel1Phase Class Reference

Single-component, single-phase flow channel. More...

#include <FlowChannel1Phase.h>

Inheritance diagram for FlowChannel1Phase:
[legend]

Public Types

enum  EConvHeatTransGeom { PIPE, ROD_BUNDLE, HEX_ROD_BUNDLE }
 Type of convective heat transfer geometry. More...
 
enum  EPipeType { STRAIGHT, CURVED, DOWNCOMER }
 Pipe type. More...
 
enum  EPipeLocation { INTERIOR, EDGE, CORNER }
 Pipe location. More...
 
enum  EComponentSetupStatus {
  CREATED, MESH_PREPARED, INITIALIZED_PRIMARY, INITIALIZED_SECONDARY,
  CHECKED
}
 Component setup status type. More...
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 FlowChannel1Phase (const InputParameters &params)
 
virtual const THM::FlowModelIDgetFlowModelID () const override
 Gets the flow model ID. More...
 
virtual std::vector< std::string > ICParameters () const override
 Returns the names of the IC parameters. More...
 
virtual void addMooseObjects () override
 
std::vector< MaterialPropertyName > getWallHTCNames1Phase () const
 Gets 1-phase wall heat transfer coefficient names for connected heat transfers. More...
 
const UserObjectName & getNumericalFluxUserObjectName () const
 Gets the numerical flux user object name. More...
 
const MooseEnumgetSlopeReconstruction () const
 Gets the slope reconstruction option used. More...
 
virtual void addVariables () override
 
virtual const RealgetGravityAngle () const
 Gets the gravity angle for this component. More...
 
const UserObjectName & getFluidPropertiesName () const
 Gets the name of the fluid properties user object for this component. More...
 
EPipeLocation getPipeLocation () const
 Gets the pipe location. More...
 
virtual std::shared_ptr< const FlowModelgetFlowModel () const
 
const FunctionName & getAreaFunctionName () const
 Get the name of the function describing the flow channel area. More...
 
virtual FunctionName createAreaFunctionAndGetName ()
 Creates the area function if needed and then stores the name. More...
 
EConvHeatTransGeom getHeatTransferGeometry () const
 Gets heat transfer geometry. More...
 
std::vector< std::string > getHeatTransferNames () const
 Gets the names of all connected heat transfer components. More...
 
bool getTemperatureMode () const
 Gets temperature mode flag. More...
 
unsigned int getNumberOfHeatTransferConnections () const
 Gets the number of heat transfer connections. More...
 
std::vector< VariableName > getHeatedPerimeterNames () const
 Gets heated perimeter names for connected heat transfers. More...
 
std::vector< VariableName > getWallTemperatureNames () const
 Gets wall temperature names for connected heat transfers. More...
 
std::vector< MaterialPropertyName > getWallTemperatureMatNames () const
 
std::vector< MaterialPropertyName > getWallHeatFluxNames () const
 Gets wall heat flux names for connected heat transfers. More...
 
void addHeatTransferName (const std::string &ht_name) const
 Adds the name of a heat transfer component to the flow channel's list. More...
 
std::string getHeatTransferNamesSuffix (const std::string &ht_name) const
 Gets suffix to add to heat-transfer-related names in a heat transfer component. More...
 
std::vector< std::shared_ptr< ClosuresBase > > getClosuresObjects () const
 Get the used closures object(s) More...
 
virtual void buildMesh () override
 
unsigned int getNodesetID () const
 Gets the 1D component nodeset ID. More...
 
const BoundaryName & getNodesetName () const
 Gets the 1D component nodeset name. More...
 
virtual const std::vector< Connection > & getConnections (Component1DConnection::EEndType end_type) const
 Gets the vector of connections of an end type for this component. More...
 
std::string stringify (EComponentSetupStatus status) const
 Return a string for the setup status. More...
 
const std::string & cname () const
 Get the component name. More...
 
Componentparent ()
 
const THMMeshconstMesh () const
 Const reference to mesh, which can be called at any point. More...
 
THMMeshmesh ()
 Non-const reference to THM mesh, which can only be called before the end of mesh setup. More...
 
THMProblemgetTHMProblem () const
 Gets the THM problem. More...
 
template<typename T >
bool hasParam (const std::string &name) const
 Test if a parameter exists in the object's input parameters. More...
 
const std::vector< std::string > & getDependencies () const
 Returns a list of names of components that this component depends upon. More...
 
void executeInit ()
 Wrapper function for init() that marks the function as being called. More...
 
void executeInitSecondary ()
 Wrapper function for initSecondary() that marks the function as being called. More...
 
void executeCheck () const
 Wrapper function for check() that marks the function as being called. More...
 
void executeSetupMesh ()
 Wrapper function for setupMesh() that marks the function as being called. More...
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType)
 Adds relationship managers for the component. More...
 
template<typename T >
const T & getComponent (const std::string &name) const
 Return a reference to a component via a parameter name. More...
 
template<typename T >
const T & getComponentByName (const std::string &cname) const
 Return a reference to a component given its name. More...
 
template<typename T >
bool hasComponent (const std::string &name) const
 Check the existence and type of a component via a parameter name. More...
 
template<typename T >
bool hasComponentByName (const std::string &cname) const
 Check the existence and type of a component given its name. More...
 
void connectObject (const InputParameters &params, const std::string &mooseName, const std::string &name) const
 Connect with control logic. More...
 
void connectObject (const InputParameters &params, const std::string &mooseName, const std::string &name, const std::string &par_name) const
 Connect with control logic. More...
 
void makeFunctionControllableIfConstant (const FunctionName &fn_name, const std::string &control_name, const std::string &param="value") const
 Makes a function controllable if it is constant. More...
 
void checkSetupStatus (const EComponentSetupStatus &status) const
 Throws an error if the supplied setup status of this component has not been reached. More...
 
void checkComponentExistsByName (const std::string &comp_name) const
 Checks that a component exists. More...
 
template<typename T >
void checkComponentOfTypeExists (const std::string &param) const
 Checks that the component of a certain type exists, where the name is given by a parameter. More...
 
template<typename T >
void checkComponentOfTypeExistsByName (const std::string &comp_name) const
 Checks that the component of a certain type exists. More...
 
template<typename... Args>
void logError (Args &&... args) const
 Logs an error. More...
 
template<typename... Args>
void logWarning (Args &&... args) const
 Logs a warning. More...
 
void addDependency (const std::string &dependency)
 Adds a component name to the list of dependencies. More...
 
template<typename T >
getEnumParam (const std::string &param) const
 Gets an enum parameter. More...
 
bool problemIsTransient () const
 Whether the problem is transient. More...
 
const std::vector< dof_id_type > & getNodeIDs () const
 Gets the node IDs corresponding to this component. More...
 
const std::vector< dof_id_type > & getElementIDs () const
 Gets the element IDs corresponding to this component. More...
 
virtual const std::vector< SubdomainName > & getSubdomainNames () const
 Gets the subdomain names for this component. More...
 
virtual const std::vector< Moose::CoordinateSystemType > & getCoordSysTypes () const
 Gets the coordinate system types for this component. More...
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
template<typename... Args>
void logComponentError (const std::string &component_name, Args &&... args) const
 Logs an error for a component. More...
 
template<typename... Args>
void logComponentWarning (const std::string &component_name, Args &&... args) const
 Logs a warning for a component. More...
 
std::string genName (const std::string &prefix, unsigned int id, const std::string &suffix="") const
 Build a name from a prefix, number and possible suffix. More...
 
std::string genName (const std::string &prefix, unsigned int i, unsigned int j, const std::string &suffix="") const
 Build a name from a prefix, 2 numbers and possible suffix. More...
 
std::string genName (const std::string &prefix, const std::string &name, unsigned int i) const
 Build a name from 2 strings and a number. More...
 
std::string genName (const std::string &prefix, const std::string &middle, const std::string &suffix="") const
 Build a name from strings. More...
 
std::string genSafeName (const std::string &prefix, const std::string &middle, const std::string &suffix="") const
 Build a name from strings that is safe to use in input files (i.e. More...
 
virtual Point getPosition () const
 
virtual RealVectorValue getDirection () const
 
virtual Real getRotation () const
 
virtual Real getNumElems () const
 
virtual Real getLength () const
 
Real computeAxialCoordinate (const Point &p) const
 
Real computeRadialCoordinate (const Point &p) const
 
unsigned int getAxialSectionIndex (const Point &p) const
 
unsigned int getAxialElementIndex (const Point &p_center) const
 
Point computeRealPointFromReferencePoint (const Point &p) const
 Computes point in 3-D space from a point in reference space. More...
 
Point computeReferencePointFromRealPoint (const Point &p) const
 Computes point in reference space from a point in 3-D space. More...
 
MooseEnum getAlignmentAxis () const
 Gets an axis MooseEnum for the axis the component is aligned with. More...
 
std::vector< RealgetElementBoundaryCoordinates () const
 Gets the element boundary coordinates for the aligned axis. More...
 
Real getGravityMagnitude () const
 Gets gravity magnitude. More...
 

Static Public Member Functions

static InputParameters validParams ()
 
static MooseEnum getConvHeatTransGeometry (const std::string &name)
 Gets a MooseEnum for convective heat transfer geometry type. More...
 
static MooseEnum getPipeType (const std::string &name)
 Gets a MooseEnum for pipe type. More...
 
static MooseEnum getPipeLocation (const std::string &name)
 Gets a MooseEnum for pipe location. More...
 
static std::string deduceFunctorName (const std::string &name, const InputParameters &params)
 
static Point computeRealPointFromReferencePoint (const Point &p, const RealVectorValue &position, const RealTensorValue &R, const RealTensorValue &Rx)
 Computes point in 3-D space from a point in reference space. More...
 
static Point computeReferencePointFromRealPoint (const Point &p, const RealVectorValue &position, const RealTensorValue &R_inv, const RealTensorValue &Rx_inv)
 Computes point in reference space from a point in 3-D space. More...
 
static MooseEnum getAlignmentAxis (const RealVectorValue &dir)
 Gets an axis MooseEnum for the axis the component is aligned with. More...
 
static std::vector< RealgetElementBoundaryCoordinates (const RealVectorValue &position, const RealVectorValue &orientation, const Real &rotation, const std::vector< Real > &lengths, const std::vector< unsigned int > &n_elems)
 Gets the element boundary coordinates for the aligned axis. More...
 
static RealTensorValue computeDirectionTransformationTensor (const RealVectorValue &dir)
 Computes the direction transformation tensor. More...
 
static RealTensorValue computeXRotationTransformationTensor (const Real &rotation)
 Computes the rotation transformation tensor. More...
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

static const std::map< std::string, EConvHeatTransGeom_heat_transfer_geom_to_enum
 Map of convective heat transfer geometry type to enum. More...
 
static const std::map< std::string, EPipeType_pipe_type_to_enum
 Map of pipe type to enum. More...
 
static const std::map< std::string, EPipeLocation_pipe_location_to_enum
 Map of pipe location to enum. More...
 

Protected Member Functions

virtual void checkFluidProperties () const override
 Logs an error if the fluid properties is not valid. More...
 
virtual std::string flowModelClassName () const override
 Returns the flow model class name. More...
 
virtual void init () override
 Initializes the component. More...
 
virtual std::shared_ptr< FlowModelbuildFlowModel () override
 
virtual void check () const override
 Check the component integrity. More...
 
virtual void addHydraulicDiameterMaterial ()
 Adds a material for the hydraulic diameter. More...
 
virtual void getHeatTransferVariableNames () override
 Populates heat connection variable names lists. More...
 
virtual void initSecondary () override
 Perform secondary initialization, which relies on init() being called for all components. More...
 
virtual void addCommonObjects ()
 Adds objects which are common for single- and two-phase flow. More...
 
virtual bool usingSecondOrderMesh () const override
 Check if second order mesh is being used by this geometrical component. More...
 
virtual void setupMesh () override
 Performs mesh setup such as creating mesh or naming mesh sets. More...
 
Elem * addElement (libMesh::ElemType elem_type, const std::vector< dof_id_type > &node_ids)
 
Elem * addElementEdge2 (dof_id_type node0, dof_id_type node1)
 
Elem * addElementEdge3 (dof_id_type node0, dof_id_type node1, dof_id_type node2)
 
Elem * addElementQuad4 (dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3)
 
Elem * addElementQuad9 (dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3, dof_id_type node4, dof_id_type node5, dof_id_type node6, dof_id_type node7, dof_id_type node8)
 
const FunctionName & getVariableFn (const FunctionName &fn_param_name)
 Makes a constant function parameter controllable and returns its name. More...
 
void addRelationshipManagersFromParameters (const InputParameters &moose_object_pars)
 Method to add a relationship manager for the objects being added to the system. More...
 
Node * addNode (const Point &pt)
 
Elem * addNodeElement (dof_id_type node)
 
virtual void setSubdomainInfo (SubdomainID subdomain_id, const std::string &subdomain_name, const Moose::CoordinateSystemType &coord_system=Moose::COORD_XYZ)
 Sets the next subdomain ID, name, and coordinate system. More...
 
template<typename T >
void insistParameterExists (const std::string &function_name, const std::string &param_name) const
 Runtime check to make sure that a parameter of specified type exists in the component's input parameters. More...
 
template<typename T >
void checkParameterValueLessThan (const std::string &param, const T &value_max) const
 Checks that a parameter value is less than a value. More...
 
template<typename T >
void checkSizeLessThan (const std::string &param, const unsigned int &n_entries) const
 Checks that the size of a vector parameter is less than a value. More...
 
template<typename T >
void checkSizeGreaterThan (const std::string &param, const unsigned int &n_entries) const
 Checks that the size of a vector parameter is greater than a value. More...
 
template<typename T1 , typename T2 >
void checkEqualSize (const std::string &param1, const std::string &param2) const
 Checks that the size of two vector parameters are equal. More...
 
template<typename T >
void checkSizeEqualsValue (const std::string &param, const unsigned int &n_entries) const
 Checks that the size of a vector parameter equals a value. More...
 
template<typename T >
void checkSizeEqualsValue (const std::string &param, const unsigned int &n_entries, const std::string &description) const
 Checks that the size of a vector parameter equals a value. More...
 
template<typename T1 , typename T2 >
void checkSizeEqualsParameterValue (const std::string &param1, const std::string &param2) const
 Checks that the size of a vector parameter equals the value of another parameter. More...
 
void checkMutuallyExclusiveParameters (const std::vector< std::string > &params, bool need_one_specified=true) const
 Checks that exactly one parameter out of a list is provided. More...
 
template<typename T >
void passParameter (const std::string &name, const std::string &new_name, InputParameters &params) const
 Passes a parameter from this object's input parameters to another set of input parameters. More...
 
template<typename T >
void passParameter (const std::string &name, InputParameters &params) const
 Passes a parameter from this object's input parameters to another set of input parameters. More...
 
std::string deduceFunctorName (const std::string &name) const
 
const Moose::Functor< T > & getFunctor (const std::string &name)
 
const Moose::Functor< T > & getFunctor (const std::string &name, THREAD_ID tid)
 
const Moose::Functor< T > & getFunctor (const std::string &name, SubProblem &subproblem)
 
const Moose::Functor< T > & getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid)
 
bool isFunctor (const std::string &name) const
 
bool isFunctor (const std::string &name, const SubProblem &subproblem) const
 
Moose::ElemArg makeElemArg (const Elem *elem, bool correct_skewnewss=false) const
 
void checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration)
 

Protected Attributes

std::vector< MaterialPropertyName > _Hw_1phase_names
 1-phase wall heat transfer coefficient names for connected heat transfers More...
 
const UserObjectName _numerical_flux_name
 Numerical flux user object name. More...
 
const MooseEnum _rdg_slope_reconstruction
 Slope reconstruction type for rDG. More...
 
std::shared_ptr< FlowModel_flow_model
 The flow model used by this flow channel. More...
 
const UserObjectName & _fp_name
 Name of fluid properties user object. More...
 
const Real _gravity_angle
 Angle between orientation vector and gravity vector, in degrees. More...
 
FunctionName _area_function
 Function describing the flow channel area. More...
 
std::vector< std::shared_ptr< ClosuresBase > > _closures_objects
 Closures object(s) More...
 
const bool & _pipe_pars_transferred
 
const Real_roughness
 Roughness of flow channel surface, [m]. More...
 
EConvHeatTransGeom _HT_geometry
 Convective Heat transfer geometry. More...
 
EPipeLocation _pipe_location
 Pipe location within the bundle. More...
 
const Real_PoD
 Pitch to diameter ratio for parallel bundle heat transfer. More...
 
bool _has_PoD
 True if user provides PoD. More...
 
bool _temperature_mode
 True if there is one or more sources specified by wall temperature. More...
 
std::vector< std::string > _heat_transfer_names
 Names of the heat transfer components connected to this component. More...
 
unsigned int _n_heat_transfer_connections
 Number of connected heat transfer components. More...
 
std::vector< MaterialPropertyName > _Hw_liquid_names
 liquid wall heat transfer coefficient names for connected heat transfers More...
 
std::vector< MaterialPropertyName > _Hw_vapor_names
 vapor wall heat transfer coefficient names for connected heat transfers More...
 
std::vector< VariableName > _P_hf_names
 heated perimeter names for connected heat transfers More...
 
std::vector< VariableName > _T_wall_names
 wall temperature auxvariable names for connected heat transfers More...
 
std::vector< MaterialPropertyName > _T_wall_mat_names
 wall temperature material names for connected heat transfers More...
 
std::vector< MaterialPropertyName > _q_wall_names
 wall heat flux names for connected heat transfers More...
 
std::map< Component1DConnection::EEndType, std::vector< Connection > > _connections
 Map of end type to a list of connections. More...
 
const std::vector< std::string > & _axial_region_names
 Axial region names. More...
 
std::vector< Real_node_locations
 Node locations along the main axis. More...
 
Component_parent
 Pointer to a parent component (used in composed components) More...
 
THMProblem_sim
 THM problem this component is part of TODO: make _sim private (applications need to switch to getters to avoid breaking). More...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
const Real_zero
 
THMMesh_mesh
 The THM mesh TODO: make _mesh private (applications need to switch to getters to avoid breaking) More...
 
std::vector< dof_id_type_node_ids
 Node IDs of this component. More...
 
std::vector< dof_id_type_elem_ids
 Element IDs of this component. More...
 
std::vector< SubdomainID_subdomain_ids
 List of subdomain IDs this components owns. More...
 
std::vector< SubdomainName > _subdomain_names
 List of subdomain names this components owns. More...
 
std::vector< Moose::CoordinateSystemType_coord_sys
 List of coordinate system for each subdomain. More...
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
ActionFactory_action_factory
 
const Parallel::Communicator & _communicator
 
Logger_log
 
const Point & _position
 Start position of axis in 3-D space. More...
 
const RealVectorValue_dir_unnormalized
 Unnormalized direction of axis from start position to end position. More...
 
const RealVectorValue _dir
 Normalized direction of axis from start position to end position. More...
 
const Real_rotation
 Angle of rotation about the x-axis. More...
 
std::vector< Real_lengths
 Length of each axial section. More...
 
Real _length
 Total axial length. More...
 
const std::vector< unsigned int > & _n_elems
 Number of elements in each axial section. More...
 
const unsigned int _n_elem
 Total number of axial elements. More...
 
const unsigned int _n_sections
 Number of axial sections. More...
 
std::vector< Real_section_end
 Axial coordinate of the end of each axial section using the line 'position' as the origin. More...
 
std::vector< Real_x_centers
 Center axial coordinate of each axial element. More...
 
const RealTensorValue _R
 Direction transformation tensor. More...
 
const RealTensorValue _Rx
 Rotational transformation tensor about x-axis. More...
 
const RealTensorValue _R_inv
 Inverse direction transformation tensor. More...
 
const RealTensorValue _Rx_inv
 Inverse rotational transformation tensor about x-axis. More...
 
const std::string _moose_object_name_dlsi
 Name of the MOOSE object. More...
 
const RealVectorValue_gravity_vector
 Gravitational acceleration vector. More...
 
const Real _gravity_magnitude
 Gravitational acceleration magnitude. More...
 
const bool _gravity_is_zero
 Gravitational acceleration magnitude is zero? More...
 
const RealVectorValue _gravity_direction
 Gravitational acceleration unit direction. More...
 

Detailed Description

Single-component, single-phase flow channel.

Definition at line 17 of file FlowChannel1Phase.h.

Member Enumeration Documentation

◆ EComponentSetupStatus

Component setup status type.

Enumerator
CREATED 

only created

MESH_PREPARED 

mesh set up

INITIALIZED_PRIMARY 

mesh set up, called primary init

INITIALIZED_SECONDARY 

mesh set up, called both inits

CHECKED 

mesh set up, called both inits, checked

Definition at line 36 of file Component.h.

37  {
38  CREATED,
42  CHECKED
43  };
only created
Definition: Component.h:38
mesh set up, called primary init
Definition: Component.h:40
mesh set up, called both inits
Definition: Component.h:41
mesh set up, called both inits, checked
Definition: Component.h:42

◆ EConvHeatTransGeom

Type of convective heat transfer geometry.

Enumerator
PIPE 

pipe geometry

ROD_BUNDLE 

square array rod bundle geometry

HEX_ROD_BUNDLE 

hexagonal array rod bundle geometry

Definition at line 28 of file FlowChannelBase.h.

29  {
30  PIPE,
31  ROD_BUNDLE,
33  };
hexagonal array rod bundle geometry
square array rod bundle geometry

◆ EPipeLocation

Pipe location.

Enumerator
INTERIOR 
EDGE 
CORNER 

Definition at line 42 of file FlowChannelBase.h.

◆ EPipeType

Pipe type.

Enumerator
STRAIGHT 
CURVED 
DOWNCOMER 

Definition at line 35 of file FlowChannelBase.h.

Constructor & Destructor Documentation

◆ FlowChannel1Phase()

FlowChannel1Phase::FlowChannel1Phase ( const InputParameters params)

Definition at line 37 of file FlowChannel1Phase.C.

37  : FlowChannel1PhaseBase(params)
38 {
39 }
FlowChannel1PhaseBase(const InputParameters &params)

Member Function Documentation

◆ addCommonObjects()

void FlowChannelBase::addCommonObjects ( )
protectedvirtualinherited

Adds objects which are common for single- and two-phase flow.

Definition at line 238 of file FlowChannelBase.C.

Referenced by FlowChannelBase::addMooseObjects().

239 {
241  ts_execute_on = {EXEC_TIMESTEP_BEGIN, EXEC_INITIAL};
242 
243  {
244  std::string class_name = "DirectionMaterial";
245  InputParameters params = _factory.getValidParams(class_name);
246  params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
247  getTHMProblem().addMaterial(class_name, genName(name(), "dir_mat"), params);
248  }
249 
251  {
252  // Area
253  {
254  std::string class_name = "FunctionAux";
255  InputParameters params = _factory.getValidParams(class_name);
256  params.set<AuxVariableName>("variable") = FlowModel::AREA_LINEAR;
257  params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
258  params.set<FunctionName>("function") = _area_function;
259  params.set<ExecFlagEnum>("execute_on") = ts_execute_on;
260  const std::string aux_kernel_name = genName(name(), "area_linear_aux");
261  getTHMProblem().addAuxKernel(class_name, aux_kernel_name, params);
263  }
264  {
265  const std::string class_name = "ProjectionAux";
266  InputParameters params = _factory.getValidParams(class_name);
267  params.set<AuxVariableName>("variable") = FlowModel::AREA;
268  params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
269  params.set<std::vector<VariableName>>("v") = {FlowModel::AREA_LINEAR};
270  params.set<ExecFlagEnum>("execute_on") = ts_execute_on;
271  const std::string aux_kernel_name = genName(name(), "area_aux");
272  getTHMProblem().addAuxKernel(class_name, aux_kernel_name, params);
274  }
275  }
276 }
static const std::string AREA_LINEAR
Definition: FlowModel.h:103
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
static const std::string AREA
Definition: FlowModel.h:102
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters &parameters)
const bool & _pipe_pars_transferred
T & set(const std::string &name, bool quiet_mode=false)
InputParameters getValidParams(const std::string &name) const
virtual void addAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
void makeFunctionControllableIfConstant(const FunctionName &fn_name, const std::string &control_name, const std::string &param="value") const
Makes a function controllable if it is constant.
Definition: Component.C:141
virtual const std::string & name() const
ExecFlagEnum getDefaultExecFlagEnum()
const ExecFlagType EXEC_TIMESTEP_BEGIN
FunctionName _area_function
Function describing the flow channel area.
Factory & _factory
The Factory associated with the MooseApp.
Definition: Component.h:446
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
Definition: Component.C:307
const ExecFlagType EXEC_INITIAL

◆ addDependency()

void Component::addDependency ( const std::string &  dependency)
inherited

Adds a component name to the list of dependencies.

Parameters
[in]dependencyname of component to add to list of dependencies

Definition at line 129 of file Component.C.

Referenced by Component1DConnection::addConnection(), HeatTransferBase::HeatTransferBase(), HeatTransferFromHeatStructure3D1Phase::HeatTransferFromHeatStructure3D1Phase(), HSCoupler2D2DRadiation::HSCoupler2D2DRadiation(), HSCoupler2D3D::HSCoupler2D3D(), and Shaft::Shaft().

130 {
131  _dependencies.push_back(dependency);
132 }
std::vector< std::string > _dependencies
List of names of components that this component depends upon.
Definition: Component.h:491

◆ addElement()

Elem * GeometricalComponent::addElement ( libMesh::ElemType  elem_type,
const std::vector< dof_id_type > &  node_ids 
)
protectedinherited

Definition at line 27 of file GeometricalComponent.C.

Referenced by FileMeshComponent::buildMesh().

29 {
30  auto elem = mesh().addElement(elem_type, node_ids);
31  _elem_ids.push_back(elem->id());
32  return elem;
33 }
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
Elem * addElement(libMesh::ElemType elem_type, const std::vector< dof_id_type > &node_ids)
Add a new element into the mesh.
Definition: THMMesh.C:103
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60

◆ addElementEdge2()

Elem * GeometricalComponent::addElementEdge2 ( dof_id_type  node0,
dof_id_type  node1 
)
protectedinherited

Definition at line 36 of file GeometricalComponent.C.

Referenced by Component1D::buildMesh().

37 {
38  auto elem = mesh().addElementEdge2(node0, node1);
39  _elem_ids.push_back(elem->id());
40  return elem;
41 }
Elem * addElementEdge2(dof_id_type node0, dof_id_type node1)
Definition: THMMesh.C:128
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60

◆ addElementEdge3()

Elem * GeometricalComponent::addElementEdge3 ( dof_id_type  node0,
dof_id_type  node1,
dof_id_type  node2 
)
protectedinherited

Definition at line 44 of file GeometricalComponent.C.

Referenced by Component1D::buildMesh().

45 {
46  auto elem = mesh().addElementEdge3(node0, node1, node2);
47  _elem_ids.push_back(elem->id());
48  return elem;
49 }
Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2)
Definition: THMMesh.C:141
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60

◆ addElementQuad4()

Elem * GeometricalComponent::addElementQuad4 ( dof_id_type  node0,
dof_id_type  node1,
dof_id_type  node2,
dof_id_type  node3 
)
protectedinherited

Definition at line 52 of file GeometricalComponent.C.

Referenced by Component2D::build2DMesh().

56 {
57  auto elem = mesh().addElementQuad4(node0, node1, node2, node3);
58  _elem_ids.push_back(elem->id());
59  return elem;
60 }
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
Elem * addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3)
Definition: THMMesh.C:155
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60

◆ addElementQuad9()

Elem * GeometricalComponent::addElementQuad9 ( dof_id_type  node0,
dof_id_type  node1,
dof_id_type  node2,
dof_id_type  node3,
dof_id_type  node4,
dof_id_type  node5,
dof_id_type  node6,
dof_id_type  node7,
dof_id_type  node8 
)
protectedinherited

Definition at line 63 of file GeometricalComponent.C.

Referenced by Component2D::build2DMesh2ndOrder().

72 {
73  auto elem = mesh().addElementQuad9(node0, node1, node2, node3, node4, node5, node6, node7, node8);
74  _elem_ids.push_back(elem->id());
75  return elem;
76 }
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
Elem * addElementQuad9(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3, dof_id_type node4, dof_id_type node5, dof_id_type node6, dof_id_type node7, dof_id_type node8)
Definition: THMMesh.C:170
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60

◆ addHeatTransferName()

void FlowChannelBase::addHeatTransferName ( const std::string &  ht_name) const
inherited

Adds the name of a heat transfer component to the flow channel's list.

This function is called from a heat transfer component to add its name to the flow channel's list, so that the flow channel can communicate with it, such as for determining variable names used in averages of heat transfer variables.

Parameters
[in]ht_namename of the heat transfer component

Definition at line 331 of file FlowChannelBase.C.

Referenced by HeatTransferFromHeatStructure3D1Phase::init(), and HeatTransferBase::init().

332 {
333  _heat_transfer_names.push_back(name);
335 }
virtual const std::string & name() const
std::vector< std::string > _heat_transfer_names
Names of the heat transfer components connected to this component.
unsigned int _n_heat_transfer_connections
Number of connected heat transfer components.

◆ addHydraulicDiameterMaterial()

void FlowChannel1PhaseBase::addHydraulicDiameterMaterial ( )
protectedvirtualinherited

Adds a material for the hydraulic diameter.

Definition at line 107 of file FlowChannel1PhaseBase.C.

Referenced by FlowChannel1PhaseBase::addMooseObjects().

108 {
109  const std::string mat_name = genName(name(), "D_h_material");
110 
111  if (isParamValid("D_h"))
112  {
113  const FunctionName & D_h_fn_name = getParam<FunctionName>("D_h");
114 
115  const std::string class_name = "ADGenericFunctionMaterial";
116  InputParameters params = _factory.getValidParams(class_name);
117  params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
118  params.set<std::vector<std::string>>("prop_names") = {THM::HYDRAULIC_DIAMETER};
119  params.set<std::vector<FunctionName>>("prop_values") = {D_h_fn_name};
120  getTHMProblem().addMaterial(class_name, mat_name, params);
121 
122  makeFunctionControllableIfConstant(D_h_fn_name, "D_h");
123  }
124  else
125  {
126  const std::string class_name = "ADHydraulicDiameterCircularMaterial";
127  InputParameters params = _factory.getValidParams(class_name);
128  params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
129  params.set<MaterialPropertyName>("D_h_name") = THM::HYDRAULIC_DIAMETER;
130  params.set<std::vector<VariableName>>("A") = {THM::AREA};
131  getTHMProblem().addMaterial(class_name, mat_name, params);
132  }
133 }
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters &parameters)
T & set(const std::string &name, bool quiet_mode=false)
InputParameters getValidParams(const std::string &name) const
void makeFunctionControllableIfConstant(const FunctionName &fn_name, const std::string &control_name, const std::string &param="value") const
Makes a function controllable if it is constant.
Definition: Component.C:141
virtual const std::string & name() const
bool isParamValid(const std::string &name) const
static const std::string HYDRAULIC_DIAMETER
Definition: THMNames.h:23
static const std::string AREA
Definition: THMNames.h:14
Factory & _factory
The Factory associated with the MooseApp.
Definition: Component.h:446
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
Definition: Component.C:307

◆ addMooseObjects()

void FlowChannel1PhaseBase::addMooseObjects ( )
overridevirtualinherited

Reimplemented from FlowChannelBase.

Definition at line 98 of file FlowChannel1PhaseBase.C.

99 {
101 
104 }
virtual void addHydraulicDiameterMaterial()
Adds a material for the hydraulic diameter.
const bool & _pipe_pars_transferred
virtual void addMooseObjects() override

◆ addNode()

Node * Component::addNode ( const Point &  pt)
protectedinherited

Definition at line 213 of file Component.C.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), FileMeshComponent::buildMesh(), ElbowPipe1Phase::buildMeshNodes(), Component1D::buildMeshNodes(), and VolumeJunction1Phase::setupMesh().

214 {
215  auto node = mesh().addNode(pt);
216  _node_ids.push_back(node->id());
217  return node;
218 }
std::vector< dof_id_type > _node_ids
Node IDs of this component.
Definition: Component.h:455
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60
Node * addNode(const Point &pt)
Add a new node into the mesh.
Definition: THMMesh.C:95

◆ addNodeElement()

Elem * Component::addNodeElement ( dof_id_type  node)
protectedinherited

Definition at line 221 of file Component.C.

Referenced by VolumeJunction1Phase::setupMesh().

222 {
223  auto elem = mesh().addNodeElement(node);
224  _elem_ids.push_back(elem->id());
225  return elem;
226 }
Elem * addNodeElement(dof_id_type node)
Definition: THMMesh.C:116
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60

◆ addRelationshipManagers()

virtual void Component::addRelationshipManagers ( Moose::RelationshipManagerType  )
inlinevirtualinherited

Adds relationship managers for the component.

Reimplemented in FileMeshPhysicsComponent.

Definition at line 110 of file Component.h.

110 {}

◆ addRelationshipManagersFromParameters()

void Component::addRelationshipManagersFromParameters ( const InputParameters moose_object_pars)
protectedinherited

Method to add a relationship manager for the objects being added to the system.

Relationship managers have to be added relatively early. In many cases before the Action::act() method is called.

This method was copied from Action.

Parameters
moose_object_parsThe MooseObject to inspect for RelationshipManagers to add

Definition at line 158 of file Component.C.

Referenced by FileMeshPhysicsComponent::addRelationshipManagers().

159 {
160  const auto & buildable_types = moose_object_pars.getBuildableRelationshipManagerTypes();
161 
162  for (const auto & buildable_type : buildable_types)
163  {
164  auto & rm_name = std::get<0>(buildable_type);
165  auto & rm_type = std::get<1>(buildable_type);
166  auto rm_input_parameter_func = std::get<2>(buildable_type);
167 
168  addRelationshipManager(moose_object_pars, rm_name, rm_type, rm_input_parameter_func);
169  }
170 }
const std::vector< std::tuple< std::string, Moose::RelationshipManagerType, Moose::RelationshipManagerInputParameterCallback > > & getBuildableRelationshipManagerTypes() const
void addRelationshipManager(const InputParameters &moose_object_pars, std::string rm_name, Moose::RelationshipManagerType rm_type, Moose::RelationshipManagerInputParameterCallback rm_input_parameter_func, Moose::RMSystemType sys_type=Moose::RMSystemType::NONE)
Method for adding a single relationship manager.
Definition: Component.C:173

◆ addVariables()

void FlowChannelBase::addVariables ( )
overridevirtualinherited

Reimplemented from Component.

Definition at line 215 of file FlowChannelBase.C.

216 {
217  // This should be called after initSecondary() because it relies on the names
218  // generated in initSecondary() of heat transfer components
220 
221  _flow_model->addVariables();
222 
223  // total heat flux perimeter
225  {
226  const std::string class_name = "SumIC";
227  InputParameters params = _factory.getValidParams(class_name);
228  params.set<VariableName>("variable") = FlowModel::HEAT_FLUX_PERIMETER;
229  params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
230  params.set<std::vector<VariableName>>("values") = _P_hf_names;
231  getTHMProblem().addSimInitialCondition(class_name, genName(name(), "P_hf_ic"), params);
232  }
233 
234  _flow_model->addInitialConditions();
235 }
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
std::shared_ptr< FlowModel > _flow_model
The flow model used by this flow channel.
std::vector< VariableName > _P_hf_names
heated perimeter names for connected heat transfers
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
T & set(const std::string &name, bool quiet_mode=false)
InputParameters getValidParams(const std::string &name) const
bool isRestarting() const
virtual const std::string & name() const
unsigned int _n_heat_transfer_connections
Number of connected heat transfer components.
virtual void getHeatTransferVariableNames()
Populates heat connection variable names lists.
static const std::string HEAT_FLUX_PERIMETER
Definition: FlowModel.h:105
void addSimInitialCondition(const std::string &type, const std::string &name, InputParameters params)
Definition: Simulation.C:495
MooseApp & _app
Factory & _factory
The Factory associated with the MooseApp.
Definition: Component.h:446
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
Definition: Component.C:307

◆ buildFlowModel()

std::shared_ptr< FlowModel > FlowChannel1PhaseBase::buildFlowModel ( )
overrideprotectedvirtualinherited

Implements FlowChannelBase.

Definition at line 51 of file FlowChannel1PhaseBase.C.

52 {
53  const std::string class_name = flowModelClassName();
54  InputParameters pars = _factory.getValidParams(class_name);
55  pars.set<THMProblem *>("_thm_problem") = &getTHMProblem();
56  pars.set<FlowChannelBase *>("_flow_channel") = this;
57  pars.set<UserObjectName>("numerical_flux") = _numerical_flux_name;
58  pars.set<bool>("output_vector_velocity") = getTHMProblem().getVectorValuedVelocity();
60  return _factory.create<FlowModel>(class_name, name(), pars, 0);
61 }
virtual std::string flowModelClassName() const =0
Returns the flow model class name.
Specialization of FEProblem to run with component subsystem.
Definition: THMProblem.h:18
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
Provides functions to setup the flow model.
Definition: FlowModel.h:27
T & set(const std::string &name, bool quiet_mode=false)
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, const InputParameters &parameters, THREAD_ID tid=0, bool print_deprecated=true)
InputParameters getValidParams(const std::string &name) const
void applyParameters(const InputParameters &common, const std::vector< std::string > &exclude={}, const bool allow_private=false)
A base class for flow channels.
bool getVectorValuedVelocity()
Is velocity output as vector-valued field.
Definition: Simulation.h:359
virtual const std::string & name() const
const UserObjectName _numerical_flux_name
Numerical flux user object name.
Factory & _factory
The Factory associated with the MooseApp.
Definition: Component.h:446
const InputParameters & parameters() const

◆ buildMesh()

void Component1D::buildMesh ( )
overridevirtualinherited

Implements GeneratedMeshComponent.

Definition at line 34 of file Component1D.C.

35 {
37 
38  MeshBase & the_mesh = mesh().getMesh();
39  BoundaryInfo & boundary_info = the_mesh.get_boundary_info();
40 
41  // create nodeset for all nodes for this component
43  _nodeset_name = name();
44  boundary_info.nodeset_name(_nodeset_id) = _nodeset_name;
45 
46  // Check that the number of nodes is consistent with the number of nodes in case component
47  // developers screw up (typically in buildMeshNodes() call)
49  {
50  if (_node_ids.size() != (2 * _n_elem + 1))
51  mooseError(name(),
52  ": Inconsistent number of nodes and elements. You have ",
53  _n_elem,
54  " elements and ",
55  _node_ids.size(),
56  " nodes.");
57  }
58  else
59  {
60  if (_node_ids.size() != _n_elem + 1)
61  mooseError(name(),
62  ": Inconsistent number of nodes and elements. You have ",
63  _n_elem,
64  " elements and ",
65  _node_ids.size(),
66  " nodes.");
67  }
68 
69  for (auto & node_id : _node_ids)
70  {
71  const Node * nd = the_mesh.node_ptr(node_id);
72  boundary_info.add_node(nd, _nodeset_id);
73  }
74 
75  // elems
76  BoundaryID bc_id_inlet = mesh().getNextBoundaryId();
77  BoundaryID bc_id_outlet = mesh().getNextBoundaryId();
78  auto & binfo = mesh().getMesh().get_boundary_info();
79  for (unsigned int i = 0; i < _n_elem; i++)
80  {
81  Elem * elem = nullptr;
83  elem = addElementEdge3(_node_ids[2 * i], _node_ids[2 * i + 2], _node_ids[2 * i + 1]);
84  else
85  elem = addElementEdge2(_node_ids[i], _node_ids[i + 1]);
86 
87  // BCs
88  if (i == 0)
89  {
90  Point pt = _position;
91  _connections[Component1DConnection::IN].push_back(Connection(pt, elem, 0, bc_id_inlet, -1));
92  boundary_info.add_side(elem, 0, bc_id_inlet);
93  binfo.sideset_name(bc_id_inlet) = genName(name(), "in");
94  }
95  if (i == (_n_elem - 1))
96  {
97  Point pt = _position + _length * _dir;
98  _connections[Component1DConnection::OUT].push_back(Connection(pt, elem, 1, bc_id_outlet, 1));
99  boundary_info.add_side(elem, 1, bc_id_outlet);
100  binfo.sideset_name(bc_id_outlet) = genName(name(), "out");
101  }
102  }
103 
104  if (_axial_region_names.size() > 0)
105  {
106  unsigned int k = 0;
107  for (unsigned int i = 0; i < _axial_region_names.size(); i++)
108  {
109  const std::string & region_name = _axial_region_names[i];
110  SubdomainID subdomain_id = mesh().getNextSubdomainId();
111  setSubdomainInfo(subdomain_id, genName(name(), region_name));
112 
113  for (unsigned int j = 0; j < _n_elems[i]; j++, k++)
114  {
115  dof_id_type elem_id = _elem_ids[k];
116  mesh().elemPtr(elem_id)->subdomain_id() = subdomain_id;
117  }
118  }
119  }
120  else
121  {
122  SubdomainID subdomain_id = mesh().getNextSubdomainId();
123  setSubdomainInfo(subdomain_id, name());
124 
125  for (auto && id : _elem_ids)
126  mesh().elemPtr(id)->subdomain_id() = subdomain_id;
127  }
128 
129  // Update the mesh
130  mesh().update();
131 }
Elem * addElementEdge2(dof_id_type node0, dof_id_type node1)
virtual void buildMeshNodes()
Definition: Component1D.C:23
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
std::map< Component1DConnection::EEndType, std::vector< Connection > > _connections
Map of end type to a list of connections.
Definition: Component1D.h:78
virtual Elem * elemPtr(const dof_id_type i)
virtual bool usingSecondOrderMesh() const override
Check if second order mesh is being used by this geometrical component.
Definition: Component1D.C:134
BoundaryID _nodeset_id
Nodeset ID for all 1D component nodes.
Definition: Component1D.h:84
virtual void setSubdomainInfo(SubdomainID subdomain_id, const std::string &subdomain_name, const Moose::CoordinateSystemType &coord_system=Moose::COORD_XYZ)
Sets the next subdomain ID, name, and coordinate system.
Definition: Component.C:229
virtual const std::string & name() const
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
const RealVectorValue _dir
Normalized direction of axis from start position to end position.
MeshBase & getMesh()
std::vector< dof_id_type > _node_ids
Node IDs of this component.
Definition: Component.h:455
boundary_id_type BoundaryID
void update()
BoundaryName _nodeset_name
Nodeset name for all 1D component nodes.
Definition: Component1D.h:86
const Point & _position
Start position of axis in 3-D space.
virtual SubdomainID getNextSubdomainId()
Gets the next subdomain ID.
Definition: THMMesh.C:202
Elem * addElementEdge3(dof_id_type node0, dof_id_type node1, dof_id_type node2)
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60
const std::vector< unsigned int > & _n_elems
Number of elements in each axial section.
const unsigned int _n_elem
Total number of axial elements.
virtual BoundaryID getNextBoundaryId()
Gets the next nodeset or sideset ID.
Definition: THMMesh.C:209
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static const std::string k
Definition: NS.h:130
uint8_t dof_id_type
const std::vector< std::string > & _axial_region_names
Axial region names.

◆ check()

void FlowChannel1PhaseBase::check ( ) const
overrideprotectedvirtualinherited

Check the component integrity.

Reimplemented from FlowChannelBase.

Definition at line 64 of file FlowChannel1PhaseBase.C.

65 {
67 
69 
70  // only 1-phase flow compatible heat transfers are allowed
71  for (unsigned int i = 0; i < _heat_transfer_names.size(); i++)
72  {
73  if (!hasComponentByName<HeatTransfer1PhaseBase>(_heat_transfer_names[i]))
74  logError("Coupled heat source '",
76  "' is not compatible with single phase flow channel. Use single phase heat transfer "
77  "component instead.");
78  }
79 
80  bool ics_set = true;
81  for (const auto & ic_param : ICParameters())
82  ics_set = ics_set && isParamValid(ic_param);
83  ics_set = ics_set || getTHMProblem().hasInitialConditionsFromFile();
84 
85  if (!ics_set && !_app.isRestarting())
86  {
87  // create a list of the missing IC parameters
88  std::ostringstream oss;
89  for (const auto & ic_param : ICParameters())
90  if (!isParamValid(ic_param))
91  oss << " " << ic_param;
92 
93  logError("The following initial condition parameters are missing:", oss.str());
94  }
95 }
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
virtual std::vector< std::string > ICParameters() const =0
Returns the names of the IC parameters.
bool isRestarting() const
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
bool isParamValid(const std::string &name) const
std::vector< std::string > _heat_transfer_names
Names of the heat transfer components connected to this component.
MooseApp & _app
virtual void check() const override
Check the component integrity.
virtual void checkFluidProperties() const =0
Logs an error if the fluid properties is not valid.
bool hasInitialConditionsFromFile() const
Are initial conditions specified from a file.
Definition: Simulation.C:1070

◆ checkComponentExistsByName()

void Component::checkComponentExistsByName ( const std::string &  comp_name) const
inherited

Checks that a component exists.

Parameters
[in]comp_namename of the component

Definition at line 151 of file Component.C.

152 {
153  if (!_sim.hasComponent(comp_name))
154  logError("The component '", comp_name, "' does not exist");
155 }
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition: Component.h:443
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
bool hasComponent(const std::string &name) const
Find out if simulation has a component with the given name.
Definition: Simulation.C:1002

◆ checkComponentOfTypeExists()

template<typename T >
void Component::checkComponentOfTypeExists ( const std::string &  param) const
inherited

Checks that the component of a certain type exists, where the name is given by a parameter.

Template Parameters
Tenforced type of component
Parameters
[in]paramparameter name for component name

Definition at line 585 of file Component.h.

586 {
587  insistParameterExists<std::string>(__FUNCTION__, param);
588 
589  const std::string & comp_name = getParam<std::string>(param);
590  checkComponentOfTypeExistsByName<T>(comp_name);
591 }

◆ checkComponentOfTypeExistsByName()

template<typename T >
void Component::checkComponentOfTypeExistsByName ( const std::string &  comp_name) const
inherited

Checks that the component of a certain type exists.

Template Parameters
Tenforced type of component
Parameters
[in]comp_namecomponent name

Definition at line 595 of file Component.h.

596 {
597  if (!_sim.hasComponentOfType<T>(comp_name))
598  {
599  if (_sim.hasComponent(comp_name))
600  logError("The component '", comp_name, "' is not of type '", demangle(typeid(T).name()), "'");
601  else
602  logError("The component '", comp_name, "' does not exist");
603  }
604 }
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition: Component.h:443
virtual const std::string & name() const
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
bool hasComponent(const std::string &name) const
Find out if simulation has a component with the given name.
Definition: Simulation.C:1002
std::string demangle(const char *name)
bool hasComponentOfType(const std::string &name) const
Find out if simulation has a component with the given name and specified type.
Definition: Simulation.h:493

◆ checkEqualSize()

template<typename T1 , typename T2 >
void Component::checkEqualSize ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Checks that the size of two vector parameters are equal.

Template Parameters
T1type of element in the first vector parameter
T2type of element in the second vector parameter
Parameters
[in]param1first parameter name
[in]param2second parameter name

Definition at line 651 of file Component.h.

652 {
653  insistParameterExists<std::vector<T1>>(__FUNCTION__, param1);
654  insistParameterExists<std::vector<T2>>(__FUNCTION__, param2);
655 
656  const auto & value1 = getParam<std::vector<T1>>(param1);
657  const auto & value2 = getParam<std::vector<T2>>(param2);
658  if (value1.size() != value2.size())
659  logError("The number of entries in parameter '",
660  param1,
661  "' (",
662  value1.size(),
663  ") must equal the number of entries of parameter '",
664  param2,
665  "' (",
666  value2.size(),
667  ")");
668 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215

◆ checkFluidProperties()

void FlowChannel1Phase::checkFluidProperties ( ) const
overrideprotectedvirtual

Logs an error if the fluid properties is not valid.

Implements FlowChannel1PhaseBase.

Definition at line 42 of file FlowChannel1Phase.C.

43 {
45  if (dynamic_cast<const SinglePhaseFluidProperties *>(&fp) == nullptr)
46  logError("Supplied fluid properties must be for 1-phase fluids.");
47 }
T & getUserObject(const std::string &name, unsigned int tid=0) const
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
const UserObjectName & _fp_name
Name of fluid properties user object.

◆ checkMutuallyExclusiveParameters()

void Component::checkMutuallyExclusiveParameters ( const std::vector< std::string > &  params,
bool  need_one_specified = true 
) const
protectedinherited

Checks that exactly one parameter out of a list is provided.

Parameters
[in]paramsvector of parameter names
[in]need_one_specifiedNeed one of the parameters specified?

Definition at line 246 of file Component.C.

Referenced by HeatStructureCylindrical::check(), and HeatStructurePlate::check().

248 {
249  unsigned int n_provided_params = 0;
250  for (const auto & param : params)
251  if (isParamValid(param))
252  n_provided_params++;
253 
254  if (n_provided_params != 1)
255  {
256  std::string params_list_string = "{'" + params[0] + "'";
257  for (unsigned int i = 1; i < params.size(); ++i)
258  params_list_string += ", '" + params[i] + "'";
259  params_list_string += "}";
260 
261  if (n_provided_params == 0 && need_one_specified)
262  logError("One of the parameters ", params_list_string, " must be provided");
263 
264  if (n_provided_params != 0)
265  logError("Only one of the parameters ", params_list_string, " can be provided");
266  }
267 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
bool isParamValid(const std::string &name) const

◆ checkParameterValueLessThan()

template<typename T >
void Component::checkParameterValueLessThan ( const std::string &  param,
const T &  value_max 
) const
protectedinherited

Checks that a parameter value is less than a value.

Template Parameters
Ttype of parameter
Parameters
[in]paramparameter name
[in]value_maxvalue which parameter value must be less than

Definition at line 608 of file Component.h.

609 {
610  insistParameterExists<T>(__FUNCTION__, param);
611 
612  const auto & value = getParam<T>(param);
613  if (value >= value_max)
614  logError("The value of parameter '", param, "' (", value, ") must be less than ", value_max);
615 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ checkSetupStatus()

void Component::checkSetupStatus ( const EComponentSetupStatus status) const
inherited

Throws an error if the supplied setup status of this component has not been reached.

This is useful for getter functions that rely on data initialized after the constructor; if an error is not thrown, then uninitialized data could be returned from these functions.

Parameters
[in]statusSetup status that this component must have reached

Definition at line 117 of file Component.C.

Referenced by FlowChannelBase::getAreaFunctionName(), Component2D::getBoundaryArea(), FileMeshComponent::getBoundaryInfo(), Component2D::getBoundaryInfo(), Component1DConnection::getBoundaryNames(), Component1D::getConnections(), Component::getCoordSysTypes(), Component::getElementIDs(), Component2D::getExternalBoundaryName(), Component2D::getExternalBoundaryType(), FlowChannelBase::getFlowModel(), FlowBoundary::getFluidPropertiesName(), FlowJunction::getFluidPropertiesName(), HeatTransferBase::getFluidPropertiesName(), HeatTransferBase::getHeatedPerimeterName(), FlowChannelBase::getHeatTransferNames(), FlowChannelBase::getHeatTransferNamesSuffix(), Component1DConnection::getNodeIDs(), Component::getNodeIDs(), Component1D::getNodesetID(), Component1D::getNodesetName(), Component::getSubdomainNames(), HeatTransfer1PhaseBase::getWallHeatTransferCoefficient1PhaseName(), HeatTransferBase::getWallTemperatureMatName(), HeatTransferBase::getWallTemperatureName(), FileMeshComponent::hasBoundary(), Component2D::hasBoundary(), Component2D::hasExternalBoundary(), and HeatStructureFromFile3D::hasRegion().

118 {
120  mooseError(name(),
121  ": The component setup status (",
123  ") is less than the required status (",
124  stringify(status),
125  ")");
126 }
std::string stringify(EComponentSetupStatus status) const
Return a string for the setup status.
Definition: Component.C:271
virtual const std::string & name() const
MPI_Status status
EComponentSetupStatus _component_setup_status
Component setup status.
Definition: Component.h:488
void mooseError(Args &&... args) const

◆ checkSizeEqualsParameterValue()

template<typename T1 , typename T2 >
void Component::checkSizeEqualsParameterValue ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Checks that the size of a vector parameter equals the value of another parameter.

Template Parameters
T1type of element in the vector parameter
T2type of the parameter whose value is compared to size
Parameters
[in]param1vector parameter name
[in]param2name of parameter whose value is compared to size

Definition at line 709 of file Component.h.

711 {
712  insistParameterExists<std::vector<T1>>(__FUNCTION__, param1);
713  insistParameterExists<T2>(__FUNCTION__, param2);
714 
715  const auto & value1 = getParam<std::vector<T1>>(param1);
716  const auto & value2 = getParam<T2>(param2);
717  if (value1.size() != value2)
718  logError("The number of entries in parameter '",
719  param1,
720  "' (",
721  value1.size(),
722  ") must be equal to the value of parameter '",
723  param2,
724  "' (",
725  value2,
726  ")");
727 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215

◆ checkSizeEqualsValue() [1/2]

template<typename T >
void Component::checkSizeEqualsValue ( const std::string &  param,
const unsigned int n_entries 
) const
protectedinherited

Checks that the size of a vector parameter equals a value.

This version does not supply a description to the value.

Template Parameters
Ttype of element in the vector parameter
Parameters
[in]paramparameter name
[in]n_entriesvalue which parameter size must be equal to

Definition at line 672 of file Component.h.

673 {
674  insistParameterExists<std::vector<T>>(__FUNCTION__, param);
675 
676  const auto & param_value = getParam<std::vector<T>>(param);
677  if (param_value.size() != n_entries)
678  logError("The number of entries in parameter '",
679  param,
680  "' (",
681  param_value.size(),
682  ") must be equal to ",
683  n_entries);
684 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215

◆ checkSizeEqualsValue() [2/2]

template<typename T >
void Component::checkSizeEqualsValue ( const std::string &  param,
const unsigned int n_entries,
const std::string &  description 
) const
protectedinherited

Checks that the size of a vector parameter equals a value.

This version supplies a description to the value.

Template Parameters
Ttype of element in the vector parameter
Parameters
[in]paramparameter name
[in]n_entriesvalue which parameter size must be equal to
[in]descriptiondescription of the value that size must be equal to

Definition at line 688 of file Component.h.

691 {
692  insistParameterExists<std::vector<T>>(__FUNCTION__, param);
693 
694  const auto & param_value = getParam<std::vector<T>>(param);
695  if (param_value.size() != n_entries)
696  logError("The number of entries in parameter '",
697  param,
698  "' (",
699  param_value.size(),
700  ") must be equal to ",
701  description,
702  " (",
703  n_entries,
704  ")");
705 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215

◆ checkSizeGreaterThan()

template<typename T >
void Component::checkSizeGreaterThan ( const std::string &  param,
const unsigned int n_entries 
) const
protectedinherited

Checks that the size of a vector parameter is greater than a value.

Template Parameters
Ttype of element in the vector parameter
Parameters
[in]paramparameter name
[in]n_entriesvalue which parameter size must be greater than

Definition at line 635 of file Component.h.

636 {
637  insistParameterExists<std::vector<T>>(__FUNCTION__, param);
638 
639  const auto & value = getParam<std::vector<T>>(param);
640  if (value.size() <= n_entries)
641  logError("The number of entries in the parameter '",
642  param,
643  "' (",
644  value.size(),
645  ") must be greater than ",
646  n_entries);
647 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ checkSizeLessThan()

template<typename T >
void Component::checkSizeLessThan ( const std::string &  param,
const unsigned int n_entries 
) const
protectedinherited

Checks that the size of a vector parameter is less than a value.

Template Parameters
Ttype of element in the vector parameter
Parameters
[in]paramparameter name
[in]n_entriesvalue which parameter size must be less than

Definition at line 619 of file Component.h.

620 {
621  insistParameterExists<std::vector<T>>(__FUNCTION__, param);
622 
623  const auto & value = getParam<std::vector<T>>(param);
624  if (value.size() >= n_entries)
625  logError("The number of entries in the parameter '",
626  param,
627  "' (",
628  value.size(),
629  ") must be less than ",
630  n_entries);
631 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ cname()

const std::string & Component::cname ( ) const
inherited

Get the component name.

Returns
The name of the component. For composite component, return its parent name

Definition at line 51 of file Component.C.

Referenced by ShaftConnectedCompressor1Phase::buildVolumeJunctionUserObject(), ShaftConnectedTurbine1Phase::buildVolumeJunctionUserObject(), ShaftConnectedPump1Phase::buildVolumeJunctionUserObject(), Closures1PhaseSimple::checkFlowChannel(), Closures1PhaseSimple::checkHeatTransfer(), Component::cname(), Component::logError(), and Component::logWarning().

52 {
53  if (_parent)
54  return _parent->cname();
55  else
56  return name();
57 }
const std::string & cname() const
Get the component name.
Definition: Component.C:51
Component * _parent
Pointer to a parent component (used in composed components)
Definition: Component.h:438
virtual const std::string & name() const

◆ computeAxialCoordinate()

Real DiscreteLineSegmentInterface::computeAxialCoordinate ( const Point &  p) const
inherited

Definition at line 107 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue(), DiscreteLineSegmentInterface::getAxialElementIndex(), and DiscreteLineSegmentInterface::getAxialSectionIndex().

108 {
109  const Real ax_coord = _dir * (p - _position);
110  if (MooseUtils::absoluteFuzzyLessThan(ax_coord, 0.0) ||
113  ": The point ",
114  p,
115  " has an invalid axial coordinate (",
116  ax_coord,
117  "). Valid axial coordinates are in the range (0,",
118  _length,
119  ").");
120  else
121  return ax_coord;
122 }
void mooseError(Args &&... args)
const RealVectorValue _dir
Normalized direction of axis from start position to end position.
bool absoluteFuzzyLessThan(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
const Point & _position
Start position of axis in 3-D space.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::string _moose_object_name_dlsi
Name of the MOOSE object.
bool absoluteFuzzyGreaterThan(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)

◆ computeDirectionTransformationTensor()

RealTensorValue DiscreteLineSegmentInterface::computeDirectionTransformationTensor ( const RealVectorValue dir)
staticinherited

Computes the direction transformation tensor.

Parameters
[in]dirDirection vector

Definition at line 82 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterface::getElementBoundaryCoordinates().

83 {
84  if (MooseUtils::absoluteFuzzyEqual(dir.norm(), 0.0))
85  mooseError("The direction vector must not be the zero vector.");
86 
87  const auto dir_normalized = dir / dir.norm();
88  const Real theta = acos(dir_normalized(2));
89  const Real aphi = atan2(dir_normalized(1), dir_normalized(0));
90  return RealTensorValue(
91  RealVectorValue(cos(aphi) * sin(theta), -sin(aphi), -cos(aphi) * cos(theta)),
92  RealVectorValue(sin(aphi) * sin(theta), cos(aphi), -sin(aphi) * cos(theta)),
93  RealVectorValue(cos(theta), 0.0, sin(theta)));
94 }
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sin(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tan
auto norm() const -> decltype(std::norm(Real()))
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
void mooseError(Args &&... args)
TensorValue< Real > RealTensorValue
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template cos(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(cos
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ computeRadialCoordinate()

Real DiscreteLineSegmentInterface::computeRadialCoordinate ( const Point &  p) const
inherited

Definition at line 125 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue().

126 {
127  const RealVectorValue v = (p - _position);
128  return v.cross(_dir).norm();
129 }
const RealVectorValue _dir
Normalized direction of axis from start position to end position.
const Point & _position
Start position of axis in 3-D space.
static const std::string v
Definition: NS.h:84

◆ computeRealPointFromReferencePoint() [1/2]

Point DiscreteLineSegmentInterface::computeRealPointFromReferencePoint ( const Point &  p) const
inherited

Computes point in 3-D space from a point in reference space.

Parameters
[in]pPoint in reference space

Definition at line 163 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterface::getElementBoundaryCoordinates(), and GeneratedMeshComponent::setupMesh().

164 {
166 }
const Point & _position
Start position of axis in 3-D space.
const RealTensorValue _Rx
Rotational transformation tensor about x-axis.
const RealTensorValue _R
Direction transformation tensor.
Point computeRealPointFromReferencePoint(const Point &p) const
Computes point in 3-D space from a point in reference space.

◆ computeRealPointFromReferencePoint() [2/2]

Point DiscreteLineSegmentInterface::computeRealPointFromReferencePoint ( const Point &  p,
const RealVectorValue position,
const RealTensorValue R,
const RealTensorValue Rx 
)
staticinherited

Computes point in 3-D space from a point in reference space.

Parameters
[in]pPoint in reference space

Definition at line 154 of file DiscreteLineSegmentInterface.C.

158 {
159  return R * (Rx * p) + position;
160 }
static const std::string R
Definition: NS.h:162

◆ computeReferencePointFromRealPoint() [1/2]

Point DiscreteLineSegmentInterface::computeReferencePointFromRealPoint ( const Point &  p) const
inherited

Computes point in reference space from a point in 3-D space.

Parameters
[in]pPoint in 3-D space

Definition at line 178 of file DiscreteLineSegmentInterface.C.

179 {
181 }
const RealTensorValue _Rx_inv
Inverse rotational transformation tensor about x-axis.
const Point & _position
Start position of axis in 3-D space.
Point computeReferencePointFromRealPoint(const Point &p) const
Computes point in reference space from a point in 3-D space.
const RealTensorValue _R_inv
Inverse direction transformation tensor.

◆ computeReferencePointFromRealPoint() [2/2]

Point DiscreteLineSegmentInterface::computeReferencePointFromRealPoint ( const Point &  p,
const RealVectorValue position,
const RealTensorValue R_inv,
const RealTensorValue Rx_inv 
)
staticinherited

Computes point in reference space from a point in 3-D space.

Parameters
[in]pPoint in 3-D space

Definition at line 169 of file DiscreteLineSegmentInterface.C.

173 {
174  return Rx_inv * R_inv * (p - position);
175 }

◆ computeXRotationTransformationTensor()

RealTensorValue DiscreteLineSegmentInterface::computeXRotationTransformationTensor ( const Real rotation)
staticinherited

Computes the rotation transformation tensor.

Parameters
[in]rotationRotation about the x-axis, in degrees

Definition at line 97 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterface::getElementBoundaryCoordinates().

98 {
99  const Real rotation_rad = M_PI * rotation / 180.;
100  const RealVectorValue Rx_x(1., 0., 0.);
101  const RealVectorValue Rx_y(0., cos(rotation_rad), -sin(rotation_rad));
102  const RealVectorValue Rx_z(0., sin(rotation_rad), cos(rotation_rad));
103  return RealTensorValue(Rx_x, Rx_y, Rx_z);
104 }
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sin(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tan
TensorValue< Real > RealTensorValue
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template cos(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(cos
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ connectObject() [1/2]

void Component::connectObject ( const InputParameters params,
const std::string &  mooseName,
const std::string &  name 
) const
inherited

◆ connectObject() [2/2]

void Component::connectObject ( const InputParameters params,
const std::string &  mooseName,
const std::string &  name,
const std::string &  par_name 
) const
inherited

Connect with control logic.

Definition at line 106 of file Component.C.

110 {
111  MooseObjectParameterName alias("component", this->name(), name, "::");
112  MooseObjectParameterName par_value(params.get<std::string>("_moose_base"), mooseName, par_name);
114 }
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
InputParameterWarehouse & getInputParameterWarehouse()
virtual const std::string & name() const
void addControllableParameterAlias(const MooseObjectParameterName &alias, const MooseObjectParameterName &secondary)
MooseApp & _app

◆ constMesh()

const THMMesh& Component::constMesh ( ) const
inlineinherited

Const reference to mesh, which can be called at any point.

Note that overloading mesh() was not possible due to the need to call this const version, even when the component is not const.

Definition at line 62 of file Component.h.

Referenced by FileMeshPhysicsComponent::getMesh(), and Component1DJunction::initSecondary().

62 { return _mesh; }
THMMesh & _mesh
The THM mesh TODO: make _mesh private (applications need to switch to getters to avoid breaking) ...
Definition: Component.h:452

◆ createAreaFunctionAndGetName()

FunctionName FlowChannelBase::createAreaFunctionAndGetName ( )
virtualinherited

Creates the area function if needed and then stores the name.

Definition at line 151 of file FlowChannelBase.C.

Referenced by FlowChannelBase::init().

152 {
153  // Area function has already been created; just need to return its name
154  return getParam<FunctionName>("A");
155 }

◆ executeCheck()

void Component::executeCheck ( ) const
inherited

Wrapper function for check() that marks the function as being called.

Definition at line 84 of file Component.C.

85 {
86  check();
88 }
virtual void check() const
Check the component integrity.
Definition: Component.h:301
EComponentSetupStatus _component_setup_status
Component setup status.
Definition: Component.h:488
mesh set up, called both inits, checked
Definition: Component.h:42

◆ executeInit()

void Component::executeInit ( )
inherited

Wrapper function for init() that marks the function as being called.

Definition at line 70 of file Component.C.

71 {
72  init();
74 }
mesh set up, called primary init
Definition: Component.h:40
virtual void init()
Initializes the component.
Definition: Component.h:290
EComponentSetupStatus _component_setup_status
Component setup status.
Definition: Component.h:488

◆ executeInitSecondary()

void Component::executeInitSecondary ( )
inherited

Wrapper function for initSecondary() that marks the function as being called.

Definition at line 77 of file Component.C.

78 {
79  initSecondary();
81 }
mesh set up, called both inits
Definition: Component.h:41
virtual void initSecondary()
Perform secondary initialization, which relies on init() being called for all components.
Definition: Component.h:296
EComponentSetupStatus _component_setup_status
Component setup status.
Definition: Component.h:488

◆ executeSetupMesh()

void Component::executeSetupMesh ( )
inherited

Wrapper function for setupMesh() that marks the function as being called.

Definition at line 91 of file Component.C.

92 {
93  setupMesh();
95 }
virtual void setupMesh()
Performs mesh setup such as creating mesh or naming mesh sets.
Definition: Component.h:306
EComponentSetupStatus _component_setup_status
Component setup status.
Definition: Component.h:488

◆ flowModelClassName()

std::string FlowChannel1Phase::flowModelClassName ( ) const
overrideprotectedvirtual

Returns the flow model class name.

Implements FlowChannel1PhaseBase.

Definition at line 50 of file FlowChannel1Phase.C.

51 {
52  return "FlowModelSinglePhase";
53 }

◆ genName() [1/4]

std::string NamingInterface::genName ( const std::string &  prefix,
unsigned int  id,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from a prefix, number and possible suffix.

Definition at line 29 of file NamingInterface.h.

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), FlowModel::addCommonInitialConditions(), FlowModel::addCommonMooseObjects(), FlowChannelBase::addCommonObjects(), Simulation::addComponentScalarIC(), HeatStructureBase::addConstantDensitySolidPropertiesMaterial(), Simulation::addConstantIC(), Simulation::addConstantScalarIC(), FlowModel1PhaseBase::addDensityAux(), FlowModelSinglePhase::addDensityIC(), FlowModelGasMix::addDensityIC(), FlowModel1PhaseBase::addEnergyGravityKernel(), FlowModelSinglePhase::addFluidPropertiesMaterials(), FlowModelGasMix::addFluidPropertiesMaterials(), FlowModel1PhaseBase::addFunctionIC(), Simulation::addFunctionIC(), HeatTransferBase::addHeatedPerimeter(), HeatConductionModel::addHeatEquationRZ(), HeatConductionModel::addHeatEquationXYZ(), HeatTransferFromTemperature1Phase::addHeatTransferKernels(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), FlowModelGasMix::addMassDiffusionEnergyDGKernel(), FlowModelGasMix::addMassDiffusionSpeciesDGKernel(), FlowModelGasMix::addMassFractionAux(), HeatConductionModel::addMaterials(), FlowModel1PhaseBase::addMomentumAreaGradientKernel(), FlowModel1PhaseBase::addMomentumFrictionKernel(), FlowModel1PhaseBase::addMomentumGravityKernel(), HeatTransferFromHeatFlux1Phase::addMooseObjects(), HSBoundaryAmbientConvection::addMooseObjects(), HSBoundaryHeatFlux::addMooseObjects(), HSBoundaryRadiation::addMooseObjects(), InletVelocityTemperature1Phase::addMooseObjects(), HSBoundarySpecifiedTemperature::addMooseObjects(), FormLossFromFunction1Phase::addMooseObjects(), HeatSourceFromPowerDensity::addMooseObjects(), HeatSourceFromTotalPower::addMooseObjects(), HeatStructure2DCoupler::addMooseObjects(), HeatStructure2DRadiationCouplerRZ::addMooseObjects(), FormLossFromExternalApp1Phase::addMooseObjects(), GateValve1Phase::addMooseObjects(), HeatSourceVolumetric1Phase::addMooseObjects(), HeatTransferFromSpecifiedTemperature1Phase::addMooseObjects(), HSBoundaryExternalAppTemperature::addMooseObjects(), Shaft::addMooseObjects(), TotalPower::addMooseObjects(), VolumeJunction1Phase::addMooseObjects(), FormLoss1PhaseBase::addMooseObjects(), HeatTransferFromExternalAppHeatFlux1Phase::addMooseObjects(), ShaftConnectedTurbine1Phase::addMooseObjects(), HSBoundaryExternalAppConvection::addMooseObjects(), ShaftConnectedCompressor1Phase::addMooseObjects(), ShaftConnectedPump1Phase::addMooseObjects(), HeatTransferBase::addMooseObjects(), HeatTransferFromHeatStructure3D1Phase::addMooseObjects(), HSCoupler2D2DRadiation::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), HSCoupler2D3D::addMooseObjects(), HeatTransferFromHeatStructure1Phase::addMooseObjects(), HSBoundaryExternalAppHeatFlux::addMooseObjects(), JunctionOneToOne1Phase::addMooseObjects(), FlowChannelBase::addMooseObjects(), FunctorClosures::addMooseObjectsFlowChannel(), Closures1PhaseSimple::addMooseObjectsHeatTransfer(), FlowModelSinglePhase::addPressureAux(), FlowModelGasMix::addPressureAux(), FlowModelSinglePhase::addRDGAdvectionDGKernels(), FlowModelGasMix::addRDGAdvectionDGKernels(), FlowModel1PhaseBase::addRhoAIC(), FlowModelSinglePhase::addRhoEAIC(), FlowModelGasMix::addRhoEAIC(), FlowModel1PhaseBase::addRhoUAIC(), FlowModelSinglePhase::addSlopeReconstructionMaterial(), FlowModelGasMix::addSlopeReconstructionMaterial(), FlowModel1PhaseBase::addSpecificInternalEnergyAux(), FlowModel1PhaseBase::addSpecificInternalEnergyIC(), FlowModel1PhaseBase::addSpecificTotalEnthalpyAux(), FlowModel1PhaseBase::addSpecificTotalEnthalpyIC(), FlowModel1PhaseBase::addSpecificVolumeAux(), FlowModel1PhaseBase::addSpecificVolumeIC(), FlowModelSinglePhase::addTemperatureAux(), FlowModelGasMix::addTemperatureAux(), Closures1PhaseTHM::addTemperatureWallFromHeatFluxMaterial(), FlowModel1PhaseBase::addTimeDerivativeKernelIfTransient(), FlowChannelBase::addVariables(), FlowModel1PhaseBase::addVelocityAux(), FlowModel1PhaseBase::addVelocityIC(), VolumeJunction1Phase::addVolumeJunctionIC(), Closures1PhaseTHM::addWallFFMaterial(), Closures1PhaseBase::addWallFrictionFunctionMaterial(), Closures1PhaseTHM::addWallHTCMaterial(), ClosuresBase::addWallTemperatureFromAuxMaterial(), Closures1PhaseSimple::addWallTemperatureFromHeatFluxMaterial(), FlowBoundary1Phase::addWeakBCs(), FlowBoundaryGasMix::addWeakBCs(), ClosuresBase::addWeightedAverageMaterial(), FlowModelGasMix::addXiRhoAIC(), ClosuresBase::addZeroMaterial(), Component2D::buildMesh(), FileMeshComponent::buildMesh(), Component1D::buildMesh(), HeatSourceBase::HeatSourceBase(), and Simulation::setupInitialConditionsFromFile().

30  {
31  std::stringstream ss;
32  ss << prefix << ":" << id;
33  if (!suffix.empty())
34  ss << ":" << suffix;
35  return ss.str();
36  }

◆ genName() [2/4]

std::string NamingInterface::genName ( const std::string &  prefix,
unsigned int  i,
unsigned int  j,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from a prefix, 2 numbers and possible suffix.

Definition at line 41 of file NamingInterface.h.

45  {
46  std::stringstream ss;
47  ss << prefix << ":" << i << ":" << j;
48  if (!suffix.empty())
49  ss << ":" << suffix;
50  return ss.str();
51  }
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ genName() [3/4]

std::string NamingInterface::genName ( const std::string &  prefix,
const std::string &  name,
unsigned int  i 
) const
inlineinherited

Build a name from 2 strings and a number.

Definition at line 56 of file NamingInterface.h.

57  {
58  std::stringstream ss;
59  ss << prefix << ":" << name << ":" << i;
60  return ss.str();
61  }
const std::string name
Definition: Setup.h:20

◆ genName() [4/4]

std::string NamingInterface::genName ( const std::string &  prefix,
const std::string &  middle,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from strings.

Definition at line 66 of file NamingInterface.h.

69  {
70  std::stringstream ss;
71  ss << prefix << ":" << middle;
72  if (!suffix.empty())
73  ss << ":" << suffix;
74  return ss.str();
75  }

◆ genSafeName()

std::string NamingInterface::genSafeName ( const std::string &  prefix,
const std::string &  middle,
const std::string &  suffix = "" 
) const
inlineinherited

Build a name from strings that is safe to use in input files (i.e.

can be exposed to users)

Definition at line 80 of file NamingInterface.h.

Referenced by HSBoundaryAmbientConvection::addMooseObjects(), HSBoundaryRadiation::addMooseObjects(), HSBoundaryHeatFlux::addMooseObjects(), HSBoundaryExternalAppConvection::addMooseObjects(), and HSBoundaryExternalAppHeatFlux::addMooseObjects().

83  {
84  std::stringstream ss;
85  ss << prefix << "_" << middle;
86  if (!suffix.empty())
87  ss << "_" << suffix;
88  return ss.str();
89  }

◆ getAlignmentAxis() [1/2]

MooseEnum DiscreteLineSegmentInterface::getAlignmentAxis ( ) const
inherited

Gets an axis MooseEnum for the axis the component is aligned with.

If the axis does not align with the x, y, or z axis, then an invalid MooseEnum is returned.

Definition at line 198 of file DiscreteLineSegmentInterface.C.

Referenced by CoupledHeatTransferAction::addUserObjects(), CoupledHeatTransferAction::CoupledHeatTransferAction(), and DiscreteLineSegmentInterface::getElementBoundaryCoordinates().

199 {
200  return getAlignmentAxis(_dir);
201 }
const RealVectorValue _dir
Normalized direction of axis from start position to end position.
MooseEnum getAlignmentAxis() const
Gets an axis MooseEnum for the axis the component is aligned with.

◆ getAlignmentAxis() [2/2]

MooseEnum DiscreteLineSegmentInterface::getAlignmentAxis ( const RealVectorValue dir)
staticinherited

Gets an axis MooseEnum for the axis the component is aligned with.

If the axis does not align with the x, y, or z axis, then an invalid MooseEnum is returned.

Definition at line 184 of file DiscreteLineSegmentInterface.C.

185 {
186  MooseEnum axis("x y z");
187  if (THM::areParallelVectors(dir, RealVectorValue(1, 0, 0)))
188  axis = "x";
189  else if (THM::areParallelVectors(dir, RealVectorValue(0, 1, 0)))
190  axis = "y";
191  else if (THM::areParallelVectors(dir, RealVectorValue(0, 0, 1)))
192  axis = "z";
193 
194  return axis;
195 }
static const std::string axis
Definition: NS.h:27
bool areParallelVectors(const RealVectorValue &a, const RealVectorValue &b, const Real &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
Tests if two real-valued vectors are parallel within some absolute tolerance.
Definition: Numerics.C:26

◆ getAreaFunctionName()

const FunctionName & FlowChannelBase::getAreaFunctionName ( ) const
inherited

Get the name of the function describing the flow channel area.

Returns
The name of the function describing the flow channel area

Definition at line 143 of file FlowChannelBase.C.

Referenced by FlowModel::addCommonInitialConditions(), and HeatTransferBase::init().

144 {
146 
147  return _area_function;
148 }
mesh set up, called primary init
Definition: Component.h:40
FunctionName _area_function
Function describing the flow channel area.
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getAxialElementIndex()

unsigned int DiscreteLineSegmentInterface::getAxialElementIndex ( const Point &  p_center) const
inherited

Definition at line 143 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue().

144 {
145  const Real axial_coordinate = computeAxialCoordinate(p_center);
146  for (unsigned int i = 0; i < _n_elem; ++i)
147  if (MooseUtils::absoluteFuzzyEqual(axial_coordinate, _x_centers[i]))
148  return i;
149 
150  mooseError("No axial element index was found.");
151 }
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
void mooseError(Args &&... args)
Real computeAxialCoordinate(const Point &p) const
const unsigned int _n_elem
Total number of axial elements.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< Real > _x_centers
Center axial coordinate of each axial element.

◆ getAxialSectionIndex()

unsigned int DiscreteLineSegmentInterface::getAxialSectionIndex ( const Point &  p) const
inherited

Definition at line 132 of file DiscreteLineSegmentInterface.C.

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue().

133 {
134  const Real axial_coordinate = computeAxialCoordinate(p);
135  for (unsigned int i = 0; i < _n_sections; ++i)
136  if (MooseUtils::absoluteFuzzyLessEqual(axial_coordinate, _section_end[i]))
137  return i;
138 
139  mooseError("No axial section index was found.");
140 }
void mooseError(Args &&... args)
Real computeAxialCoordinate(const Point &p) const
std::vector< Real > _section_end
Axial coordinate of the end of each axial section using the line &#39;position&#39; as the origin...
const unsigned int _n_sections
Number of axial sections.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool absoluteFuzzyLessEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)

◆ getClosuresObjects()

std::vector<std::shared_ptr<ClosuresBase> > FlowChannelBase::getClosuresObjects ( ) const
inlineinherited

Get the used closures object(s)

Returns
The closures object(s)

Definition at line 185 of file FlowChannelBase.h.

Referenced by HeatTransferFromHeatStructure3D1Phase::init(), and HeatTransferBase::init().

186  {
187  return _closures_objects;
188  }
std::vector< std::shared_ptr< ClosuresBase > > _closures_objects
Closures object(s)

◆ getComponent()

template<typename T >
const T & Component::getComponent ( const std::string &  name) const
inherited

Return a reference to a component via a parameter name.

Template Parameters
Tthe type of the component we are requesting
Parameters
nameThe parameter name that has the component name

Definition at line 506 of file Component.h.

507 {
508  const std::string & comp_name = getParam<std::string>(pname);
509  return getComponentByName<T>(comp_name);
510 }

◆ getComponentByName()

template<typename T >
const T & Component::getComponentByName ( const std::string &  cname) const
inherited

Return a reference to a component given its name.

Template Parameters
Tthe type of the component we are requesting
Parameters
cnameThe name of the component

Definition at line 514 of file Component.h.

515 {
516  return _sim.getComponentByName<T>(comp_name);
517 }
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition: Component.h:443
const T & getComponentByName(const std::string &name) const
Get component by its name.
Definition: Simulation.h:504

◆ getConnections()

const std::vector< Component1D::Connection > & Component1D::getConnections ( Component1DConnection::EEndType  end_type) const
virtualinherited

Gets the vector of connections of an end type for this component.

Parameters
[in]end_typeend type for the connections to get

Definition at line 156 of file Component1D.C.

Referenced by Component1DJunction::setupMesh(), and Component1DConnection::setupMesh().

157 {
159 
160  std::map<Component1DConnection::EEndType, std::vector<Connection>>::const_iterator it =
161  _connections.find(end_type);
162  if (it != _connections.end())
163  return it->second;
164  else
165  mooseError(name(), ": Invalid end type (", end_type, ").");
166 }
std::map< Component1DConnection::EEndType, std::vector< Connection > > _connections
Map of end type to a list of connections.
Definition: Component1D.h:78
virtual const std::string & name() const
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117
void mooseError(Args &&... args) const

◆ getConvHeatTransGeometry()

MooseEnum FlowChannelBase::getConvHeatTransGeometry ( const std::string &  name)
staticinherited

Gets a MooseEnum for convective heat transfer geometry type.

Parameters
[in]namedefault value
Returns
MooseEnum for convective heat transfer geometry type

Definition at line 30 of file FlowChannelBase.C.

Referenced by FlowChannelBase::validParams().

31 {
32  return THM::getMooseEnum<EConvHeatTransGeom>(name, _heat_transfer_geom_to_enum);
33 }
virtual const std::string & name() const
static const std::map< std::string, EConvHeatTransGeom > _heat_transfer_geom_to_enum
Map of convective heat transfer geometry type to enum.

◆ getCoordSysTypes()

const std::vector< Moose::CoordinateSystemType > & Component::getCoordSysTypes ( ) const
virtualinherited

Gets the coordinate system types for this component.

Returns
vector of coordinate system types for this component

Definition at line 315 of file Component.C.

316 {
318 
319  return _coord_sys;
320 }
std::vector< Moose::CoordinateSystemType > _coord_sys
List of coordinate system for each subdomain.
Definition: Component.h:464
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getDependencies()

const std::vector<std::string>& Component::getDependencies ( ) const
inlineinherited

Returns a list of names of components that this component depends upon.

Definition at line 85 of file Component.h.

85 { return _dependencies; }
std::vector< std::string > _dependencies
List of names of components that this component depends upon.
Definition: Component.h:491

◆ getDirection()

virtual RealVectorValue DiscreteLineSegmentInterface::getDirection ( ) const
inlinevirtualinherited

◆ getElementBoundaryCoordinates() [1/2]

std::vector< Real > DiscreteLineSegmentInterface::getElementBoundaryCoordinates ( ) const
inherited

Gets the element boundary coordinates for the aligned axis.

Definition at line 254 of file DiscreteLineSegmentInterface.C.

Referenced by CoupledHeatTransferAction::addUserObjects().

255 {
257 }
std::vector< Real > _lengths
Length of each axial section.
const Real & _rotation
Angle of rotation about the x-axis.
const RealVectorValue _dir
Normalized direction of axis from start position to end position.
const Point & _position
Start position of axis in 3-D space.
const std::vector< unsigned int > & _n_elems
Number of elements in each axial section.
std::vector< Real > getElementBoundaryCoordinates() const
Gets the element boundary coordinates for the aligned axis.

◆ getElementBoundaryCoordinates() [2/2]

std::vector< Real > DiscreteLineSegmentInterface::getElementBoundaryCoordinates ( const RealVectorValue position,
const RealVectorValue orientation,
const Real rotation,
const std::vector< Real > &  lengths,
const std::vector< unsigned int > &  n_elems 
)
staticinherited

Gets the element boundary coordinates for the aligned axis.

Parameters
[in]positionStart position of axis in 3-D space
[in]orientationDirection of axis from start position to end position
[in]rotationAngle of rotation about the x-axis, in degrees
[in]lengthsLength of each axial section
[in]n_elemsNumber of elements in each axial section

Definition at line 204 of file DiscreteLineSegmentInterface.C.

210 {
211  const auto axis = getAlignmentAxis(orientation);
212 
213  unsigned int d;
214  if (axis == "x")
215  d = 0;
216  else if (axis == "y")
217  d = 1;
218  else if (axis == "z")
219  d = 2;
220  else
221  mooseError("Invalid axis.");
222 
223  const auto R = computeDirectionTransformationTensor(orientation);
224  const auto Rx = computeXRotationTransformationTensor(rotation);
225 
226  const unsigned int n_elems_total = std::accumulate(n_elems.begin(), n_elems.end(), 0);
227  const unsigned int n_sections = lengths.size();
228 
229  unsigned int i_section_start = 0;
230  Real section_start_ref_position = 0.0;
231  std::vector<Real> element_boundary_coordinates(n_elems_total + 1);
232  element_boundary_coordinates[0] =
233  computeRealPointFromReferencePoint(Point(0, 0, 0), position, R, Rx)(d);
234  for (unsigned int j = 0; j < n_sections; ++j)
235  {
236  const Real section_dx = lengths[j] / n_elems[j];
237  for (unsigned int k = 0; k < n_elems[j]; ++k)
238  {
239  const unsigned int i = i_section_start + k + 1;
240  const Real ref_position = section_start_ref_position + section_dx * k;
241  const Point ref_point = Point(ref_position, 0, 0);
242  element_boundary_coordinates[i] =
243  computeRealPointFromReferencePoint(ref_point, position, R, Rx)(d);
244  }
245 
246  section_start_ref_position += lengths[j];
247  i_section_start += n_elems[j];
248  }
249 
250  return element_boundary_coordinates;
251 }
void mooseError(Args &&... args)
static RealTensorValue computeXRotationTransformationTensor(const Real &rotation)
Computes the rotation transformation tensor.
static RealTensorValue computeDirectionTransformationTensor(const RealVectorValue &dir)
Computes the direction transformation tensor.
static const std::string axis
Definition: NS.h:27
static const std::string R
Definition: NS.h:162
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseEnum getAlignmentAxis() const
Gets an axis MooseEnum for the axis the component is aligned with.
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
Point computeRealPointFromReferencePoint(const Point &p) const
Computes point in 3-D space from a point in reference space.
static const std::string k
Definition: NS.h:130

◆ getElementIDs()

const std::vector< dof_id_type > & Component::getElementIDs ( ) const
inherited

Gets the element IDs corresponding to this component.

Definition at line 299 of file Component.C.

Referenced by HeatTransferFromHeatStructure3D1Phase::setupMesh().

300 {
302 
303  return _elem_ids;
304 }
std::vector< dof_id_type > _elem_ids
Element IDs of this component.
Definition: Component.h:457
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getEnumParam()

template<typename T >
T Component::getEnumParam ( const std::string &  param) const
inherited

Gets an enum parameter.

This function takes the name of a MooseEnum parameter that is tied to an enum defined in THM. If the value is invalid, an error will be logged, and a negative integer will be cast into the enum type.

Template Parameters
Tenum type
Parameters
[in]paramname of the MooseEnum parameter

Definition at line 539 of file Component.h.

540 {
541  const MooseEnum & moose_enum = getParam<MooseEnum>(param);
542  const T value = THM::stringToEnum<T>(moose_enum);
543  if (static_cast<int>(value) < 0) // cast necessary for scoped enums
544  {
545  // Get the keys from the MooseEnum. Unfortunately, this returns a list of
546  // *all* keys, including the invalid key that was supplied. Thus, that key
547  // needs to be manually excluded below.
548  const std::vector<std::string> & keys = moose_enum.getNames();
549 
550  // Create the string of keys to go in the error message. The last element of
551  // keys is skipped because the invalid key should always be last.
552  std::string keys_string = "{";
553  for (unsigned int i = 0; i < keys.size() - 1; ++i)
554  {
555  if (i != 0)
556  keys_string += ",";
557  keys_string += "'" + keys[i] + "'";
558  }
559  keys_string += "}";
560 
561  logError("The parameter '" + param + "' was given an invalid value ('" +
562  std::string(moose_enum) + "'). Valid values (case-insensitive) are " + keys_string);
563  }
564 
565  return value;
566 }
void logError(Args &&... args) const
Logs an error.
Definition: Component.h:215
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
std::vector< std::string > getNames() const

◆ getFlowModel()

std::shared_ptr< const FlowModel > FlowChannelBase::getFlowModel ( ) const
virtualinherited

Definition at line 135 of file FlowChannelBase.C.

Referenced by TestSetupStatusComponent::init(), FlowJunction::init(), and FlowBoundary::init().

136 {
138 
139  return _flow_model;
140 }
std::shared_ptr< FlowModel > _flow_model
The flow model used by this flow channel.
mesh set up, called primary init
Definition: Component.h:40
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getFlowModelID()

virtual const THM::FlowModelID& FlowChannel1Phase::getFlowModelID ( ) const
inlineoverridevirtual

Gets the flow model ID.

Implements FlowChannelBase.

Definition at line 24 of file FlowChannel1Phase.h.

24 { return THM::FM_SINGLE_PHASE; }
FlowModelID FM_SINGLE_PHASE

◆ getFluidPropertiesName()

const UserObjectName& FlowChannelBase::getFluidPropertiesName ( ) const
inlineinherited

Gets the name of the fluid properties user object for this component.

Definition at line 68 of file FlowChannelBase.h.

Referenced by FlowBoundary::init(), FlowJunction::init(), and HeatTransferBase::init().

68 { return _fp_name; }
const UserObjectName & _fp_name
Name of fluid properties user object.

◆ getGravityAngle()

virtual const Real& FlowChannelBase::getGravityAngle ( ) const
inlinevirtualinherited

Gets the gravity angle for this component.

Returns
gravity angle for this component

Definition at line 63 of file FlowChannelBase.h.

63 { return _gravity_angle; }
const Real _gravity_angle
Angle between orientation vector and gravity vector, in degrees.

◆ getGravityMagnitude()

Real GravityInterface::getGravityMagnitude ( ) const
inlineinherited

Gets gravity magnitude.

Definition at line 26 of file GravityInterface.h.

26 { return _gravity_magnitude; }
const Real _gravity_magnitude
Gravitational acceleration magnitude.

◆ getHeatedPerimeterNames()

std::vector<VariableName> FlowChannelBase::getHeatedPerimeterNames ( ) const
inlineinherited

Gets heated perimeter names for connected heat transfers.

Definition at line 142 of file FlowChannelBase.h.

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), and Closures1PhaseSimple::addMooseObjectsFlowChannel().

142 { return _P_hf_names; }
std::vector< VariableName > _P_hf_names
heated perimeter names for connected heat transfers

◆ getHeatTransferGeometry()

EConvHeatTransGeom FlowChannelBase::getHeatTransferGeometry ( ) const
inlineinherited

Gets heat transfer geometry.

Definition at line 117 of file FlowChannelBase.h.

Referenced by Closures1PhaseTHM::addWallFFMaterial(), and Closures1PhaseTHM::addWallHTCMaterial().

117 { return _HT_geometry; }
EConvHeatTransGeom _HT_geometry
Convective Heat transfer geometry.

◆ getHeatTransferNames()

std::vector< std::string > FlowChannelBase::getHeatTransferNames ( ) const
inherited

Gets the names of all connected heat transfer components.

Definition at line 384 of file FlowChannelBase.C.

385 {
387 
388  return _heat_transfer_names;
389 }
std::vector< std::string > _heat_transfer_names
Names of the heat transfer components connected to this component.
mesh set up, called primary init
Definition: Component.h:40
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getHeatTransferNamesSuffix()

std::string FlowChannelBase::getHeatTransferNamesSuffix ( const std::string &  ht_name) const
inherited

Gets suffix to add to heat-transfer-related names in a heat transfer component.

This function is called from a heat transfer component to determine how to name its variables. If the flow channel has only one heat transfer coefficient, for example, then no suffix is returned. This function must be called after all of the heat transfer component names have been added to the flow channel's list (via addHeatTransferName()).

Parameters
[in]ht_namename of the heat transfer component
Returns
suffix to add to heat transfer variable names

Definition at line 353 of file FlowChannelBase.C.

Referenced by HeatTransfer1PhaseBase::initSecondary(), HeatTransferFromHeatStructure3D1Phase::initSecondary(), and HeatTransferBase::initSecondary().

354 {
356 
357  // if there is more than one connected heat transfer component, then number them
359  {
360  // determine index of heat transfer name based on when it was added
361  auto it = std::find(_heat_transfer_names.begin(), _heat_transfer_names.end(), ht_name);
362  if (it != _heat_transfer_names.end())
363  {
364  const unsigned int index = std::distance(_heat_transfer_names.begin(), it);
365 
366  std::string suffix = ":";
367  if (getParam<bool>("name_multiple_ht_by_index"))
368  suffix += std::to_string(index + 1);
369  else
370  suffix += _heat_transfer_names[index];
371 
372  return suffix;
373  }
374  else
375  mooseError(
376  "Heat transfer component '", ht_name, "' was not added to flow channel '", name(), "'");
377  }
378  // else, don't add a suffix; there is no need
379  else
380  return "";
381 }
virtual const std::string & name() const
std::vector< std::string > _heat_transfer_names
Names of the heat transfer components connected to this component.
unsigned int _n_heat_transfer_connections
Number of connected heat transfer components.
mesh set up, called primary init
Definition: Component.h:40
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117
void mooseError(Args &&... args) const

◆ getHeatTransferVariableNames()

void FlowChannel1PhaseBase::getHeatTransferVariableNames ( )
overrideprotectedvirtualinherited

Populates heat connection variable names lists.

Reimplemented from FlowChannelBase.

Definition at line 136 of file FlowChannel1PhaseBase.C.

137 {
139 
140  for (unsigned int i = 0; i < _n_heat_transfer_connections; i++)
141  {
142  const HeatTransfer1PhaseBase & heat_transfer =
143  getComponentByName<HeatTransfer1PhaseBase>(_heat_transfer_names[i]);
144 
146  }
147 }
Base class for heat transfer connections to 1-phase flow channels.
std::vector< MaterialPropertyName > _Hw_1phase_names
1-phase wall heat transfer coefficient names for connected heat transfers
std::vector< std::string > _heat_transfer_names
Names of the heat transfer components connected to this component.
unsigned int _n_heat_transfer_connections
Number of connected heat transfer components.
virtual void getHeatTransferVariableNames()
Populates heat connection variable names lists.
const MaterialPropertyName & getWallHeatTransferCoefficient1PhaseName() const
Returns 1-phase wall heat transfer coefficient name.

◆ getLength()

virtual Real DiscreteLineSegmentInterface::getLength ( ) const
inlinevirtualinherited

◆ getNodeIDs()

const std::vector< dof_id_type > & Component::getNodeIDs ( ) const
inherited

Gets the node IDs corresponding to this component.

Definition at line 291 of file Component.C.

292 {
294 
295  return _node_ids;
296 }
std::vector< dof_id_type > _node_ids
Node IDs of this component.
Definition: Component.h:455
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getNodesetID()

unsigned int Component1D::getNodesetID ( ) const
inherited

Gets the 1D component nodeset ID.

Definition at line 140 of file Component1D.C.

141 {
143 
144  return _nodeset_id;
145 }
BoundaryID _nodeset_id
Nodeset ID for all 1D component nodes.
Definition: Component1D.h:84
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getNodesetName()

const BoundaryName & Component1D::getNodesetName ( ) const
inherited

Gets the 1D component nodeset name.

Definition at line 148 of file Component1D.C.

Referenced by HeatTransferFromHeatStructure1Phase::getChannelSideName().

149 {
151 
152  return _nodeset_name;
153 }
BoundaryName _nodeset_name
Nodeset name for all 1D component nodes.
Definition: Component1D.h:86
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getNumberOfHeatTransferConnections()

unsigned int FlowChannelBase::getNumberOfHeatTransferConnections ( ) const
inlineinherited

Gets the number of heat transfer connections.

Definition at line 137 of file FlowChannelBase.h.

Referenced by Closures1PhaseSimple::addMooseObjectsFlowChannel(), WallTemperature1PhaseClosures::addMooseObjectsFlowChannel(), Closures1PhaseNone::addMooseObjectsFlowChannel(), and Closures1PhaseTHM::addMooseObjectsFlowChannel().

unsigned int _n_heat_transfer_connections
Number of connected heat transfer components.

◆ getNumElems()

virtual Real DiscreteLineSegmentInterface::getNumElems ( ) const
inlinevirtualinherited

Definition at line 31 of file DiscreteLineSegmentInterface.h.

Referenced by HeatTransferFromHeatStructure1Phase::check(), and HeatTransferFromHeatStructure3D1Phase::init().

31 { return _n_elem; }
const unsigned int _n_elem
Total number of axial elements.

◆ getNumericalFluxUserObjectName()

const UserObjectName& FlowChannel1PhaseBase::getNumericalFluxUserObjectName ( ) const
inlineinherited

Gets the numerical flux user object name.

Definition at line 34 of file FlowChannel1PhaseBase.h.

Referenced by FlowJunction1Phase::init().

34 { return _numerical_flux_name; }
const UserObjectName _numerical_flux_name
Numerical flux user object name.

◆ getPipeLocation() [1/2]

MooseEnum FlowChannelBase::getPipeLocation ( const std::string &  name)
staticinherited

Gets a MooseEnum for pipe location.

Parameters
[in]namedefault value
Returns
MooseEnum for pipe location

Definition at line 42 of file FlowChannelBase.C.

Referenced by Closures1PhaseTHM::addWallFFMaterial().

43 {
44  return THM::getMooseEnum<EPipeLocation>(name, _pipe_location_to_enum);
45 }
virtual const std::string & name() const
static const std::map< std::string, EPipeLocation > _pipe_location_to_enum
Map of pipe location to enum.

◆ getPipeLocation() [2/2]

EPipeLocation FlowChannelBase::getPipeLocation ( ) const
inlineinherited

Gets the pipe location.

Definition at line 122 of file FlowChannelBase.h.

Referenced by FlowChannelBase::validParams().

122 { return _pipe_location; }
EPipeLocation _pipe_location
Pipe location within the bundle.

◆ getPipeType()

MooseEnum FlowChannelBase::getPipeType ( const std::string &  name)
staticinherited

Gets a MooseEnum for pipe type.

Parameters
[in]namedefault value
Returns
MooseEnum for pipe type

Definition at line 36 of file FlowChannelBase.C.

37 {
38  return THM::getMooseEnum<EPipeType>(name, _pipe_type_to_enum);
39 }
static const std::map< std::string, EPipeType > _pipe_type_to_enum
Map of pipe type to enum.
virtual const std::string & name() const

◆ getPosition()

virtual Point DiscreteLineSegmentInterface::getPosition ( ) const
inlinevirtualinherited

◆ getRotation()

virtual Real DiscreteLineSegmentInterface::getRotation ( ) const
inlinevirtualinherited

Definition at line 29 of file DiscreteLineSegmentInterface.h.

29 { return _rotation; }
const Real & _rotation
Angle of rotation about the x-axis.

◆ getSlopeReconstruction()

const MooseEnum& FlowChannel1PhaseBase::getSlopeReconstruction ( ) const
inlineinherited

Gets the slope reconstruction option used.

Definition at line 39 of file FlowChannel1PhaseBase.h.

Referenced by GateValve1Phase::check(), and JunctionOneToOne1Phase::init().

39 { return _rdg_slope_reconstruction; }
const MooseEnum _rdg_slope_reconstruction
Slope reconstruction type for rDG.

◆ getSubdomainNames()

const std::vector< SubdomainName > & Component::getSubdomainNames ( ) const
virtualinherited

Gets the subdomain names for this component.

Returns
vector of subdomain names for this component

Definition at line 307 of file Component.C.

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), FlowModel::addCommonInitialConditions(), FlowModel::addCommonMooseObjects(), FlowChannelBase::addCommonObjects(), FlowModel::addCommonVariables(), HeatStructureBase::addConstantDensitySolidPropertiesMaterial(), FlowModel1PhaseBase::addDensityAux(), FlowModelSinglePhase::addDensityIC(), FlowModelGasMix::addDensityIC(), FlowModel1PhaseBase::addEnergyGravityKernel(), FlowModelSinglePhase::addFluidPropertiesMaterials(), FlowModelGasMix::addFluidPropertiesMaterials(), FlowModel1PhaseBase::addFunctionIC(), HeatConductionModel::addHeatEquationRZ(), HeatConductionModel::addHeatEquationXYZ(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), HeatConductionModel::addInitialConditions(), VolumeJunction1Phase::addJunctionIC(), VolumeJunction1Phase::addJunctionVariable(), FlowModelGasMix::addMassDiffusionEnergyDGKernel(), FlowModelGasMix::addMassDiffusionSpeciesDGKernel(), FlowModelGasMix::addMassFractionAux(), HeatConductionModel::addMaterials(), FlowModel1PhaseBase::addMomentumAreaGradientKernel(), FlowModel1PhaseBase::addMomentumFrictionKernel(), FlowModel1PhaseBase::addMomentumGravityKernel(), HeatSourceVolumetric1Phase::addMooseObjects(), VolumeJunction1Phase::addMooseObjects(), ShaftConnectedCompressor1Phase::addMooseObjects(), ShaftConnectedPump1Phase::addMooseObjects(), ShaftConnectedTurbine1Phase::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), HeatTransferFromHeatStructure1Phase::addMooseObjects(), FlowChannelBase::addMooseObjects(), FunctorClosures::addMooseObjectsFlowChannel(), Closures1PhaseSimple::addMooseObjectsHeatTransfer(), FlowModelSinglePhase::addPressureAux(), FlowModelGasMix::addPressureAux(), FlowModelSinglePhase::addRDGAdvectionDGKernels(), FlowModelGasMix::addRDGAdvectionDGKernels(), FlowModel1PhaseBase::addRhoAIC(), FlowModelSinglePhase::addRhoEAIC(), FlowModelGasMix::addRhoEAIC(), FlowModel1PhaseBase::addRhoUAIC(), FlowModelSinglePhase::addSlopeReconstructionMaterial(), FlowModelGasMix::addSlopeReconstructionMaterial(), FlowModel1PhaseBase::addSpecificInternalEnergyAux(), FlowModel1PhaseBase::addSpecificInternalEnergyIC(), FlowModel1PhaseBase::addSpecificTotalEnthalpyAux(), FlowModel1PhaseBase::addSpecificTotalEnthalpyIC(), FlowModel1PhaseBase::addSpecificVolumeAux(), FlowModel1PhaseBase::addSpecificVolumeIC(), FlowModelSinglePhase::addTemperatureAux(), FlowModelGasMix::addTemperatureAux(), Closures1PhaseTHM::addTemperatureWallFromHeatFluxMaterial(), FlowModel1PhaseBase::addTimeDerivativeKernelIfTransient(), HSBoundaryExternalAppTemperature::addVariables(), HSBoundaryExternalAppConvection::addVariables(), FlowModel1PhaseBase::addVariables(), FlowModelGasMix::addVariables(), HSBoundaryExternalAppHeatFlux::addVariables(), HeatConductionModel::addVariables(), FlowChannelBase::addVariables(), FlowModel1PhaseBase::addVelocityAux(), FlowModel1PhaseBase::addVelocityIC(), VolumeJunction1Phase::addVolumeJunctionIC(), Closures1PhaseTHM::addWallFFMaterial(), Closures1PhaseBase::addWallFrictionFunctionMaterial(), Closures1PhaseTHM::addWallHTCMaterial(), ClosuresBase::addWallTemperatureFromAuxMaterial(), Closures1PhaseSimple::addWallTemperatureFromHeatFluxMaterial(), ClosuresBase::addWeightedAverageMaterial(), FlowModelGasMix::addXiRhoAIC(), ClosuresBase::addZeroMaterial(), FileMeshPhysicsComponent::getBlocks(), FormLoss1PhaseBase::init(), FileMeshPhysicsComponent::init(), HeatTransferFromHeatStructure3D1Phase::init(), HeatTransferBase::init(), and Component1DConnection::init().

308 {
310 
311  return _subdomain_names;
312 }
std::vector< SubdomainName > _subdomain_names
List of subdomain names this components owns.
Definition: Component.h:462
void checkSetupStatus(const EComponentSetupStatus &status) const
Throws an error if the supplied setup status of this component has not been reached.
Definition: Component.C:117

◆ getTemperatureMode()

bool FlowChannelBase::getTemperatureMode ( ) const
inlineinherited

Gets temperature mode flag.

Definition at line 132 of file FlowChannelBase.h.

Referenced by Closures1PhaseSimple::addMooseObjectsFlowChannel(), WallTemperature1PhaseClosures::addMooseObjectsFlowChannel(), Closures1PhaseNone::addMooseObjectsFlowChannel(), and Closures1PhaseTHM::addMooseObjectsFlowChannel().

132 { return _temperature_mode; }
bool _temperature_mode
True if there is one or more sources specified by wall temperature.

◆ getTHMProblem()

THMProblem & Component::getTHMProblem ( ) const
inherited

Gets the THM problem.

Definition at line 135 of file Component.C.

Referenced by FlowChannelBase::addCommonObjects(), HeatStructureBase::addConstantDensitySolidPropertiesMaterial(), HeatTransferBase::addHeatedPerimeter(), HeatTransferFromTemperature1Phase::addHeatTransferKernels(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), VolumeJunction1Phase::addJunctionIC(), VolumeJunction1Phase::addJunctionVariable(), FormLossFromFunction1Phase::addMooseObjects(), InletStagnationPressureTemperature1Phase::addMooseObjects(), HeatTransferFromHeatFlux1Phase::addMooseObjects(), InletFunction1Phase::addMooseObjects(), HeatStructure2DCoupler::addMooseObjects(), HSBoundaryRadiation::addMooseObjects(), HSBoundarySpecifiedTemperature::addMooseObjects(), HeatStructure2DRadiationCouplerRZ::addMooseObjects(), InletDensityVelocity1Phase::addMooseObjects(), InletMassFlowRateTemperature1Phase::addMooseObjects(), InletVelocityTemperature1Phase::addMooseObjects(), Outlet1Phase::addMooseObjects(), SolidWall1Phase::addMooseObjects(), HeatSourceFromPowerDensity::addMooseObjects(), HSBoundaryAmbientConvection::addMooseObjects(), HeatSourceFromTotalPower::addMooseObjects(), HSBoundaryHeatFlux::addMooseObjects(), GateValve1Phase::addMooseObjects(), HeatSourceVolumetric1Phase::addMooseObjects(), HSBoundaryExternalAppTemperature::addMooseObjects(), Shaft::addMooseObjects(), FormLossFromExternalApp1Phase::addMooseObjects(), HeatTransferFromSpecifiedTemperature1Phase::addMooseObjects(), TotalPower::addMooseObjects(), VolumeJunction1Phase::addMooseObjects(), FreeBoundary1Phase::addMooseObjects(), HeatTransferFromExternalAppHeatFlux1Phase::addMooseObjects(), ShaftConnectedCompressor1Phase::addMooseObjects(), ShaftConnectedMotor::addMooseObjects(), ShaftConnectedPump1Phase::addMooseObjects(), ShaftConnectedTurbine1Phase::addMooseObjects(), FormLoss1PhaseBase::addMooseObjects(), SolidWallGasMix::addMooseObjects(), HSBoundaryExternalAppConvection::addMooseObjects(), HeatStructureBase::addMooseObjects(), HeatTransferBase::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), HeatTransferFromHeatStructure3D1Phase::addMooseObjects(), HSCoupler2D2DRadiation::addMooseObjects(), HSCoupler2D3D::addMooseObjects(), HeatTransferFromHeatStructure1Phase::addMooseObjects(), HSBoundaryExternalAppHeatFlux::addMooseObjects(), JunctionOneToOne1Phase::addMooseObjects(), FlowChannelBase::addMooseObjects(), TotalPowerBase::addVariables(), Shaft::addVariables(), HeatTransferFromExternalAppTemperature1Phase::addVariables(), FormLossFromExternalApp1Phase::addVariables(), TotalPower::addVariables(), HeatTransferFromTemperature1Phase::addVariables(), HSBoundaryExternalAppTemperature::addVariables(), HeatTransferFromSpecifiedTemperature1Phase::addVariables(), HeatTransferFromExternalAppHeatFlux1Phase::addVariables(), HSBoundaryExternalAppConvection::addVariables(), HeatTransferFromHeatStructure3D1Phase::addVariables(), HeatTransferFromHeatStructure1Phase::addVariables(), HSBoundaryExternalAppHeatFlux::addVariables(), FlowChannelBase::addVariables(), VolumeJunction1Phase::addVolumeJunctionIC(), FlowBoundary1Phase::addWeakBCs(), FlowBoundaryGasMix::addWeakBCs(), FlowChannel1PhaseBase::buildFlowModel(), HeatStructureInterface::buildModel(), Pump1Phase::buildVolumeJunctionUserObject(), JunctionParallelChannels1Phase::buildVolumeJunctionUserObject(), SimpleTurbine1Phase::buildVolumeJunctionUserObject(), ShaftConnectedTurbine1Phase::buildVolumeJunctionUserObject(), ShaftConnectedCompressor1Phase::buildVolumeJunctionUserObject(), ShaftConnectedPump1Phase::buildVolumeJunctionUserObject(), VolumeJunction1Phase::buildVolumeJunctionUserObject(), Shaft::check(), VolumeJunction1Phase::check(), FlowChannel1PhaseBase::check(), HeatStructureInterface::check(), checkFluidProperties(), FlowChannelGasMix::checkFluidProperties(), GeometricalComponent::getVariableFn(), FlowJunction1Phase::init(), FlowBoundary1PhaseBase::init(), FlowBoundary::init(), FlowJunction::init(), Component1DConnection::init(), FlowChannelBase::init(), Component::problemIsTransient(), HeatStructure2DCouplerBase::setupMesh(), GateValve1Phase::setupMesh(), HSCoupler2D3D::setupMesh(), HSCoupler2D2DRadiation::setupMesh(), HeatTransferFromHeatStructure1Phase::setupMesh(), JunctionOneToOne1Phase::setupMesh(), VolumeJunction1Phase::setupMesh(), and HeatTransferFromHeatStructure3D1Phase::setupMesh().

136 {
137  return _sim;
138 }
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition: Component.h:443

◆ getVariableFn()

const FunctionName & GeometricalComponent::getVariableFn ( const FunctionName &  fn_param_name)
protectedinherited

Makes a constant function parameter controllable and returns its name.

Parameters
[in]fn_param_nameFunctionName parameter

Definition at line 79 of file GeometricalComponent.C.

80 {
81  const FunctionName & fn_name = getParam<FunctionName>(fn_param_name);
82  const Function & fn = getTHMProblem().getFunction(fn_name);
83 
84  if (dynamic_cast<const ConstantFunction *>(&fn) != nullptr)
85  {
86  connectObject(fn.parameters(), fn_name, fn_param_name, "value");
87  }
88 
89  return fn_name;
90 }
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
virtual Function & getFunction(const std::string &name, const THREAD_ID tid=0)
void connectObject(const InputParameters &params, const std::string &mooseName, const std::string &name) const
Connect with control logic.
Definition: Component.C:98

◆ getWallHeatFluxNames()

std::vector<MaterialPropertyName> FlowChannelBase::getWallHeatFluxNames ( ) const
inlineinherited

Gets wall heat flux names for connected heat transfers.

Definition at line 153 of file FlowChannelBase.h.

Referenced by Closures1PhaseTHM::addTemperatureWallFromHeatFluxMaterial().

153 { return _q_wall_names; }
std::vector< MaterialPropertyName > _q_wall_names
wall heat flux names for connected heat transfers

◆ getWallHTCNames1Phase()

std::vector<MaterialPropertyName> FlowChannel1PhaseBase::getWallHTCNames1Phase ( ) const
inlineinherited

Gets 1-phase wall heat transfer coefficient names for connected heat transfers.

Definition at line 29 of file FlowChannel1PhaseBase.h.

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), Closures1PhaseSimple::addMooseObjectsFlowChannel(), and Closures1PhaseTHM::addWallHTCMaterial().

29 { return _Hw_1phase_names; }
std::vector< MaterialPropertyName > _Hw_1phase_names
1-phase wall heat transfer coefficient names for connected heat transfers

◆ getWallTemperatureMatNames()

std::vector<MaterialPropertyName> FlowChannelBase::getWallTemperatureMatNames ( ) const
inlineinherited

Definition at line 148 of file FlowChannelBase.h.

148 { return _T_wall_mat_names; }
std::vector< MaterialPropertyName > _T_wall_mat_names
wall temperature material names for connected heat transfers

◆ getWallTemperatureNames()

std::vector<VariableName> FlowChannelBase::getWallTemperatureNames ( ) const
inlineinherited

Gets wall temperature names for connected heat transfers.

Definition at line 147 of file FlowChannelBase.h.

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), Closures1PhaseTHM::addTemperatureWallFromHeatFluxMaterial(), Closures1PhaseTHM::addWallHTCMaterial(), and ClosuresBase::addWallTemperatureFromAuxMaterial().

147 { return _T_wall_names; }
std::vector< VariableName > _T_wall_names
wall temperature auxvariable names for connected heat transfers

◆ hasComponent()

template<typename T >
bool Component::hasComponent ( const std::string &  name) const
inherited

Check the existence and type of a component via a parameter name.

Template Parameters
Tthe type of the component we are requesting
Parameters
nameThe parameter name that has the component name
Returns
true if the component with given name and type exists, otherwise false

Definition at line 521 of file Component.h.

522 {
523  const std::string & comp_name = getParam<std::string>(pname);
524  return hasComponentByName<T>(comp_name);
525 }

◆ hasComponentByName()

template<typename T >
bool Component::hasComponentByName ( const std::string &  cname) const
inherited

Check the existence and type of a component given its name.

Template Parameters
Tthe type of the component we are requesting
Parameters
cnameThe name of the component
Returns
true if the component with given name and type exists, otherwise false

Definition at line 529 of file Component.h.

530 {
531  if (_sim.hasComponentOfType<T>(comp_name))
532  return true;
533  else
534  return false;
535 }
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition: Component.h:443
bool hasComponentOfType(const std::string &name) const
Find out if simulation has a component with the given name and specified type.
Definition: Simulation.h:493

◆ hasParam()

template<typename T >
bool Component::hasParam ( const std::string &  name) const
inherited

Test if a parameter exists in the object's input parameters.

Parameters
nameThe name of the parameter
Returns
true if the parameter exists, false otherwise

Definition at line 499 of file Component.h.

500 {
501  return parameters().have_parameter<T>(name);
502 }
virtual const std::string & name() const
bool have_parameter(std::string_view name) const
const InputParameters & parameters() const

◆ ICParameters()

std::vector< std::string > FlowChannel1Phase::ICParameters ( ) const
overridevirtual

Returns the names of the IC parameters.

Implements FlowChannel1PhaseBase.

Definition at line 56 of file FlowChannel1Phase.C.

57 {
58  return {"initial_p", "initial_T", "initial_vel"};
59 }

◆ init()

void FlowChannel1PhaseBase::init ( )
overrideprotectedvirtualinherited

Initializes the component.

The reason this function exists (as opposed to just having everything in the constructor) is because some initialization depends on all components existing, since many components couple to other components. Therefore, when deciding whether code should go into the constructor or this function, one should use the following reasoning: if an operation does not require the existence of other components, then put that operation in the constructor; otherwise, put it in this function.

Reimplemented from FlowChannelBase.

Definition at line 45 of file FlowChannel1PhaseBase.C.

46 {
48 }
virtual void init() override
Initializes the component.

◆ initSecondary()

void FlowChannelBase::initSecondary ( )
overrideprotectedvirtualinherited

Perform secondary initialization, which relies on init() being called for all components.

Reimplemented from Component.

Definition at line 176 of file FlowChannelBase.C.

177 {
179 
180  // Determine heat transfer mode based on connected heat transfer components;
181  // if at least one heat transfer component of temperature component is
182  // connected, then it's temperature mode. Otherwise, it's heat flux mode, even
183  // if no heat transfer components at all were provided - in that case, a zero
184  // heat flux is added.
185  for (unsigned int i = 0; i < _heat_transfer_names.size(); i++)
186  {
187  const HeatTransferBase & heat_transfer =
188  getComponentByName<HeatTransferBase>(_heat_transfer_names[i]);
189  if (heat_transfer.isTemperatureType())
190  _temperature_mode = true;
191  }
192 }
bool _temperature_mode
True if there is one or more sources specified by wall temperature.
std::vector< std::string > _heat_transfer_names
Names of the heat transfer components connected to this component.
Base class for heat transfer connections.
virtual void initSecondary()
Perform secondary initialization, which relies on init() being called for all components.
Definition: Component.h:296
virtual bool isTemperatureType() const =0
Returns whether this heat transfer is specified by temperature, rather than heat flux.

◆ insistParameterExists()

template<typename T >
void Component::insistParameterExists ( const std::string &  function_name,
const std::string &  param_name 
) const
protectedinherited

Runtime check to make sure that a parameter of specified type exists in the component's input parameters.

This is intended to help developers write code. The idea is to provide a useful message when developers make typos, etc. If this check fails, the code execution will be stopped.

Template Parameters
TThe type of the parameter to be checked
Parameters
function_nameThe name of the function calling this method
param_nameThe name of the parameter to be checked

Definition at line 570 of file Component.h.

572 {
573  if (!hasParam<T>(param_name))
574  mooseError(name(),
575  ": Calling ",
576  function_name,
577  " failed, parameter '",
578  param_name,
579  "' does not exist or does not have the type you requested. Double check your "
580  "spelling and/or type of the parameter.");
581 }
virtual const std::string & name() const
void mooseError(Args &&... args) const

◆ logComponentError()

template<typename... Args>
void LoggingInterface::logComponentError ( const std::string &  component_name,
Args &&...  args 
) const
inlineinherited

Logs an error for a component.

Parameters
[in]component_nameName of the component

Definition at line 47 of file LoggingInterface.h.

Referenced by Closures1PhaseSimple::checkFlowChannel(), Closures1PhaseSimple::checkHeatTransfer(), and Component::logError().

48  {
49  _log.add(Logger::ERROR, component_name, ": ", std::forward<Args>(args)...);
50  }
void add(EMessageType type, Args &&... args)
Add a message to the log.
Definition: Logger.h:35

◆ logComponentWarning()

template<typename... Args>
void LoggingInterface::logComponentWarning ( const std::string &  component_name,
Args &&...  args 
) const
inlineinherited

Logs a warning for a component.

Parameters
[in]component_nameName of the component

Definition at line 67 of file LoggingInterface.h.

Referenced by Component::logWarning().

68  {
69  _log.add(Logger::WARNING, component_name, ": ", std::forward<Args>(args)...);
70  }
void add(EMessageType type, Args &&... args)
Add a message to the log.
Definition: Logger.h:35

◆ logError()

template<typename... Args>
void Component::logError ( Args &&...  args) const
inlineinherited

Logs an error.

Definition at line 215 of file Component.h.

Referenced by Component1DConnection::addConnection(), HSBoundary::check(), HeatSourceBase::check(), Component1DJunction::check(), SupersonicInlet::check(), HSBoundaryExternalAppHeatFlux::check(), Outlet1Phase::check(), HeatStructure2DCoupler::check(), InletStagnationEnthalpyMomentum1Phase::check(), InletMassFlowRateTemperature1Phase::check(), InletVelocityTemperature1Phase::check(), InletDensityVelocity1Phase::check(), InletStagnationPressureTemperature1Phase::check(), HeatStructure2DRadiationCouplerRZ::check(), HeatTransferFromExternalAppTemperature1Phase::check(), GeneratedMeshComponent::check(), HeatStructure2DCouplerBase::check(), Shaft::check(), HSCoupler2D2DRadiation::check(), HSCoupler2D3D::check(), HeatTransferFromHeatStructure1Phase::check(), VolumeJunction1Phase::check(), HeatTransferFromHeatStructure3D1Phase::check(), FlowChannel1PhaseBase::check(), HeatStructureInterface::check(), Component2D::check(), FlowChannelBase::check(), HSBoundary::checkAllComponent2DBoundariesAreExternal(), Component1DConnection::checkAllConnectionsHaveSame(), Component::checkComponentExistsByName(), Component::checkComponentOfTypeExistsByName(), Component::checkEqualSize(), checkFluidProperties(), FlowChannelGasMix::checkFluidProperties(), Component::checkMutuallyExclusiveParameters(), Component1DConnection::checkNumberOfConnections(), Component::checkParameterValueLessThan(), Component1DConnection::checkSizeEqualsNumberOfConnections(), Component::checkSizeEqualsParameterValue(), Component::checkSizeEqualsValue(), Component::checkSizeGreaterThan(), Component::checkSizeLessThan(), ElbowPipe1Phase::ElbowPipe1Phase(), FreeBoundary::FreeBoundary(), GateValve::GateValve(), Component::getEnumParam(), HeatTransferFromHeatStructure3D1Phase::getFlowChannelAxisAlignment(), HeatGeneration::HeatGeneration(), HeatSourceVolumetric::HeatSourceVolumetric(), HeatStructureFromFile3D::HeatStructureFromFile3D(), HeatTransferFromHeatStructure3D1Phase::init(), Component1DConnection::init(), HeatTransfer1PhaseBase::initSecondary(), JunctionOneToOne::JunctionOneToOne(), LoggerTestComponent::LoggerTestComponent(), PrescribedReactorPower::PrescribedReactorPower(), Component1DConnection::setupMesh(), and SolidWall::SolidWall().

216  {
217  logComponentError(cname(), std::forward<Args>(args)...);
218  }
const std::string & cname() const
Get the component name.
Definition: Component.C:51
void logComponentError(const std::string &component_name, Args &&... args) const
Logs an error for a component.

◆ logWarning()

template<typename... Args>
void Component::logWarning ( Args &&...  args) const
inlineinherited

Logs a warning.

Definition at line 224 of file Component.h.

Referenced by GateValve1Phase::check(), LoggerTestComponent::LoggerTestComponent(), and VolumeJunction1Phase::VolumeJunction1Phase().

225  {
226  logComponentWarning(cname(), std::forward<Args>(args)...);
227  }
const std::string & cname() const
Get the component name.
Definition: Component.C:51
void logComponentWarning(const std::string &component_name, Args &&... args) const
Logs a warning for a component.

◆ makeFunctionControllableIfConstant()

void Component::makeFunctionControllableIfConstant ( const FunctionName &  fn_name,
const std::string &  control_name,
const std::string &  param = "value" 
) const
inherited

Makes a function controllable if it is constant.

Parameters
[in]fn_namename of the function
[in]control_namename of control parameter
[in]paramname of controlled parameter

Definition at line 141 of file Component.C.

Referenced by FlowModel::addCommonInitialConditions(), FlowChannelBase::addCommonObjects(), HeatTransferBase::addHeatedPerimeter(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), HSBoundarySpecifiedTemperature::addMooseObjects(), ShaftConnectedMotor::addMooseObjects(), Closures1PhaseSimple::addMooseObjectsHeatTransfer(), HeatTransferFromSpecifiedTemperature1Phase::addVariables(), and Closures1PhaseBase::addWallFrictionFunctionMaterial().

144 {
145  const Function & fn = _sim.getFunction(fn_name);
146  if (dynamic_cast<const ConstantFunction *>(&fn) != nullptr)
147  connectObject(fn.parameters(), fn_name, control_name, param);
148 }
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition: Component.h:443
virtual Function & getFunction(const std::string &name, const THREAD_ID tid=0)
void connectObject(const InputParameters &params, const std::string &mooseName, const std::string &name) const
Connect with control logic.
Definition: Component.C:98
const InputParameters & parameters() const

◆ mesh()

THMMesh & Component::mesh ( )
inherited

Non-const reference to THM mesh, which can only be called before the end of mesh setup.

Definition at line 60 of file Component.C.

Referenced by GeometricalComponent::addElement(), GeometricalComponent::addElementEdge2(), GeometricalComponent::addElementEdge3(), GeometricalComponent::addElementQuad4(), GeometricalComponent::addElementQuad9(), Component::addNode(), Component::addNodeElement(), Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::buildMesh(), FileMeshComponent::buildMesh(), Component1D::buildMesh(), Component::setSubdomainInfo(), Component1DBoundary::setupMesh(), Component1DJunction::setupMesh(), GeneratedMeshComponent::setupMesh(), VolumeJunction1Phase::setupMesh(), and FileMeshComponent::setupMesh().

61 {
63  mooseError(
64  "A non-const reference to the THM mesh cannot be obtained after mesh setup is complete.");
65  else
66  return _mesh;
67 }
EComponentSetupStatus _component_setup_status
Component setup status.
Definition: Component.h:488
void mooseError(Args &&... args) const
THMMesh & _mesh
The THM mesh TODO: make _mesh private (applications need to switch to getters to avoid breaking) ...
Definition: Component.h:452

◆ parent()

Component* Component::parent ( )
inlineinherited

Definition at line 54 of file Component.h.

54 { return _parent; }
Component * _parent
Pointer to a parent component (used in composed components)
Definition: Component.h:438

◆ passParameter() [1/2]

template<typename T >
void THMObject::passParameter ( const std::string &  name,
const std::string &  new_name,
InputParameters params 
) const
protectedinherited

Passes a parameter from this object's input parameters to another set of input parameters.

Template Parameters
Tthe type of the parameter to be passed
Parameters
name[in]name the name of this object's parameter
new_name[in]new_name the name of the corresponding parameters in params
params[in,out]params the parameters to which the parameter will be passed

Definition at line 54 of file THMObject.h.

57 {
58  if (isParamValid(name))
59  params.set<T>(new_name) = _pars.get<T>(name);
60 }
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
T & set(const std::string &name, bool quiet_mode=false)
virtual const std::string & name() const
bool isParamValid(const std::string &name) const
const InputParameters & _pars

◆ passParameter() [2/2]

template<typename T >
void THMObject::passParameter ( const std::string &  name,
InputParameters params 
) const
protectedinherited

Passes a parameter from this object's input parameters to another set of input parameters.

This version overloads the other by assuming that the parameter has the same name.

Template Parameters
Tthe type of the parameter to be passed
Parameters
name[in]name the name of the parameter
params[in,out]params the parameters to which the parameter will be passed

Definition at line 64 of file THMObject.h.

65 {
66  passParameter<T>(name, name, params);
67 }
virtual const std::string & name() const

◆ problemIsTransient()

bool Component::problemIsTransient ( ) const
inlineinherited

Whether the problem is transient.

Definition at line 252 of file Component.h.

Referenced by HeatConductionModel::addHeatEquationRZ(), HeatConductionModel::addHeatEquationXYZ(), and FlowModel1PhaseBase::addTimeDerivativeKernelIfTransient().

252 { return getTHMProblem().isTransient(); }
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition: Component.C:135
virtual bool isTransient() const override

◆ setSubdomainInfo()

void Component::setSubdomainInfo ( SubdomainID  subdomain_id,
const std::string &  subdomain_name,
const Moose::CoordinateSystemType coord_system = Moose::COORD_XYZ 
)
protectedvirtualinherited

Sets the next subdomain ID, name, and coordinate system.

Parameters
[in]subdomain_idsubdomain index
[in]subdomain_namename of the new subdomain
[in]coord_systemtype of coordinate system

Definition at line 229 of file Component.C.

Referenced by Component2D::buildMesh(), FileMeshComponent::buildMesh(), Component1D::buildMesh(), and VolumeJunction1Phase::setupMesh().

232 {
233  _subdomain_ids.push_back(subdomain_id);
234  _subdomain_names.push_back(subdomain_name);
235  _coord_sys.push_back(coord_system);
236  if (_parent)
237  {
238  _parent->_subdomain_ids.push_back(subdomain_id);
239  _parent->_subdomain_names.push_back(subdomain_name);
240  _parent->_coord_sys.push_back(coord_system);
241  }
242  mesh().setSubdomainName(subdomain_id, subdomain_name);
243 }
std::vector< SubdomainName > _subdomain_names
List of subdomain names this components owns.
Definition: Component.h:462
Component * _parent
Pointer to a parent component (used in composed components)
Definition: Component.h:438
std::vector< Moose::CoordinateSystemType > _coord_sys
List of coordinate system for each subdomain.
Definition: Component.h:464
void setSubdomainName(SubdomainID subdomain_id, const SubdomainName &name)
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60
std::vector< SubdomainID > _subdomain_ids
List of subdomain IDs this components owns.
Definition: Component.h:460

◆ setupMesh()

void GeneratedMeshComponent::setupMesh ( )
overrideprotectedvirtualinherited

Performs mesh setup such as creating mesh or naming mesh sets.

Reimplemented from Component.

Reimplemented in HeatStructureCylindricalBase.

Definition at line 38 of file GeneratedMeshComponent.C.

Referenced by HeatStructureCylindricalBase::setupMesh().

39 {
41 
42  buildMesh();
43 
44  // displace nodes
45  for (auto && node_id : _node_ids)
46  {
47  Node & curr_node = mesh().nodeRef(node_id);
48  RealVectorValue p(curr_node(0), curr_node(1), curr_node(2));
50  }
51 }
void generateNodeLocations()
Generates axial node locations and stores in _node_locations.
virtual const Node & nodeRef(const dof_id_type i) const
std::vector< dof_id_type > _node_ids
Node IDs of this component.
Definition: Component.h:455
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition: Component.C:60
virtual void buildMesh()=0
Point computeRealPointFromReferencePoint(const Point &p) const
Computes point in 3-D space from a point in reference space.

◆ stringify()

std::string Component::stringify ( EComponentSetupStatus  status) const
inherited

Return a string for the setup status.

Definition at line 271 of file Component.C.

Referenced by Component::checkSetupStatus().

272 {
273  switch (status)
274  {
275  case CREATED:
276  return "component created";
277  case MESH_PREPARED:
278  return "component mesh set up";
279  case INITIALIZED_PRIMARY:
280  return "primary initialization completed";
282  return "secondary initialization completed";
283  case CHECKED:
284  return "component fully set up and checked";
285  default:
286  mooseError("Should not reach here");
287  }
288 }
only created
Definition: Component.h:38
MPI_Status status
mesh set up, called primary init
Definition: Component.h:40
mesh set up, called both inits
Definition: Component.h:41
void mooseError(Args &&... args) const
mesh set up, called both inits, checked
Definition: Component.h:42

◆ usingSecondOrderMesh()

bool Component1D::usingSecondOrderMesh ( ) const
overrideprotectedvirtualinherited

Check if second order mesh is being used by this geometrical component.

Returns
true if second order mesh is being used, otherwise false

Implements GeneratedMeshComponent.

Definition at line 134 of file Component1D.C.

Referenced by Component1D::buildMesh().

135 {
136  return false;
137 }

◆ validParams()

InputParameters FlowChannel1Phase::validParams ( )
static

Definition at line 17 of file FlowChannel1Phase.C.

Referenced by ElbowPipe1Phase::validParams().

18 {
20 
21  MooseEnum wave_speed_formulation("einfeldt davis", "einfeldt");
22  params.addParam<MooseEnum>(
23  "wave_speed_formulation", wave_speed_formulation, "Method for computing wave speeds");
24 
25  std::vector<Real> sf_1phase(3, 1.0);
26  params.addParam<std::vector<Real>>(
27  "scaling_factor_1phase",
28  sf_1phase,
29  "Scaling factors for each single phase variable (rhoA, rhouA, rhoEA)");
30 
31  params.addParamNamesToGroup("scaling_factor_1phase", "Numerical scheme");
32  params.addClassDescription("1-phase 1D flow channel");
33 
34  return params;
35 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)
void addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)

Member Data Documentation

◆ _area_function

FunctionName FlowChannelBase::_area_function
protectedinherited

Function describing the flow channel area.

Definition at line 216 of file FlowChannelBase.h.

Referenced by FlowChannelBase::addCommonObjects(), FlowChannelBase::getAreaFunctionName(), and FlowChannelBase::init().

◆ _axial_region_names

const std::vector<std::string>& GeneratedMeshComponent::_axial_region_names
protectedinherited

◆ _closures_objects

std::vector<std::shared_ptr<ClosuresBase> > FlowChannelBase::_closures_objects
protectedinherited

◆ _connections

std::map<Component1DConnection::EEndType, std::vector<Connection> > Component1D::_connections
protectedinherited

Map of end type to a list of connections.

Definition at line 78 of file Component1D.h.

Referenced by Component1D::buildMesh(), and Component1D::getConnections().

◆ _coord_sys

std::vector<Moose::CoordinateSystemType> Component::_coord_sys
protectedinherited

List of coordinate system for each subdomain.

Definition at line 464 of file Component.h.

Referenced by Component::getCoordSysTypes(), and Component::setSubdomainInfo().

◆ _dir

const RealVectorValue DiscreteLineSegmentInterface::_dir
protectedinherited

◆ _dir_unnormalized

const RealVectorValue& DiscreteLineSegmentInterface::_dir_unnormalized
protectedinherited

Unnormalized direction of axis from start position to end position.

Definition at line 93 of file DiscreteLineSegmentInterface.h.

◆ _elem_ids

std::vector<dof_id_type> Component::_elem_ids
protectedinherited

◆ _factory

Factory& Component::_factory
protectedinherited

The Factory associated with the MooseApp.

Definition at line 446 of file Component.h.

Referenced by FlowChannelBase::addCommonObjects(), HeatStructureBase::addConstantDensitySolidPropertiesMaterial(), HeatTransferBase::addHeatedPerimeter(), HeatTransferFromTemperature1Phase::addHeatTransferKernels(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), FormLossFromFunction1Phase::addMooseObjects(), HSBoundaryAmbientConvection::addMooseObjects(), HSBoundaryRadiation::addMooseObjects(), HSBoundarySpecifiedTemperature::addMooseObjects(), HeatStructure2DCoupler::addMooseObjects(), InletVelocityTemperature1Phase::addMooseObjects(), HeatStructure2DRadiationCouplerRZ::addMooseObjects(), HeatSourceFromPowerDensity::addMooseObjects(), HeatSourceFromTotalPower::addMooseObjects(), InletFunction1Phase::addMooseObjects(), HSBoundaryHeatFlux::addMooseObjects(), HeatTransferFromHeatFlux1Phase::addMooseObjects(), SolidWall1Phase::addMooseObjects(), InletDensityVelocity1Phase::addMooseObjects(), InletMassFlowRateTemperature1Phase::addMooseObjects(), InletStagnationPressureTemperature1Phase::addMooseObjects(), Outlet1Phase::addMooseObjects(), HeatSourceVolumetric1Phase::addMooseObjects(), FormLossFromExternalApp1Phase::addMooseObjects(), Shaft::addMooseObjects(), HeatTransferFromSpecifiedTemperature1Phase::addMooseObjects(), FreeBoundary1Phase::addMooseObjects(), GateValve1Phase::addMooseObjects(), TotalPower::addMooseObjects(), VolumeJunction1Phase::addMooseObjects(), HSBoundaryExternalAppTemperature::addMooseObjects(), SolidWallGasMix::addMooseObjects(), ShaftConnectedTurbine1Phase::addMooseObjects(), ShaftConnectedCompressor1Phase::addMooseObjects(), HeatTransferFromExternalAppHeatFlux1Phase::addMooseObjects(), FormLoss1PhaseBase::addMooseObjects(), ShaftConnectedMotor::addMooseObjects(), ShaftConnectedPump1Phase::addMooseObjects(), HSBoundaryExternalAppConvection::addMooseObjects(), HSCoupler2D2DRadiation::addMooseObjects(), HSCoupler2D3D::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), HeatTransferFromHeatStructure3D1Phase::addMooseObjects(), HeatTransferBase::addMooseObjects(), HeatTransferFromHeatStructure1Phase::addMooseObjects(), HSBoundaryExternalAppHeatFlux::addMooseObjects(), JunctionOneToOne1Phase::addMooseObjects(), FlowChannelBase::addMooseObjects(), Component::addRelationshipManager(), FlowChannelBase::addVariables(), VolumeJunction1Phase::addVolumeJunctionIC(), FlowBoundary1Phase::addWeakBCs(), FlowBoundaryGasMix::addWeakBCs(), FlowChannel1PhaseBase::buildFlowModel(), Pump1Phase::buildVolumeJunctionUserObject(), JunctionParallelChannels1Phase::buildVolumeJunctionUserObject(), SimpleTurbine1Phase::buildVolumeJunctionUserObject(), ShaftConnectedPump1Phase::buildVolumeJunctionUserObject(), ShaftConnectedCompressor1Phase::buildVolumeJunctionUserObject(), ShaftConnectedTurbine1Phase::buildVolumeJunctionUserObject(), and VolumeJunction1Phase::buildVolumeJunctionUserObject().

◆ _flow_model

std::shared_ptr<FlowModel> FlowChannelBase::_flow_model
protectedinherited

The flow model used by this flow channel.

Definition at line 207 of file FlowChannelBase.h.

Referenced by FlowChannelBase::addMooseObjects(), FlowChannelBase::addVariables(), FlowChannelBase::getFlowModel(), and FlowChannelBase::init().

◆ _fp_name

const UserObjectName& FlowChannelBase::_fp_name
protectedinherited

Name of fluid properties user object.

Definition at line 210 of file FlowChannelBase.h.

Referenced by checkFluidProperties(), FlowChannelGasMix::checkFluidProperties(), and FlowChannelBase::getFluidPropertiesName().

◆ _gravity_angle

const Real FlowChannelBase::_gravity_angle
protectedinherited

Angle between orientation vector and gravity vector, in degrees.

Definition at line 213 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getGravityAngle().

◆ _gravity_direction

const RealVectorValue GravityInterface::_gravity_direction
protectedinherited

Gravitational acceleration unit direction.

Definition at line 36 of file GravityInterface.h.

◆ _gravity_is_zero

const bool GravityInterface::_gravity_is_zero
protectedinherited

Gravitational acceleration magnitude is zero?

Definition at line 34 of file GravityInterface.h.

◆ _gravity_magnitude

const Real GravityInterface::_gravity_magnitude
protectedinherited

Gravitational acceleration magnitude.

Definition at line 32 of file GravityInterface.h.

Referenced by GravityInterface::getGravityMagnitude().

◆ _gravity_vector

const RealVectorValue& GravityInterface::_gravity_vector
protectedinherited

Gravitational acceleration vector.

Definition at line 30 of file GravityInterface.h.

◆ _has_PoD

bool FlowChannelBase::_has_PoD
protectedinherited

True if user provides PoD.

Definition at line 233 of file FlowChannelBase.h.

◆ _heat_transfer_geom_to_enum

const std::map< std::string, FlowChannelBase::EConvHeatTransGeom > FlowChannelBase::_heat_transfer_geom_to_enum
staticinherited
Initial value:
{
{"PIPE", PIPE}, {"ROD_BUNDLE", ROD_BUNDLE}, {"HEX_ROD_BUNDLE", HEX_ROD_BUNDLE}}

Map of convective heat transfer geometry type to enum.

Definition at line 49 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getConvHeatTransGeometry(), and THM::stringToEnum().

◆ _heat_transfer_names

std::vector<std::string> FlowChannelBase::_heat_transfer_names
mutableprotectedinherited

◆ _HT_geometry

EConvHeatTransGeom FlowChannelBase::_HT_geometry
protectedinherited

Convective Heat transfer geometry.

Definition at line 227 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getHeatTransferGeometry().

◆ _Hw_1phase_names

std::vector<MaterialPropertyName> FlowChannel1PhaseBase::_Hw_1phase_names
protectedinherited

1-phase wall heat transfer coefficient names for connected heat transfers

Definition at line 66 of file FlowChannel1PhaseBase.h.

Referenced by FlowChannel1PhaseBase::getHeatTransferVariableNames(), and FlowChannel1PhaseBase::getWallHTCNames1Phase().

◆ _Hw_liquid_names

std::vector<MaterialPropertyName> FlowChannelBase::_Hw_liquid_names
protectedinherited

liquid wall heat transfer coefficient names for connected heat transfers

Definition at line 245 of file FlowChannelBase.h.

◆ _Hw_vapor_names

std::vector<MaterialPropertyName> FlowChannelBase::_Hw_vapor_names
protectedinherited

vapor wall heat transfer coefficient names for connected heat transfers

Definition at line 247 of file FlowChannelBase.h.

◆ _length

Real DiscreteLineSegmentInterface::_length
protectedinherited

◆ _lengths

std::vector<Real> DiscreteLineSegmentInterface::_lengths
protectedinherited

◆ _log

Logger& LoggingInterface::_log
protectedinherited

◆ _mesh

THMMesh& Component::_mesh
protectedinherited

The THM mesh TODO: make _mesh private (applications need to switch to getters to avoid breaking)

Definition at line 452 of file Component.h.

Referenced by Component::addRelationshipManager(), Component::constMesh(), and Component::mesh().

◆ _moose_object_name_dlsi

const std::string DiscreteLineSegmentInterface::_moose_object_name_dlsi
protectedinherited

Name of the MOOSE object.

Definition at line 128 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeAxialCoordinate().

◆ _n_elem

const unsigned int DiscreteLineSegmentInterface::_n_elem
protectedinherited

◆ _n_elems

const std::vector<unsigned int>& DiscreteLineSegmentInterface::_n_elems
protectedinherited

◆ _n_heat_transfer_connections

unsigned int FlowChannelBase::_n_heat_transfer_connections
mutableprotectedinherited

◆ _n_sections

const unsigned int DiscreteLineSegmentInterface::_n_sections
protectedinherited

◆ _node_ids

std::vector<dof_id_type> Component::_node_ids
protectedinherited

◆ _node_locations

std::vector<Real> GeneratedMeshComponent::_node_locations
protectedinherited

◆ _numerical_flux_name

const UserObjectName FlowChannel1PhaseBase::_numerical_flux_name
protectedinherited

Numerical flux user object name.

Definition at line 69 of file FlowChannel1PhaseBase.h.

Referenced by FlowChannel1PhaseBase::buildFlowModel(), and FlowChannel1PhaseBase::getNumericalFluxUserObjectName().

◆ _P_hf_names

std::vector<VariableName> FlowChannelBase::_P_hf_names
protectedinherited

◆ _parent

Component* Component::_parent
protectedinherited

Pointer to a parent component (used in composed components)

Definition at line 438 of file Component.h.

Referenced by HeatStructureBase::addMooseObjects(), Component::cname(), Component::parent(), and Component::setSubdomainInfo().

◆ _pipe_location

EPipeLocation FlowChannelBase::_pipe_location
protectedinherited

Pipe location within the bundle.

Definition at line 229 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getPipeLocation().

◆ _pipe_location_to_enum

const std::map< std::string, FlowChannelBase::EPipeLocation > FlowChannelBase::_pipe_location_to_enum
staticinherited
Initial value:
{
{"INTERIOR", INTERIOR}, {"EDGE", EDGE}, {"CORNER", CORNER}}

Map of pipe location to enum.

Definition at line 53 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getPipeLocation(), and THM::stringToEnum().

◆ _pipe_pars_transferred

const bool& FlowChannelBase::_pipe_pars_transferred
protectedinherited

◆ _pipe_type_to_enum

const std::map< std::string, FlowChannelBase::EPipeType > FlowChannelBase::_pipe_type_to_enum
staticinherited
Initial value:
{
{"STRAIGHT", STRAIGHT}, {"CURVED", CURVED}, {"DOWNCOMER", DOWNCOMER}}

Map of pipe type to enum.

Definition at line 51 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getPipeType(), and THM::stringToEnum().

◆ _PoD

const Real& FlowChannelBase::_PoD
protectedinherited

Pitch to diameter ratio for parallel bundle heat transfer.

Definition at line 231 of file FlowChannelBase.h.

◆ _position

const Point& DiscreteLineSegmentInterface::_position
protectedinherited

◆ _q_wall_names

std::vector<MaterialPropertyName> FlowChannelBase::_q_wall_names
protectedinherited

wall heat flux names for connected heat transfers

Definition at line 255 of file FlowChannelBase.h.

Referenced by FlowChannelBase::addMooseObjects(), FlowChannelBase::getHeatTransferVariableNames(), and FlowChannelBase::getWallHeatFluxNames().

◆ _R

const RealTensorValue DiscreteLineSegmentInterface::_R
protectedinherited

Direction transformation tensor.

Definition at line 118 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeRealPointFromReferencePoint().

◆ _R_inv

const RealTensorValue DiscreteLineSegmentInterface::_R_inv
protectedinherited

Inverse direction transformation tensor.

Definition at line 123 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeReferencePointFromRealPoint().

◆ _rdg_slope_reconstruction

const MooseEnum FlowChannel1PhaseBase::_rdg_slope_reconstruction
protectedinherited

Slope reconstruction type for rDG.

Definition at line 72 of file FlowChannel1PhaseBase.h.

Referenced by FlowChannel1PhaseBase::getSlopeReconstruction().

◆ _rotation

const Real& DiscreteLineSegmentInterface::_rotation
protectedinherited

◆ _roughness

const Real& FlowChannelBase::_roughness
protectedinherited

Roughness of flow channel surface, [m].

Definition at line 224 of file FlowChannelBase.h.

◆ _Rx

const RealTensorValue DiscreteLineSegmentInterface::_Rx
protectedinherited

Rotational transformation tensor about x-axis.

Definition at line 120 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeRealPointFromReferencePoint().

◆ _Rx_inv

const RealTensorValue DiscreteLineSegmentInterface::_Rx_inv
protectedinherited

Inverse rotational transformation tensor about x-axis.

Definition at line 125 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeReferencePointFromRealPoint().

◆ _section_end

std::vector<Real> DiscreteLineSegmentInterface::_section_end
protectedinherited

Axial coordinate of the end of each axial section using the line 'position' as the origin.

Definition at line 112 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::DiscreteLineSegmentInterface(), and DiscreteLineSegmentInterface::getAxialSectionIndex().

◆ _sim

THMProblem& Component::_sim
protectedinherited

THM problem this component is part of TODO: make _sim private (applications need to switch to getters to avoid breaking).

Also, rename to "_thm_problem" at that point.

Definition at line 443 of file Component.h.

Referenced by Component::checkComponentExistsByName(), Component::checkComponentOfTypeExistsByName(), Component::getComponentByName(), Component::getTHMProblem(), Component::hasComponentByName(), and Component::makeFunctionControllableIfConstant().

◆ _subdomain_ids

std::vector<SubdomainID> Component::_subdomain_ids
protectedinherited

List of subdomain IDs this components owns.

Definition at line 460 of file Component.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component::setSubdomainInfo().

◆ _subdomain_names

std::vector<SubdomainName> Component::_subdomain_names
protectedinherited

List of subdomain names this components owns.

Definition at line 462 of file Component.h.

Referenced by Component::getSubdomainNames(), and Component::setSubdomainInfo().

◆ _T_wall_mat_names

std::vector<MaterialPropertyName> FlowChannelBase::_T_wall_mat_names
protectedinherited

wall temperature material names for connected heat transfers

Definition at line 253 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getHeatTransferVariableNames(), and FlowChannelBase::getWallTemperatureMatNames().

◆ _T_wall_names

std::vector<VariableName> FlowChannelBase::_T_wall_names
protectedinherited

wall temperature auxvariable names for connected heat transfers

Definition at line 251 of file FlowChannelBase.h.

Referenced by FlowChannelBase::getHeatTransferVariableNames(), and FlowChannelBase::getWallTemperatureNames().

◆ _temperature_mode

bool FlowChannelBase::_temperature_mode
protectedinherited

True if there is one or more sources specified by wall temperature.

Definition at line 236 of file FlowChannelBase.h.

Referenced by FlowChannelBase::addMooseObjects(), FlowChannelBase::check(), FlowChannelBase::getTemperatureMode(), and FlowChannelBase::initSecondary().

◆ _x_centers

std::vector<Real> DiscreteLineSegmentInterface::_x_centers
protectedinherited

Center axial coordinate of each axial element.

Definition at line 115 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::DiscreteLineSegmentInterface(), and DiscreteLineSegmentInterface::getAxialElementIndex().

◆ _zero

const Real& Component::_zero
protectedinherited

Definition at line 448 of file Component.h.


The documentation for this class was generated from the following files: