- fuel_pin_geometryUser object name which provides subblock index.
C++ Type:UserObjectName
Controllable:No
Description:User object name which provides subblock index.
- mesh_generatorThe name of the generator to use as the prefix for mesh meta data properties.
C++ Type:MeshGeneratorName
Controllable:No
Description:The name of the generator to use as the prefix for mesh meta data properties.
Layered2D System
Description
The Layered2D Action is a convenience object that simplifies part of the mechanics system setup for Layered2D models. It performs the following tasks:
Add StressDivergenceTensors and GeneralizedPlaneStrainOffDiag Kernels
Add GeneralizedPlaneStrain ScalarKernels
Add GeneralizedPlaneStrainUserObject UserObjects
Add Strain calculation material (for the chosen strain model)
Add ScalarStrainAux AuxKernel to assemble the scalar out-of-plane strain(s) into one single given out-of-plane strain AuxVariable
Correctly sets the
use_displaced_meshfor all objects set up by this ActionOptional: Setup of in-plane displacement variable (with the correct order for the current mesh)
Optional: Setup of scalar out-of-plane-strain variable(s)
Optional: Add coupling between the temperature variable with the out-of-plane strain scalar variable(s) in the GeneralizedPlaneStrainOffDiag Kernel
Optional: Setup of the GeneralizedPlaneStrainReferenceResidual problem
Table 1: Correspondence Among Action Functionality and MooseObjects for the Layered2D Action
| Functionality | Replaced Classes | Associated Parameters |
|---|---|---|
| In-plane equilibrium conditions for XYZ coordinate system | Stress Divergence Tensors Kernel | displacements : a string of the displacement field variables |
| Scalar out-of-plane strain coupling with in-plane field variables | Generalized Plane Strain Off-diagonal Kernel | scalar_out_of_plane_strain: a list of the scalar variables for the out-of-plane strain direction |
| | | displacements : a string of the displacement field (in-plane) variable | |
| | | temperature: a string of the temperature field variable | |
| Out-of-plane scalar variable equilibrium condition | Generalized Plane Strain ScalarKernel | scalar_out_of_plane_strain: a list of the scalar variables for the out-of-plane strain direction |
| Residual and diagonal Jacobian calculation for scalar out-of-plane strain variables | Generalized Plane Strain UserObject | scalar_out_of_plane_strain: a list of the scalar variables for the out-of-plane strain direction |
| Add the displacement variable | Variables | add_variables: boolean |
| Add the out-of-plane strain scalar variable(s) | ScalarVariables | add_scalar_variables: boolean |
| Calculation of in-plane strain | Compute Plane Finite Strain | strain: MooseEnum to select finite or small strain formulations |
| | Compute Plane Small Strain | | | |
| Compute Axisymmetric Plane Incremental Strain |incremental : boolean for using a incremental strain formulation | ||
| Add AuxVariable and AuxKernel to gather scalar out-of-plane strains| AuxVariable and ScalarStrainAux | out_of_plane_strain_name: Name provided by user to gather scalar_out_of_plane_strains | |
| Add AuxScalarKernel for reference residual problem | Generalized Plane Strain Reference Residual AuxScalarKernel| save_in: List of names of auxiliary variables to save this Kernel's residual contributions to| |
Example Input File Syntax
[Physics<<<{"href": "../../index.html"}>>>]
[SolidMechanics<<<{"href": "../index.html"}>>>]
[Layered2D<<<{"href": "index.html"}>>>]
[fuel]
add_scalar_variables<<<{"description": "Add the scalar_out_of_plane_strain variables."}>>> = true
add_variables<<<{"description": "Add the displacement variables"}>>> = true
out_of_plane_strain_name<<<{"description": "Name provided by user for aux variable to gather scalar_out_of_plane_strains."}>>> = strain_yy
out_of_plane_direction<<<{"description": "The direction of the out-of-plane strain."}>>> = y
temperature<<<{"description": "The temperature"}>>> = temp
fuel_pin_geometry<<<{"description": "User object name which provides subblock index."}>>> = pin_geometry
eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'fuel_thermal_strain'
strain<<<{"description": "Strain formulation"}>>> = finite
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = fuel
mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = layered2D_mesh
[]
[clad]
add_scalar_variables<<<{"description": "Add the scalar_out_of_plane_strain variables."}>>> = true
add_variables<<<{"description": "Add the displacement variables"}>>> = true
out_of_plane_strain_name<<<{"description": "Name provided by user for aux variable to gather scalar_out_of_plane_strains."}>>> = strain_yy
out_of_plane_direction<<<{"description": "The direction of the out-of-plane strain."}>>> = y
temperature<<<{"description": "The temperature"}>>> = temp
fuel_pin_geometry<<<{"description": "User object name which provides subblock index."}>>> = pin_geometry
eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'clad_thermal_strain'
strain<<<{"description": "Strain formulation"}>>> = finite
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = clad
mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = layered2D_mesh
[]
[]
[]
[](test/tests/layered2D/multi_block.i)Subblocks
The subblocks of the Layered2D action are what trigger MOOSE objects for Layered2D models to be built. If a Layered2D model can be applied for the whole simulation domain, i.e. the whole simulation has one scalar out-of-plane strain, a single subblock should be used.
If different a subdomain has a different Layered2D model, multiple subblocks with subdomain restrictions can be used. Generally, the number of subblocks is the same as the number of scalar out-of-plane strains the simulation contains.
Parameters supplied in the [Physics/SolidMechanics/Layered2D] block act as defaults for the QuasiStatic Action subblocks.
Input Parameters
- absolute_value_vector_tagsThe tag names for extra vectors that the absolute value of the residual should be accumulated into
C++ Type:std::vector<TagName>
Controllable:No
Description:The tag names for extra vectors that the absolute value of the residual should be accumulated into
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified only the blocks named will be visited and made active
- add_scalar_variablesFalseAdd the scalar_out_of_plane_strain variables.
Default:False
C++ Type:bool
Controllable:No
Description:Add the scalar_out_of_plane_strain variables.
- base_nameMaterial property base name
C++ Type:std::string
Controllable:No
Description:Material property base name
- constraint_typesType of each constraint: stress or strain.
C++ Type:MultiMooseEnum
Controllable:No
Description:Type of each constraint: stress or strain.
- decomposition_methodTaylorExpansionMethods to calculate the finite strain and rotation increments
Default:TaylorExpansion
C++ Type:MooseEnum
Controllable:No
Description:Methods to calculate the finite strain and rotation increments
- extra_vector_tagsThe tag names for extra vectors that residual data should be saved into
C++ Type:std::vector<TagName>
Controllable:No
Description:The tag names for extra vectors that residual data should be saved into
- formulationTOTALSelect between the total Lagrangian (TOTAL) and updated Lagrangian (UPDATED) formulations for the new kernel system.
Default:TOTAL
C++ Type:MooseEnum
Controllable:No
Description:Select between the total Lagrangian (TOTAL) and updated Lagrangian (UPDATED) formulations for the new kernel system.
- global_strainName of the global strain material to be applied in this strain calculation. The global strain tensor is constant over the whole domain and allows visualization of the deformed shape with the periodic BC
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Name of the global strain material to be applied in this strain calculation. The global strain tensor is constant over the whole domain and allows visualization of the deformed shape with the periodic BC
- group_scalar_vars_in_reference_residualFalseGroup all scalar variables in reference residual problem.
Default:False
C++ Type:bool
Controllable:No
Description:Group all scalar variables in reference residual problem.
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- initial_eigenstrain_nameA single eigenstrain name that contains the initial strains applied to a problem.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:A single eigenstrain name that contains the initial strains applied to a problem.
- new_systemFalseIf true use the new LagrangianStressDiverence kernels.
Default:False
C++ Type:bool
Controllable:No
Description:If true use the new LagrangianStressDiverence kernels.
- out_of_plane_strain_namescalar_strain_yyName provided by user for aux variable to gather scalar_out_of_plane_strains.
Default:scalar_strain_yy
C++ Type:AuxVariableName
Unit:(no unit assumed)
Controllable:No
Description:Name provided by user for aux variable to gather scalar_out_of_plane_strains.
- scalar_out_of_plane_strain_variablesList of scalar_out_of_plane_strain variables.
C++ Type:std::vector<NonlinearVariableName>
Unit:(no unit assumed)
Controllable:No
Description:List of scalar_out_of_plane_strain variables.
- targetsFunctions giving the target values of each constraint.
C++ Type:std::vector<FunctionName>
Unit:(no unit assumed)
Controllable:No
Description:Functions giving the target values of each constraint.
- use_automatic_differentiationFalseFlag to use automatic differentiation (AD) objects when possible
Default:False
C++ Type:bool
Controllable:No
Description:Flag to use automatic differentiation (AD) objects when possible
- verboseFalseDisplay extra information.
Default:False
C++ Type:bool
Controllable:No
Description:Display extra information.
- volumetric_locking_correctionFalseFlag to correct volumetric locking
Default:False
C++ Type:bool
Controllable:No
Description:Flag to correct volumetric locking
Optional Parameters
- add_variablesFalseAdd the displacement variables
Default:False
C++ Type:bool
Controllable:No
Description:Add the displacement variables
- displacementsThe nonlinear displacement variables for the problem
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The nonlinear displacement variables for the problem
- scalingThe scaling to apply to the displacement variables
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The scaling to apply to the displacement variables
- temperatureThe temperature
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The temperature
Variables Parameters
- additional_generate_outputAdd scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)
C++ Type:MultiMooseEnum
Controllable:No
Description:Add scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)
- additional_material_output_familySpecifies the family of FE shape functions to use for this variable.
C++ Type:MultiMooseEnum
Controllable:No
Description:Specifies the family of FE shape functions to use for this variable.
- additional_material_output_orderSpecifies the order of the FE shape function to use for this variable.
C++ Type:MultiMooseEnum
Controllable:No
Description:Specifies the order of the FE shape function to use for this variable.
- generate_outputAdd scalar quantity output for stress and/or strain
C++ Type:MultiMooseEnum
Controllable:No
Description:Add scalar quantity output for stress and/or strain
- material_output_familySpecifies the family of FE shape functions to use for this variable.
C++ Type:MultiMooseEnum
Controllable:No
Description:Specifies the family of FE shape functions to use for this variable.
- material_output_orderSpecifies the order of the FE shape function to use for this variable.
C++ Type:MultiMooseEnum
Controllable:No
Description:Specifies the order of the FE shape function to use for this variable.
Output Parameters
- automatic_eigenstrain_namesFalseCollects all material eigenstrains and passes to required strain calculator within TMA internally.
Default:False
C++ Type:bool
Controllable:No
Description:Collects all material eigenstrains and passes to required strain calculator within TMA internally.
- eigenstrain_namesList of eigenstrains to be applied in this strain calculation
C++ Type:std::vector<MaterialPropertyName>
Unit:(no unit assumed)
Controllable:No
Description:List of eigenstrains to be applied in this strain calculation
- incrementalFalseUse incremental or total strain (if not explicitly specified this defaults to incremental for finite strain and total for small strain)
Default:False
C++ Type:bool
Controllable:No
Description:Use incremental or total strain (if not explicitly specified this defaults to incremental for finite strain and total for small strain)
- strainSMALLStrain formulation
Default:SMALL
C++ Type:MooseEnum
Controllable:No
Description:Strain formulation
- strain_base_nameThe base name used for the strain. If not provided, it will be set equal to base_name
C++ Type:std::string
Controllable:No
Description:The base name used for the strain. If not provided, it will be set equal to base_name
- use_finite_deform_jacobianFalseJacobian for corrotational finite strain
Default:False
C++ Type:bool
Controllable:No
Description:Jacobian for corrotational finite strain
Strain Parameters
- blockThe list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe displacement diagonal preconditioner terms
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacement diagonal preconditioner terms
- outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
- save_inThe displacement residuals
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacement residuals
Advanced Parameters
- cylindrical_axis_point1Starting point for direction of axis of rotation for cylindrical stress/strain.
C++ Type:libMesh::Point
Controllable:No
Description:Starting point for direction of axis of rotation for cylindrical stress/strain.
- cylindrical_axis_point2Ending point for direction of axis of rotation for cylindrical stress/strain.
C++ Type:libMesh::Point
Controllable:No
Description:Ending point for direction of axis of rotation for cylindrical stress/strain.
- directionDirection stress/strain is calculated in
C++ Type:libMesh::Point
Controllable:No
Description:Direction stress/strain is calculated in
- spherical_center_pointCenter point of the spherical coordinate system.
C++ Type:libMesh::Point
Controllable:No
Description:Center point of the spherical coordinate system.
Coordinate System Parameters
- out_of_plane_directionzThe direction of the out-of-plane strain.
Default:z
C++ Type:MooseEnum
Controllable:No
Description:The direction of the out-of-plane strain.
- out_of_plane_pressure_functionFunction used to prescribe pressure (applied toward the body) in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function used to prescribe pressure (applied toward the body) in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)
- out_of_plane_pressure_material0Material used to prescribe pressure (applied toward the body) in the out-of-plane direction
Default:0
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Material used to prescribe pressure (applied toward the body) in the out-of-plane direction
- out_of_plane_strainVariable for the out-of-plane strain for plane stress models
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:Variable for the out-of-plane strain for plane stress models
- planar_formulationNONEOut-of-plane stress/strain formulation
Default:NONE
C++ Type:MooseEnum
Controllable:No
Description:Out-of-plane stress/strain formulation
- pressure_factorScale factor applied to prescribed out-of-plane pressure (both material and function)
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor applied to prescribed out-of-plane pressure (both material and function)
- scalar_out_of_plane_strainScalar variable for the out-of-plane strain (in y direction for 1D Axisymmetric or in z direction for 2D Cartesian problems)
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:Scalar variable for the out-of-plane strain (in y direction for 1D Axisymmetric or in z direction for 2D Cartesian problems)
Out-Of-Plane Stress/Strain Parameters
Associated Actions
Available Actions
- Bison App
- Layered2DActionSets up (Aux)variables, materials and (Aux)kernels for layered two dimensional simulations.