Components System
The Components system is used to assemble the pieces in a systems calculation. For example, it can be used to put together a network of pipes and 0-D models in a thermal hydraulics system. Components perform a number of tasks, including the following:
Adding mesh(es),
Adding variables,
Adding initial conditions, and
Adding equations (kernels, boundary conditions, constraints, etc.).
Thus, applications using this system typically do not require the user to create any of the corresponding blocks in their input files.
Implementation
The following methods are available to implement for a component, in the order in which they are called:
preSetupMesh()
: This performs any setup that needs to occur before setting up the mesh that is not safe to perform in the constructor.setupMesh()
: This performs any mesh setup such as creating meshes or naming mesh sets.init()
: This performs any initialization steps that are not safe to perform in the constructor. This typically used when other component(s) need to have been constructed first.initSecondary()
: This performs secondary initialization step(s) that requireinit()
to have been called on other component(s).check()
: This performs checks on the component, logging warnings and errors.addVariables()
: This is used to add variables to the simulation.addMooseObjects()
: This is used to add MOOSE objects to the simulation.
If a component's methods should be called after those of another, then the first component can add the second, called other_component
here, as a dependency:
addDependency("other_component");
This should be done in the constructor.
Objects and Associated Actions
Available Objects
- Thermal Hydraulics App
- ComponentGroupGroup of components. Used only for parsing input files.
- ElbowPipe1PhaseBent pipe for 1-phase flow
- FlowChannel1Phase1-phase 1D flow channel
- FormLossFromExternalApp1PhaseApply a distributed form loss over a 1-phase flow channel computed by an external application.
- FormLossFromFunction1PhasePrescribe a form loss over a 1-phase flow channel given by a function
- FreeBoundary
- FreeBoundary1Phase
- GateValveGate valve component
- GateValve1PhaseGate valve component for 1-phase flow
- HSBoundaryAmbientConvectionApplies a convective boundary condition to a heat structure
- HSBoundaryExternalAppConvectionHeat structure boundary condition to perform convective heat transfer with an external application
- HSBoundaryExternalAppTemperatureHeat structure boundary condition to set temperature values computed by an external application
- HSBoundaryHeatFluxApplies a specified heat flux to a heat structure boundary
- HSBoundaryRadiationRadiative heat transfer boundary condition for heat structure
- HSBoundarySpecifiedTemperatureApplies Dirichlet boundary conditions on a heat structure
- HeatGeneration
- HeatSourceFromPowerDensityHeat source from power density
- HeatSourceFromTotalPowerHeat generation from total power
- HeatSourceVolumetricVolumetric heat source applied on a flow channel
- HeatSourceVolumetric1PhaseVolumetric heat source applied on a flow channel
- HeatStructure2DCouplerCouples boundaries of two 2D heat structures via a heat transfer coefficient
- HeatStructureCylindricalCylindrical heat structure
- HeatStructureFromFile3DHeat structure component that can load the mesh from an ExodusII file
- HeatStructurePlatePlate heat structure
- HeatTransferFromExternalAppHeatFlux1PhaseHeat transfer specified by heat flux provided by an external application going into 1-phase flow channel.
- HeatTransferFromExternalAppTemperature1PhaseHeat transfer into 1-phase flow channel from temperature provided by an external application
- HeatTransferFromHeatFlux1PhaseHeat transfer specified by heat flux going into 1-phase flow channel.
- HeatTransferFromHeatStructure1PhaseConnects a 1-phase flow channel and a heat structure
- HeatTransferFromHeatStructure3D1PhaseConnects multiple 1-phase flow channels and a 3D heat structure
- HeatTransferFromSpecifiedTemperature1PhaseHeat transfer connection from a fixed temperature function for 1-phase flow
- InletDensityVelocity1PhaseBoundary condition with prescribed density and velocity for 1-phase flow channels.
- InletMassFlowRateTemperature1PhaseBoundary condition with prescribed mass flow rate and temperature for 1-phase flow channels.
- InletStagnationEnthalpyMomentum1PhaseBoundary condition with prescribed stagnation enthalpy and momentum for 1-phase flow channels.
- InletStagnationPressureTemperature1PhaseBoundary condition with prescribed stagnation pressure and temperature for 1-phase flow channels.
- InletVelocityTemperature1PhaseBoundary condition with prescribed velocity and temperature for 1-phase flow channels.
- JunctionOneToOneJunction connecting one flow channel to one other flow channel
- JunctionOneToOne1PhaseJunction connecting one flow channel to one other flow channel for 1-phase flow
- JunctionParallelChannels1PhaseJunction between 1-phase flow channels that are parallel
- Outlet1PhaseBoundary condition with prescribed pressure for 1-phase flow channels.
- PrescribedReactorPower
- Pump1PhasePump between two 1-phase flow channels that has a non-zero volume
- ShaftComponent that connects torque of turbomachinery components
- ShaftConnectedCompressor1Phase1-phase compressor that must be connected to a Shaft component. Compressor speed is controlled by the connected shaft; Isentropic/Dissipation torque and delta_p are computed by user input functions of inlet flow rate and shaft speed
- ShaftConnectedMotorMotor to drive a shaft component
- ShaftConnectedPump1Phase1-phase pump that must be connected to a Shaft component. Pump speed is controlled by the connected shaft; Hydraulic torque and head are computed by user input functions of inlet flow rate and shaft speed
- ShaftConnectedTestComponentComponent that shows how to connect a junction-like component to a shaft.
- ShaftConnectedTurbine1Phase1-phase turbine that must be connected to a Shaft component. Turbine speed is controlled by the connected shaft; Driving torque and delta_p are computed by user input functions of inlet flow rate (flow coefficient aux variable) and shaft speed
- SimpleTurbine1PhaseSimple turbine model that extracts prescribed power from the working fluid
- SolidWall
- SolidWall1Phase
- SupersonicInlet
- TotalPowerPrescribes total power via a user supplied value
- VolumeJunction1PhaseJunction between 1-phase flow channels that has a non-zero volume
Available Actions
- Thermal Hydraulics App
- THMCreateMeshActionAction that creates an empty mesh (in case one was not already created) and also builds THMProblem.
- AddComponentActionBase class for all the actions creating a MOOSE object