https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
HeatStructureCylindricalBase Class Reference

Base class for cylindrical heat structure components. More...

#include <HeatStructureCylindricalBase.h>

Inheritance diagram for HeatStructureCylindricalBase:
[legend]

Public Types

enum class  ExternalBoundaryType { INNER = 0 , OUTER = 1 , START = 2 , END = 3 }
 External boundary type. More...
 
enum  EComponentSetupStatus {
  CREATED , MESH_PREPARED , INITIALIZED_PRIMARY , INITIALIZED_SECONDARY ,
  CHECKED
}
 Component setup status type. More...
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 HeatStructureCylindricalBase (const InputParameters &params)
 
virtual void setupMesh () override
 Performs mesh setup such as creating mesh or naming mesh sets.
 
virtual Real getUnitPerimeter (const ExternalBoundaryType &side) const override
 Gets the perimeter of one unit of this heat structure on the specified side.
 
virtual Real getInnerRadius () const
 Get the inner radius of the heat structure.
 
virtual Real computeRadialBoundaryArea (const Real &length, const Real &y) const override
 Computes the area of a radial boundary.
 
virtual Real computeAxialBoundaryArea (const Real &y_min, const Real &y_max) const override
 Computes the area of an axial boundary.
 
virtual void addVariables () override
 
virtual void addMooseObjects () override
 
const unsigned intgetIndexFromName (const std::string &name) const
 Get index of the block from its name.
 
Real getNumberOfUnits () const
 Gets the number of units that heat structure represents.
 
virtual void buildMesh () override
 
const Real & getTotalWidth () const
 Gets the total width of all transverse regions.
 
unsigned int getNumRegions () const
 Gets the number of transverse regions.
 
bool hasBlock (const std::string &name) const
 Returns true if there is a transverse region of a given name.
 
const std::vector< std::string > & getNames () const
 Gets the names of the transverse regions.
 
const std::vector< Real > & getVolumes () const
 Gets the volumes of the transverse regions.
 
bool isBoundaryInVector (const BoundaryName &boundary_name, const std::vector< BoundaryName > &boundary_name_vector) const
 Returns true if the supplied boundary is in the given vector.
 
bool hasBoundary (const BoundaryName &boundary_name) const
 Returns true if this component has the supplied boundary.
 
bool hasExternalBoundary (const BoundaryName &boundary_name) const
 Returns true if this component has the supplied external boundary.
 
const std::vector< std::tuple< dof_id_type, unsigned short int > > & getBoundaryInfo (const BoundaryName &boundary_name) const
 Gets boundary info associated with the component boundary.
 
const std::vector< std::tuple< dof_id_type, unsigned short int > > & getBoundaryInfo (const ExternalBoundaryType &boundary_type) const
 Gets boundary info associated with a external boundary type.
 
ExternalBoundaryType getExternalBoundaryType (const BoundaryName &boundary_name) const
 Gets the external boundary type of the given boundary.
 
Real getAxialOffset () const
 Gets the axial offset for the mesh.
 
const BoundaryName & getExternalBoundaryName (const ExternalBoundaryType &boundary_type) const
 Gets the name of an external boundary by type.
 
const Real & getBoundaryArea (const BoundaryName &boundary_name) const
 Gets the area for a boundary.
 
std::string stringify (EComponentSetupStatus status) const
 Return a string for the setup status.
 
const std::string & cname () const
 Get the component name.
 
Componentparent ()
 
const THMMeshconstMesh () const
 Const reference to mesh, which can be called at any point.
 
THMMeshmesh ()
 Non-const reference to THM mesh, which can only be called before the end of mesh setup.
 
THMProblemgetTHMProblem () const
 Gets the THM problem.
 
template<typename T >
bool hasParam (const std::string &name) const
 Test if a parameter exists in the object's input parameters.
 
const std::vector< std::string > & getDependencies () const
 Returns a list of names of components that this component depends upon.
 
void executeInit ()
 Wrapper function for init() that marks the function as being called.
 
void executeInitSecondary ()
 Wrapper function for initSecondary() that marks the function as being called.
 
void executeCheck () const
 Wrapper function for check() that marks the function as being called.
 
void executeSetupMesh ()
 Wrapper function for setupMesh() that marks the function as being called.
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType)
 Adds relationship managers for the component.
 
template<typename T >
const TgetComponent (const std::string &name) const
 Return a reference to a component via a parameter name.
 
template<typename T >
const TgetComponentByName (const std::string &cname) const
 Return a reference to a component given its name.
 
template<typename T >
bool hasComponent (const std::string &name) const
 Check the existence and type of a component via a parameter name.
 
template<typename T >
bool hasComponentByName (const std::string &cname) const
 Check the existence and type of a component given its name.
 
void connectObject (const InputParameters &obj_params, const std::string &obj_name, const std::string &param) const
 Connects a controllable parameter of the component to a controllable parameter of a constituent object.
 
void connectObject (const InputParameters &obj_params, const std::string &obj_name, const std::string &comp_param, const std::string &obj_param) const
 Connects a controllable parameter of the component to a controllable parameter of a constituent object.
 
void checkSetupStatus (const EComponentSetupStatus &status) const
 Throws an error if the supplied setup status of this component has not been reached.
 
void checkComponentExistsByName (const std::string &comp_name) const
 Checks that a component exists.
 
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.
 
template<typename T >
void checkComponentOfTypeExistsByName (const std::string &comp_name) const
 Checks that the component of a certain type exists.
 
template<typename... Args>
void logError (Args &&... args) const
 Logs an error.
 
template<typename... Args>
void logWarning (Args &&... args) const
 Logs a warning.
 
void addDependency (const std::string &dependency)
 Adds a component name to the list of dependencies.
 
template<typename T >
T getEnumParam (const std::string &param, bool log_error=true) const
 Gets an enum parameter.
 
bool problemIsTransient () const
 Whether the problem is transient.
 
const std::vector< dof_id_type > & getNodeIDs () const
 Gets the node IDs corresponding to this component.
 
const std::vector< dof_id_type > & getElementIDs () const
 Gets the element IDs corresponding to this component.
 
virtual const std::vector< SubdomainName > & getSubdomainNames () const
 Gets the subdomain names for this component.
 
virtual const std::vector< Moose::CoordinateSystemType > & getCoordSysTypes () const
 Gets the coordinate system types for this component.
 
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.
 
template<typename T >
void checkParameterValueLessThan (const std::string &param, const T &value_max) const
 Checks that a parameter value is less than a value.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (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
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) 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.
 
template<typename... Args>
void logComponentWarning (const std::string &component_name, Args &&... args) const
 Logs a warning for a component.
 
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::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.
 
std::string genName (const std::string &prefix, const std::string &name, unsigned int i) const
 Build a name from 2 strings and a number.
 
std::string genName (const std::string &prefix, const std::string &middle, const std::string &suffix="") const
 Build a name from strings.
 
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.
 
const Moose::Functor< Real > * defaultFunctor (const std::string &name)
 
const Moose::Functor< ADReal > * defaultFunctor (const std::string &name)
 
virtual Point getPosition () const
 
Point getStartPoint () const
 
Point getEndPoint () const
 
virtual RealVectorValue getDirection () const
 
virtual Real getRotation () const
 
virtual Real getNumElems () const
 
virtual Real getLength () const
 
Real getMinimumElemSize () const
 Gets the minimum element size.
 
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.
 
Point computeReferencePointFromRealPoint (const Point &p) const
 Computes point in reference space from a point in 3-D space.
 
MooseEnum getAlignmentAxis () const
 Gets an axis MooseEnum for the axis the component is aligned with.
 
std::vector< Real > getElementBoundaryCoordinates () const
 Gets the element boundary coordinates for the aligned axis.
 
FunctionName getInitialT () const
 Gets the initial temperature function name.
 
const GeometricalComponentgetGeometricalComponent () const
 Gets the geometrical component inheriting from this interface.
 

Static Public Member Functions

static InputParameters validParams ()
 
static MooseEnum getExternalBoundaryTypeMooseEnum (const std::string &default_value="")
 Gets the MooseEnum corresponding to ExternalBoundaryType.
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 
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.
 
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.
 
static MooseEnum getAlignmentAxis (const RealVectorValue &dir)
 Gets an axis MooseEnum for the axis the component is aligned with.
 
static std::vector< Real > getElementBoundaryCoordinates (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.
 
static RealTensorValue computeDirectionTransformationTensor (const RealVectorValue &dir)
 Computes the direction transformation tensor.
 
static RealTensorValue computeXRotationTransformationTensor (const Real &rotation)
 Computes the rotation transformation tensor.
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 
Real _dx_min
 Minimum element size.
 

Static Public Attributes

static const std::map< std::string, ExternalBoundaryType_external_boundary_type_to_enum
 map of external boundary type string to enum
 
static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 

Protected Member Functions

virtual bool useCylindricalTransformation () const override
 Use cylindrical transformation?
 
virtual void init () override
 Initializes the component.
 
virtual void check () const override
 Check the component integrity.
 
virtual bool usingSecondOrderMesh () const override
 Check if second order mesh is being used by this geometrical component.
 
virtual ConvergencegetNonlinearConvergence () const override
 Gets the Component's nonlinear Convergence object if it has one.
 
void loadMaterial (InputParameters &pars, const std::string &par, const std::string &material_name)
 
void addAverageElementSizePostprocessor (const SubdomainName &block)
 Adds a PP for the average element size on a block.
 
void addResidualNormPostprocessor (const SubdomainName &block, const UserObjectName &sp_name, Real T_ref)
 Adds a residual norm PP for a block.
 
void addConstantDensitySolidPropertiesMaterial (const UserObjectName &sp_name, const Real &T_ref, unsigned int i_region) const
 Adds a ADConstantDensityThermalSolidPropertiesMaterial for a heat structure region.
 
void build2DMesh ()
 Builds a 2D, first-order mesh.
 
void build2DMesh2ndOrder ()
 Builds a 2D, second-order mesh.
 
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.
 
virtual void initSecondary ()
 Perform secondary initialization, which relies on init() being called for all components.
 
void addRelationshipManagersFromParameters (const InputParameters &moose_object_pars)
 Method to add a relationship manager for the objects being added to the system.
 
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.
 
void addNonlinearStepFunctorMaterial (const std::string &functor_name, const std::string &property, bool functor_is_ad)
 Adds a functor material to compute the absolute value of the change (step) of some functor between nonlinear iterations.
 
void addMaximumFunctorPostprocessor (const std::string &functor_name, const std::string &pp_name, const Real normalization, const std::vector< SubdomainName > &subdomains)
 Adds a Postprocessor to compute the maximum of a functor over some domain.
 
void addMultiPostprocessorConvergence (const std::vector< PostprocessorName > &postprocessors, const std::vector< std::string > &descriptions, const std::vector< Real > &tolerances)
 Adds a MultiPostprocessorConvergence for nonlinear convergence for the component.
 
std::string nonlinearConvergenceName () const
 Nonlinear Convergence name.
 
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.
 
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.
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
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)
 
const Moose::Functor< T > & getFunctorByName (const std::string &name)
 
virtual std::shared_ptr< HeatConductionModelbuildModel ()
 Builds the heat conduction model.
 

Protected Attributes

Real _inner_radius
 Inner radius of the heat structure.
 
std::map< std::string, unsigned int_name_index
 Map from block name to block index.
 
Real _num_rods
 The number of rods represented by this heat structure.
 
unsigned int_number_of_hs
 
unsigned int _n_regions
 Number of transverse regions.
 
std::vector< std::string > _names
 Names of each transverse region.
 
std::vector< Real > _width
 Width of each transverse region.
 
Real _total_width
 Total width of all transverse regions.
 
std::vector< Real > _volume
 Volume of each transverse region.
 
std::vector< unsigned int_n_part_elems
 Number of elements in each transverse region.
 
unsigned int _total_elem_number
 Total number of transverse elements.
 
unsigned int _outer_bc_id
 BC ID of the component (outer)
 
unsigned int _inner_bc_id
 BC ID of the component (inner)
 
unsigned int _start_bc_id
 BC ID of the component (start)
 
unsigned int _end_bc_id
 BC ID of the component (end)
 
std::vector< unsigned int_interior_axial_per_radial_section_bc_id
 BC ID of the interior axial boundaries (per radial section) of the component.
 
std::vector< unsigned int_axial_outer_bc_id
 BC ID of the axial regions of the outer boundary of the component.
 
std::vector< unsigned int_axial_inner_bc_id
 BC ID of the axial regions of the inner boundary of the component.
 
std::vector< unsigned int_radial_start_bc_id
 BC ID of the radial regions of the start boundary of the component.
 
std::vector< unsigned int_radial_end_bc_id
 BC ID of the radial regions of the end boundary of the component.
 
std::vector< unsigned int_inner_radial_bc_id
 BC ID of the inner radial boundary regions of the component.
 
BoundaryName _boundary_name_outer
 Boundary name of the outer side of the component.
 
BoundaryName _boundary_name_inner
 Boundary name of the inner side of the component.
 
BoundaryName _boundary_name_start
 Boundary name of the start side of the component.
 
BoundaryName _boundary_name_end
 Boundary name of the end side of the component.
 
std::vector< BoundaryName > _boundary_names_interior_axial_per_radial_section
 Boundary names of the interior axial boundaries (per radial section) of the component.
 
std::vector< BoundaryName > _boundary_names_axial_outer
 Boundary names of the axial regions of the outer side of the component.
 
std::vector< BoundaryName > _boundary_names_axial_inner
 Boundary names of the axial regions of the inner side of the component.
 
std::vector< BoundaryName > _boundary_names_radial_start
 Boundary names of the radial regions of the start side of the component.
 
std::vector< BoundaryName > _boundary_names_radial_end
 Boundary names of the radial regions of the end side of the component.
 
std::vector< BoundaryName > _boundary_names_inner_radial
 Boundary names of the inner radial boundary regions of the component.
 
std::map< BoundaryName, Real > _boundary_name_to_area
 Map of boundary name to boundary area.
 
std::map< BoundaryName, std::vector< std::tuple< dof_id_type, unsigned short int > > > _boundary_info
 Map of boundary name to list of tuples of element and side IDs for that boundary.
 
Real _axial_offset
 Distance by which to offset the mesh from the component axis.
 
const std::vector< std::string > & _axial_region_names
 Axial region names.
 
std::vector< Real > _node_locations
 Node locations along the main axis.
 
Component_parent
 Pointer to a parent component (used in composed components)
 
THMProblem_sim
 THM problem this component is part of TODO: make _sim private (applications need to switch to getters to avoid breaking).
 
Factory_factory
 The Factory associated with the MooseApp.
 
const Real & _zero
 
THMMesh_mesh
 The THM mesh TODO: make _mesh private (applications need to switch to getters to avoid breaking)
 
std::vector< dof_id_type > _node_ids
 Node IDs of this component.
 
std::vector< dof_id_type > _elem_ids
 Element IDs of this component.
 
std::vector< SubdomainID_subdomain_ids
 List of subdomain IDs this components owns.
 
std::vector< SubdomainName > _subdomain_names
 List of subdomain names this components owns.
 
std::vector< Moose::CoordinateSystemType_coord_sys
 List of coordinate system for each subdomain.
 
const bool & _enabled
 
MooseApp_app
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const Parallel::Communicator & _communicator
 
Logger_log
 
const Point & _position
 Start position of axis in 3-D space.
 
const RealVectorValue & _dir_unnormalized
 Unnormalized direction of axis from start position to end position.
 
const RealVectorValue _dir
 Normalized direction of axis from start position to end position.
 
const Real & _rotation
 Angle of rotation about the x-axis.
 
std::vector< Real > _lengths
 Length of each axial section.
 
Real _length
 Total axial length.
 
const Point _end_point
 End point of line segment.
 
std::vector< unsigned int_n_elems
 Number of elements in each axial section.
 
unsigned int _n_elem
 Total number of axial elements.
 
const unsigned int _n_sections
 Number of axial sections.
 
std::vector< Real > _section_end
 Axial coordinate of the end of each axial section using the line 'position' as the origin.
 
std::vector< Real > _x_centers
 Center axial coordinate of each axial element.
 
const RealTensorValue _R
 Direction transformation tensor.
 
const RealTensorValue _Rx
 Rotational transformation tensor about x-axis.
 
const RealTensorValue _R_inv
 Inverse direction transformation tensor.
 
const RealTensorValue _Rx_inv
 Inverse rotational transformation tensor about x-axis.
 
const std::string _moose_object_name_dlsi
 Name of the MOOSE object.
 
std::shared_ptr< HeatConductionModel_hc_model
 The heat conduction model used by this heat structure.
 

Private Member Functions

void generateNodeLocations ()
 Generates axial node locations and stores in _node_locations.
 
unsigned int computeNumberOfNodes (unsigned int n_elems)
 Computes the number of axial nodes from the number of elements.
 
std::vector< Real > getUniformNodeLocations (Real length, unsigned int n_nodes)
 Computes the local positions of axial nodes for an axial section.
 
void placeLocalNodeLocations (Real start_length, unsigned int start_node, std::vector< Real > &local_node_locations)
 Puts local positions of axial nodes for an axial section into _node_locations.
 
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.
 
const Moose::Functor< T > * defaultFunctor (const std::string &name)
 
const Moose::Functor< Real > * defaultFunctor (const std::string &name)
 
const Moose::Functor< ADReal > * defaultFunctor (const std::string &name)
 
const Moose::Functor< T > & getFunctorByName (const std::string &name, SubProblem &subproblem, THREAD_ID tid)
 
virtual bool isADObject () const override
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 
static RealVectorValue initializeDirectionVector (const RealVectorValue &dir_unnormalized)
 Computes a normalized direction vector or reports an error if the zero vector is provided.
 

Private Attributes

EComponentSetupStatus _component_setup_status
 Component setup status.
 
std::vector< std::string > _dependencies
 List of names of components that this component depends upon.
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 
const InputParameters_fi_params
 
const std::string _fi_name
 
SubProblem *const _fi_subproblem
 
const THREAD_ID _fi_tid
 
std::vector< std::unique_ptr< Moose::Functor< Real > > > _default_real_functors
 
std::vector< std::unique_ptr< Moose::Functor< ADReal > > > _default_ad_real_functors
 
GeometricalComponent_geometrical_component_hsi
 The geometrical component inheriting from this interface.
 

Detailed Description

Base class for cylindrical heat structure components.

Definition at line 17 of file HeatStructureCylindricalBase.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 37 of file Component.h.

38 {
39 CREATED,
43 CHECKED
44 };
@ CHECKED
mesh set up, called both inits, checked
Definition Component.h:43
@ MESH_PREPARED
mesh set up
Definition Component.h:40
@ INITIALIZED_PRIMARY
mesh set up, called primary init
Definition Component.h:41
@ INITIALIZED_SECONDARY
mesh set up, called both inits
Definition Component.h:42
@ CREATED
only created
Definition Component.h:39

◆ ExternalBoundaryType

enum class Component2D::ExternalBoundaryType
stronginherited

External boundary type.

Enumerator
INNER 
OUTER 
START 
END 

Definition at line 18 of file Component2D.h.

Constructor & Destructor Documentation

◆ HeatStructureCylindricalBase()

HeatStructureCylindricalBase::HeatStructureCylindricalBase ( const InputParameters params)

Definition at line 21 of file HeatStructureCylindricalBase.C.

22 : HeatStructureBase(params)
23{
24}
Base class for 2D generated heat structures.

Member Function Documentation

◆ addAverageElementSizePostprocessor()

void HeatStructureBase::addAverageElementSizePostprocessor ( const SubdomainName &  block)
protectedinherited

Adds a PP for the average element size on a block.

Definition at line 131 of file HeatStructureBase.C.

132{
133 const std::string class_name = "AverageElementSize";
134 InputParameters params = _factory.getValidParams(class_name);
135 params.set<std::vector<SubdomainName>>("block") = {block};
136 params.set<ExecFlagEnum>("execute_on") = EXEC_INITIAL;
137 params.set<std::vector<OutputName>>("outputs") = {"none"};
138 getTHMProblem().addPostprocessor(class_name, block + "_havg", params);
139}
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition Component.C:135
Factory & _factory
The Factory associated with the MooseApp.
Definition Component.h:497
virtual void addPostprocessor(const std::string &pp_name, const std::string &name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name) const
T & set(const std::string &name, bool quiet_mode=false)

Referenced by HeatStructureBase::addMooseObjects().

◆ addConstantDensitySolidPropertiesMaterial()

void HeatStructureBase::addConstantDensitySolidPropertiesMaterial ( const UserObjectName &  sp_name,
const Real &  T_ref,
unsigned int  i_region 
) const
protectedinherited

Adds a ADConstantDensityThermalSolidPropertiesMaterial for a heat structure region.

Parameters
[in]sp_nameSolid properties object name
[in]T_refConstant density reference temperature
[in]i_regionHeat structure region index

Definition at line 113 of file HeatStructureBase.C.

116{
117 const auto blocks = getSubdomainNames();
118 const auto region_names = getNames();
119
120 const std::string class_name = "ADConstantDensityThermalSolidPropertiesMaterial";
121 InputParameters params = _factory.getValidParams(class_name);
122 params.set<std::vector<SubdomainName>>("block") = {blocks[i_region]};
123 params.set<std::vector<VariableName>>("temperature") = {HeatConductionModel::TEMPERATURE};
124 params.set<UserObjectName>("sp") = sp_name;
125 params.set<Real>("T_ref") = T_ref;
127 class_name, genName(name(), class_name, region_names[i_region]), params);
128}
char ** blocks
const std::string name
Definition Setup.h:21
const std::vector< std::string > & getNames() const
Gets the names of the transverse regions.
Definition Component2D.h:50
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
Definition Component.C:345
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters &parameters)
static const std::string TEMPERATURE
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.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by HeatStructureBase::addMooseObjects().

◆ 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.

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:542

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

◆ 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.

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:508
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
Definition Component.C:60
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

Referenced by FileMeshComponent::buildMesh().

◆ addElementEdge2()

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

Definition at line 36 of file GeometricalComponent.C.

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

Referenced by Component1D::buildMesh().

◆ 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.

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

Referenced by Component1D::buildMesh().

◆ 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.

56{
57 auto elem = mesh().addElementQuad4(node0, node1, node2, node3);
58 _elem_ids.push_back(elem->id());
59 return elem;
60}
Elem * addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3)
Definition THMMesh.C:155

Referenced by Component2D::build2DMesh().

◆ 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.

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}
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

Referenced by Component2D::build2DMesh2ndOrder().

◆ addMaximumFunctorPostprocessor()

void Component::addMaximumFunctorPostprocessor ( const std::string &  functor_name,
const std::string &  pp_name,
const Real  normalization,
const std::vector< SubdomainName > &  subdomains 
)
protectedinherited

Adds a Postprocessor to compute the maximum of a functor over some domain.

Parameters
[in]functor_nameFunctor for which to compute maximum
[in]pp_nameName of new Postprocessor
[in]normalizationFactor by which to divide quantity
[in]subdomainsSubdomains over which to compute maximum

Definition at line 252 of file Component.C.

256{
257 const std::string class_name = "ElementExtremeFunctorValue";
258 InputParameters params = _factory.getValidParams(class_name);
259 params.set<std::vector<SubdomainName>>("block") = subdomains;
260 params.set<MooseEnum>("value_type") = "max";
261 params.set<MooseFunctorName>("functor") = functor_name;
262 params.set<Real>("scale") = 1.0 / normalization;
263 params.set<ExecFlagEnum>("execute_on") = EXEC_NONLINEAR_CONVERGENCE;
264 params.set<std::vector<OutputName>>("outputs") = {"none"};
265 getTHMProblem().addPostprocessor(class_name, pp_name, params);
266}

Referenced by FlowChannel1Phase::addMooseObjects(), and HeatStructureBase::addMooseObjects().

◆ addMooseObjects()

void HeatStructureBase::addMooseObjects ( )
overridevirtualinherited

Reimplemented from Component.

Definition at line 72 of file HeatStructureBase.C.

73{
75
76 if (isParamValid("solid_properties"))
77 {
78 const auto sp_names = getParam<std::vector<UserObjectName>>("solid_properties");
79 const auto T_ref = getParam<std::vector<Real>>("solid_properties_T_ref");
80 for (unsigned int i = 0; i < sp_names.size(); i++)
81 addConstantDensitySolidPropertiesMaterial(sp_names[i], T_ref[i], i);
82
83 // add objects needed for ComponentsConvergence
85 const auto & blocks = getSubdomainNames();
86 for (const auto i : make_range(blocks.size()))
87 {
89 addMaximumFunctorPostprocessor("hs_T_step", blocks[i] + "_T_step", T_ref[i], {blocks[i]});
90 addResidualNormPostprocessor(blocks[i], sp_names[i], T_ref[i]);
91 }
92
93 std::vector<PostprocessorName> pp_names;
94 std::vector<std::string> descriptions;
95 std::vector<Real> tolerances;
96 for (const auto i : make_range(blocks.size()))
97 {
98 pp_names.push_back(blocks[i] + "_T_step");
99 descriptions.push_back("T step (" + blocks[i] + ")");
100 tolerances.push_back(getParam<Real>("T_rel_step_tol"));
101 }
102 for (const auto i : make_range(blocks.size()))
103 {
104 pp_names.push_back(blocks[i] + "_res");
105 descriptions.push_back("residual (" + blocks[i] + ")");
106 tolerances.push_back(getParam<Real>("res_tol"));
107 }
108 addMultiPostprocessorConvergence(pp_names, descriptions, tolerances);
109 }
110}
void addMaximumFunctorPostprocessor(const std::string &functor_name, const std::string &pp_name, const Real normalization, const std::vector< SubdomainName > &subdomains)
Adds a Postprocessor to compute the maximum of a functor over some domain.
Definition Component.C:252
void addNonlinearStepFunctorMaterial(const std::string &functor_name, const std::string &property, bool functor_is_ad)
Adds a functor material to compute the absolute value of the change (step) of some functor between no...
Definition Component.C:236
void addMultiPostprocessorConvergence(const std::vector< PostprocessorName > &postprocessors, const std::vector< std::string > &descriptions, const std::vector< Real > &tolerances)
Adds a MultiPostprocessorConvergence for nonlinear convergence for the component.
Definition Component.C:269
void addAverageElementSizePostprocessor(const SubdomainName &block)
Adds a PP for the average element size on a block.
void addConstantDensitySolidPropertiesMaterial(const UserObjectName &sp_name, const Real &T_ref, unsigned int i_region) const
Adds a ADConstantDensityThermalSolidPropertiesMaterial for a heat structure region.
void addResidualNormPostprocessor(const SubdomainName &block, const UserObjectName &sp_name, Real T_ref)
Adds a residual norm PP for a block.
void addMooseObjects()
Method to be called in the component's addMooseObjects() method.
bool isParamValid(const std::string &name) const
IntRange< T > make_range(T beg, T end)

◆ addMultiPostprocessorConvergence()

void Component::addMultiPostprocessorConvergence ( const std::vector< PostprocessorName > &  postprocessors,
const std::vector< std::string > &  descriptions,
const std::vector< Real > &  tolerances 
)
protectedinherited

Adds a MultiPostprocessorConvergence for nonlinear convergence for the component.

Parameters
[in]postprocessorsPostprocessors to compare
[in]descriptionsDescription of each Postprocessor
[in]tolerancesTolerance for each check

Definition at line 269 of file Component.C.

272{
273 const std::string class_name = "MultiPostprocessorConvergence";
274 InputParameters params = _factory.getValidParams(class_name);
275 params.set<std::vector<PostprocessorName>>("postprocessors") = postprocessors;
276 params.set<std::vector<std::string>>("descriptions") = descriptions;
277 params.set<std::vector<Real>>("tolerances") = tolerances;
278 params.set<unsigned int>("min_iterations") = 1;
279 params.set<unsigned int>("max_iterations") = std::numeric_limits<unsigned int>::max();
281}
std::string nonlinearConvergenceName() const
Nonlinear Convergence name.
Definition Component.h:486
virtual void addConvergence(const std::string &type, const std::string &name, InputParameters &parameters)

Referenced by FlowChannel1Phase::addMooseObjects(), and HeatStructureBase::addMooseObjects().

◆ addNode()

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

Definition at line 203 of file Component.C.

204{
205 auto node = mesh().addNode(pt);
206 _node_ids.push_back(node->id());
207 return node;
208}
std::vector< dof_id_type > _node_ids
Node IDs of this component.
Definition Component.h:506
Node * addNode(const Point &pt)
Add a new node into the mesh.
Definition THMMesh.C:95

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

◆ addNodeElement()

Elem * Component::addNodeElement ( dof_id_type  node)
protectedinherited

Definition at line 211 of file Component.C.

212{
213 auto elem = mesh().addNodeElement(node);
214 _elem_ids.push_back(elem->id());
215 return elem;
216}
Elem * addNodeElement(dof_id_type node)
Definition THMMesh.C:116

Referenced by VolumeJunction1Phase::setupMesh().

◆ addNonlinearStepFunctorMaterial()

void Component::addNonlinearStepFunctorMaterial ( const std::string &  functor_name,
const std::string &  property,
bool  functor_is_ad 
)
protectedinherited

Adds a functor material to compute the absolute value of the change (step) of some functor between nonlinear iterations.

Parameters
[in]functor_nameFunctor for which to compute step
[in]propertyName of new step functor material property
[in]functor_is_adIs the functor for which to compute the step AD?

Definition at line 236 of file Component.C.

239{
240 const std::string class_name =
241 functor_is_ad ? "ADFunctorChangeFunctorMaterial" : "FunctorChangeFunctorMaterial";
242 InputParameters params = _factory.getValidParams(class_name);
243 params.set<std::vector<SubdomainName>>("block") = getSubdomainNames();
244 params.set<MooseFunctorName>("functor") = functor_name;
245 params.set<MooseEnum>("change_over") = "nonlinear";
246 params.set<std::string>("prop_name") = property;
247 params.set<bool>("take_absolute_value") = true;
248 getTHMProblem().addFunctorMaterial(class_name, genName(name(), property + "_fmat"), params);
249}
virtual void addFunctorMaterial(const std::string &functor_material_name, const std::string &name, InputParameters &parameters)
const std::string & name() const

Referenced by FlowChannel1Phase::addMooseObjects(), and HeatStructureBase::addMooseObjects().

◆ addRelationshipManager()

void Component::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 
)
privateinherited

Method for adding a single relationship manager.

This method was copied from Action.

Parameters
moose_object_parsThe parameters of the MooseObject that requested the RM
rm_nameThe class type of the RM, e.g. ElementSideNeighborLayers
rm_typeThe RelationshipManagerType, e.g. geometric, algebraic, coupling
rm_input_parameter_funcThe RM callback function, typically a lambda defined in the requesting MooseObject's validParams function
sys_typeA RMSystemType that can be used to limit the systems and consequent dof_maps that the RM can be attached to

Definition at line 163 of file Component.C.

169{
170 // These need unique names
171 static unsigned int unique_object_id = 0;
172
173 auto new_name = moose_object_pars.getBase() + '_' + name() + '_' + rm_name + "_" +
174 Moose::stringify(rm_type) + " " + std::to_string(unique_object_id);
175
176 auto rm_params = _factory.getValidParams(rm_name);
177 rm_params.set<Moose::RelationshipManagerType>("rm_type") = rm_type;
178
179 rm_params.set<std::string>("for_whom") = name();
180
181 // If there is a callback for setting the RM parameters let's use it
182 if (rm_input_parameter_func)
183 rm_input_parameter_func(moose_object_pars, rm_params);
184
185 rm_params.set<MooseMesh *>("mesh") = &_mesh;
186
187 if (!rm_params.areAllRequiredParamsValid())
188 mooseError("Missing required parameters for RelationshipManager " + rm_name + " for object " +
189 name());
190
191 auto rm_obj = _factory.create<RelationshipManager>(rm_name, new_name, rm_params);
192
193 const bool added = _app.addRelationshipManager(rm_obj);
194
195 // Delete the resources created on behalf of the RM if it ends up not being added to the App.
196 if (!added)
198 else // we added it
199 unique_object_id++;
200}
THMMesh & _mesh
The THM mesh TODO: make _mesh private (applications need to switch to getters to avoid breaking)
Definition Component.h:503
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)
void releaseSharedObjects(const MooseObject &moose_object, THREAD_ID tid=0)
const std::string & getBase() const
bool addRelationshipManager(std::shared_ptr< RelationshipManager > relationship_manager)
void mooseError(Args &&... args) const
MooseApp & _app
std::string stringify(const T &t)
RelationshipManagerType

Referenced by Component::addRelationshipManagersFromParameters().

◆ addRelationshipManagers()

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

Adds relationship managers for the component.

Reimplemented in FileMeshPhysicsComponent.

Definition at line 111 of file Component.h.

111{}

◆ 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 148 of file Component.C.

149{
150 const auto & buildable_types = moose_object_pars.getBuildableRelationshipManagerTypes();
151
152 for (const auto & buildable_type : buildable_types)
153 {
154 auto & rm_name = std::get<0>(buildable_type);
155 auto & rm_type = std::get<1>(buildable_type);
156 auto rm_input_parameter_func = std::get<2>(buildable_type);
157
158 addRelationshipManager(moose_object_pars, rm_name, rm_type, rm_input_parameter_func);
159 }
160}
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:163
const std::vector< std::tuple< std::string, Moose::RelationshipManagerType, Moose::RelationshipManagerInputParameterCallback > > & getBuildableRelationshipManagerTypes() const

Referenced by FileMeshPhysicsComponent::addRelationshipManagers().

◆ addResidualNormPostprocessor()

void HeatStructureBase::addResidualNormPostprocessor ( const SubdomainName &  block,
const UserObjectName &  sp_name,
Real  T_ref 
)
protectedinherited

Adds a residual norm PP for a block.

Definition at line 142 of file HeatStructureBase.C.

145{
146 const std::string class_name = "NormalizedHeatStructureResidualNorm";
147 InputParameters params = _factory.getValidParams(class_name);
148 params.set<VariableName>("variable") = HeatConductionModel::TEMPERATURE;
149 params.set<std::vector<SubdomainName>>("block") = {block};
150 params.set<MooseEnum>("norm_type") = "l_inf";
151 params.set<Real>("T_ref") = T_ref;
152 params.set<UserObjectName>("solid_properties") = sp_name;
153 params.set<PostprocessorName>("ref_elem_size") = block + "_havg";
154 params.set<ExecFlagEnum>("execute_on") = EXEC_NONLINEAR_CONVERGENCE;
155 params.set<std::vector<OutputName>>("outputs") = {"none"};
156 getTHMProblem().addPostprocessor(class_name, block + "_res", params);
157}

Referenced by HeatStructureBase::addMooseObjects().

◆ addVariables()

void HeatStructureBase::addVariables ( )
overridevirtualinherited

Reimplemented from Component.

Definition at line 66 of file HeatStructureBase.C.

67{
69}
void addVariables()
Method to be called in the component's addVariables() method.

◆ build2DMesh()

void Component2D::build2DMesh ( )
protectedinherited

Builds a 2D, first-order mesh.

Definition at line 65 of file Component2D.C.

66{
67 unsigned int n_axial_positions = _node_locations.size();
68 std::vector<std::vector<unsigned int>> node_ids(
69 n_axial_positions, std::vector<unsigned int>(_total_elem_number + 1));
70
71 // loop over axial positions
72 for (unsigned int i = 0; i < n_axial_positions; i++)
73 {
74 Point p(_node_locations[i], _axial_offset, 0);
75
76 Node * nd = addNode(p);
77 node_ids[i][0] = nd->id();
78
79 // loop over regions
80 unsigned int l = 1;
81 for (unsigned int j = 0; j < _n_regions; j++)
82 {
83 Real elem_length = _width[j] / _n_part_elems[j];
84 for (unsigned int k = 0; k < _n_part_elems[j]; k++, l++)
85 {
86 p(1) += elem_length;
87 nd = addNode(p);
88 node_ids[i][l] = nd->id();
89 }
90 }
91 }
92
93 auto & boundary_info = mesh().getMesh().get_boundary_info();
94
95 // create elements from nodes
96 unsigned int i = 0;
97 for (unsigned int i_section = 0; i_section < _n_sections; i_section++)
98 {
99 // element axial index for end of axial section
100 unsigned int i_section_end = 0;
101 for (unsigned int ii_section = 0; ii_section <= i_section; ++ii_section)
102 i_section_end += _n_elems[ii_section];
103 i_section_end -= 1;
104
105 for (unsigned int i_local = 0; i_local < _n_elems[i_section]; i_local++)
106 {
107 unsigned int j = 0;
108 for (unsigned int j_section = 0; j_section < _n_regions; j_section++)
109 for (unsigned int j_local = 0; j_local < _n_part_elems[j_section]; j_local++)
110 {
111 Elem * elem = addElementQuad4(
112 node_ids[i][j + 1], node_ids[i][j], node_ids[i + 1][j], node_ids[i + 1][j + 1]);
113 elem->subdomain_id() = _subdomain_ids[j_section];
114
115 // exterior axial boundaries (all radial sections)
116 if (i == 0)
117 {
118 boundary_info.add_side(elem, 0, _start_bc_id);
120 std::tuple<dof_id_type, unsigned short int>(elem->id(), 0));
121 }
122 if (i == _n_elem - 1)
123 {
124 boundary_info.add_side(elem, 2, _end_bc_id);
126 std::tuple<dof_id_type, unsigned short int>(elem->id(), 2));
127 }
128
129 // exterior axial boundaries (per radial section)
130 if (_names.size() > 1)
131 {
132 if (i == 0)
133 {
134 boundary_info.add_side(elem, 0, _radial_start_bc_id[j_section]);
135 _boundary_info[_boundary_names_radial_start[j_section]].push_back(
136 std::tuple<dof_id_type, unsigned short int>(elem->id(), 0));
137 }
138 if (i == _n_elem - 1)
139 {
140 boundary_info.add_side(elem, 2, _radial_end_bc_id[j_section]);
141 _boundary_info[_boundary_names_radial_end[j_section]].push_back(
142 std::tuple<dof_id_type, unsigned short int>(elem->id(), 2));
143 }
144 }
145
146 // interior axial boundaries (per radial section)
147 if (_n_sections > 1 && _axial_region_names.size() == _n_sections &&
148 i_section != _n_sections - 1 && i == i_section_end)
149 {
150 const unsigned int k = i_section * _n_regions + j_section;
151 boundary_info.add_side(elem, 2, _interior_axial_per_radial_section_bc_id[k]);
153 std::tuple<dof_id_type, unsigned short int>(elem->id(), 2));
154 }
155
156 // exterior radial boundaries (all axial sections)
157 if (j == 0)
158 {
159 boundary_info.add_side(elem, 1, _inner_bc_id);
161 std::tuple<dof_id_type, unsigned short int>(elem->id(), 1));
162 }
163 if (j == _total_elem_number - 1)
164 {
165 boundary_info.add_side(elem, 3, _outer_bc_id);
167 std::tuple<dof_id_type, unsigned short int>(elem->id(), 3));
168 }
169
170 // exterior radial boundaries (per axial section)
171 if (_n_sections > 1 && _axial_region_names.size() == _n_sections)
172 {
173 if (j == 0)
174 {
175 boundary_info.add_side(elem, 1, _axial_inner_bc_id[i_section]);
176 _boundary_info[_boundary_names_axial_inner[i_section]].push_back(
177 std::tuple<dof_id_type, unsigned short int>(elem->id(), 1));
178 }
179 if (j == _total_elem_number - 1)
180 {
181 boundary_info.add_side(elem, 3, _axial_outer_bc_id[i_section]);
182 _boundary_info[_boundary_names_axial_outer[i_section]].push_back(
183 std::tuple<dof_id_type, unsigned short int>(elem->id(), 3));
184 }
185 }
186
187 // interior radial boundaries (all axial sections)
188 if (_n_regions > 1 && _names.size() == _n_regions && j_section != 0)
189 {
190 unsigned int j_section_begin = 0;
191 for (unsigned int jj_section = 0; jj_section < j_section; ++jj_section)
192 j_section_begin += _n_part_elems[jj_section];
193
194 if (j == j_section_begin)
195 {
196 boundary_info.add_side(elem, 1, _inner_radial_bc_id[j_section - 1]);
197 _boundary_info[_boundary_names_inner_radial[j_section - 1]].push_back(
198 std::tuple<dof_id_type, unsigned short int>(elem->id(), 1));
199 }
200 }
201
202 j++;
203 }
204
205 i++;
206 }
207 }
208}
const Real p
std::vector< Real > _width
Width of each transverse region.
std::vector< BoundaryName > _boundary_names_interior_axial_per_radial_section
Boundary names of the interior axial boundaries (per radial section) of the component.
std::vector< BoundaryName > _boundary_names_axial_inner
Boundary names of the axial regions of the inner side of the component.
unsigned int _n_regions
Number of transverse regions.
unsigned int _end_bc_id
BC ID of the component (end)
std::map< BoundaryName, std::vector< std::tuple< dof_id_type, unsigned short int > > > _boundary_info
Map of boundary name to list of tuples of element and side IDs for that boundary.
std::vector< unsigned int > _inner_radial_bc_id
BC ID of the inner radial boundary regions of the component.
std::vector< unsigned int > _radial_end_bc_id
BC ID of the radial regions of the end boundary of the component.
std::vector< BoundaryName > _boundary_names_axial_outer
Boundary names of the axial regions of the outer side of the component.
BoundaryName _boundary_name_inner
Boundary name of the inner side of the component.
unsigned int _total_elem_number
Total number of transverse elements.
BoundaryName _boundary_name_outer
Boundary name of the outer side of the component.
unsigned int _outer_bc_id
BC ID of the component (outer)
std::vector< unsigned int > _radial_start_bc_id
BC ID of the radial regions of the start boundary of the component.
std::vector< BoundaryName > _boundary_names_inner_radial
Boundary names of the inner radial boundary regions of the component.
unsigned int _inner_bc_id
BC ID of the component (inner)
unsigned int _start_bc_id
BC ID of the component (start)
std::vector< unsigned int > _interior_axial_per_radial_section_bc_id
BC ID of the interior axial boundaries (per radial section) of the component.
std::vector< unsigned int > _axial_outer_bc_id
BC ID of the axial regions of the outer boundary of the component.
std::vector< std::string > _names
Names of each transverse region.
BoundaryName _boundary_name_end
Boundary name of the end side of the component.
std::vector< unsigned int > _n_part_elems
Number of elements in each transverse region.
std::vector< BoundaryName > _boundary_names_radial_end
Boundary names of the radial regions of the end side of the component.
Real _axial_offset
Distance by which to offset the mesh from the component axis.
std::vector< unsigned int > _axial_inner_bc_id
BC ID of the axial regions of the inner boundary of the component.
std::vector< BoundaryName > _boundary_names_radial_start
Boundary names of the radial regions of the start side of the component.
BoundaryName _boundary_name_start
Boundary name of the start side of the component.
Node * addNode(const Point &pt)
Definition Component.C:203
std::vector< SubdomainID > _subdomain_ids
List of subdomain IDs this components owns.
Definition Component.h:511
unsigned int _n_elem
Total number of axial elements.
const unsigned int _n_sections
Number of axial sections.
std::vector< unsigned int > _n_elems
Number of elements in each axial section.
std::vector< Real > _node_locations
Node locations along the main axis.
const std::vector< std::string > & _axial_region_names
Axial region names.
Elem * addElementQuad4(dof_id_type node0, dof_id_type node1, dof_id_type node2, dof_id_type node3)
MeshBase & getMesh()

Referenced by Component2D::buildMesh().

◆ build2DMesh2ndOrder()

void Component2D::build2DMesh2ndOrder ( )
protectedinherited

Builds a 2D, second-order mesh.

Definition at line 211 of file Component2D.C.

212{
213 unsigned int n_axial_positions = _node_locations.size();
214 std::vector<std::vector<unsigned int>> node_ids(
215 n_axial_positions, std::vector<unsigned int>(2 * _total_elem_number + 1));
216
217 // loop over axial positions
218 for (unsigned int i = 0; i < n_axial_positions; i++)
219 {
220 Point p(_node_locations[i], _axial_offset, 0);
221
222 const Node * nd = addNode(p);
223 node_ids[i][0] = nd->id();
224
225 // loop over regions
226 unsigned int l = 1;
227 for (unsigned int j = 0; j < _n_regions; j++)
228 {
229 Real elem_length = _width[j] / (2. * _n_part_elems[j]);
230 for (unsigned int k = 0; k < 2. * _n_part_elems[j]; k++, l++)
231 {
232 p(1) += elem_length;
233 nd = addNode(p);
234 node_ids[i][l] = nd->id();
235 }
236 }
237 }
238
239 auto & boundary_info = mesh().getMesh().get_boundary_info();
240
241 // create elements from nodes
242 unsigned int i = 0;
243 for (unsigned int i_section = 0; i_section < _n_sections; i_section++)
244 for (unsigned int i_local = 0; i_local < _n_elems[i_section]; i_local++)
245 {
246 unsigned int j = 0;
247 for (unsigned int j_section = 0; j_section < _n_regions; j_section++)
248 for (unsigned int j_local = 0; j_local < _n_part_elems[j_section]; j_local++)
249 {
250 Elem * elem = addElementQuad9(node_ids[2 * i][2 * j],
251 node_ids[2 * i][2 * (j + 1)],
252 node_ids[2 * (i + 1)][2 * (j + 1)],
253 node_ids[2 * (i + 1)][2 * j],
254 node_ids[2 * i][(2 * j) + 1],
255 node_ids[(2 * i) + 1][2 * (j + 1)],
256 node_ids[2 * (i + 1)][(2 * j) + 1],
257 node_ids[(2 * i) + 1][(2 * j)],
258 node_ids[(2 * i) + 1][(2 * j) + 1]);
259 elem->subdomain_id() = _subdomain_ids[j_section];
260
261 if (i == 0)
262 {
263 boundary_info.add_side(elem, 0, _start_bc_id);
265 std::tuple<dof_id_type, unsigned short int>(elem->id(), 0));
266 }
267 if (i == _n_elem - 1)
268 {
269 boundary_info.add_side(elem, 2, _end_bc_id);
271 std::tuple<dof_id_type, unsigned short int>(elem->id(), 2));
272 }
273 if (_names.size() > 1)
274 {
275 if (i == 0)
276 {
277 boundary_info.add_side(elem, 0, _radial_start_bc_id[j_section]);
278 _boundary_info[_boundary_names_radial_start[j_section]].push_back(
279 std::tuple<dof_id_type, unsigned short int>(elem->id(), 0));
280 }
281 if (i == _n_elem - 1)
282 {
283 boundary_info.add_side(elem, 2, _radial_end_bc_id[j_section]);
284 _boundary_info[_boundary_names_radial_end[j_section]].push_back(
285 std::tuple<dof_id_type, unsigned short int>(elem->id(), 2));
286 }
287 }
288
289 if (j == 0)
290 {
291 boundary_info.add_side(elem, 3, _inner_bc_id);
293 std::tuple<dof_id_type, unsigned short int>(elem->id(), 3));
294 }
295 if (j == _total_elem_number - 1)
296 {
297 boundary_info.add_side(elem, 1, _outer_bc_id);
299 std::tuple<dof_id_type, unsigned short int>(elem->id(), 1));
300 }
301
302 if (_n_sections > 1 && _axial_region_names.size() == _n_sections)
303 {
304 if (j == 0)
305 {
306 boundary_info.add_side(elem, 1, _axial_inner_bc_id[i_section]);
307 _boundary_info[_boundary_names_axial_inner[i_section]].push_back(
308 std::tuple<dof_id_type, unsigned short int>(elem->id(), 1));
309 }
310 if (j == _total_elem_number - 1)
311 {
312 boundary_info.add_side(elem, 3, _axial_outer_bc_id[i_section]);
313 _boundary_info[_boundary_names_axial_outer[i_section]].push_back(
314 std::tuple<dof_id_type, unsigned short int>(elem->id(), 3));
315 }
316 }
317
318 // interior radial boundaries
319 if (_n_regions > 1 && _names.size() == _n_regions && j_section != 0)
320 {
321 unsigned int j_section_begin = 0;
322 for (unsigned int jj_section = 0; jj_section < j_section; ++jj_section)
323 j_section_begin += _n_part_elems[jj_section];
324
325 if (j == j_section_begin)
326 {
327 boundary_info.add_side(elem, 1, _inner_radial_bc_id[j_section - 1]);
328 _boundary_info[_boundary_names_inner_radial[j_section - 1]].push_back(
329 std::tuple<dof_id_type, unsigned short int>(elem->id(), 1));
330 }
331 }
332
333 j++;
334 }
335
336 i++;
337 }
338}
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)

Referenced by Component2D::buildMesh().

◆ buildMesh()

void Component2D::buildMesh ( )
overridevirtualinherited

Implements GeneratedMeshComponent.

Definition at line 341 of file Component2D.C.

342{
343 if (_n_part_elems.size() != _n_regions || _width.size() != _n_regions)
344 return;
345
346 // Assign subdomain to each transverse region
347 for (unsigned int i = 0; i < _n_regions; i++)
348 {
349 // The coordinate system for MOOSE is always XYZ, even for axisymmetric
350 // components, since we do the RZ integration ourselves until we can set
351 // arbitrary number of axis symmetries in MOOSE.
352 setSubdomainInfo(mesh().getNextSubdomainId(), genName(_name, _names[i]), Moose::COORD_XYZ);
353 }
354
355 // Create boundary IDs and associated boundary names
358 _boundary_name_inner = genName(name(), "inner");
359 _boundary_name_outer = genName(name(), "outer");
363 if (_n_sections > 1 && _axial_region_names.size() == _n_sections)
364 for (unsigned int i = 0; i < _n_sections; i++)
365 {
366 _axial_inner_bc_id.push_back(mesh().getNextBoundaryId());
367 _axial_outer_bc_id.push_back(mesh().getNextBoundaryId());
368 const BoundaryName boundary_name_axial_inner =
369 genName(name(), _axial_region_names[i], "inner");
370 const BoundaryName boundary_name_axial_outer =
371 genName(name(), _axial_region_names[i], "outer");
372 _boundary_names_axial_inner.push_back(boundary_name_axial_inner);
373 _boundary_names_axial_outer.push_back(boundary_name_axial_outer);
374 _boundary_name_to_area[boundary_name_axial_inner] =
376 _boundary_name_to_area[boundary_name_axial_outer] =
378 }
379
380 // exterior axial boundaries
383 _boundary_name_start = genName(name(), "start");
384 _boundary_name_end = genName(name(), "end");
387 if (_names.size() > 1)
388 {
389 Real y1 = 0.0;
390 for (unsigned int i = 0; i < _names.size(); i++)
391 {
392 const Real y2 = y1 + _width[i];
393
394 _radial_start_bc_id.push_back(mesh().getNextBoundaryId());
395 _radial_end_bc_id.push_back(mesh().getNextBoundaryId());
396 const BoundaryName boundary_name_radial_start = genName(name(), _names[i], "start");
397 const BoundaryName boundary_name_radial_end = genName(name(), _names[i], "end");
398 _boundary_names_radial_start.push_back(boundary_name_radial_start);
399 _boundary_names_radial_end.push_back(boundary_name_radial_end);
400 _boundary_name_to_area[boundary_name_radial_start] = computeAxialBoundaryArea(y1, y2);
401 _boundary_name_to_area[boundary_name_radial_end] = computeAxialBoundaryArea(y1, y2);
402 if (i != _names.size() - 1)
403 {
404 _inner_radial_bc_id.push_back(mesh().getNextBoundaryId());
405 const BoundaryName boundary_name_inner_radial = genName(name(), _names[i], _names[i + 1]);
406 _boundary_names_inner_radial.push_back(boundary_name_inner_radial);
407 _boundary_name_to_area[boundary_name_inner_radial] = computeRadialBoundaryArea(_length, y2);
408 }
409 y1 = y2;
410 }
411 }
412
413 // interior axial boundaries
414 if (_n_sections > 1 && _axial_region_names.size() == _n_sections)
415 for (unsigned int i = 0; i < _n_sections - 1; i++)
416 {
417 Real y1 = 0.0;
418 for (unsigned int j = 0; j < _names.size(); j++)
419 {
420 const Real y2 = y1 + _width[j];
421
422 _interior_axial_per_radial_section_bc_id.push_back(mesh().getNextBoundaryId());
423 const BoundaryName boundary_name_interior_axial_per_radial_section =
426 boundary_name_interior_axial_per_radial_section);
427 _boundary_name_to_area[boundary_name_interior_axial_per_radial_section] =
429 y1 = y2;
430 }
431 }
432
433 // Build the mesh
436 else
437 build2DMesh();
438
439 // Set boundary names
440 auto & binfo = mesh().getMesh().get_boundary_info();
441 binfo.sideset_name(_inner_bc_id) = _boundary_name_inner;
442 binfo.sideset_name(_outer_bc_id) = _boundary_name_outer;
443 if (_n_sections > 1 && _axial_region_names.size() == _n_sections)
444 for (unsigned int i = 0; i < _n_sections; i++)
445 {
446 binfo.sideset_name(_axial_inner_bc_id[i]) = _boundary_names_axial_inner[i];
447 binfo.sideset_name(_axial_outer_bc_id[i]) = _boundary_names_axial_outer[i];
448 }
449 binfo.sideset_name(_start_bc_id) = _boundary_name_start;
450 binfo.sideset_name(_end_bc_id) = _boundary_name_end;
451 if (_names.size() > 1)
452 for (unsigned int i = 0; i < _names.size(); i++)
453 {
454 binfo.sideset_name(_radial_start_bc_id[i]) = _boundary_names_radial_start[i];
455 binfo.sideset_name(_radial_end_bc_id[i]) = _boundary_names_radial_end[i];
456 if (i != _names.size() - 1)
457 binfo.sideset_name(_inner_radial_bc_id[i]) = _boundary_names_inner_radial[i];
458 }
459 for (unsigned int k = 0; k < _interior_axial_per_radial_section_bc_id.size(); k++)
460 binfo.sideset_name(_interior_axial_per_radial_section_bc_id[k]) =
462}
std::map< BoundaryName, Real > _boundary_name_to_area
Map of boundary name to boundary area.
const Real & getTotalWidth() const
Gets the total width of all transverse regions.
Definition Component2D.h:33
virtual Real computeAxialBoundaryArea(const Real &y_min, const Real &y_max) const =0
Computes the area of an axial boundary.
void build2DMesh()
Builds a 2D, first-order mesh.
Definition Component2D.C:65
virtual Real computeRadialBoundaryArea(const Real &length, const Real &y) const =0
Computes the area of a radial boundary.
void build2DMesh2ndOrder()
Builds a 2D, second-order mesh.
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:219
std::vector< Real > _lengths
Length of each axial section.
virtual bool usingSecondOrderMesh() const =0
Check if second order mesh is being used by this geometrical component.
const std::string & _name
virtual BoundaryID getNextBoundaryId()
Gets the next nodeset or sideset ID.
Definition THMMesh.C:209

◆ buildModel()

std::shared_ptr< HeatConductionModel > HeatStructureInterface::buildModel ( )
protectedvirtualinherited

Builds the heat conduction model.

Definition at line 34 of file HeatStructureInterface.C.

35{
37
38 const std::string class_name = "HeatConductionModel";
39 InputParameters params = factory.getValidParams(class_name);
40 params.set<THMProblem *>("_thm_problem") = &_geometrical_component_hsi.getTHMProblem();
41 params.set<HeatStructureInterface *>("_hs") = this;
43 return factory.create<HeatConductionModel>(
44 class_name, _geometrical_component_hsi.name(), params, 0);
45}
Provides functions to setup the heat conduction model.
Interface class for heat structure components.
GeometricalComponent & _geometrical_component_hsi
The geometrical component inheriting from this interface.
void applyParameters(const InputParameters &common, const std::vector< std::string > &exclude={}, const bool allow_private=false)
Factory & getFactory()
const InputParameters & parameters() const
MooseApp & getMooseApp() const
Specialization of FEProblem to run with component subsystem.
Definition THMProblem.h:19

Referenced by HeatStructureInterface::init().

◆ check()

void HeatStructureBase::check ( ) const
overrideprotectedvirtualinherited

Check the component integrity.

Reimplemented from Component2D.

Reimplemented in HeatStructureCylindrical, and HeatStructurePlate.

Definition at line 38 of file HeatStructureBase.C.

39{
42}
virtual void check() const override
Check the component integrity.
Definition Component2D.C:47
void check() const
Method to be called in the component's check() method.

Referenced by HeatStructurePlate::check().

◆ 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 141 of file Component.C.

142{
143 if (!_sim.hasComponent(comp_name))
144 logError("The component '", comp_name, "' does not exist");
145}
void logError(Args &&... args) const
Logs an error.
Definition Component.h:226
THMProblem & _sim
THM problem this component is part of TODO: make _sim private (applications need to switch to getters...
Definition Component.h:494
bool hasComponent(const std::string &name) const
Find out if simulation has a component with the given name.

◆ 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 636 of file Component.h.

637{
638 insistParameterExists<std::string>(__FUNCTION__, param);
639
640 const std::string & comp_name = getParam<std::string>(param);
641 checkComponentOfTypeExistsByName<T>(comp_name);
642}

◆ 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 646 of file Component.h.

647{
648 if (!_sim.hasComponentOfType<T>(comp_name))
649 {
650 if (_sim.hasComponent(comp_name))
651 logError("The component '", comp_name, "' is not of type '", demangle(typeid(T).name()), "'");
652 else
653 logError("The component '", comp_name, "' does not exist");
654 }
655}
const double T
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
std::string demangle(const char *name)

◆ checkEqualSize()

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

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 702 of file Component.h.

703{
704 insistParameterExists<std::vector<T1>>(__FUNCTION__, param1);
705 insistParameterExists<std::vector<T2>>(__FUNCTION__, param2);
706
707 const auto & value1 = getParam<std::vector<T1>>(param1);
708 const auto & value2 = getParam<std::vector<T2>>(param2);
709 if (value1.size() != value2.size())
710 logError("The number of entries in parameter '",
711 param1,
712 "' (",
713 value1.size(),
714 ") must equal the number of entries of parameter '",
715 param2,
716 "' (",
717 value2.size(),
718 ")");
719}

◆ checkMutuallyExclusiveParameters()

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

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 284 of file Component.C.

286{
287 unsigned int n_provided_params = 0;
288 for (const auto & param : params)
289 if (isParamValid(param))
290 n_provided_params++;
291
292 if (n_provided_params != 1)
293 {
294 std::string params_list_string = "{'" + params[0] + "'";
295 for (unsigned int i = 1; i < params.size(); ++i)
296 params_list_string += ", '" + params[i] + "'";
297 params_list_string += "}";
298
299 if (n_provided_params == 0 && need_one_specified)
300 logError("One of the parameters ", params_list_string, " must be provided");
301
302 if (n_provided_params != 0)
303 logError("Only one of the parameters ", params_list_string, " can be provided");
304 }
305}
if(subdm)

◆ checkParameterValueLessThan()

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

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 659 of file Component.h.

660{
661 insistParameterExists<T>(__FUNCTION__, param);
662
663 const auto & value = getParam<T>(param);
664 if (value >= value_max)
665 logError("The value of parameter '", param, "' (", value, ") must be less than ", value_max);
666}
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.

118{
119 if (_component_setup_status < status)
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:309
EComponentSetupStatus _component_setup_status
Component setup status.
Definition Component.h:539

Referenced by FlowChannelBase::getAreaFunctionName(), Component2D::getBoundaryArea(), Component2D::getBoundaryInfo(), 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(), Component::getNodeIDs(), Component1DConnection::getNodeIDs(), Component1D::getNodesetID(), Component1D::getNodesetName(), Component::getSubdomainNames(), HeatTransfer1PhaseBase::getWallHeatTransferCoefficient1PhaseName(), HeatTransferBase::getWallTemperatureMatName(), HeatTransferBase::getWallTemperatureName(), Component2D::hasBoundary(), FileMeshComponent::hasBoundary(), Component2D::hasExternalBoundary(), and HeatStructureFromFile3D::hasRegion().

◆ checkSizeEqualsParameterValue()

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

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 760 of file Component.h.

762{
763 insistParameterExists<std::vector<T1>>(__FUNCTION__, param1);
764 insistParameterExists<T2>(__FUNCTION__, param2);
765
766 const auto & value1 = getParam<std::vector<T1>>(param1);
767 const auto & value2 = getParam<T2>(param2);
768 if (value1.size() != value2)
769 logError("The number of entries in parameter '",
770 param1,
771 "' (",
772 value1.size(),
773 ") must be equal to the value of parameter '",
774 param2,
775 "' (",
776 value2,
777 ")");
778}

◆ checkSizeEqualsValue() [1/2]

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

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 723 of file Component.h.

724{
725 insistParameterExists<std::vector<T>>(__FUNCTION__, param);
726
727 const auto & param_value = getParam<std::vector<T>>(param);
728 if (param_value.size() != n_entries)
729 logError("The number of entries in parameter '",
730 param,
731 "' (",
732 param_value.size(),
733 ") must be equal to ",
734 n_entries);
735}

◆ checkSizeEqualsValue() [2/2]

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

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 739 of file Component.h.

742{
743 insistParameterExists<std::vector<T>>(__FUNCTION__, param);
744
745 const auto & param_value = getParam<std::vector<T>>(param);
746 if (param_value.size() != n_entries)
747 logError("The number of entries in parameter '",
748 param,
749 "' (",
750 param_value.size(),
751 ") must be equal to ",
752 description,
753 " (",
754 n_entries,
755 ")");
756}

◆ checkSizeGreaterThan()

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

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 686 of file Component.h.

687{
688 insistParameterExists<std::vector<T>>(__FUNCTION__, param);
689
690 const auto & value = getParam<std::vector<T>>(param);
691 if (value.size() <= n_entries)
692 logError("The number of entries in the parameter '",
693 param,
694 "' (",
695 value.size(),
696 ") must be greater than ",
697 n_entries);
698}

◆ checkSizeLessThan()

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

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 670 of file Component.h.

671{
672 insistParameterExists<std::vector<T>>(__FUNCTION__, param);
673
674 const auto & value = getParam<std::vector<T>>(param);
675 if (value.size() >= n_entries)
676 logError("The number of entries in the parameter '",
677 param,
678 "' (",
679 value.size(),
680 ") must be less than ",
681 n_entries);
682}

◆ 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.

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:489

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

◆ computeAxialBoundaryArea()

Real HeatStructureCylindricalBase::computeAxialBoundaryArea ( const Real &  y_min,
const Real &  y_max 
) const
overridevirtual

Computes the area of an axial boundary.

Parameters
[in]y_minMinimum transverse position of the surface, which ranges from 0 (inner) to total width (outer).
[in]y_maxMaximum transverse position of the surface, which ranges from 0 (inner) to total width (outer).

Implements Component2D.

Definition at line 60 of file HeatStructureCylindricalBase.C.

61{
62 return libMesh::pi * (std::pow(_inner_radius + y_max, 2) - std::pow(_inner_radius + y_min, 2));
63}
Real _inner_radius
Inner radius of the heat structure.
const Real pi

◆ computeAxialCoordinate()

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

Definition at line 110 of file DiscreteLineSegmentInterface.C.

111{
112 const Real ax_coord = _dir * (p - _position);
113 if (MooseUtils::absoluteFuzzyLessThan(ax_coord, 0.0) ||
114 MooseUtils::absoluteFuzzyGreaterThan(ax_coord, _length))
116 ": The point ",
117 p,
118 " has an invalid axial coordinate (",
119 ax_coord,
120 "). Valid axial coordinates are in the range (0,",
121 _length,
122 ").");
123 else
124 return ax_coord;
125}
void mooseError(Args &&... args)
const Point & _position
Start position of axis in 3-D space.
const std::string _moose_object_name_dlsi
Name of the MOOSE object.
const RealVectorValue _dir
Normalized direction of axis from start position to end position.

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

◆ computeDirectionTransformationTensor()

RealTensorValue DiscreteLineSegmentInterface::computeDirectionTransformationTensor ( const RealVectorValue &  dir)
staticinherited

Computes the direction transformation tensor.

Parameters
[in]dirDirection vector

Definition at line 85 of file DiscreteLineSegmentInterface.C.

86{
87 if (MooseUtils::absoluteFuzzyEqual(dir.norm(), 0.0))
88 mooseError("The direction vector must not be the zero vector.");
89
90 const auto dir_normalized = dir / dir.norm();
91 const Real theta = acos(dir_normalized(2));
92 const Real aphi = atan2(dir_normalized(1), dir_normalized(0));
93 return RealTensorValue(
94 RealVectorValue(cos(aphi) * sin(theta), -sin(aphi), -cos(aphi) * cos(theta)),
95 RealVectorValue(sin(aphi) * sin(theta), cos(aphi), -sin(aphi) * cos(theta)),
96 RealVectorValue(cos(theta), 0.0, sin(theta)));
97}
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sin(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tan
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template cos(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(cos
TensorValue< Real > RealTensorValue
VectorValue< Real > RealVectorValue

Referenced by DiscreteLineSegmentInterface::getElementBoundaryCoordinates().

◆ computeNumberOfNodes()

unsigned int GeneratedMeshComponent::computeNumberOfNodes ( unsigned int  n_elems)
privateinherited

Computes the number of axial nodes from the number of elements.

Parameters
[in]n_elemsThe number of axial elements

Definition at line 71 of file GeneratedMeshComponent.C.

72{
73 return usingSecondOrderMesh() ? (2 * n_elems) + 1 : n_elems + 1;
74}

Referenced by GeneratedMeshComponent::generateNodeLocations().

◆ computeRadialBoundaryArea()

Real HeatStructureCylindricalBase::computeRadialBoundaryArea ( const Real &  length,
const Real &  y 
) const
overridevirtual

Computes the area of a radial boundary.

Parameters
[in]lengthLength of the radial boundary
[in]yTransverse position of the surface, which ranges from 0 (inner) to total width (outer).

Implements Component2D.

Definition at line 54 of file HeatStructureCylindricalBase.C.

55{
56 return length * 2 * libMesh::pi * (_inner_radius + y);
57}
const std::vector< double > y

◆ computeRadialCoordinate()

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

Definition at line 128 of file DiscreteLineSegmentInterface.C.

129{
130 const RealVectorValue v = (p - _position);
131 return v.cross(_dir).norm();
132}
const double v
TypeVector< typename CompareTypes< T, T2 >::supertype > cross(const TypeVector< T2 > &v) const

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue().

◆ 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 166 of file DiscreteLineSegmentInterface.C.

167{
169}
Point computeRealPointFromReferencePoint(const Point &p) const
Computes point in 3-D space from a point in reference space.
const RealTensorValue _R
Direction transformation tensor.
const RealTensorValue _Rx
Rotational transformation tensor about x-axis.

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

◆ 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 157 of file DiscreteLineSegmentInterface.C.

161{
162 return R * (Rx * p) + position;
163}
const double R

◆ 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 181 of file DiscreteLineSegmentInterface.C.

182{
184}
const RealTensorValue _Rx_inv
Inverse rotational transformation tensor about x-axis.
const RealTensorValue _R_inv
Inverse direction transformation tensor.
Point computeReferencePointFromRealPoint(const Point &p) const
Computes point in reference space from a point in 3-D space.

Referenced by DiscreteLineSegmentInterface::computeReferencePointFromRealPoint().

◆ 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 172 of file DiscreteLineSegmentInterface.C.

176{
177 return Rx_inv * R_inv * (p - position);
178}

◆ 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 100 of file DiscreteLineSegmentInterface.C.

101{
102 const Real rotation_rad = M_PI * rotation / 180.;
103 const RealVectorValue Rx_x(1., 0., 0.);
104 const RealVectorValue Rx_y(0., cos(rotation_rad), -sin(rotation_rad));
105 const RealVectorValue Rx_z(0., sin(rotation_rad), cos(rotation_rad));
106 return RealTensorValue(Rx_x, Rx_y, Rx_z);
107}

Referenced by DiscreteLineSegmentInterface::getElementBoundaryCoordinates().

◆ connectObject() [1/2]

void Component::connectObject ( const InputParameters obj_params,
const std::string &  obj_name,
const std::string &  comp_param,
const std::string &  obj_param 
) const
inherited

Connects a controllable parameter of the component to a controllable parameter of a constituent object.

This is achieved by creating a "controllable parameter alias".

Parameters
[in]obj_paramsConstituent object input parameters object
[in]obj_nameConstituent object name
[in]comp_paramControllable component parameter
[in]obj_paramConstituent object parameter

Definition at line 106 of file Component.C.

110{
111 MooseObjectParameterName alias("component", this->name(), comp_param, "::");
112 MooseObjectParameterName obj_controlled_param(obj_params.getBase(), obj_name, obj_param);
114}
void addControllableParameterAlias(const MooseObjectParameterName &alias, const MooseObjectParameterName &secondary)
InputParameterWarehouse & getInputParameterWarehouse()

◆ connectObject() [2/2]

void Component::connectObject ( const InputParameters obj_params,
const std::string &  obj_name,
const std::string &  param 
) const
inherited

Connects a controllable parameter of the component to a controllable parameter of a constituent object.

This version assumes that the component and object have the same control parameter name.

Parameters
[in]obj_paramsConstituent object input parameters object
[in]obj_nameConstituent object name
[in]paramControllable parameter name (same in both component and constituent object)

Definition at line 98 of file Component.C.

101{
102 connectObject(obj_params, obj_name, param, param);
103}
void connectObject(const InputParameters &obj_params, const std::string &obj_name, const std::string &param) const
Connects a controllable parameter of the component to a controllable parameter of a constituent objec...
Definition Component.C:98

Referenced by GateValve1Phase::addMooseObjects(), HeatSourceFromTotalPower::addMooseObjects(), InletDensityVelocity1Phase::addMooseObjects(), InletMassFlowRateTemperature1Phase::addMooseObjects(), InletStagnationPressureTemperature1Phase::addMooseObjects(), InletVelocityTemperature1Phase::addMooseObjects(), Outlet1Phase::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), TotalPower::addMooseObjects(), Closures1PhaseTHM::addWallFFMaterial(), VolumeJunction1Phase::buildVolumeJunctionUserObject(), JunctionParallelChannels1Phase::buildVolumeJunctionUserObject(), Pump1Phase::buildVolumeJunctionUserObject(), ShaftConnectedCompressor1Phase::buildVolumeJunctionUserObject(), ShaftConnectedPump1Phase::buildVolumeJunctionUserObject(), ShaftConnectedTurbine1Phase::buildVolumeJunctionUserObject(), SimpleTurbine1Phase::buildVolumeJunctionUserObject(), Component::connectObject(), FlowModel::getVariableFn(), and GeometricalComponent::getVariableFn().

◆ 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 63 of file Component.h.

63{ return _mesh; }

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

◆ 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:416

Referenced by Simulation::integrityCheck().

◆ 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}
virtual void init()
Initializes the component.
Definition Component.h:405

◆ 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{
81}
virtual void initSecondary()
Perform secondary initialization, which relies on init() being called for all components.
Definition Component.h:411

◆ 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:421

◆ generateNodeLocations()

void GeneratedMeshComponent::generateNodeLocations ( )
privateinherited

Generates axial node locations and stores in _node_locations.

Definition at line 77 of file GeneratedMeshComponent.C.

78{
79 unsigned int n_nodes = computeNumberOfNodes(_n_elem);
80 unsigned int start_node = 0;
81 Real start_length = 0.0;
82 _node_locations = std::vector<Real>(n_nodes);
83 _node_locations[0] = start_length;
84
85 for (unsigned int i = 0; i < _n_sections; ++i)
86 {
87 Real section_length = _lengths[i];
88 Real section_n_elems = _n_elems[i];
89 Real section_n_nodes = computeNumberOfNodes(section_n_elems);
90
91 std::vector<Real> section_node_array = getUniformNodeLocations(section_length, section_n_nodes);
92 placeLocalNodeLocations(start_length, start_node, section_node_array);
93
94 start_length += section_length;
95 start_node += (section_n_nodes - 1);
96 }
97}
void placeLocalNodeLocations(Real start_length, unsigned int start_node, std::vector< Real > &local_node_locations)
Puts local positions of axial nodes for an axial section into _node_locations.
unsigned int computeNumberOfNodes(unsigned int n_elems)
Computes the number of axial nodes from the number of elements.
std::vector< Real > getUniformNodeLocations(Real length, unsigned int n_nodes)
Computes the local positions of axial nodes for an axial section.
const dof_id_type n_nodes

Referenced by GeneratedMeshComponent::setupMesh().

◆ genName() [1/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 }

◆ genName() [2/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 }

◆ genName() [3/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 }

◆ genName() [4/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.

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

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

◆ 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.

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

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

◆ 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 201 of file DiscreteLineSegmentInterface.C.

202{
203 return getAlignmentAxis(_dir);
204}
MooseEnum getAlignmentAxis() const
Gets an axis MooseEnum for the axis the component is aligned with.

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

◆ 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 187 of file DiscreteLineSegmentInterface.C.

188{
189 MooseEnum axis("x y z");
190 if (THM::areParallelVectors(dir, RealVectorValue(1, 0, 0)))
191 axis = "x";
192 else if (THM::areParallelVectors(dir, RealVectorValue(0, 1, 0)))
193 axis = "y";
194 else if (THM::areParallelVectors(dir, RealVectorValue(0, 0, 1)))
195 axis = "z";
196
197 return axis;
198}
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.

◆ getAxialElementIndex()

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

Definition at line 146 of file DiscreteLineSegmentInterface.C.

147{
148 const Real axial_coordinate = computeAxialCoordinate(p_center);
149 for (unsigned int i = 0; i < _n_elem; ++i)
150 if (MooseUtils::absoluteFuzzyEqual(axial_coordinate, _x_centers[i]))
151 return i;
152
153 mooseError("No axial element index was found.");
154}
std::vector< Real > _x_centers
Center axial coordinate of each axial element.
Real computeAxialCoordinate(const Point &p) const

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue().

◆ getAxialOffset()

Real Component2D::getAxialOffset ( ) const
inlineinherited

Gets the axial offset for the mesh.

Definition at line 110 of file Component2D.h.

110{ return _axial_offset; }

◆ getAxialSectionIndex()

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

Definition at line 135 of file DiscreteLineSegmentInterface.C.

136{
137 const Real axial_coordinate = computeAxialCoordinate(p);
138 for (unsigned int i = 0; i < _n_sections; ++i)
139 if (MooseUtils::absoluteFuzzyLessEqual(axial_coordinate, _section_end[i]))
140 return i;
141
142 mooseError("No axial section index was found.");
143}
std::vector< Real > _section_end
Axial coordinate of the end of each axial section using the line 'position' as the origin.

Referenced by DiscreteLineSegmentInterfaceTestAux::computeValue().

◆ getBoundaryArea()

const Real & Component2D::getBoundaryArea ( const BoundaryName &  boundary_name) const
inherited

Gets the area for a boundary.

Definition at line 570 of file Component2D.C.

571{
573
574 if (_boundary_name_to_area.find(boundary_name) != _boundary_name_to_area.end())
575 return _boundary_name_to_area.at(boundary_name);
576 else
577 mooseError(name(), ": The boundary '", boundary_name, "' does not exist on this component.");
578}
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

Referenced by HeatStructure2DCouplerBase::init().

◆ getBoundaryInfo() [1/2]

const std::vector< std::tuple< dof_id_type, unsigned short int > > & Component2D::getBoundaryInfo ( const BoundaryName &  boundary_name) const
inherited

Gets boundary info associated with the component boundary.

Parameters
[in]boundaryBoundary name of a component boundary
Returns
The list of tuples (element id, local side id) that is associated with boundary boundary

Definition at line 519 of file Component2D.C.

520{
522
523 if (_boundary_info.find(boundary_name) != _boundary_info.end())
524 return _boundary_info.at(boundary_name);
525 else
526 mooseError(name(), ": The boundary '", boundary_name, "' does not exist on this component.");
527}

Referenced by Component2D::getBoundaryInfo(), HeatStructure2DCouplerBase::setupMesh(), and HeatTransferFromHeatStructure1Phase::setupMesh().

◆ getBoundaryInfo() [2/2]

const std::vector< std::tuple< dof_id_type, unsigned short int > > & Component2D::getBoundaryInfo ( const ExternalBoundaryType boundary_type) const
inherited

Gets boundary info associated with a external boundary type.

Parameters
[in]boundary_typeThe external boundary type
Returns
The list of tuples (element id, local side id) associated the external boundary type

Definition at line 530 of file Component2D.C.

531{
533
534 switch (boundary_type)
535 {
544 default:
545 mooseError(name(), ": Invalid external boundary type.");
546 }
547}
const std::vector< std::tuple< dof_id_type, unsigned short int > > & getBoundaryInfo(const BoundaryName &boundary_name) const
Gets boundary info associated with the component boundary.

◆ 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 557 of file Component.h.

558{
559 const std::string & comp_name = getParam<std::string>(pname);
560 return getComponentByName<T>(comp_name);
561}

◆ 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 565 of file Component.h.

566{
567 return _sim.getComponentByName<T>(comp_name);
568}
const T & getComponentByName(const std::string &name) const
Get component by its name.
Definition Simulation.h:504

◆ 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 353 of file Component.C.

354{
356
357 return _coord_sys;
358}
std::vector< Moose::CoordinateSystemType > _coord_sys
List of coordinate system for each subdomain.
Definition Component.h:515

◆ 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 86 of file Component.h.

86{ return _dependencies; }

◆ 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 257 of file DiscreteLineSegmentInterface.C.

258{
260}
const Real & _rotation
Angle of rotation about the x-axis.
std::vector< Real > getElementBoundaryCoordinates() const
Gets the element boundary coordinates for the aligned axis.

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

◆ 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 207 of file DiscreteLineSegmentInterface.C.

213{
214 const auto axis = getAlignmentAxis(orientation);
215
216 unsigned int d;
217 if (axis == "x")
218 d = 0;
219 else if (axis == "y")
220 d = 1;
221 else if (axis == "z")
222 d = 2;
223 else
224 mooseError("Invalid axis.");
225
226 const auto R = computeDirectionTransformationTensor(orientation);
227 const auto Rx = computeXRotationTransformationTensor(rotation);
228
229 const unsigned int n_elems_total = std::accumulate(n_elems.begin(), n_elems.end(), 0);
230 const unsigned int n_sections = lengths.size();
231
232 unsigned int i_section_start = 0;
233 Real section_start_ref_position = 0.0;
234 std::vector<Real> element_boundary_coordinates(n_elems_total + 1);
235 element_boundary_coordinates[0] =
236 computeRealPointFromReferencePoint(Point(0, 0, 0), position, R, Rx)(d);
237 for (unsigned int j = 0; j < n_sections; ++j)
238 {
239 const Real section_dx = lengths[j] / n_elems[j];
240 for (unsigned int k = 0; k < n_elems[j]; ++k)
241 {
242 const unsigned int i = i_section_start + k + 1;
243 const Real ref_position = section_start_ref_position + section_dx * k;
244 const Point ref_point = Point(ref_position, 0, 0);
245 element_boundary_coordinates[i] =
246 computeRealPointFromReferencePoint(ref_point, position, R, Rx)(d);
247 }
248
249 section_start_ref_position += lengths[j];
250 i_section_start += n_elems[j];
251 }
252
253 return element_boundary_coordinates;
254}
static RealTensorValue computeDirectionTransformationTensor(const RealVectorValue &dir)
Computes the direction transformation tensor.
static RealTensorValue computeXRotationTransformationTensor(const Real &rotation)
Computes the rotation transformation tensor.

◆ getElementIDs()

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

Gets the element IDs corresponding to this component.

Definition at line 337 of file Component.C.

338{
340
341 return _elem_ids;
342}

Referenced by HeatTransferFromHeatStructure1Phase::setupMesh(), and HeatTransferFromHeatStructure3D1Phase::setupMesh().

◆ getEndPoint()

Point DiscreteLineSegmentInterface::getEndPoint ( ) const
inlineinherited

Definition at line 29 of file DiscreteLineSegmentInterface.h.

29{ return _end_point; }
const Point _end_point
End point of line segment.

Referenced by FlowChannel1Phase::addNormalized1PhaseResidualNorm().

◆ getEnumParam()

template<typename T >
T Component::getEnumParam ( const std::string &  param,
bool  log_error = true 
) 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
[in]log_errorIf true, log an error if the valid is invalid

Definition at line 590 of file Component.h.

591{
592 const MooseEnum & moose_enum = getParam<MooseEnum>(param);
593 const T value = THM::stringToEnum<T>(moose_enum);
594 if (log_error && static_cast<int>(value) < 0) // cast necessary for scoped enums
595 {
596 // Get the keys from the MooseEnum. Unfortunately, this returns a list of
597 // *all* keys, including the invalid key that was supplied. Thus, that key
598 // needs to be manually excluded below.
599 const std::vector<std::string> & keys = moose_enum.getNames();
600
601 // Create the string of keys to go in the error message. The last element of
602 // keys is skipped because the invalid key should always be last.
603 std::string keys_string = "{";
604 for (unsigned int i = 0; i < keys.size() - 1; ++i)
605 {
606 if (i != 0)
607 keys_string += ",";
608 keys_string += "'" + keys[i] + "'";
609 }
610 keys_string += "}";
611
612 logError("The parameter '" + param + "' was given an invalid value ('" +
613 std::string(moose_enum) + "'). Valid values (case-insensitive) are " + keys_string);
614 }
615
616 return value;
617}
std::vector< std::string > getNames() const

◆ getExternalBoundaryName()

const BoundaryName & Component2D::getExternalBoundaryName ( const ExternalBoundaryType boundary_type) const
inherited

Gets the name of an external boundary by type.

Parameters
[in]boundary_typeThe external boundary type

Definition at line 550 of file Component2D.C.

551{
553
554 switch (boundary_type)
555 {
563 return _boundary_name_end;
564 default:
565 mooseError(name(), ": Invalid external boundary type.");
566 }
567}

Referenced by HSBoundaryInterface::check(), HSBoundaryInterface::getHSBoundaryName(), and HSBoundaryInterface::HSBoundaryIsValid().

◆ getExternalBoundaryType()

Component2D::ExternalBoundaryType Component2D::getExternalBoundaryType ( const BoundaryName &  boundary_name) const
inherited

Gets the external boundary type of the given boundary.

An error is thrown if the supplied boundary name does not exist in this component or if the boundary is interior.

Parameters
[in]boundary_nameBoundary name for which to get boundary type

Definition at line 496 of file Component2D.C.

497{
499
500 if (boundary_name == _boundary_name_inner ||
503 else if (boundary_name == _boundary_name_outer ||
506 else if (boundary_name == _boundary_name_start ||
509 else if (boundary_name == _boundary_name_end ||
512 else if (hasBoundary(boundary_name))
513 mooseError(name(), ": The boundary '", boundary_name, "' is an interior boundary.");
514 else
515 mooseError(name(), ": The boundary '", boundary_name, "' does not exist on this component.");
516}
bool isBoundaryInVector(const BoundaryName &boundary_name, const std::vector< BoundaryName > &boundary_name_vector) const
Returns true if the supplied boundary is in the given vector.
bool hasBoundary(const BoundaryName &boundary_name) const
Returns true if this component has the supplied boundary.

Referenced by HSBoundary::check(), and HeatStructure2DCouplerBase::init().

◆ getExternalBoundaryTypeMooseEnum()

MooseEnum Component2D::getExternalBoundaryTypeMooseEnum ( const std::string &  default_value = "")
staticinherited

Gets the MooseEnum corresponding to ExternalBoundaryType.

Parameters
[in]default_valueDefault value; omit to have no default

Definition at line 21 of file Component2D.C.

22{
23 return THM::getMooseEnum<ExternalBoundaryType>(name, _external_boundary_type_to_enum);
24}
static const std::map< std::string, ExternalBoundaryType > _external_boundary_type_to_enum
map of external boundary type string to enum
Definition Component2D.h:15

Referenced by HSBoundaryInterface::validParams().

◆ getGeometricalComponent()

const GeometricalComponent & HeatStructureInterface::getGeometricalComponent ( ) const
inlineinherited

Gets the geometrical component inheriting from this interface.

Definition at line 35 of file HeatStructureInterface.h.

36 {
38 }

Referenced by HSBoundaryExternalAppConvection::addVariables(), HSBoundaryExternalAppHeatFlux::addVariables(), and HSBoundaryExternalAppTemperature::addVariables().

◆ getIndexFromName()

const unsigned int & HeatStructureBase::getIndexFromName ( const std::string &  name) const
inherited

Get index of the block from its name.

Parameters
nameThe name of the block
Returns
Index of the block with name 'name'

Definition at line 45 of file HeatStructureBase.C.

46{
47 return _name_index.at(name);
48}
std::map< std::string, unsigned int > _name_index
Map from block name to block index.

◆ getInitialT()

FunctionName HeatStructureInterface::getInitialT ( ) const
inherited

Gets the initial temperature function name.

Definition at line 81 of file HeatStructureInterface.C.

82{
84 return _geometrical_component_hsi.getParam<FunctionName>("initial_T");
85 else
88 ": The parameter 'initial_T' was requested but not supplied");
89}
const T & getParam(const std::string &name) const

Referenced by HeatConductionModel::addInitialConditions(), HeatTransferFromHeatStructure1Phase::addVariables(), and HeatTransferFromHeatStructure3D1Phase::addVariables().

◆ getInnerRadius()

virtual Real HeatStructureCylindricalBase::getInnerRadius ( ) const
inlinevirtual

Get the inner radius of the heat structure.

Returns
The inner radius of the heat structure

Definition at line 30 of file HeatStructureCylindricalBase.h.

30{ return _inner_radius; }

◆ getLength()

virtual Real DiscreteLineSegmentInterface::getLength ( ) const
inlinevirtualinherited

◆ getMinimumElemSize()

Real DiscreteLineSegmentInterface::getMinimumElemSize ( ) const
inlineinherited

Gets the minimum element size.

Definition at line 37 of file DiscreteLineSegmentInterface.h.

37{ return _dx_min; }

Referenced by FlowChannel1Phase::addNormalized1PhaseResidualNorm().

◆ getNames()

const std::vector< std::string > & Component2D::getNames ( ) const
inlineinherited

Gets the names of the transverse regions.

Definition at line 50 of file Component2D.h.

50{ return _names; }

Referenced by HeatStructureBase::addConstantDensitySolidPropertiesMaterial().

◆ getNodeIDs()

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

Gets the node IDs corresponding to this component.

Definition at line 329 of file Component.C.

330{
332
333 return _node_ids;
334}

◆ getNonlinearConvergence()

Convergence * HeatStructureBase::getNonlinearConvergence ( ) const
overrideprotectedvirtualinherited

Gets the Component's nonlinear Convergence object if it has one.

Reimplemented from Component.

Definition at line 57 of file HeatStructureBase.C.

58{
59 if (!isParamValid("solid_properties"))
60 mooseError("ComponentsConvergence may only be used if 'solid_properties' is provided.");
61
63}
virtual Convergence & getConvergence(const std::string &name, const THREAD_ID tid=0) const

◆ getNumberOfUnits()

Real HeatStructureBase::getNumberOfUnits ( ) const
inlineinherited

Gets the number of units that heat structure represents.

Parameters
[in]sideSide of the heat structure corresponding to desired perimeter
Returns
Perimeter of one unit of this heat structure on the specified side

Definition at line 48 of file HeatStructureBase.h.

48{ return _num_rods; }
Real _num_rods
The number of rods represented by this heat structure.

Referenced by HeatSourceFromTotalPower::addMooseObjects(), and HeatTransferFromHeatStructure1Phase::addMooseObjects().

◆ getNumElems()

virtual Real DiscreteLineSegmentInterface::getNumElems ( ) const
inlinevirtualinherited

Definition at line 33 of file DiscreteLineSegmentInterface.h.

33{ return _n_elem; }

Referenced by HeatTransferFromHeatStructure3D1Phase::init().

◆ getNumRegions()

unsigned int Component2D::getNumRegions ( ) const
inlineinherited

Gets the number of transverse regions.

Definition at line 38 of file Component2D.h.

38{ return _n_regions; }

◆ getPosition()

virtual Point DiscreteLineSegmentInterface::getPosition ( ) const
inlinevirtualinherited

◆ getRotation()

virtual Real DiscreteLineSegmentInterface::getRotation ( ) const
inlinevirtualinherited

Definition at line 31 of file DiscreteLineSegmentInterface.h.

31{ return _rotation; }

◆ getStartPoint()

Point DiscreteLineSegmentInterface::getStartPoint ( ) const
inlineinherited

◆ 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 345 of file Component.C.

346{
348
349 return _subdomain_names;
350}
std::vector< SubdomainName > _subdomain_names
List of subdomain names this components owns.
Definition Component.h:513

Referenced by Closures1PhaseBase::addAverageWallTemperatureMaterial(), FlowModel::addCommonInitialConditions(), FlowModel::addCommonMooseObjects(), FlowChannelBase::addCommonObjects(), FlowModel::addCommonVariables(), HeatStructureBase::addConstantDensitySolidPropertiesMaterial(), FlowModel1PhaseBase::addDensityAux(), FlowModelGasMix::addDensityIC(), FlowModelSinglePhase::addDensityIC(), FlowModel1PhaseBase::addEnergyGravityKernel(), FlowChannel1Phase::addFlowChannel1PhaseFunctorMaterial(), FlowModelGasMix::addFluidPropertiesMaterials(), FlowModelSinglePhase::addFluidPropertiesMaterials(), FlowModel1PhaseBase::addFunctionIC(), FlowModel1PhaseBase::addHeatConductionDGKernel(), HeatConductionModel::addHeatEquationRZ(), HeatConductionModel::addHeatEquationXYZ(), FlowChannel1PhaseBase::addHydraulicDiameterMaterial(), HeatConductionModel::addInitialConditions(), VolumeJunction1Phase::addJunctionIC(), VolumeJunction1Phase::addJunctionVariable(), FlowModelGasMix::addMassDiffusionEnergyDGKernel(), FlowModelGasMix::addMassDiffusionSpeciesDGKernel(), FlowModelGasMix::addMassFractionAux(), FlowModel1PhaseBase::addMomentumAreaGradientKernel(), FlowModel1PhaseBase::addMomentumFrictionKernel(), FlowModel1PhaseBase::addMomentumGravityKernel(), FlowChannel1Phase::addMooseObjects(), FlowChannelBase::addMooseObjects(), HeatSourceVolumetric1Phase::addMooseObjects(), HeatStructureBase::addMooseObjects(), HeatTransferFromHeatStructure1Phase::addMooseObjects(), ShaftConnectedCompressor1Phase::addMooseObjects(), ShaftConnectedPump1Phase::addMooseObjects(), ShaftConnectedTurbine1Phase::addMooseObjects(), SimpleTurbine1Phase::addMooseObjects(), VolumeJunction1Phase::addMooseObjects(), FunctorClosures::addMooseObjectsFlowChannel(), Closures1PhaseSimple::addMooseObjectsHeatTransfer(), Component::addNonlinearStepFunctorMaterial(), FlowChannel1Phase::addNormalized1PhaseResidualNorm(), FlowChannel1Phase::addNumericalFluxVectorPostprocessor(), FlowModelSinglePhase::addPassiveTransportIC(), FlowModelGasMix::addPressureAux(), FlowModelSinglePhase::addPressureAux(), FlowModelGasMix::addRDGAdvectionDGKernels(), FlowModelSinglePhase::addRDGAdvectionDGKernels(), FlowModel1PhaseBase::addRhoAIC(), FlowModelGasMix::addRhoEAIC(), FlowModelSinglePhase::addRhoEAIC(), FlowModel1PhaseBase::addRhoUAIC(), FlowModelGasMix::addSlopeReconstructionMaterial(), FlowModelSinglePhase::addSlopeReconstructionMaterial(), FlowModel1PhaseBase::addSpecificInternalEnergyAux(), FlowModel1PhaseBase::addSpecificInternalEnergyIC(), FlowModel1PhaseBase::addSpecificTotalEnthalpyAux(), FlowModel1PhaseBase::addSpecificTotalEnthalpyIC(), FlowModel1PhaseBase::addSpecificVolumeAux(), FlowModel1PhaseBase::addSpecificVolumeIC(), FlowModelGasMix::addTemperatureAux(), FlowModelSinglePhase::addTemperatureAux(), FlowModel1PhaseBase::addTimeDerivativeKernelIfTransient(), HeatConductionModel::addVariables(), FlowModel1PhaseBase::addVariables(), FlowModelGasMix::addVariables(), FlowModelSinglePhase::addVariables(), FlowChannelBase::addVariables(), HSBoundaryExternalAppConvection::addVariables(), HSBoundaryExternalAppHeatFlux::addVariables(), HSBoundaryExternalAppTemperature::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(), Component1DConnection::init(), FileMeshPhysicsComponent::init(), FormLoss1PhaseBase::init(), HeatTransferBase::init(), and HeatTransferFromHeatStructure3D1Phase::init().

◆ getTHMProblem()

THMProblem & Component::getTHMProblem ( ) const
inherited

Gets the THM problem.

Definition at line 135 of file Component.C.

136{
137 return _sim;
138}

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

◆ getTotalWidth()

const Real & Component2D::getTotalWidth ( ) const
inlineinherited

Gets the total width of all transverse regions.

Definition at line 33 of file Component2D.h.

33{ return _total_width; }
Real _total_width
Total width of all transverse regions.

Referenced by Component2D::buildMesh().

◆ getUniformNodeLocations()

std::vector< Real > GeneratedMeshComponent::getUniformNodeLocations ( Real  length,
unsigned int  n_nodes 
)
privateinherited

Computes the local positions of axial nodes for an axial section.

Parameters
[in]lengthLength of the axial section
[in]n_nodesNumber of axial nodes in the axial section

Definition at line 100 of file GeneratedMeshComponent.C.

101{
102 std::vector<Real> node_locations(n_nodes);
103 Real dx = length / (n_nodes - 1);
104
105 node_locations[0] = 0.0;
106
107 for (unsigned int i = 1; i < (n_nodes - 1); ++i)
108 node_locations[i] = node_locations[i - 1] + dx;
109
110 node_locations[n_nodes - 1] = length;
111 return node_locations;
112}

Referenced by GeneratedMeshComponent::generateNodeLocations().

◆ getUnitPerimeter()

Real HeatStructureCylindricalBase::getUnitPerimeter ( const ExternalBoundaryType side) const
overridevirtual

Gets the perimeter of one unit of this heat structure on the specified side.

Parameters
[in]sideSide of the heat structure corresponding to desired perimeter
Returns
Perimeter of one unit of this heat structure on the specified side

Implements HeatStructureBase.

Definition at line 35 of file HeatStructureCylindricalBase.C.

36{
37 switch (side)
38 {
40 return 2 * M_PI * (_inner_radius + _total_width);
41
43 return 2 * M_PI * _inner_radius;
44
47 return std::numeric_limits<Real>::quiet_NaN();
48 }
49
50 mooseError(name(), ": Unknown value of 'side' parameter.");
51}

◆ 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}
virtual Function & getFunction(const std::string &name, const THREAD_ID tid=0)

◆ getVolumes()

const std::vector< Real > & Component2D::getVolumes ( ) const
inlineinherited

Gets the volumes of the transverse regions.

Definition at line 55 of file Component2D.h.

55{ return _volume; }
std::vector< Real > _volume
Volume of each transverse region.

◆ hasBlock()

bool Component2D::hasBlock ( const std::string &  name) const
inherited

Returns true if there is a transverse region of a given name.

Parameters
nameThe name of the transverse region

Definition at line 59 of file Component2D.C.

60{
61 return std::find(_names.begin(), _names.end(), name) != _names.end();
62}

Referenced by HeatSourceBase::check().

◆ hasBoundary()

bool Component2D::hasBoundary ( const BoundaryName &  boundary_name) const
inherited

Returns true if this component has the supplied boundary.

Parameters
[in]boundary_nameBoundary name to check

Definition at line 473 of file Component2D.C.

474{
476
477 return hasExternalBoundary(boundary_name) ||
480}
bool hasExternalBoundary(const BoundaryName &boundary_name) const
Returns true if this component has the supplied external boundary.

Referenced by HeatStructure2DCouplerBase::check(), HeatStructure2DRadiationCouplerRZ::check(), Component2D::getExternalBoundaryType(), HeatStructure2DCouplerBase::init(), and HeatStructure2DCouplerBase::setupMesh().

◆ 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 572 of file Component.h.

573{
574 const std::string & comp_name = getParam<std::string>(pname);
575 return hasComponentByName<T>(comp_name);
576}

◆ 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 580 of file Component.h.

581{
582 if (_sim.hasComponentOfType<T>(comp_name))
583 return true;
584 else
585 return false;
586}

◆ hasExternalBoundary()

bool Component2D::hasExternalBoundary ( const BoundaryName &  boundary_name) const
inherited

Returns true if this component has the supplied external boundary.

Parameters
[in]boundary_nameBoundary name to check

Definition at line 483 of file Component2D.C.

484{
486
487 return boundary_name == _boundary_name_inner || boundary_name == _boundary_name_outer ||
488 boundary_name == _boundary_name_start || boundary_name == _boundary_name_end ||
493}

Referenced by HSBoundary::check(), and Component2D::hasBoundary().

◆ 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 550 of file Component.h.

551{
552 return parameters().have_parameter<T>(name);
553}
bool have_parameter(std::string_view name) const

◆ init()

void HeatStructureBase::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 Component.

Definition at line 31 of file HeatStructureBase.C.

32{
35}
void init()
Method to be called in the component's init() method.

◆ initializeDirectionVector()

RealVectorValue DiscreteLineSegmentInterface::initializeDirectionVector ( const RealVectorValue &  dir_unnormalized)
staticprivateinherited

Computes a normalized direction vector or reports an error if the zero vector is provided.

Parameters
[in]dir_unnormalizedUnnormalized direction vector

Definition at line 76 of file DiscreteLineSegmentInterface.C.

77{
78 if (!MooseUtils::absoluteFuzzyEqual(dir_unnormalized.norm(), 0.0))
79 return dir_unnormalized / dir_unnormalized.norm();
80 else
81 mooseError("The parameter 'orientation' must not be the zero vector.");
82}

◆ initSecondary()

virtual void Component::initSecondary ( )
inlineprotectedvirtualinherited

◆ insistParameterExists()

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

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 621 of file Component.h.

623{
624 if (!hasParam<T>(param_name))
626 ": Calling ",
627 function_name,
628 " failed, parameter '",
629 param_name,
630 "' does not exist or does not have the type you requested. Double check your "
631 "spelling and/or type of the parameter.");
632}

◆ isBoundaryInVector()

bool Component2D::isBoundaryInVector ( const BoundaryName &  boundary_name,
const std::vector< BoundaryName > &  boundary_name_vector 
) const
inherited

Returns true if the supplied boundary is in the given vector.

Definition at line 465 of file Component2D.C.

467{
468 return std::find(boundary_name_vector.begin(), boundary_name_vector.end(), boundary_name) !=
469 boundary_name_vector.end();
470}

Referenced by Component2D::getExternalBoundaryType(), Component2D::hasBoundary(), and Component2D::hasExternalBoundary().

◆ loadMaterial()

void HeatStructureBase::loadMaterial ( InputParameters pars,
const std::string &  par,
const std::string &  material_name 
)
protectedinherited

◆ 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.

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
@ ERROR
Definition Logger.h:25

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

◆ 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.

68 {
69 _log.add(Logger::WARNING, component_name, ": ", std::forward<Args>(args)...);
70 }
@ WARNING
Definition Logger.h:26

Referenced by Component::logWarning().

◆ logError()

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

Logs an error.

Definition at line 226 of file Component.h.

227 {
228 logComponentError(cname(), std::forward<Args>(args)...);
229 }
void logComponentError(const std::string &component_name, Args &&... args) const
Logs an error for a component.

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

◆ logWarning()

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

Logs a warning.

Definition at line 235 of file Component.h.

236 {
237 logComponentWarning(cname(), std::forward<Args>(args)...);
238 }
void logComponentWarning(const std::string &component_name, Args &&... args) const
Logs a warning for a component.

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

◆ mesh()

THMMesh & Component::mesh ( )
inherited

◆ nonlinearConvergenceName()

std::string Component::nonlinearConvergenceName ( ) const
inlineprotectedinherited

◆ parent()

Component * Component::parent ( )
inlineinherited

Definition at line 55 of file Component.h.

55{ return _parent; }

◆ 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
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}

◆ placeLocalNodeLocations()

void GeneratedMeshComponent::placeLocalNodeLocations ( Real  start_length,
unsigned int  start_node,
std::vector< Real > &  local_node_locations 
)
privateinherited

Puts local positions of axial nodes for an axial section into _node_locations.

Parameters
[in]start_lengthStart position for the axial section
[in]start_nodeStart node index for the axial section
[in]local_node_locationsLocal positions of axial nodes for the axial section

Definition at line 115 of file GeneratedMeshComponent.C.

118{
119 unsigned int n_nodes = local_node_locations.size();
120 for (unsigned int i = 1; i < n_nodes; ++i)
121 {
122 unsigned int global_i = i + start_node;
123 Real local_node_location = local_node_locations[i];
124 _node_locations[global_i] = start_length + local_node_location;
125 }
126}

Referenced by GeneratedMeshComponent::generateNodeLocations().

◆ problemIsTransient()

bool Component::problemIsTransient ( ) const
inlineinherited

Whether the problem is transient.

Definition at line 264 of file Component.h.

264{ return getTHMProblem().isTransient(); }
virtual bool isTransient() const override

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

◆ 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 219 of file Component.C.

222{
223 _subdomain_ids.push_back(subdomain_id);
224 _subdomain_names.push_back(subdomain_name);
225 _coord_sys.push_back(coord_system);
226 if (_parent)
227 {
228 _parent->_subdomain_ids.push_back(subdomain_id);
229 _parent->_subdomain_names.push_back(subdomain_name);
230 _parent->_coord_sys.push_back(coord_system);
231 }
232 mesh().setSubdomainName(subdomain_id, subdomain_name);
233}
void setSubdomainName(SubdomainID subdomain_id, const SubdomainName &name)

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

◆ setupMesh()

void HeatStructureCylindricalBase::setupMesh ( )
overridevirtual

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

Reimplemented from GeneratedMeshComponent.

Definition at line 27 of file HeatStructureCylindricalBase.C.

◆ stringify()

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

Return a string for the setup status.

Definition at line 309 of file Component.C.

310{
311 switch (status)
312 {
313 case CREATED:
314 return "component created";
315 case MESH_PREPARED:
316 return "component mesh set up";
318 return "primary initialization completed";
320 return "secondary initialization completed";
321 case CHECKED:
322 return "component fully set up and checked";
323 default:
324 mooseError("Should not reach here");
325 }
326}

Referenced by Component::checkSetupStatus().

◆ useCylindricalTransformation()

virtual bool HeatStructureCylindricalBase::useCylindricalTransformation ( ) const
inlineoverrideprotectedvirtual

Use cylindrical transformation?

Implements HeatStructureInterface.

Definition at line 36 of file HeatStructureCylindricalBase.h.

36{ return true; }

◆ usingSecondOrderMesh()

bool HeatStructureBase::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 51 of file HeatStructureBase.C.

52{
54}
static const libMesh::FEType & feType()
Get the FE type used for heat conduction.
OrderWrapper order

◆ validParams()

InputParameters HeatStructureCylindricalBase::validParams ( )
static

Definition at line 13 of file HeatStructureCylindricalBase.C.

14{
16 params.addParam<bool>(
17 "offset_mesh_by_inner_radius", false, "Offset the mesh by the inner radius?");
18 return params;
19}
static InputParameters validParams()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)

Referenced by HeatStructureCylindrical::validParams().

Member Data Documentation

◆ _axial_inner_bc_id

std::vector<unsigned int> Component2D::_axial_inner_bc_id
protectedinherited

BC ID of the axial regions of the inner boundary of the component.

Definition at line 184 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _axial_offset

Real Component2D::_axial_offset
mutableprotectedinherited

Distance by which to offset the mesh from the component axis.

Definition at line 220 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::getAxialOffset(), and setupMesh().

◆ _axial_outer_bc_id

std::vector<unsigned int> Component2D::_axial_outer_bc_id
protectedinherited

BC ID of the axial regions of the outer boundary of the component.

Definition at line 182 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _axial_region_names

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

◆ _boundary_info

std::map<BoundaryName, std::vector<std::tuple<dof_id_type, unsigned short int> > > Component2D::_boundary_info
protectedinherited

Map of boundary name to list of tuples of element and side IDs for that boundary.

Definition at line 217 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::getBoundaryInfo().

◆ _boundary_name_end

BoundaryName Component2D::_boundary_name_end
protectedinherited

◆ _boundary_name_inner

BoundaryName Component2D::_boundary_name_inner
protectedinherited

◆ _boundary_name_outer

BoundaryName Component2D::_boundary_name_outer
protectedinherited

◆ _boundary_name_start

BoundaryName Component2D::_boundary_name_start
protectedinherited

◆ _boundary_name_to_area

std::map<BoundaryName, Real> Component2D::_boundary_name_to_area
protectedinherited

Map of boundary name to boundary area.

Definition at line 214 of file Component2D.h.

Referenced by Component2D::buildMesh(), and Component2D::getBoundaryArea().

◆ _boundary_names_axial_inner

std::vector<BoundaryName> Component2D::_boundary_names_axial_inner
protectedinherited

Boundary names of the axial regions of the inner side of the component.

Definition at line 205 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::buildMesh(), Component2D::getExternalBoundaryType(), and Component2D::hasExternalBoundary().

◆ _boundary_names_axial_outer

std::vector<BoundaryName> Component2D::_boundary_names_axial_outer
protectedinherited

Boundary names of the axial regions of the outer side of the component.

Definition at line 203 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::buildMesh(), Component2D::getExternalBoundaryType(), and Component2D::hasExternalBoundary().

◆ _boundary_names_inner_radial

std::vector<BoundaryName> Component2D::_boundary_names_inner_radial
protectedinherited

Boundary names of the inner radial boundary regions of the component.

Definition at line 211 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::buildMesh(), and Component2D::hasBoundary().

◆ _boundary_names_interior_axial_per_radial_section

std::vector<BoundaryName> Component2D::_boundary_names_interior_axial_per_radial_section
protectedinherited

Boundary names of the interior axial boundaries (per radial section) of the component.

Definition at line 201 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::buildMesh(), and Component2D::hasBoundary().

◆ _boundary_names_radial_end

std::vector<BoundaryName> Component2D::_boundary_names_radial_end
protectedinherited

Boundary names of the radial regions of the end side of the component.

Definition at line 209 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::buildMesh(), Component2D::getExternalBoundaryType(), and Component2D::hasExternalBoundary().

◆ _boundary_names_radial_start

std::vector<BoundaryName> Component2D::_boundary_names_radial_start
protectedinherited

Boundary names of the radial regions of the start side of the component.

Definition at line 207 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), Component2D::buildMesh(), Component2D::getExternalBoundaryType(), and Component2D::hasExternalBoundary().

◆ _component_setup_status

EComponentSetupStatus Component::_component_setup_status
mutableprivateinherited

◆ _coord_sys

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

List of coordinate system for each subdomain.

Definition at line 515 of file Component.h.

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

◆ _dependencies

std::vector<std::string> Component::_dependencies
privateinherited

List of names of components that this component depends upon.

Definition at line 542 of file Component.h.

Referenced by Component::addDependency(), and Component::getDependencies().

◆ _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 98 of file DiscreteLineSegmentInterface.h.

◆ _dx_min

Real DiscreteLineSegmentInterface::_dx_min
inherited

◆ _elem_ids

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

◆ _end_bc_id

unsigned int Component2D::_end_bc_id
protectedinherited

BC ID of the component (end)

Definition at line 178 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _end_point

const Point DiscreteLineSegmentInterface::_end_point
protectedinherited

End point of line segment.

Definition at line 110 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::getEndPoint().

◆ _external_boundary_type_to_enum

const std::map< std::string, Component2D::ExternalBoundaryType > Component2D::_external_boundary_type_to_enum
staticinherited
Initial value:

map of external boundary type string to enum

Definition at line 15 of file Component2D.h.

15{
16public:
18 enum class ExternalBoundaryType
ExternalBoundaryType
External boundary type.
Definition Component2D.h:19

Referenced by Component2D::getExternalBoundaryTypeMooseEnum().

◆ _factory

Factory& Component::_factory
protectedinherited

The Factory associated with the MooseApp.

Definition at line 497 of file Component.h.

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

◆ _geometrical_component_hsi

GeometricalComponent& HeatStructureInterface::_geometrical_component_hsi
privateinherited

◆ _hc_model

std::shared_ptr<HeatConductionModel> HeatStructureInterface::_hc_model
protectedinherited

The heat conduction model used by this heat structure.

Definition at line 72 of file HeatStructureInterface.h.

Referenced by HeatStructureInterface::addMooseObjects(), HeatStructureInterface::addVariables(), and HeatStructureInterface::init().

◆ _inner_bc_id

unsigned int Component2D::_inner_bc_id
protectedinherited

BC ID of the component (inner)

Definition at line 174 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _inner_radial_bc_id

std::vector<unsigned int> Component2D::_inner_radial_bc_id
protectedinherited

BC ID of the inner radial boundary regions of the component.

Definition at line 190 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _inner_radius

Real HeatStructureCylindricalBase::_inner_radius
protected

◆ _interior_axial_per_radial_section_bc_id

std::vector<unsigned int> Component2D::_interior_axial_per_radial_section_bc_id
protectedinherited

BC ID of the interior axial boundaries (per radial section) of the component.

Definition at line 180 of file Component2D.h.

Referenced by Component2D::build2DMesh(), and Component2D::buildMesh().

◆ _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 503 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 136 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeAxialCoordinate().

◆ _n_elem

unsigned int DiscreteLineSegmentInterface::_n_elem
protectedinherited

◆ _n_elems

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

◆ _n_part_elems

std::vector<unsigned int> Component2D::_n_part_elems
protectedinherited

◆ _n_regions

unsigned int Component2D::_n_regions
protectedinherited

◆ _n_sections

const unsigned int DiscreteLineSegmentInterface::_n_sections
protectedinherited

◆ _name_index

std::map<std::string, unsigned int> HeatStructureBase::_name_index
protectedinherited

◆ _names

std::vector<std::string> Component2D::_names
protectedinherited

◆ _node_ids

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

◆ _node_locations

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

◆ _num_rods

Real HeatStructureBase::_num_rods
protectedinherited

The number of rods represented by this heat structure.

Definition at line 80 of file HeatStructureBase.h.

Referenced by HeatStructureBase::getNumberOfUnits(), HeatStructureCylindrical::HeatStructureCylindrical(), and HeatStructurePlate::HeatStructurePlate().

◆ _number_of_hs

unsigned int& HeatStructureBase::_number_of_hs
protectedinherited

Definition at line 83 of file HeatStructureBase.h.

◆ _outer_bc_id

unsigned int Component2D::_outer_bc_id
protectedinherited

BC ID of the component (outer)

Definition at line 172 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _parent

Component* Component::_parent
protectedinherited

Pointer to a parent component (used in composed components)

Definition at line 489 of file Component.h.

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

◆ _position

const Point& DiscreteLineSegmentInterface::_position
protectedinherited

◆ _R

const RealTensorValue DiscreteLineSegmentInterface::_R
protectedinherited

Direction transformation tensor.

Definition at line 126 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeRealPointFromReferencePoint().

◆ _R_inv

const RealTensorValue DiscreteLineSegmentInterface::_R_inv
protectedinherited

Inverse direction transformation tensor.

Definition at line 131 of file DiscreteLineSegmentInterface.h.

Referenced by DiscreteLineSegmentInterface::computeReferencePointFromRealPoint().

◆ _radial_end_bc_id

std::vector<unsigned int> Component2D::_radial_end_bc_id
protectedinherited

BC ID of the radial regions of the end boundary of the component.

Definition at line 188 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _radial_start_bc_id

std::vector<unsigned int> Component2D::_radial_start_bc_id
protectedinherited

BC ID of the radial regions of the start boundary of the component.

Definition at line 186 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _rotation

const Real& DiscreteLineSegmentInterface::_rotation
protectedinherited

◆ _Rx

const RealTensorValue DiscreteLineSegmentInterface::_Rx
protectedinherited

Rotational transformation tensor about x-axis.

Definition at line 128 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 133 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 120 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 494 of file Component.h.

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

◆ _start_bc_id

unsigned int Component2D::_start_bc_id
protectedinherited

BC ID of the component (start)

Definition at line 176 of file Component2D.h.

Referenced by Component2D::build2DMesh(), Component2D::build2DMesh2ndOrder(), and Component2D::buildMesh().

◆ _subdomain_ids

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

List of subdomain IDs this components owns.

Definition at line 511 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 513 of file Component.h.

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

◆ _total_elem_number

unsigned int Component2D::_total_elem_number
protectedinherited

◆ _total_width

Real Component2D::_total_width
protectedinherited

◆ _volume

std::vector<Real> Component2D::_volume
protectedinherited

Volume of each transverse region.

Definition at line 165 of file Component2D.h.

Referenced by Component2D::getVolumes(), HeatStructureCylindrical::HeatStructureCylindrical(), and HeatStructurePlate::HeatStructurePlate().

◆ _width

std::vector<Real> Component2D::_width
protectedinherited

◆ _x_centers

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

Center axial coordinate of each axial element.

Definition at line 123 of file DiscreteLineSegmentInterface.h.

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

◆ _zero

const Real& Component::_zero
protectedinherited

Definition at line 499 of file Component.h.


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