- mat_propThe name of the material property
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The name of the material property
ElementAverageMaterialProperty
This post-processor computes the average of a material property over a domain.
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Unit:(no unit assumed)
Options:XFEM_MARK, FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, TRANSFER
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Optional Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Unit:(no unit assumed)
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- outputsVector of output names where you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Unit:(no unit assumed)
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (modules/thermal_hydraulics/test/tests/materials/wall_friction_cheng/cheng_ff_test.i)
- (test/tests/materials/material_property_interface/nonexistent_mat_prop.i)
- (modules/thermal_hydraulics/tutorials/single_phase_flow/06_custom_closures.i)
- (test/tests/batch_property_derivative/test.i)
- (modules/solid_mechanics/test/tests/rom_stress_update/3tile_strain.i)
- (modules/thermal_hydraulics/test/tests/materials/wall_friction_factor/churchill_ad.i)
- (modules/solid_mechanics/test/tests/scalar_material_damage/ad_nonlocal_scalar_damage.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_3D.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_2D.i)
- (tutorials/darcy_thermo_mech/step10_multiapps/problems/step10_micro.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_material_function_product/ad_material_function_product.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_convection_heat_flux_hs/ad_convection_heat_flux_hs.i)
- (modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_z.i)
- (modules/thermal_hydraulics/test/tests/closures/THM_1phase/thm1phase.i)
- (modules/fluid_properties/test/tests/materials/saturation_pressure_material/saturation_pressure_material.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_reynolds_number/test.i)
- (modules/solid_mechanics/test/tests/rom_stress_update/3tile_json.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_flux_1phase/phy.q_wall_multiple_3eqn.i)
- (test/tests/batch_material/test.i)
- (modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_z_no_rotation.i)
- (test/tests/postprocessors/element_average_material_property/element_average_material_property.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_convective_heat_transfer_coefficient/test.i)
- (test/tests/materials/projected_stateful_materials/test.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_wall_htc_gnielinski_annular/ad_wall_htc_gnielinski_annular.i)
- (modules/solid_mechanics/test/tests/rom_stress_update/3tile.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/cp_eigenstrains/volumetric_eigenstrain_increase.i)
- (modules/stochastic_tools/test/tests/multiapps/batch_commandline_control/sub.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_prandtl_number/test.i)
- (modules/solid_properties/test/tests/materials/constant_density_thermal_solid_properties/constant_density_thermal_solid_properties.i)
- (modules/thermal_hydraulics/test/tests/materials/ad_convection_heat_flux/ad_convection_heat_flux.i)
- (modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_x.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/cp_eigenstrains/volumetric_eigenstrain_parabolic.i)
- (test/tests/materials/derivative_material_interface/required_property.i)
- (modules/thermal_hydraulics/test/tests/materials/wall_friction_factor/churchill.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/cp_eigenstrains/hcp_volumetric_eigenstrain_decrease.i)
- (modules/solid_mechanics/test/tests/scalar_material_damage/nonlocal_scalar_damage.i)
- (modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_x_no_rotation.i)
- (test/tests/materials/derivative_material_interface/old_older.i)
(modules/thermal_hydraulics/test/tests/materials/wall_friction_cheng/cheng_ff_test.i)
#Fluid Properties:
rho = 2000
vel = 1
mu = 1
#Geometric Parameters
Dh = 1
PoD = 1.10
[GlobalParams]
execute_on = 'initial'
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
allow_renumbering = false
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'rho vel mu D_h'
prop_values = '${rho} ${vel} ${mu} ${Dh}'
[]
[turb]
type = ADGenericConstantMaterial
prop_names = 'rho_turb'
prop_values = '2200'
[]
[warnings]
type = ADWallFrictionChengMaterial
f_D = "warnings"
PoD = ${PoD}
bundle_array = SQUARE
subchannel_type = INTERIOR
[]
[PoD_105_interior_sqr_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_interior_sqr_lam"
PoD = 1.05
bundle_array = SQUARE
subchannel_type = INTERIOR
[]
[PoD_105_edge_sqr_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_edge_sqr_lam"
PoD = 1.05
bundle_array = SQUARE
subchannel_type = EDGE
[]
[PoD_105_corner_sqr_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_corner_sqr_lam"
PoD = 1.05
bundle_array = SQUARE
subchannel_type = CORNER
[]
[PoD_110_interior_sqr_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_interior_sqr_lam"
PoD = 1.10
bundle_array = SQUARE
subchannel_type = INTERIOR
[]
[PoD_110_edge_sqr_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_edge_sqr_lam"
PoD = 1.10
bundle_array = SQUARE
subchannel_type = EDGE
[]
[PoD_110_corner_sqr_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_corner_sqr_lam"
PoD = 1.10
bundle_array = SQUARE
subchannel_type = CORNER
[]
[PoD_105_interior_sqr_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_interior_sqr_turb"
PoD = 1.05
bundle_array = SQUARE
subchannel_type = INTERIOR
rho = rho_turb
[]
[PoD_105_edge_sqr_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_edge_sqr_turb"
PoD = 1.05
bundle_array = SQUARE
subchannel_type = EDGE
rho = rho_turb
[]
[PoD_105_corner_sqr_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_corner_sqr_turb"
PoD = 1.05
bundle_array = SQUARE
subchannel_type = CORNER
rho = rho_turb
[]
[PoD_110_interior_sqr_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_interior_sqr_turb"
PoD = 1.10
bundle_array = SQUARE
subchannel_type = INTERIOR
rho = rho_turb
[]
[PoD_110_edge_sqr_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_edge_sqr_turb"
PoD = 1.10
bundle_array = SQUARE
subchannel_type = EDGE
rho = rho_turb
[]
[PoD_110_corner_sqr_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_corner_sqr_turb"
PoD = 1.10
bundle_array = SQUARE
subchannel_type = CORNER
rho = rho_turb
[]
[PoD_105_interior_hex_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_interior_hex_lam"
PoD = 1.05
bundle_array = HEXAGONAL
subchannel_type = INTERIOR
[]
[PoD_105_edge_hex_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_edge_hex_lam"
PoD = 1.05
bundle_array = HEXAGONAL
subchannel_type = EDGE
[]
[PoD_105_corner_hex_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_corner_hex_lam"
PoD = 1.05
bundle_array = HEXAGONAL
subchannel_type = CORNER
[]
[PoD_110_interior_hex_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_interior_hex_lam"
PoD = 1.10
bundle_array = HEXAGONAL
subchannel_type = INTERIOR
[]
[PoD_110_edge_hex_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_edge_hex_lam"
PoD = 1.10
bundle_array = HEXAGONAL
subchannel_type = EDGE
[]
[PoD_110_corner_hex_lam]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_corner_hex_lam"
PoD = 1.10
bundle_array = HEXAGONAL
subchannel_type = CORNER
[]
[PoD_105_interior_hex_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_interior_hex_turb"
PoD = 1.05
bundle_array = HEXAGONAL
subchannel_type = INTERIOR
rho = rho_turb
[]
[PoD_105_edge_hex_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_edge_hex_turb"
PoD = 1.05
bundle_array = HEXAGONAL
subchannel_type = EDGE
rho = rho_turb
[]
[PoD_105_corner_hex_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_105_corner_hex_turb"
PoD = 1.05
bundle_array = HEXAGONAL
subchannel_type = CORNER
rho = rho_turb
[]
[PoD_110_interior_hex_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_interior_hex_turb"
PoD = 1.10
bundle_array = HEXAGONAL
subchannel_type = INTERIOR
rho = rho_turb
[]
[PoD_110_edge_hex_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_edge_hex_turb"
PoD = 1.10
bundle_array = HEXAGONAL
subchannel_type = EDGE
rho = rho_turb
[]
[PoD_110_corner_hex_turb]
type = ADWallFrictionChengMaterial
f_D = "PoD_110_corner_hex_turb"
PoD = 1.10
bundle_array = HEXAGONAL
subchannel_type = CORNER
rho = rho_turb
[]
[]
[Postprocessors]
[PoD_105_interior_sqr_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_interior_sqr_lam
[]
[PoD_105_edge_sqr_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_edge_sqr_lam
[]
[PoD_105_corner_sqr_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_corner_sqr_lam
[]
[PoD_110_interior_sqr_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_interior_sqr_lam
[]
[PoD_110_edge_sqr_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_edge_sqr_lam
[]
[PoD_110_corner_sqr_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_corner_sqr_lam
[]
[PoD_105_interior_sqr_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_interior_sqr_turb
[]
[PoD_105_edge_sqr_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_edge_sqr_turb
[]
[PoD_105_corner_sqr_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_corner_sqr_turb
[]
[PoD_110_interior_sqr_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_interior_sqr_turb
[]
[PoD_110_edge_sqr_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_edge_sqr_turb
[]
[PoD_110_corner_sqr_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_corner_sqr_turb
[]
[PoD_105_interior_hex_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_interior_hex_lam
[]
[PoD_105_edge_hex_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_edge_hex_lam
[]
[PoD_105_corner_hex_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_corner_hex_lam
[]
[PoD_110_interior_hex_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_interior_hex_lam
[]
[PoD_110_edge_hex_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_edge_hex_lam
[]
[PoD_110_corner_hex_lam]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_corner_hex_lam
[]
[PoD_105_interior_hex_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_interior_hex_turb
[]
[PoD_105_edge_hex_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_edge_hex_turb
[]
[PoD_105_corner_hex_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_105_corner_hex_turb
[]
[PoD_110_interior_hex_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_interior_hex_turb
[]
[PoD_110_edge_hex_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_edge_hex_turb
[]
[PoD_110_corner_hex_turb]
type = ADElementAverageMaterialProperty
mat_prop = PoD_110_corner_hex_turb
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/materials/material_property_interface/nonexistent_mat_prop.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
[]
[Postprocessors]
[pp]
type = ElementAverageMaterialProperty
mat_prop = blah
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
(modules/thermal_hydraulics/tutorials/single_phase_flow/06_custom_closures.i)
T_in = 300. # K
m_dot_in = 1e-2 # kg/s
press = 10e5 # Pa
# core parameters
core_length = 1. # m
core_n_elems = 25
core_dia = '${units 2. cm -> m}'
core_pitch = '${units 8.7 cm -> m}'
A_core = '${fparse core_pitch^2 - 0.25 *pi * core_dia^2}'
P_wet_core = '${fparse 4*core_pitch + pi * core_dia}'
Dh_core = '${fparse 4 * A_core / P_wet_core}'
# pipe parameters
pipe_dia = '${units 10. cm -> m}'
A_pipe = '${fparse 0.25 * pi * pipe_dia^2}'
tot_power = 2000 # W
# heat exchanger parameters
hx_dia_inner = '${units 12. cm -> m}'
hx_wall_thickness = '${units 5. mm -> m}'
hx_dia_outer = '${units 50. cm -> m}'
hx_radius_wall = '${fparse hx_dia_inner / 2. + hx_wall_thickness}'
hx_length = 1.5 # m
hx_n_elems = 25
m_dot_sec_in = 1. # kg/s
[GlobalParams]
initial_p = ${press}
initial_vel = 0.0001
initial_T = ${T_in}
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
gravity_vector = '0 0 0'
rdg_slope_reconstruction = minmod
scaling_factor_1phase = '1 1e-2 1e-4'
scaling_factor_rhoV = 1
scaling_factor_rhouV = 1e-2
scaling_factor_rhovV = 1e-2
scaling_factor_rhowV = 1e-2
scaling_factor_rhoEV = 1e-4
closures = thm_closures
fp = he
[]
[Functions]
[m_dot_sec_fn]
type = PiecewiseLinear
xy_data = '
0 0
10 ${m_dot_sec_in}'
[]
[]
[FluidProperties]
[he]
type = IdealGasFluidProperties
molar_mass = 4e-3
gamma = 1.67
k = 0.2556
mu = 3.22639e-5
[]
[water]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[thm_closures]
type = Closures1PhaseTHM
[]
[none_closures]
type = Closures1PhaseNone
[]
[]
[Materials]
[Re_mat]
type = ADReynoldsNumberMaterial
Re = Re
rho = rho
vel = vel
D_h = D_h
mu = mu
block = hx/pri
[]
[f_mat]
type = ADParsedMaterial
property_name = f_D
constant_names = 'a b c'
constant_expressions = '1 0.1 -0.5'
material_property_names = 'Re'
expression = 'a + b * Re^c'
block = hx/pri
[]
[Pr_mat]
type = ADPrandtlNumberMaterial
Pr = Pr
cp = cp
mu = mu
k = k
block = hx/pri
[]
[Nu_mat]
type = ADParsedMaterial
property_name = 'Nu'
constant_names = 'a b c'
constant_expressions = '0.03 0.9 0.5'
material_property_names = 'Re Pr'
expression = 'a * Re ^b * Pr^c'
block = hx/pri
[]
[Hw_mat]
type = ADConvectiveHeatTransferCoefficientMaterial
D_h = D_h
k = k
Nu = Nu
Hw = Hw
block = hx/pri
[]
[]
[SolidProperties]
[steel]
type = ThermalFunctionSolidProperties
rho = 8050
k = 45
cp = 466
[]
[]
[Components]
[total_power]
type = TotalPower
power = ${tot_power}
[]
[up_pipe_1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '0 0 1'
length = 0.5
n_elems = 15
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[jct1]
type = JunctionParallelChannels1Phase
position = '0 0 0.5'
connections = 'up_pipe_1:out core_chan:in'
volume = 1e-5
use_scalar_variables = false
[]
[core_chan]
type = FlowChannel1Phase
position = '0 0 0.5'
orientation = '0 0 1'
length = ${core_length}
n_elems = ${core_n_elems}
roughness = .0001
A = ${A_core}
D_h = ${Dh_core}
[]
[core_hs]
type = HeatStructureCylindrical
position = '0 0 0.5'
orientation = '0 0 1'
length = ${core_length}
n_elems = ${core_n_elems}
names = 'block'
widths = '${fparse core_dia / 2.}'
solid_properties = 'steel'
solid_properties_T_ref = '300'
n_part_elems = 3
[]
[core_heating]
type = HeatSourceFromTotalPower
hs = core_hs
regions = block
power = total_power
[]
[core_ht]
type = HeatTransferFromHeatStructure1Phase
flow_channel = core_chan
hs = core_hs
hs_side = outer
P_hf = '${fparse pi * core_dia}'
[]
[jct2]
type = JunctionParallelChannels1Phase
position = '0 0 1.5'
connections = 'core_chan:out up_pipe_2:in'
volume = 1e-5
use_scalar_variables = false
[]
[up_pipe_2]
type = FlowChannel1Phase
position = '0 0 1.5'
orientation = '0 0 1'
length = 0.5
n_elems = 10
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[jct3]
type = JunctionOneToOne1Phase
connections = 'up_pipe_2:out top_pipe_1:in'
[]
[top_pipe_1]
type = FlowChannel1Phase
position = '0 0 2'
orientation = '1 0 0'
length = 0.5
n_elems = 10
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[top_pipe_2]
type = FlowChannel1Phase
position = '0.5 0 2'
orientation = '1 0 0'
length = 0.5
n_elems = 10
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[jct4]
type = VolumeJunction1Phase
position = '0.5 0 2'
volume = 1e-5
connections = 'top_pipe_1:out top_pipe_2:in press_pipe:in'
use_scalar_variables = false
[]
[press_pipe]
type = FlowChannel1Phase
position = '0.5 0 2'
orientation = '0 1 0'
length = 0.2
n_elems = 5
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[pressurizer]
type = InletStagnationPressureTemperature1Phase
p0 = ${press}
T0 = ${T_in}
input = press_pipe:out
[]
[jct5]
type = JunctionOneToOne1Phase
connections = 'top_pipe_2:out down_pipe_1:in'
[]
[down_pipe_1]
type = FlowChannel1Phase
position = '1 0 2'
orientation = '0 0 -1'
length = 0.25
A = ${A_pipe}
n_elems = 5
[]
[jct6]
type = JunctionParallelChannels1Phase
position = '1 0 1.75'
connections = 'down_pipe_1:out hx/pri:in'
volume = 1e-5
use_scalar_variables = false
[]
[hx]
[pri]
type = FlowChannel1Phase
position = '1 0 1.75'
orientation = '0 0 -1'
length = ${hx_length}
n_elems = ${hx_n_elems}
roughness = 1e-5
A = '${fparse pi * hx_dia_inner * hx_dia_inner / 4.}'
D_h = ${hx_dia_inner}
closures = none_closures
[]
[ht_pri]
type = HeatTransferFromHeatStructure1Phase
hs = hx/wall
hs_side = inner
flow_channel = hx/pri
P_hf = '${fparse pi * hx_dia_inner}'
[]
[wall]
type = HeatStructureCylindrical
position = '1 0 1.75'
orientation = '0 0 -1'
length = ${hx_length}
n_elems = ${hx_n_elems}
widths = '${hx_wall_thickness}'
n_part_elems = '3'
solid_properties = 'steel'
solid_properties_T_ref = '300'
names = '0'
inner_radius = '${fparse hx_dia_inner / 2.}'
[]
[ht_sec]
type = HeatTransferFromHeatStructure1Phase
hs = hx/wall
hs_side = outer
flow_channel = hx/sec
P_hf = '${fparse 2 * pi * hx_radius_wall}'
[]
[sec]
type = FlowChannel1Phase
position = '${fparse 1 + hx_wall_thickness} 0 0.25'
orientation = '0 0 1'
length = ${hx_length}
n_elems = ${hx_n_elems}
A = '${fparse pi * (hx_dia_outer * hx_dia_outer / 4. - hx_radius_wall * hx_radius_wall)}'
D_h = '${fparse hx_dia_outer - (2 * hx_radius_wall)}'
fp = water
initial_T = 300
[]
[]
[jct7]
type = JunctionParallelChannels1Phase
position = '1 0 0.5'
connections = 'hx/pri:out down_pipe_2:in'
volume = 1e-5
use_scalar_variables = false
[]
[down_pipe_2]
type = FlowChannel1Phase
position = '1 0 0.25'
orientation = '0 0 -1'
length = 0.25
n_elems = 10
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[jct8]
type = JunctionOneToOne1Phase
connections = 'down_pipe_2:out bottom_1:in'
[]
[bottom_1]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '-1 0 0'
length = 0.5
n_elems = 5
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[pump]
type = Pump1Phase
position = '0.5 0 0'
connections = 'bottom_1:out bottom_2:in'
volume = 1e-4
A_ref = ${A_pipe}
head = 0
use_scalar_variables = false
[]
[bottom_2]
type = FlowChannel1Phase
position = '0.5 0 0'
orientation = '-1 0 0'
length = 0.5
n_elems = 5
A = ${A_pipe}
D_h = ${pipe_dia}
[]
[jct9]
type = JunctionOneToOne1Phase
connections = 'bottom_2:out up_pipe_1:in'
[]
[inlet_sec]
type = InletMassFlowRateTemperature1Phase
input = 'hx/sec:in'
m_dot = 0
T = 300
[]
[outlet_sec]
type = Outlet1Phase
input = 'hx/sec:out'
p = 1e5
[]
[]
[ControlLogic]
[set_point]
type = GetFunctionValueControl
function = ${m_dot_in}
[]
[pid]
type = PIDControl
initial_value = 0.0
set_point = set_point:value
input = m_dot_pump
K_p = 1.
K_i = 4.
K_d = 0
[]
[set_pump_head]
type = SetComponentRealValueControl
component = pump
parameter = head
value = pid:output
[]
[m_dot_sec_inlet_ctrl]
type = GetFunctionValueControl
function = m_dot_sec_fn
[]
[set_m_dot_sec_ctrl]
type = SetComponentRealValueControl
component = inlet_sec
parameter = m_dot
value = m_dot_sec_inlet_ctrl:value
[]
[]
[Postprocessors]
[power_to_coolant]
type = ADHeatRateConvection1Phase
block = core_chan
P_hf = '${fparse pi *core_dia}'
[]
[m_dot_pump]
type = ADFlowJunctionFlux1Phase
boundary = core_chan:in
connection_index = 1
equation = mass
junction = jct7
[]
[core_T_out]
type = SideAverageValue
boundary = core_chan:out
variable = T
[]
[core_p_in]
type = SideAverageValue
boundary = core_chan:in
variable = p
[]
[core_p_out]
type = SideAverageValue
boundary = core_chan:out
variable = p
[]
[core_delta_p]
type = ParsedPostprocessor
pp_names = 'core_p_in core_p_out'
expression = 'core_p_in - core_p_out'
[]
[hx_pri_T_out]
type = SideAverageValue
boundary = hx/pri:out
variable = T
[]
[hx_sec_T_in]
type = SideAverageValue
boundary = inlet_sec
variable = T
[]
[hx_sec_T_out]
type = SideAverageValue
boundary = outlet_sec
variable = T
[]
[m_dot_sec]
type = ADFlowBoundaryFlux1Phase
boundary = inlet_sec
equation = mass
[]
[Hw_hx_pri]
type = ADElementAverageMaterialProperty
mat_prop = Hw
block = hx/pri
[]
[fD_hx_pri]
type = ADElementAverageMaterialProperty
mat_prop = f_D
block = hx/pri
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
start_time = 0
[TimeStepper]
type = IterationAdaptiveDT
dt = 1
[]
dtmax = 5
end_time = 500
line_search = basic
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 25
[]
[Outputs]
exodus = true
[console]
type = Console
max_rows = 1
outlier_variable_norms = false
[]
print_linear_residuals = false
[]
(test/tests/batch_property_derivative/test.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 100
ny = 100
[]
[]
[Variables]
[v]
[]
[]
[Kernels]
[null]
type = NullKernel
variable = v
[]
[]
[UserObjects]
[batch_deriv]
type = BatchPropertyDerivativeRankTwoTensorReal
material_property = number
[]
[batch]
type = BatchPropertyDerivativeTest
batch_deriv_uo = batch_deriv
prop = tensor
execute_on = 'LINEAR'
[]
[]
[Materials]
[prop1]
type = GenericConstantRankTwoTensor
tensor_name = tensor
tensor_values = '1 2 3 4 5 6 7 8 9'
[]
[prop2]
type = GenericFunctionMaterial
prop_names = number
prop_values = 'x^2+sin(y*3)+cos(t*10)'
[]
[test]
type = BatchTestPropertyDerivative
prop = tensor
batch_uo = batch
[]
[]
[Postprocessors]
[average]
type = ElementAverageMaterialProperty
mat_prop = batch_out
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
(modules/solid_mechanics/test/tests/rom_stress_update/3tile_strain.i)
# This is a test to check that changing the finite_difference_width does indeed change convergence
# The number of nonlinear iterations should be greater a width of 1e-20 than 1e-2
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
initial_condition = 920
[]
[]
[AuxKernels]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
extra_vector_tags = 'ref'
[]
[]
[BCs]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 5e-4
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e11
poissons_ratio = 0.3
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = LAROMANCE3TileTest
temperature = temperature
outputs = all
initial_cell_dislocation_density = 5.7e12
initial_wall_dislocation_density = 4.83e11
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1e-5
num_steps = 5
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
outputs = 'console'
[]
[partition_weight]
type = ElementAverageMaterialProperty
mat_prop = partition_weight
outputs = 'console'
[]
[creep_rate]
type = ElementAverageMaterialProperty
mat_prop = creep_rate
[]
[rhom_rate]
type = ElementAverageMaterialProperty
mat_prop = cell_dislocation_rate
outputs = 'console'
[]
[rhoi_rate]
type = ElementAverageMaterialProperty
mat_prop = wall_dislocation_rate
outputs = 'console'
[]
[vonmises]
type = ElementAverageValue
variable = vonmises_stress
outputs = 'console'
[]
[nl_its]
type = NumNonlinearIterations
outputs = none
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
outputs = 'console'
[]
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/thermal_hydraulics/test/tests/materials/wall_friction_factor/churchill_ad.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
allow_renumbering = false
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'rho vel mu D_h'
prop_values = '1000 0.1 0.001 0.15'
[]
[fD_material]
type = ADWallFrictionChurchillMaterial
rho = rho
vel = vel
D_h = D_h
mu = mu
f_D = 'f_D'
roughness = 0.5
[]
[]
[Postprocessors]
[fD]
type = ADElementAverageMaterialProperty
mat_prop = f_D
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(modules/solid_mechanics/test/tests/scalar_material_damage/ad_nonlocal_scalar_damage.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
nx = 5
ny = 5
nz = 5
elem_type = HEX8
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx strain_xx'
use_automatic_differentiation = true
[]
[]
[BCs]
[symmy]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = ADDirichletBC
variable = disp_z
boundary = back
value = 0
[]
[axial_load]
type = ADDirichletBC
variable = disp_x
boundary = right
value = 0.01
[]
[]
[Functions]
[func]
type = ParsedFunction
expression = 'if(x>=0,0.5*t, t)'
[]
[]
[UserObjects]
[ele_avg]
type = RadialAverage
prop_name = local_damage_reg
weights = constant
execute_on = "INITIAL timestep_end"
radius = 0.55
[]
[]
[Materials]
[non_ad_local_damage]
type = MaterialADConverter
ad_props_in = local_damage
reg_props_out = local_damage_reg
[]
[local_damage_index]
type = ADGenericFunctionMaterial
prop_names = local_damage_index
prop_values = func
[]
[local_damage]
type = ADScalarMaterialDamage
damage_index = local_damage_index
damage_index_name = local_damage
[]
[damage]
type = ADNonlocalDamage
average_UO = ele_avg
local_damage_model = local_damage
damage_index_name = nonlocal_damage
[]
[elasticity]
type = ADComputeIsotropicElasticityTensor
poissons_ratio = 0.2
youngs_modulus = 10e9
[]
[stress]
type = ADComputeDamageStress
damage_model = damage
[]
[]
[Postprocessors]
[stress_xx]
type = ElementAverageValue
variable = stress_xx
[]
[strain_xx]
type = ElementAverageValue
variable = strain_xx
[]
[nonlocal_damage]
type = ADElementAverageMaterialProperty
mat_prop = nonlocal_damage
[]
[local_damage]
type = ADElementAverageMaterialProperty
mat_prop = local_damage
[]
[]
[Executioner]
type = Transient
l_max_its = 50
l_tol = 1e-8
nl_max_its = 20
nl_rel_tol = 1e-12
nl_abs_tol = 1e-8
dt = 0.2
dtmin = 0.1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_3D.i)
nz = 1
z = '${fparse nz*0.2}'
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 5
ny = 5
nz = ${nz}
zmax = ${z}
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[BCs]
[fix_x]
type = DirichletBC
boundary = 'top bottom'
variable = disp_x
value = 0
[]
[fix_y]
type = DirichletBC
boundary = 'bottom'
variable = disp_y
value = 0
[]
[fix_z]
type = DirichletBC
boundary = 'top bottom'
variable = disp_z
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[strain]
type = ComputeLagrangianStrain
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[stress_zz]
type = RankTwoCartesianComponent
rank_two_tensor = cauchy_stress
index_i = 2
index_j = 2
property_name = stress_zz
[]
[strain_zz]
type = RankTwoCartesianComponent
rank_two_tensor = mechanical_strain
index_i = 2
index_j = 2
property_name = strain_zz
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-6
[]
[Postprocessors]
[strain_zz]
type = ElementAverageMaterialProperty
mat_prop = strain_zz
[]
[stress_zz]
type = ElementAverageMaterialProperty
mat_prop = stress_zz
[]
[]
[Outputs]
csv = true
file_base = 'pull_3D_nz_${nz}'
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_2D.i)
constraint_types = 'none none none none none none none none strain'
targets = '0'
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
stabilize_strain = true
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[hvar]
family = SCALAR
order = FIRST
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
variable = hvar
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'top bottom'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_homogenization_gradient]
type = ComputeHomogenizedLagrangianStrain
[]
[compute_strain]
type = ComputeLagrangianStrain
homogenization_gradient_names = 'homogenization_gradient'
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[stress_zz]
type = RankTwoCartesianComponent
rank_two_tensor = cauchy_stress
index_i = 2
index_j = 2
property_name = stress_zz
[]
[strain_zz]
type = RankTwoCartesianComponent
rank_two_tensor = mechanical_strain
index_i = 2
index_j = 2
property_name = strain_zz
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Postprocessors]
[strain_zz]
type = ElementAverageMaterialProperty
mat_prop = strain_zz
[]
[stress_zz]
type = ElementAverageMaterialProperty
mat_prop = stress_zz
[]
[]
[Outputs]
csv = true
[]
(tutorials/darcy_thermo_mech/step10_multiapps/problems/step10_micro.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
ymax = 0.1
xmax = 0.1
[]
uniform_refine = 0
[]
[Adaptivity]
max_h_level = 4
initial_steps = 6
initial_marker = error_marker
cycles_per_step = 2
marker = error_marker
[Indicators]
[phi_jump]
type = GradientJumpIndicator
variable = phi
[]
[]
[Markers]
[error_marker]
type = ErrorFractionMarker
indicator = phi_jump
refine = 0.8
coarsen = 0.1
[]
[]
[]
[Variables]
[temperature]
initial_condition = 300
[]
[]
[AuxVariables]
[phi]
[]
[]
[AuxKernels]
[corrosion]
type = RandomCorrosion
variable = phi
reference_temperature = 300
temperature = temperature_in
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Kernels]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[]
[BCs]
[left]
type = PostprocessorDirichletBC
variable = temperature
boundary = left
postprocessor = temperature_in
[]
[right]
type = NeumannBC
variable = temperature
boundary = right
value = 100 # prescribed flux
[]
[]
[Materials]
[column]
type = PackedColumn
temperature = temperature
radius = 1 # mm
phase = phi
[]
[]
[Postprocessors]
[temperature_in]
type = Receiver
default = 301
[]
[k_eff]
type = ThermalConductivity
variable = temperature
T_hot = temperature_in
flux = 100
dx = 0.1
boundary = right
length_scale = 1
k0 = 12.05
execute_on = 'INITIAL TIMESTEP_END'
[]
[average_porosity]
type = ADElementAverageMaterialProperty
mat_prop = porosity
execute_on = 'INITIAL TIMESTEP_END'
[]
[t_right]
type = SideAverageValue
boundary = right
variable = temperature
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
end_time = 1000
dt = 1
steady_state_tolerance = 1e-9
steady_state_detection = true
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
[]
[ICs]
[close_pack]
radius = 0.01 # meter
outvalue = 0 # water
variable = phi
invalue = 1 # steel
type = ClosePackIC
[]
[]
(modules/thermal_hydraulics/test/tests/materials/ad_material_function_product/ad_material_function_product.i)
# Gold value should be the following:
# product = scale * func
# = 0.5 * 100
# = 50
[GlobalParams]
execute_on = 'initial'
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
[]
[Functions]
[func]
type = ConstantFunction
value = 100
[]
[]
[Materials]
[scale_mat]
type = ADGenericConstantMaterial
prop_names = 'scale'
prop_values = '0.5'
[]
[product_mat]
type = ADMaterialFunctionProductMaterial
mat_prop_product = product
mat_prop_scale = scale
function = func
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Postprocessors]
[product_pp]
type = ADElementAverageMaterialProperty
mat_prop = product
[]
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/materials/ad_convection_heat_flux_hs/ad_convection_heat_flux_hs.i)
# Gold value should be the following:
# q_wall = kappa * htc_wall * (T_wall - T)
# = 0.5 * 100 * (500 - 400)
# = 5000
[GlobalParams]
execute_on = 'initial'
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'T T_wall htc_wall kappa'
prop_values = '400 500 100 0.5'
[]
[q_wall_mat]
type = ADConvectionHeatFluxHSMaterial
q_wall = q_wall_prop
T = T
T_wall = T_wall
htc_wall = htc_wall
kappa = kappa
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Postprocessors]
[q_wall_pp]
type = ADElementAverageMaterialProperty
mat_prop = q_wall_prop
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_z.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 2
ymin = 0
ymax = 10
zmin = 0
zmax = 2
nx = 1
ny = 1
nz = 1
elem_type = HEX8
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '2 0 0'
input = corner
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
volumetric_locking_correction = true
use_automatic_differentiation = true
generate_output = 'elastic_strain_xx stress_xx creep_strain_xx'
[]
[]
[Materials]
[elastic_strain]
type = ADComputeMultipleInelasticStress
inelastic_models = "trial_creep"
max_iterations = 50
absolute_tolerance = 1e-18
[]
[hill_tensor]
type = ADHillConstants
# F G H L M N
hill_constants = "0.5 1.0 0.5 1.5 1.5 1.5"
use_large_rotation = true
[]
[trial_creep]
type = ADHillCreepStressUpdate
coefficient = 5e-14
n_exponent = 10
m_exponent = 0
activation_energy = 0
max_inelastic_increment = 0.00003
absolute_tolerance = 1e-18
relative_tolerance = 1e-18
# Force it to not use integration error
max_integration_error = 100.0
use_transformation = true
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 500
poissons_ratio = 0.0
[]
[]
[BCs]
[fix_z]
type = ADDirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[rot_y]
type = DisplacementAboutAxis
boundary = bottom
function = t
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 1
variable = disp_y
[]
#
[rot_x]
type = DisplacementAboutAxis
boundary = bottom
function = t
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 0
variable = disp_x
[]
[rot_y90]
type = DisplacementAboutAxis
boundary = bottom
function = 90
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 1
variable = disp_y
[]
#
[rot_x90]
type = DisplacementAboutAxis
boundary = bottom
function = 90
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 0
variable = disp_x
[]
[press]
boundary = top
function = '-1.0*(t-90)*0.1'
use_displaced_mesh = true
displacements = 'disp_x disp_y disp_z'
type = Pressure
variable = disp_x
[]
[]
[Postprocessors]
[creep_strain_xx]
type = ADElementAverageMaterialProperty
mat_prop = creep_strain_xx
[]
[]
[Controls]
[c1]
type = TimePeriod
enable_objects = 'BCs::rot_x BCs::rot_y'
disable_objects = 'BCs::rot_x90 BCs::rot_y90 BCs::press'
start_time = '0'
end_time = '90'
[]
[c190plus]
type = TimePeriod
enable_objects = 'BCs::rot_x90 BCs::rot_y90 BCs::press'
disable_objects = 'BCs::rot_x BCs::rot_y '
start_time = '90'
end_time = '390'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
nl_max_its = 50
automatic_scaling = true
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 0.1
dtmin = 0.1
num_steps = 1200
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/thermal_hydraulics/test/tests/closures/THM_1phase/thm1phase.i)
D = 0.1
A = '${fparse (1./4.)*pi*D^2}'
P_hf = '${fparse pi*D}'
D_h = '${fparse 4*A/P_hf}'
mdot = 0.04
file_base = 'db_churchill'
[GlobalParams]
gravity_vector = '0 0 0'
initial_vel = 0.003
initial_p = 1e5
initial_T = 300
D_h = ${D_h}
A = ${A}
P_hf = ${P_hf}
m_dot = ${mdot}
closures = thm
execute_on = 'initial timestep_begin'
[]
[FluidProperties]
[water]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
k = 0.56361
mu = 8.84e-05
[]
[]
[Closures]
[thm]
type = Closures1PhaseTHM
wall_htc_closure = dittus_boelter
wall_ff_closure = churchill
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = water
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 10
[]
#--------------Pipe BCs-------------#
[inlet]
type = InletMassFlowRateTemperature1Phase
input = 'pipe:in'
T = 300
[]
[outlet]
type = Outlet1Phase
input = 'pipe:out'
p = 1e5
[]
[ht]
type = HeatTransferFromSpecifiedTemperature1Phase
flow_channel = 'pipe'
T_wall = 500
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 1e-5
[]
[Postprocessors]
[Hw]
type = ADElementAverageMaterialProperty
mat_prop = Hw
[]
[f]
type = ADElementAverageMaterialProperty
mat_prop = f_D
block = pipe
[]
[]
[Outputs]
csv = true
file_base = ${file_base}
[]
(modules/fluid_properties/test/tests/materials/saturation_pressure_material/saturation_pressure_material.i)
# This tests SaturationPressureMaterial, which computes a saturation pressure material
# property from a temperature material property and a TwoPhaseFluidProperties object.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
xmin = 0
xmax = 1
[]
[FluidProperties]
[fp_2phase]
type = StiffenedGasTwoPhaseFluidProperties
[]
[]
[Materials]
[T_mat]
type = ADGenericConstantMaterial
prop_names = 'T'
prop_values = '400'
[]
[p_sat_mat]
type = ADSaturationPressureMaterial
T = T
p_sat = p_sat
fp_2phase = fp_2phase
[]
[]
[Postprocessors]
[p_sat_pp]
type = ADElementAverageMaterialProperty
mat_prop = p_sat
execute_on = 'INITIAL'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
execute_on = 'INITIAL'
[]
(modules/thermal_hydraulics/test/tests/materials/ad_reynolds_number/test.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
allow_renumbering = false
[]
[Materials]
[const_mpropsat]
type = ADGenericConstantMaterial
prop_names = 'rho vel D_h mu'
prop_values = '1000 5 0.002 0.1'
[]
[Re_material]
type = ADReynoldsNumberMaterial
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[Re]
type = ADElementAverageMaterialProperty
mat_prop = Re
[]
[]
[Outputs]
csv = true
execute_on = timestep_end
[]
(modules/solid_mechanics/test/tests/rom_stress_update/3tile_json.i)
# Tests the tile and partition assembly for overlapping partitions and
# a variety of different overlapping tile conditions.
# Creep_rate should always be 2.718281828459
endtime = 1.9
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[rhom_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12'
direction = LEFT_INCLUSIVE
[]
[rhoi_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11'
direction = LEFT_INCLUSIVE
[]
[vmJ2_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '25.68 25.68 45.0 55.28 63.0 67.12 85.0 85.0 85.0 85.0 85.0 85.0 55.28 63.0 67.12 63.0 63.0 55.28 96.72 63.0'
direction = LEFT_INCLUSIVE
[]
[evm_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01'
direction = LEFT_INCLUSIVE
[]
[temp_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '940.0 940.0 940.0 940.0 940.0 940.0 940.0 905.0 897.0 881.0 860.0 821.0 860.0 881.0 897.0 897.0 905.0 897.0 860.0 860.0'
direction = LEFT_INCLUSIVE
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
[]
[]
[BCs]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
shear_modulus = 1e13
poissons_ratio = 0.3
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = LAROMANCEPartitionStressUpdate
model = laromance/test/3tile.json
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
apply_strain = false
outputs = all
verbose = true
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
wall_input_window_low_failure = ERROR
wall_input_window_high_failure = ERROR
cell_input_window_low_failure = ERROR
cell_input_window_high_failure = ERROR
temperature_input_window_low_failure = DONOTHING
temperature_input_window_high_failure = ERROR
stress_input_window_low_failure = DONOTHING
stress_input_window_high_failure = ERROR
old_strain_input_window_low_failure = ERROR
old_strain_input_window_high_failure = ERROR
environment_input_window_low_failure = ERROR
environment_input_window_high_failure = ERROR
effective_stress_forcing_function = vmJ2_fcn
initial_cell_dislocation_density = 4.0e12
max_relative_cell_dislocation_increment = 0.5
initial_wall_dislocation_density = 5.0e12
max_relative_wall_dislocation_increment = 0.5
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
dt = 0.1
end_time = ${endtime}
timestep_tolerance = 1e-3
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[old_strain_in]
type = FunctionValuePostprocessor
function = evm_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[partition_weight]
type = ElementAverageMaterialProperty
mat_prop = partition_weight
[]
[rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
[]
[creep_rate]
type = ElementAverageMaterialProperty
mat_prop = creep_rate
[]
[rhom_rate]
type = ElementAverageMaterialProperty
mat_prop = cell_dislocation_rate
[]
[rhoi_rate]
type = ElementAverageMaterialProperty
mat_prop = wall_dislocation_rate
[]
[]
[Outputs]
csv = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_flux_1phase/phy.q_wall_multiple_3eqn.i)
# Tests that energy conservation is satisfied in 1-phase flow when there are
# multiple heat transfer components connected to the same pipe, using specified
# wall heat flux.
#
# This problem has 2 wall heat flux sources, each with differing parameters.
# Solid wall boundary conditions are imposed such that there should be no flow,
# and the solution should be spatially uniform. With no other sources, the
# energy balance is
# (rho*e*A)^{n+1} = (rho*e*A)^n + dt * [(q1*P1) + (q2*P2)]
# Note that spatial integration is dropped here due to spatial uniformity, and
# E has been replaced with e since velocity should be zero.
#
# For the initial conditions
# p = 100 kPa
# T = 300 K
# the density and specific internal energy should be
# rho = 1359.792245 kg/m^3
# e = 1.1320645935e+05 J/kg
#
# With the following heat source parameters:
# q1 = 10 MW/m^2 P1 = 0.2 m
# q2 = 20 MW/m^2 P2 = 0.4 m
# and A = 1 m^2 and dt = 2 s, the new energy solution value should be
# (rho*e*A)^{n+1} = 1359.792245 * 1.1320645935e+05 * 1 + 2 * (10e6 * 0.2 + 20e6 * 0.4)
# = 173937265.50803775 J/m
#
[GlobalParams]
gravity_vector = '0 0 0'
initial_T = 300
initial_p = 100e3
initial_vel = 0
closures = simple_closures
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = fp
position = '0 0 0'
orientation = '1 0 0'
A = 1
f = 0
# length and number of elements should be arbitrary for the test
length = 10
n_elems = 1
[]
[ht1]
type = HeatTransferFromHeatFlux1Phase
flow_channel = pipe
q_wall = 10e6
P_hf = 0.2
Hw = 1
[]
[ht2]
type = HeatTransferFromHeatFlux1Phase
flow_channel = pipe
q_wall = 20e6
P_hf = 0.4
Hw = 1
[]
[left]
type = SolidWall1Phase
input = 'pipe:in'
[]
[right]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Preconditioning]
[preconditioner]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 2
num_steps = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 5
l_tol = 1e-10
l_max_its = 10
[]
[Postprocessors]
[rhoEA_predicted]
type = ElementAverageValue
variable = rhoEA
block = pipe
[]
# This is included to test the naming of heat transfer quantities in the case
# of multiple heat transfers connected to a flow channel. This PP is not used
# in output but just included to ensure that an error does not occur (which is
# the case if the expected material property name does not exist).
# See https://github.com/idaholab/moose/issues/26286.
[q_wall_name_check]
type = ADElementAverageMaterialProperty
mat_prop = 'q_wall:2'
[]
[]
[Outputs]
[out]
type = CSV
show = 'rhoEA_predicted'
execute_on = 'final'
[]
[]
(test/tests/batch_material/test.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 100
ny = 100
[]
[]
[Variables]
[v]
[]
[]
[Kernels]
[dt]
type = TimeDerivative
variable = v
[]
[diff]
type = Diffusion
variable = v
[]
[]
[BCs]
[left]
type = DirichletBC
variable = v
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = v
boundary = right
value = 1
[]
[]
[UserObjects]
[batch]
type = BatchMaterialTest
var1 = v
prop1 = tensor
prop2 = number
execute_on = 'LINEAR'
[]
[]
[Materials]
[prop1]
type = GenericConstantRankTwoTensor
tensor_name = tensor
tensor_values = '1 2 3 4 5 6 7 8 9'
[]
[prop2]
type = GenericFunctionMaterial
prop_names = number
prop_values = 'x^2+sin(y*3)+cos(t*10)'
[]
[test]
type = BatchTestMaterial
var1 = v
prop1 = tensor
prop2 = number
batch_uo = batch
[]
[]
[Postprocessors]
[average1]
type = ElementAverageMaterialProperty
mat_prop = batch_out1
[]
[average2]
type = ElementAverageMaterialProperty
mat_prop = batch_out2
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.1
num_steps = 3
[]
(modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_z_no_rotation.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 2
ymin = 0
ymax = 10
zmin = 0
zmax = 2
nx = 1
ny = 1
nz = 1
elem_type = HEX8
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '2 0 0'
input = corner
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
volumetric_locking_correction = true
use_automatic_differentiation = true
generate_output = 'elastic_strain_yy stress_yy creep_strain_yy'
[]
[]
[Materials]
[elastic_strain]
type = ADComputeMultipleInelasticStress
inelastic_models = "trial_creep"
max_iterations = 50
absolute_tolerance = 1e-18
[]
[hill_tensor]
type = ADHillConstants
# F G H L M N
hill_constants = "0.5 1.0 0.5 1.5 1.5 1.5"
use_large_rotation = true
[]
[trial_creep]
type = ADHillCreepStressUpdate
coefficient = 5e-14
n_exponent = 10
m_exponent = 0
activation_energy = 0
max_inelastic_increment = 0.00003
absolute_tolerance = 1e-18
relative_tolerance = 1e-18
# Force it to not use integration error
max_integration_error = 100.0
use_transformation = true
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 500
poissons_ratio = 0.0
[]
[]
[BCs]
[fix_z]
type = ADDirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[rot_y]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 1
variable = disp_y
[]
#
[rot_x]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 0
variable = disp_x
[]
[rot_y90]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 1
variable = disp_y
[]
#
[rot_x90]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 0. 1.'
component = 0
variable = disp_x
[]
[press]
boundary = top
function = '-1.0*(t-90)*0.1'
use_displaced_mesh = true
displacements = 'disp_x disp_y disp_z'
type = Pressure
variable = disp_y
[]
[]
[Controls]
[c1]
type = TimePeriod
enable_objects = 'BCs::rot_x BCs::rot_y'
disable_objects = 'BCs::rot_x90 BCs::rot_y90 BCs::press'
start_time = '0'
end_time = '90'
[]
[c190plus]
type = TimePeriod
enable_objects = 'BCs::rot_x90 BCs::rot_y90 BCs::press'
disable_objects = 'BCs::rot_x BCs::rot_y '
start_time = '90'
end_time = '390'
[]
[]
[Postprocessors]
[creep_strain_xx]
type = ADElementAverageMaterialProperty
mat_prop = creep_strain_yy
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
nl_max_its = 50
automatic_scaling = true
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 0.1
dtmin = 0.1
num_steps = 1200
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/postprocessors/element_average_material_property/element_average_material_property.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 4
xmin = 0
xmax = 1
[]
[Functions]
[./fn]
type = PiecewiseConstant
axis = x
x = '0 0.25 0.50 0.75'
y = '5 2 3 6'
[../]
[]
[Materials]
[./mat]
type = GenericFunctionMaterial
prop_names = 'mat_prop'
prop_values = 'fn'
[../]
[]
[Postprocessors]
[./avg]
type = ElementAverageMaterialProperty
mat_prop = mat_prop
execute_on = 'INITIAL'
[../]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
execute_on = 'INITIAL'
[]
(modules/thermal_hydraulics/test/tests/materials/ad_convective_heat_transfer_coefficient/test.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
allow_renumbering = false
[]
[Problem]
solve = false
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'Nu k D_h'
prop_values = '1000 2 20'
[]
[Hw_material]
type = ADConvectiveHeatTransferCoefficientMaterial
Nu = Nu
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[Hw]
type = ADElementAverageMaterialProperty
mat_prop = Hw
[]
[]
[Outputs]
csv = true
execute_on = 'TIMESTEP_END'
[]
(test/tests/materials/projected_stateful_materials/test.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[ProjectedStatefulMaterialStorage]
[all]
projected_props = 'test_real test_realvectorvalue test_ranktwotensor test_rankfourtensor'
family = MONOMIAL
order = FIRST
[]
[]
[Materials]
[test]
type = ProjectedStatefulPropertiesTestMaterial
[]
[]
[Postprocessors]
[average_diff]
type = ElementAverageMaterialProperty
mat_prop = diff_norm
[]
[]
[Executioner]
type = Transient
num_steps = 4
[]
[Debug]
show_material_props = true
[]
[Outputs]
csv = true
# in initial the freshly set up old state of the material properties differes
# from the interpolated state as the MAT->AUX->MAT dependency cannot be
# resolved (as both the computation of the current state as well as the
# testing are done in the same material object)
execute_on = 'TIMESTEP_END'
[]
(modules/thermal_hydraulics/test/tests/materials/ad_wall_htc_gnielinski_annular/ad_wall_htc_gnielinski_annular.i)
rho = 3.1176
vel = 100
k = 0.38220
mu = 4.8587e-05
cp = 5189.8
p = 100e3
T = 1073
T_wall = 1074
D_inner = 0.01
D_outer = 0.015
length = 0.5
[GlobalParams]
execute_on = 'INITIAL'
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
[]
[FluidProperties]
[fp]
type = IdealGasFluidProperties
[]
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'rho vel k mu cp p T T_wall'
prop_values = '${rho} ${vel} ${k} ${mu} ${cp} ${p} ${T} ${T_wall}'
[]
[test_material]
type = ADWallHTCGnielinskiAnnularMaterial
htc_wall = htc_wall
D_inner = ${D_inner}
D_outer = ${D_outer}
channel_length = ${length}
at_inner_wall = true
fluid_is_gas = true
gas_heating_correction_exponent = 0.15
fluid_properties = fp
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[htc_wall]
type = ADElementAverageMaterialProperty
mat_prop = htc_wall
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/rom_stress_update/3tile.i)
# Tests the tile and partition assembly for overlapping partitions and
# a variety of different overlapping tile conditions.
# Creep_rate should always be 2.718281828459
endtime = 1.9
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[rhom_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12'
direction = LEFT_INCLUSIVE
[]
[rhoi_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11'
direction = LEFT_INCLUSIVE
[]
[vmJ2_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '25.68 25.68 45.0 55.28 63.0 67.12 85.0 85.0 85.0 85.0 85.0 85.0 55.28 63.0 67.12 63.0 63.0 55.28 96.72 63.0'
direction = LEFT_INCLUSIVE
[]
[evm_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01'
direction = LEFT_INCLUSIVE
[]
[temp_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '940.0 940.0 940.0 940.0 940.0 940.0 940.0 905.0 897.0 881.0 860.0 821.0 860.0 881.0 897.0 897.0 905.0 897.0 860.0 860.0'
direction = LEFT_INCLUSIVE
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
[]
[]
[BCs]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
shear_modulus = 1e13
poissons_ratio = 0.3
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = LAROMANCE3TileTest
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
apply_strain = false
outputs = all
verbose = true
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
wall_input_window_low_failure = ERROR
wall_input_window_high_failure = ERROR
cell_input_window_low_failure = ERROR
cell_input_window_high_failure = ERROR
temperature_input_window_low_failure = DONOTHING
temperature_input_window_high_failure = ERROR
stress_input_window_low_failure = DONOTHING
stress_input_window_high_failure = ERROR
old_strain_input_window_low_failure = ERROR
old_strain_input_window_high_failure = ERROR
environment_input_window_low_failure = ERROR
environment_input_window_high_failure = ERROR
effective_stress_forcing_function = vmJ2_fcn
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
dt = 0.1
end_time = ${endtime}
timestep_tolerance = 1e-3
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[old_strain_in]
type = FunctionValuePostprocessor
function = evm_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[partition_weight]
type = ElementAverageMaterialProperty
mat_prop = partition_weight
[]
[rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
[]
[creep_rate]
type = ElementAverageMaterialProperty
mat_prop = creep_rate
[]
[rhom_rate]
type = ElementAverageMaterialProperty
mat_prop = cell_dislocation_rate
[]
[rhoi_rate]
type = ElementAverageMaterialProperty
mat_prop = wall_dislocation_rate
[]
[]
[Outputs]
csv = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/cp_eigenstrains/volumetric_eigenstrain_increase.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX27
[]
[]
[AuxVariables]
[temperature]
order = FIRST
family = LAGRANGE
[]
[linear_void_strain]
order = CONSTANT
family = MONOMIAL
[]
[e_void_xx]
order = CONSTANT
family = MONOMIAL
[]
[e_void_yy]
order = CONSTANT
family = MONOMIAL
[]
[e_void_zz]
order = CONSTANT
family = MONOMIAL
[]
[f_void_zz]
order = CONSTANT
family = MONOMIAL
[]
[pk2_zz]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[tau_0]
order = FIRST
family = MONOMIAL
[]
[tau_10]
order = FIRST
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[Functions]
[temperature_ramp]
type = ParsedFunction
expression = '600.0 + t'
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
variable = temperature
function = 'temperature_ramp'
execute_on = timestep_begin
[]
[linear_void_strain]
type = MaterialRealAux
variable = linear_void_strain
property = equivalent_linear_change
execute_on = timestep_end
[]
[e_void_xx]
type = RankTwoAux
variable = e_void_xx
rank_two_tensor = void_eigenstrain
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[e_void_yy]
type = RankTwoAux
variable = e_void_yy
rank_two_tensor = void_eigenstrain
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[e_void_zz]
type = RankTwoAux
variable = e_void_zz
rank_two_tensor = void_eigenstrain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[f_void_zz]
type = RankTwoAux
variable = f_void_zz
rank_two_tensor = volumetric_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[pk2_zz]
type = RankTwoAux
variable = pk2_zz
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_0]
type = MaterialStdVectorAux
variable = tau_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[tau_10]
type = MaterialStdVectorAux
variable = tau_10
property = applied_shear_stress
index = 10
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[hold_front]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.98e5 1.25e5 1.25e5 1.98e5 1.25e5 1.98e5 1.22e5 1.22e5 1.22e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
eigenstrain_names = void_eigenstrain
tan_mod_type = exact
line_search_method = CUT_HALF
use_line_search = true
maximum_substep_iteration = 5
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[void_eigenstrain]
type = ComputeCrystalPlasticityVolumetricEigenstrain
eigenstrain_name = void_eigenstrain
deformation_gradient_name = volumetric_deformation_gradient
mean_spherical_void_radius = void_radius
spherical_void_number_density = void_density
[]
[void_density]
type = ParsedMaterial
property_name = void_density
coupled_variables = temperature
expression = '1.0e8 * (temperature - 600.0)'
[]
[void_radius]
type = GenericConstantMaterial
prop_names = void_radius
prop_values = '1.0e-6' ##1 nm avg particle radius
[]
[]
[Postprocessors]
[linear_void_strain]
type = ElementAverageValue
variable = linear_void_strain
[]
[e_void_xx]
type = ElementAverageValue
variable = e_void_xx
[]
[e_void_yy]
type = ElementAverageValue
variable = e_void_yy
[]
[e_void_zz]
type = ElementAverageValue
variable = e_void_zz
[]
[f_void_zz]
type = ElementAverageValue
variable = f_void_zz
[]
[density]
type = ElementAverageMaterialProperty
mat_prop = void_density
execute_on = TIMESTEP_END
[]
[radius]
type = ElementAverageMaterialProperty
mat_prop = void_radius
execute_on = TIMESTEP_END
[]
[pk2_zz]
type = ElementAverageValue
variable = pk2_zz
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[tau_0]
type = ElementAverageValue
variable = tau_0
[]
[tau_10]
type = ElementAverageValue
variable = tau_10
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
line_search = 'none'
nl_abs_tol = 1e-12
nl_rel_tol = 1e-8
nl_forced_its = 1
dt = 1.0
dtmin = 0.1
end_time = 5.0
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/stochastic_tools/test/tests/multiapps/batch_commandline_control/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Variables]
[u]
initial_condition = 1980
[]
[]
[Problem]
type = FEProblem
solve = false
[]
[Executioner]
type = Steady
[]
[Materials]
[const]
type = GenericConstantMaterial
prop_names = 'A B C D'
prop_values = '1.0 2.0 3.0 4.0'
[]
[]
[Postprocessors]
[size]
type = AverageElementSize
execute_on = 'initial'
[]
[prop_A]
type = ElementAverageMaterialProperty
mat_prop = A
execute_on = 'initial'
[]
[prop_B]
type = ElementAverageMaterialProperty
mat_prop = B
execute_on = 'initial'
[]
[prop_C]
type = ElementAverageMaterialProperty
mat_prop = C
execute_on = 'initial'
[]
[prop_D]
type = ElementAverageMaterialProperty
mat_prop = D
execute_on = 'initial'
[]
[]
(modules/thermal_hydraulics/test/tests/materials/ad_prandtl_number/test.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
allow_renumbering = false
[]
[Problem]
solve = false
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'cp mu k'
prop_values = '1 2 4'
[]
[Pr_material]
type = ADPrandtlNumberMaterial
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[Pr]
type = ADElementAverageMaterialProperty
mat_prop = Pr
[]
[]
[Outputs]
csv = true
execute_on = 'TIMESTEP_END'
[]
(modules/solid_properties/test/tests/materials/constant_density_thermal_solid_properties/constant_density_thermal_solid_properties.i)
# The gold density value should reflect the reference temperature value, not
# the temperature variable value.
T_initial = 300
T_ref = 500
[GlobalParams]
execute_on = 'INITIAL'
[]
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 1
[]
[SolidProperties]
[ss316_sp]
type = ThermalSS316Properties
[]
[]
[Materials]
[sp_mat]
type = ADConstantDensityThermalSolidPropertiesMaterial
temperature = T
sp = ss316_sp
T_ref = ${T_ref}
[]
[]
[AuxVariables]
[T]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[T_ak]
type = ConstantAux
variable = T
value = ${T_initial}
[]
[]
[Postprocessors]
[density]
type = ADElementAverageMaterialProperty
mat_prop = density
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/materials/ad_convection_heat_flux/ad_convection_heat_flux.i)
# Gold value should be the following:
# q_wall = kappa * htc_wall * (T_wall - T)
# = 0.5 * 100 * (500 - 400)
# = 5000
[GlobalParams]
execute_on = 'initial'
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
[]
[AuxVariables]
[T_wall]
[]
[]
[AuxKernels]
[T_wall_ak]
type = ConstantAux
variable = T_wall
value = 500
[]
[]
[Materials]
[props]
type = ADGenericConstantMaterial
prop_names = 'T htc_wall kappa'
prop_values = '400 100 0.5'
[]
[q_wall_mat]
type = ADConvectionHeatFluxMaterial
q_wall = q_wall_prop
T = T
T_wall = T_wall
htc_wall = htc_wall
kappa = kappa
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Postprocessors]
[q_wall_pp]
type = ADElementAverageMaterialProperty
mat_prop = q_wall_prop
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_x.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 2
ymin = 0
ymax = 10
zmin = 0
zmax = 2
nx = 1
ny = 1
nz = 1
elem_type = HEX8
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '2 0 0'
input = corner
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
volumetric_locking_correction = true
use_automatic_differentiation = true
generate_output = 'elastic_strain_xx stress_xx creep_strain_xx creep_strain_yy creep_strain_zz'
[]
[]
[Materials]
[elastic_strain]
type = ADComputeMultipleInelasticStress
inelastic_models = "trial_creep"
max_iterations = 50
absolute_tolerance = 1e-18
[]
[hill_tensor]
type = ADHillConstants
# F G H L M N
hill_constants = "0.25 0.4 0.65 1.5 1.5 1.5"
use_large_rotation = true
[]
[trial_creep]
type = ADHillCreepStressUpdate
coefficient = 5e-14
n_exponent = 10
m_exponent = 0
activation_energy = 0
max_inelastic_increment = 0.00003
absolute_tolerance = 1e-18
relative_tolerance = 1e-18
# Force it to not use integration error
max_integration_error = 100.0
use_transformation = true
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 500
poissons_ratio = 0.0
[]
[]
[BCs]
[fix_x]
type = ADDirichletBC
variable = disp_x
boundary = bottom
value = 0
[]
[rot_z]
type = DisplacementAboutAxis
boundary = bottom
function = t
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 2
variable = disp_z
[]
#
[rot_y]
type = DisplacementAboutAxis
boundary = bottom
function = t
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 1
variable = disp_y
[]
[rot_z90]
type = DisplacementAboutAxis
boundary = bottom
function = 90
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 2
variable = disp_z
[]
#
[rot_y90]
type = DisplacementAboutAxis
boundary = bottom
function = 90
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 1
variable = disp_y
[]
[press]
type = Pressure
boundary = top
function = '-1.0*(t-90)*0.1'
use_displaced_mesh = true
displacements = 'disp_x disp_y disp_z'
variable = disp_z
[]
[]
[Postprocessors]
# The strain is along Z axis, naming it creep_strain_yy
# for better comparison.
[creep_strain_yy]
type = ADElementAverageMaterialProperty
mat_prop = creep_strain_zz
[]
[]
[Controls]
[c1]
type = TimePeriod
enable_objects = 'BCs::rot_z BCs::rot_y'
disable_objects = 'BCs::rot_z90 BCs::rot_y90 BCs::press'
start_time = '0'
end_time = '90'
[]
[c190plus]
type = TimePeriod
enable_objects = 'BCs::rot_z90 BCs::rot_y90 BCs::press'
disable_objects = 'BCs::rot_z BCs::rot_y '
start_time = '90'
end_time = '390'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 0.1
dtmin = 0.1
num_steps = 1200
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/cp_eigenstrains/volumetric_eigenstrain_parabolic.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX27
[]
[]
[AuxVariables]
[temperature]
order = FIRST
family = LAGRANGE
[]
[linear_void_strain]
order = CONSTANT
family = MONOMIAL
[]
[e_total_xx]
order = CONSTANT
family = MONOMIAL
[]
[e_total_yy]
order = CONSTANT
family = MONOMIAL
[]
[e_void_xx]
order = CONSTANT
family = MONOMIAL
[]
[e_void_yy]
order = CONSTANT
family = MONOMIAL
[]
[e_void_zz]
order = CONSTANT
family = MONOMIAL
[]
[f_void_zz]
order = CONSTANT
family = MONOMIAL
[]
[pk2_zz]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[Functions]
[temperature_ramp]
type = ParsedFunction
expression = '600.0 + t'
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
variable = temperature
function = 'temperature_ramp'
execute_on = timestep_begin
[]
[linear_void_strain]
type = MaterialRealAux
variable = linear_void_strain
property = equivalent_linear_change
execute_on = timestep_end
[]
[e_total_xx]
type = RankTwoAux
variable = e_total_xx
rank_two_tensor = total_lagrangian_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[e_total_yy]
type = RankTwoAux
variable = e_total_yy
rank_two_tensor = total_lagrangian_strain
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[e_void_xx]
type = RankTwoAux
variable = e_void_xx
rank_two_tensor = void_eigenstrain
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[e_void_yy]
type = RankTwoAux
variable = e_void_yy
rank_two_tensor = void_eigenstrain
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[e_void_zz]
type = RankTwoAux
variable = e_void_zz
rank_two_tensor = void_eigenstrain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[f_void_zz]
type = RankTwoAux
variable = f_void_zz
rank_two_tensor = volumetric_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[pk2_zz]
type = RankTwoAux
variable = pk2_zz
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[hold_front]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.98e5 1.25e5 1.25e5 1.98e5 1.25e5 1.98e5 1.22e5 1.22e5 1.22e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
eigenstrain_names = void_eigenstrain
tan_mod_type = exact
line_search_method = CUT_HALF
use_line_search = true
maximum_substep_iteration = 5
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[void_eigenstrain]
type = ComputeCrystalPlasticityVolumetricEigenstrain
eigenstrain_name = void_eigenstrain
deformation_gradient_name = volumetric_deformation_gradient
mean_spherical_void_radius = void_radius
spherical_void_number_density = void_density
[]
[void_density]
type = ParsedMaterial
property_name = void_density
coupled_variables = temperature
expression = 'if(temperature<601.0, 1.0e6, (-1.0e6 * (temperature - 603)^2.0 + 5.0e6))'
[]
[void_radius]
type = ParsedMaterial
property_name = void_radius
coupled_variables = temperature
expression = 'if(temperature<601.0, 1.0e-6, (-2.25e-6 * (temperature - 603)^2.0 + 1.0e-5))'
[]
[]
[Postprocessors]
[linear_void_strain]
type = ElementAverageValue
variable = linear_void_strain
[]
[e_void_xx]
type = ElementAverageValue
variable = e_void_xx
[]
[e_void_yy]
type = ElementAverageValue
variable = e_void_yy
[]
[e_void_zz]
type = ElementAverageValue
variable = e_void_zz
[]
[f_void_zz]
type = ElementAverageValue
variable = f_void_zz
[]
[void_density]
type = ElementAverageMaterialProperty
mat_prop = void_density
execute_on = TIMESTEP_END
[]
[void_radius]
type = ElementAverageMaterialProperty
mat_prop = void_radius
execute_on = TIMESTEP_END
[]
[pk2_zz]
type = ElementAverageValue
variable = pk2_zz
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_total_xx]
type = ElementAverageValue
variable = e_total_xx
[]
[e_total_yy]
type = ElementAverageValue
variable = e_total_yy
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
line_search = 'none'
nl_abs_tol = 1e-12
nl_rel_tol = 1e-8
nl_forced_its = 1
dt = 1.0
dtmin = 1.0e-4
end_time = 5.0
[]
[Outputs]
csv = true
perf_graph = true
[]
(test/tests/materials/derivative_material_interface/required_property.i)
#
# This test validates the error checking for required coupled
# material properties within ParsedMaterials and DerivativeParsedMaterials
#
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Variables]
[c]
[]
[]
[Materials]
[prime]
type = DerivativeParsedMaterial
expression = Q
property_name = P
[]
[second]
type = DerivativeParsedMaterial
expression = c
derivative_order = 1
coupled_variables = c
property_name = S
[]
[]
[Postprocessors]
[avg]
type = ElementAverageMaterialProperty
mat_prop = P
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Executioner]
type = Transient
num_steps = 1
solve_type = NEWTON
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/materials/wall_friction_factor/churchill.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
allow_renumbering = false
[]
[Variables]
[rhoA]
[]
[rhouA]
[]
[rhoEA]
[]
[]
[Materials]
[props]
type = GenericConstantMaterial
prop_names = 'rho vel D_h mu '
prop_values = '1000 0.1 0.15 0.001'
[]
[fD_material]
type = WallFrictionChurchillMaterial
rho = rho
vel = vel
D_h = D_h
mu = mu
f_D = 'f_D'
rhoA = rhoA
rhouA = rhouA
rhoEA = rhoEA
roughness = 0.5
[]
[]
[Postprocessors]
[fD]
type = ElementAverageMaterialProperty
mat_prop = f_D
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/cp_eigenstrains/hcp_volumetric_eigenstrain_decrease.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[AuxVariables]
[temperature]
order = FIRST
family = LAGRANGE
[]
[e_void_xx]
order = CONSTANT
family = MONOMIAL
[]
[e_void_yy]
order = CONSTANT
family = MONOMIAL
[]
[e_void_zz]
order = CONSTANT
family = MONOMIAL
[]
[f_void_zz]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_4]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_9]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_14]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[AuxKernels]
[temperature]
type = FunctionAux
variable = temperature
function = '300+400*t' # temperature increases at a constant rate
execute_on = timestep_begin
[]
[e_void_xx]
type = RankTwoAux
variable = e_void_xx
rank_two_tensor = void_eigenstrain
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[e_void_yy]
type = RankTwoAux
variable = e_void_yy
rank_two_tensor = void_eigenstrain
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[e_void_zz]
type = RankTwoAux
variable = e_void_zz
rank_two_tensor = void_eigenstrain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[f_void_zz]
type = RankTwoAux
variable = f_void_zz
rank_two_tensor = volumetric_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_3]
type = MaterialStdVectorAux
variable = resolved_shear_stress_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[tau_4]
type = MaterialStdVectorAux
variable = resolved_shear_stress_4
property = applied_shear_stress
index = 4
execute_on = timestep_end
[]
[tau_9]
type = MaterialStdVectorAux
variable = resolved_shear_stress_9
property = applied_shear_stress
index = 9
execute_on = timestep_end
[]
[tau_14]
type = MaterialStdVectorAux
variable = resolved_shear_stress_14
property = applied_shear_stress
index = 14
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[tdisp]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
eigenstrain_names = void_eigenstrain
tan_mod_type = exact
maximum_substep_iteration = 5
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e3
initial_substructure_density = 1.0e3
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '9 22' #Knezevic et al MSEA 654 (2013)
effective_shear_modulus_per_mode = '4.7e2 4.7e2' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1.25e5 2.25e7' #from Beyerlein and Tome 2008 IJP
normalized_slip_activiation_energy_per_mode = '3.73e-3 3.2e-2' #from Beyerlein and Tome 2008 IJP
slip_energy_proportionality_factor_per_mode = '330 100' #from Beyerlein and Tome 2008 IJP
substructure_rate_coefficient_per_mode = '355 0.4' #from Capolungo et al MSEA (2009)
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '0.2 0.2' #Estimated to match graph in Capolungo et al MSEA (2009), Figure 2
grain_size = 20.0e-3 #20 microns, Beyerlein and Tome IJP (2008)
[]
[void_eigenstrain]
type = ComputeCrystalPlasticityVolumetricEigenstrain
eigenstrain_name = void_eigenstrain
deformation_gradient_name = volumetric_deformation_gradient
mean_spherical_void_radius = void_radius
spherical_void_number_density = void_density
[]
[void_radius]
type = ParsedMaterial
property_name = void_radius
coupled_variables = temperature
expression = 'if(temperature<321.0, 1.0e-5, (1.0e-5 - 5.0e-8 * (temperature - 320)))' #mm
[]
[void_density]
type = GenericConstantMaterial
prop_names = void_density
prop_values = '1.0e8' ###1/mm^3
[]
[]
[Postprocessors]
[e_void_xx]
type = ElementAverageValue
variable = e_void_xx
[]
[e_void_yy]
type = ElementAverageValue
variable = e_void_yy
[]
[e_void_zz]
type = ElementAverageValue
variable = e_void_zz
[]
[f_void_zz]
type = ElementAverageValue
variable = f_void_zz
[]
[void_density]
type = ElementAverageMaterialProperty
mat_prop = void_density
execute_on = TIMESTEP_END
[]
[void_radius]
type = ElementAverageMaterialProperty
mat_prop = void_radius
execute_on = TIMESTEP_END
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[tau_3]
type = ElementAverageValue
variable = resolved_shear_stress_3
[]
[tau_4]
type = ElementAverageValue
variable = resolved_shear_stress_4
[]
[tau_9]
type = ElementAverageValue
variable = resolved_shear_stress_9
[]
[tau_14]
type = ElementAverageValue
variable = resolved_shear_stress_14
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 1e-4
num_steps = 10
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/scalar_material_damage/nonlocal_scalar_damage.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
nx = 5
ny = 5
nz = 5
elem_type = HEX8
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx strain_xx'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[axial_load]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.01
[]
[]
[Functions]
[func]
type = ParsedFunction
expression = 'if(x>=0,0.5*t, t)'
[]
[]
[UserObjects]
[ele_avg]
type = RadialAverage
prop_name = local_damage
weights = constant
execute_on = "INITIAL timestep_end"
radius = 0.55
[]
[]
[Materials]
[local_damage_index]
type = GenericFunctionMaterial
prop_names = local_damage_index
prop_values = func
[]
[local_damage]
type = ScalarMaterialDamage
damage_index = local_damage_index
damage_index_name = local_damage
[]
[damage]
type = NonlocalDamage
average_UO = ele_avg
local_damage_model = local_damage
damage_index_name = nonlocal_damage
[]
[stress]
type = ComputeDamageStress
damage_model = damage
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.2
youngs_modulus = 10e9
[]
[]
[Postprocessors]
[stress_xx]
type = ElementAverageValue
variable = stress_xx
[]
[strain_xx]
type = ElementAverageValue
variable = strain_xx
[]
[nonlocal_damage]
type = ElementAverageMaterialProperty
mat_prop = nonlocal_damage
[]
[local_damage]
type = ElementAverageMaterialProperty
mat_prop = local_damage
[]
[]
[Executioner]
type = Transient
l_max_its = 50
l_tol = 1e-8
nl_max_its = 20
nl_rel_tol = 1e-12
nl_abs_tol = 1e-8
dt = 0.2
dtmin = 0.1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/ad_anisotropic_creep/3d_bar_orthotropic_90deg_rotation_ad_creep_x_no_rotation.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 2
ymin = 0
ymax = 10
zmin = 0
zmax = 2
nx = 1
ny = 1
nz = 1
elem_type = HEX8
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '2 0 0'
input = corner
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
volumetric_locking_correction = true
use_automatic_differentiation = true
generate_output = 'elastic_strain_xx stress_xx creep_strain_xx creep_strain_yy creep_strain_zz'
[]
[]
[Materials]
[elastic_strain]
type = ADComputeMultipleInelasticStress
inelastic_models = "trial_creep"
max_iterations = 50
absolute_tolerance = 1e-18
[]
[hill_tensor]
type = ADHillConstants
# F G H L M N
hill_constants = "0.25 0.4 0.65 1.5 1.5 1.5"
[]
[trial_creep]
type = ADHillCreepStressUpdate
coefficient = 5e-14
n_exponent = 10
m_exponent = 0
activation_energy = 0
max_inelastic_increment = 0.00003
absolute_tolerance = 1e-18
relative_tolerance = 1e-18
# Force it to not use integration error
max_integration_error = 100.0
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 500
poissons_ratio = 0.0
[]
[]
[BCs]
[fix_x]
type = ADDirichletBC
variable = disp_x
boundary = bottom
value = 0
[]
[rot_z]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 2
variable = disp_z
[]
#
[rot_y]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 1
variable = disp_y
[]
[rot_z90]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 2
variable = disp_z
[]
#
[rot_y90]
type = DisplacementAboutAxis
boundary = bottom
function = 0
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '1. 0. 1.0e-13'
component = 1
variable = disp_y
[]
[press]
type = Pressure
boundary = top
function = '-1.0*(t-90)*0.1'
use_displaced_mesh = true
displacements = 'disp_x disp_y disp_z'
variable = disp_y
[]
[]
[Postprocessors]
[creep_strain_yy]
type = ADElementAverageMaterialProperty
mat_prop = creep_strain_yy
[]
[]
[Controls]
[c1]
type = TimePeriod
enable_objects = 'BCs::rot_z BCs::rot_y'
disable_objects = 'BCs::rot_z90 BCs::rot_y90 BCs::press'
start_time = '0'
end_time = '90'
[]
[c190plus]
type = TimePeriod
enable_objects = 'BCs::rot_z90 BCs::rot_y90 BCs::press'
disable_objects = 'BCs::rot_z BCs::rot_y '
start_time = '90'
end_time = '390'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 0.1
dtmin = 0.1
num_steps = 1200
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/materials/derivative_material_interface/old_older.i)
#
# This test validates the correct application of the chain rule to coupled
# material properties within DerivativeParsedMaterials
#
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Problem]
solve = false
kernel_coverage_check = false
[]
[Variables]
[dummy]
[]
[]
[Materials]
[t_square]
type = GenericFunctionMaterial
prop_names = t2
prop_values = 't^2'
[]
[t2_old]
type = ParsedMaterial
property_name = t2_old
expression = t2_old
material_property_names = 't2_old:=Old[t2]'
[]
[t2_older]
type = ParsedMaterial
property_name = t2_older
expression = t2_older
material_property_names = 't2_older:=Older[t2]'
[]
[]
[Executioner]
type = Transient
dt = 1.5
num_steps = 5
[]
[Postprocessors]
[t2]
type = ElementAverageMaterialProperty
mat_prop = t2
[]
[t2_old]
type = ElementAverageMaterialProperty
mat_prop = t2_old
[]
[t2_older]
type = ElementAverageMaterialProperty
mat_prop = t2_older
[]
[]
[Outputs]
csv = true
print_linear_residuals = false
[]