- dxIntervals in the X direction
C++ Type:std::vector
Description:Intervals in the X direction
CartesianMeshGenerator
This CartesianMeshGenerator creates a non-uniform Cartesian mesh.
Description
The CartesianMeshGenerator
object is the built-in mesh generation capable of creating lines, rectangles, and hexahedra ("boxes"). The mesh spacing can be non-uniform and each line/rectangle/hexahedron can be assigned a separate subdomain id. The mesh automatically creates side sets that are logically named and numbered as follows:
In 1D, left = 0, right = 1
In 2D, bottom = 0, right = 1, top = 2, left = 3
In 3D, back = 0, bottom = 1, right = 2, top = 3, left = 4, front = 5
The length, width, and height of each element, as well as their subdomain id can be set independently. Each linear subdivision in x, y, or z can be additionally subdivided into sub-elements.
Example Syntax
[Mesh]
[./cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
subdomain_id = '0 1 1
2 2 2
3 4 4
5 5 5
0 1 1
2 2 2
3 4 4
5 5 5
'
[../]
[]
(test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_3D.i)/opt/civet/build_0/moose/test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_3D.i
[Mesh]
[./cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
subdomain_id = '0 1 1
2 2 2
3 4 4
5 5 5
0 1 1
2 2 2
3 4 4
5 5 5
'
[../]
[]
Input Parameters
- dyIntervals in the Y direction (required when dim>1 otherwise ignored)
C++ Type:std::vector
Options:
Description:Intervals in the Y direction (required when dim>1 otherwise ignored)
- dzIntervals in the Z direction (required when dim>2 otherwise ignored)
C++ Type:std::vector
Options:
Description:Intervals in the Z direction (required when dim>2 otherwise ignored)
- ixNumber of grids in all intervals in the X direction (default to all one)
C++ Type:std::vector
Options:
Description:Number of grids in all intervals in the X direction (default to all one)
- iyNumber of grids in all intervals in the Y direction (default to all one)
C++ Type:std::vector
Options:
Description:Number of grids in all intervals in the Y direction (default to all one)
- izNumber of grids in all intervals in the Z direction (default to all one)
C++ Type:std::vector
Options:
Description:Number of grids in all intervals in the Z direction (default to all one)
- subdomain_idBlock IDs (default to all zero)
C++ Type:std::vector
Options:
Description:Block IDs (default to all zero)
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
Advanced Parameters
- dimThe dimension of the mesh to be generated
C++ Type:MooseEnum
Options:1 2 3
Description:The dimension of the mesh to be generated
Main Parameters
Input Files
- modules/heat_conduction/test/tests/gray_lambert_radiator/coupled_heat_conduction.i
- test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_3D.i
- test/tests/auxkernels/current_boundary_id/current_boundary_id.i
- test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_2D.i
- modules/heat_conduction/test/tests/radiative_bcs/radiative_bc_cyl.i
- modules/heat_conduction/test/tests/postprocessors/convective_ht_side_integral.i
- modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_no_action.i
- modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_action.i
- test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_1D.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/exact.i
modules/heat_conduction/test/tests/gray_lambert_radiator/coupled_heat_conduction.i
[Problem]
kernel_coverage_check = false
[]
[Mesh]
type = MeshGeneratorMesh
[./cartesian]
type = CartesianMeshGenerator
dim = 2
dx = '1 1 1'
ix = '2 2 2'
dy = '5'
iy = '10'
subdomain_id = '1 2 3'
[../]
[./break_sides]
type = BreakBoundaryOnSubdomainGenerator
boundaries = 'bottom top'
input = cartesian
[../]
[./left_interior]
type = SideSetsBetweenSubdomainsGenerator
master_block = 1
paired_block = 2
new_boundary = left_interior
input = break_sides
[../]
[./right_interior]
type = SideSetsBetweenSubdomainsGenerator
master_block = 3
paired_block = 2
new_boundary = right_interior
input = left_interior
[../]
[./rename]
type = RenameBlockGenerator
input = right_interior
old_block_id = '1 2 3'
new_block_id = '1 4 3'
[../]
[]
[Variables]
[./temperature]
initial_condition = 300
block = '1 3'
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
block = '1 3'
[../]
[]
[UserObjects]
[./cavity_radiation]
type = ConstantViewFactorSurfaceRadiation
boundary = 'left_interior right_interior bottom_to_2 top_to_2'
temperature = temperature
emissivity = '0.8 0.8 0.8 0.8'
adiabatic_boundary = 'bottom_to_2 top_to_2'
# these view factors are made up to exactly balance energy
# transfer through the cavity
view_factors = '0 0.8 0.1 0.1;
0.8 0 0.1 0.1;
0.45 0.45 0 0.1;
0.45 0.45 0.1 0'
execute_on = 'INITIAL LINEAR TIMESTEP_END'
[../]
[]
[BCs]
[./bottom_left]
type = DirichletBC
preset = false
variable = temperature
boundary = bottom_to_1
value = 1500
[../]
[./top_right]
type = DirichletBC
preset = false
variable = temperature
boundary = top_to_3
value = 300
[../]
[./radiation]
type = GrayLambertNeumannBC
variable = temperature
reconstruct_emission = false
surface_radiation_object_name = cavity_radiation
boundary = 'left_interior right_interior'
[../]
[]
[Postprocessors]
[./qdot_left]
type = GrayLambertSurfaceRadiationPP
boundary = left_interior
surface_radiation_object_name = cavity_radiation
return_type = HEAT_FLUX_DENSITY
[../]
[./qdot_right]
type = GrayLambertSurfaceRadiationPP
boundary = right_interior
surface_radiation_object_name = cavity_radiation
return_type = HEAT_FLUX_DENSITY
[../]
[./qdot_top]
type = GrayLambertSurfaceRadiationPP
boundary = top_to_2
surface_radiation_object_name = cavity_radiation
return_type = HEAT_FLUX_DENSITY
[../]
[./qdot_bottom]
type = GrayLambertSurfaceRadiationPP
boundary = bottom_to_2
surface_radiation_object_name = cavity_radiation
return_type = HEAT_FLUX_DENSITY
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_3D.i
[Mesh]
[./cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
subdomain_id = '0 1 1
2 2 2
3 4 4
5 5 5
0 1 1
2 2 2
3 4 4
5 5 5
'
[../]
[]
test/tests/auxkernels/current_boundary_id/current_boundary_id.i
#
# This is used to create the mesh but it does not work with --distributed-mesh flag
# and the parallel test bombs.
#
#[Mesh]
# type = MeshGeneratorMesh
#
# [./cartesian]
# type = CartesianMeshGenerator
# dim = 2
# dx = '1 1'
# ix = '10 10'
# dy = '1'
# iy = '10'
# subdomain_id = '1 2'
# [../]
#
# [./interior_bc]
# type = SideSetsBetweenSubdomainsGenerator
# master_block = 1
# paired_block = 2
# new_boundary = 12
# input = cartesian
# [../]
#[]
[Mesh]
type = FileMesh
file = current_boundary_id_in.e
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./u]
[../]
[]
[Executioner]
type = Steady
[]
[AuxVariables]
[./id1]
family = MONOMIAL
order = CONSTANT
[]
[./id2]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[./id1]
type = BIDAux
variable = id1
boundary = 'top'
[../]
[./id2]
type = BIDAux
variable = id2
boundary = '12'
[../]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_2D.i
[Mesh]
[./cmg]
type = CartesianMeshGenerator
dim = 2
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
ix = '2 1 1'
iy = '2 3'
subdomain_id = '0 1 1 2 2 2'
[../]
[]
modules/heat_conduction/test/tests/radiative_bcs/radiative_bc_cyl.i
#
# Thin cylindrical shell with very high thermal conductivity
# so that temperature is almost uniform at 500 K. Radiative
# boundary conditions is applied. Heat flux out of boundary
# 'right' should be 3723.36; this is approached as the mesh
# is refined
#
[Mesh]
type = MeshGeneratorMesh
[./cartesian]
type = CartesianMeshGenerator
dim = 2
dx = '1 1'
ix = '1 10'
dy = '1 1'
subdomain_id = '1 2 1 2'
[../]
[./remove_1]
type = BlockDeletionGenerator
block_id = 1
input = cartesian
[../]
[./readd_left]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(x - 1) < 1e-4'
new_sideset_name = left
input = remove_1
[../]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./temp]
initial_condition = 800.0
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./lefttemp]
type = DirichletBC
boundary = left
variable = temp
value = 800
[../]
[./radiative_bc]
type = InfiniteCylinderRadiativeBC
boundary = right
variable = temp
boundary_radius = 2
boundary_emissivity = 0.2
cylinder_radius = 3
cylinder_emissivity = 0.7
Tinfinity = 500
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'density thermal_conductivity'
prop_values = '1 1.0e5'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
petsc_options = '-snes_converged_reason'
line_search = none
nl_rel_tol = 1e-6
nl_abs_tol = 1e-7
[]
[Postprocessors]
[./right]
type = SideFluxAverage
variable = temp
boundary = right
diffusivity = thermal_conductivity
[../]
[./min_temp]
type = ElementExtremeValue
variable = temp
value_type = min
[../]
[./max_temp]
type = ElementExtremeValue
variable = temp
value_type = max
[../]
[]
[Outputs]
csv = true
[]
modules/heat_conduction/test/tests/postprocessors/convective_ht_side_integral.i
[Mesh]
type = MeshGeneratorMesh
[./cartesian]
type = CartesianMeshGenerator
dim = 2
dx = '0.45 0.1 0.45'
ix = '5 1 5'
dy = '0.45 0.1 0.45'
iy = '5 1 5'
subdomain_id = '1 1 1
1 2 1
1 1 1'
[../]
[./add_iss_1]
type = SideSetsBetweenSubdomainsGenerator
master_block = 1
paired_block = 2
new_boundary = 'interface'
input = cartesian
[../]
[./block_deleter]
type = BlockDeletionGenerator
block_id = 2
input = add_iss_1
[../]
[]
[Variables]
[./temperature]
initial_condition = 300
[../]
[]
[AuxVariables]
[./channel_T]
family = MONOMIAL
order = CONSTANT
initial_condition = 400
[../]
[./channel_Hw]
family = MONOMIAL
order = CONSTANT
initial_condition = 1000
[../]
[]
[Kernels]
[./graphite_diffusion]
type = HeatConduction
variable = temperature
diffusion_coefficient = 'k_s'
[../]
[]
[BCs]
## boundary conditions for the thm channels in the reflector
[./channel_heat_transfer]
type = CoupledConvectiveHeatFluxBC
variable = temperature
htc = channel_Hw
T_infinity = channel_T
boundary = 'interface'
[../]
# hot boundary on the left
[./left]
type = DirichletBC
variable = temperature
value = 1000
boundary = 'left'
[../]
# cool boundary on the right
[./right]
type = DirichletBC
variable = temperature
value = 300
boundary = 'right'
[../]
[]
[Materials]
[./thermal]
type = GenericConstantMaterial
prop_names = 'k_s'
prop_values = '12'
[../]
[./htc_material]
type = GenericConstantMaterial
prop_names = 'alpha_wall'
prop_values = '1000'
[../]
[./tfluid_mat]
type = ADPiecewiseLinearInterpolationMaterial
property = tfluid_mat
variable = channel_T
x = '400 500'
y = '400 500'
[../]
[]
[Postprocessors]
[./Qw1]
type = ConvectiveHeatTransferSideIntegral
T_fluid_var = channel_T
htc_var = channel_Hw
T_solid = temperature
boundary = interface
[../]
[./Qw2]
type = ConvectiveHeatTransferSideIntegral
T_fluid_var = channel_T
htc = alpha_wall
T_solid = temperature
boundary = interface
[../]
[./Qw3]
type = ConvectiveHeatTransferSideIntegral
T_fluid = tfluid_mat
htc = alpha_wall
T_solid = temperature
boundary = interface
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_no_action.i
[Problem]
kernel_coverage_check = false
[]
[Mesh]
type = MeshGeneratorMesh
[./cmg]
type = CartesianMeshGenerator
dim = 2
dx = '1 1.3 1.9'
ix = '3 3 3'
dy = '2 1.2 0.9'
iy = '3 3 3'
subdomain_id = '0 1 0
4 5 2
0 3 0'
[../]
[./inner_bottom]
type = SideSetsBetweenSubdomainsGenerator
input = cmg
master_block = 1
paired_block = 5
new_boundary = 'inner_bottom'
[../]
[./inner_left]
type = SideSetsBetweenSubdomainsGenerator
input = inner_bottom
master_block = 4
paired_block = 5
new_boundary = 'inner_left'
[../]
[./inner_right]
type = SideSetsBetweenSubdomainsGenerator
input = inner_left
master_block = 2
paired_block = 5
new_boundary = 'inner_right'
[../]
[./inner_top]
type = SideSetsBetweenSubdomainsGenerator
input = inner_right
master_block = 3
paired_block = 5
new_boundary = 'inner_top'
[../]
[./rename]
type = RenameBlockGenerator
old_block_id = '1 2 3 4'
new_block_id = '0 0 0 0'
input = inner_top
[../]
[./split_inner_bottom]
type = PatchSidesetGenerator
sideset = 4
n_patches = 2
partitioner = centroid
centroid_partitioner_direction = x
input = rename
[../]
[./split_inner_left]
type = PatchSidesetGenerator
sideset = 5
n_patches = 2
partitioner = centroid
centroid_partitioner_direction = y
input = split_inner_bottom
[../]
[./split_inner_right]
type = PatchSidesetGenerator
sideset = 6
n_patches = 2
partitioner = centroid
centroid_partitioner_direction = y
input = split_inner_left
[../]
[./split_inner_top]
type = PatchSidesetGenerator
sideset = 7
n_patches = 3
partitioner = centroid
centroid_partitioner_direction = x
input = split_inner_right
[../]
[]
[Variables]
[./temperature]
block = 0
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temperature
block = 0
diffusion_coefficient = 5
[../]
[]
[UserObjects]
[./gray_lambert]
type = ViewFactorObjectSurfaceRadiation
boundary = 'inner_bottom_0 inner_bottom_1
inner_left_0 inner_left_1
inner_right_0 inner_right_1
inner_top_0 inner_top_1 inner_top_2'
fixed_temperature_boundary = 'inner_bottom_0 inner_bottom_1'
fixed_boundary_temperatures = '1200 1200'
adiabatic_boundary = 'inner_top_0 inner_top_1 inner_top_2'
emissivity = '0.9 0.9
0.8 0.8
0.4 0.4
1 1 1'
temperature = temperature
view_factor_object_name = view_factor
execute_on = 'LINEAR TIMESTEP_END'
[../]
[./view_factor]
type = UnobstructedPlanarViewFactor
boundary = 'inner_bottom_0 inner_bottom_1
inner_left_0 inner_left_1
inner_right_0 inner_right_1
inner_top_0 inner_top_1 inner_top_2'
normalize_view_factor = true
execute_on = 'INITIAL'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temperature
boundary = left
value = 600
[../]
[./right]
type = DirichletBC
variable = temperature
boundary = right
value = 300
[../]
[./radiation]
type = GrayLambertNeumannBC
variable = temperature
surface_radiation_object_name = gray_lambert
boundary = 'inner_bottom_0 inner_bottom_1
inner_left_0 inner_left_1
inner_right_0 inner_right_1
inner_top_0 inner_top_1 inner_top_2'
[../]
[]
[Postprocessors]
[./average_T_inner_right]
type = SideAverageValue
variable = temperature
boundary = inner_right
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_action.i
[Problem]
kernel_coverage_check = false
[]
[Mesh]
type = MeshGeneratorMesh
[./cmg]
type = CartesianMeshGenerator
dim = 2
dx = '1 1.3 1.9'
ix = '3 3 3'
dy = '2 1.2 0.9'
iy = '3 3 3'
subdomain_id = '0 1 0
4 5 2
0 3 0'
[../]
[./inner_bottom]
type = SideSetsBetweenSubdomainsGenerator
input = cmg
master_block = 1
paired_block = 5
new_boundary = 'inner_bottom'
[../]
[./inner_left]
type = SideSetsBetweenSubdomainsGenerator
input = inner_bottom
master_block = 4
paired_block = 5
new_boundary = 'inner_left'
[../]
[./inner_right]
type = SideSetsBetweenSubdomainsGenerator
input = inner_left
master_block = 2
paired_block = 5
new_boundary = 'inner_right'
[../]
[./inner_top]
type = SideSetsBetweenSubdomainsGenerator
input = inner_right
master_block = 3
paired_block = 5
new_boundary = 'inner_top'
[../]
[./rename]
type = RenameBlockGenerator
old_block_id = '1 2 3 4'
new_block_id = '0 0 0 0'
input = inner_top
[../]
[]
[Variables]
[./temperature]
block = 0
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temperature
block = 0
diffusion_coefficient = 5
[../]
[]
[GrayDiffuseRadiation]
[./cavity]
sidesets = '4 5 6 7'
emissivity = '0.9 0.8 0.4 1'
n_patches = '2 2 2 3'
partitioners = 'centroid centroid centroid centroid'
centroid_partitioner_directions = 'x y y x'
final_mesh_generator = rename
temperature = temperature
adiabatic_sidesets = '7'
fixed_temperature_sidesets = '4'
fixed_boundary_temperatures = '1200'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temperature
boundary = left
value = 600
[../]
[./right]
type = DirichletBC
variable = temperature
boundary = right
value = 300
[../]
[]
[Postprocessors]
[./average_T_inner_right]
type = SideAverageValue
variable = temperature
boundary = inner_right
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/cartesian_mesh_generator/cartesian_mesh_1D.i
[Mesh]
[./cmg]
type = CartesianMeshGenerator
dim = 1
dx = '1.5 2.4 0.1'
ix = '2 1 1'
subdomain_id = '0 2 1'
[../]
[]
modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/exact.i
# This test provides comparison to calculated values from Leblond:1994kl
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
pore_shape_model = spherical
[]
[Mesh]
[./msh]
type = CartesianMeshGenerator
dim = 3
dx = 0.01
dy = 0.01
dz = 0.01
iz = 1
ix = 1
iy = 1
[../]
[./extra_nodeset]
type = ExtraNodesetGenerator
input = msh
new_boundary = 'origin'
coord = '0 0 0'
[]
[]
[Modules/TensorMechanics/Master/All]
strain = FINITE
add_variables = true
generate_output = 'strain_xx strain_yy strain_xy hydrostatic_stress vonmises_stress'
use_automatic_differentiation = true
[]
[Functions]
[./Q_gtn]
type = ParsedFunction
vars = 'avg_vonmises gtn_gauge_stress'
vals = 'avg_vonmises gtn_gauge_stress'
value = 'avg_vonmises/gtn_gauge_stress'
[../]
[./M_gtn]
type = ParsedFunction
vars = 'avg_hydro gtn_gauge_stress'
vals = 'avg_hydro gtn_gauge_stress'
value = 'abs(avg_hydro) / gtn_gauge_stress'
[../]
[./Q_ten]
type = ParsedFunction
vars = 'avg_vonmises ten_gauge_stress'
vals = 'avg_vonmises ten_gauge_stress'
value = 'avg_vonmises/ten_gauge_stress'
[../]
[./M_ten]
type = ParsedFunction
vars = 'avg_hydro ten_gauge_stress'
vals = 'avg_hydro ten_gauge_stress'
value = 'abs(avg_hydro) / ten_gauge_stress'
[../]
[./Q_five]
type = ParsedFunction
vars = 'avg_vonmises five_gauge_stress'
vals = 'avg_vonmises five_gauge_stress'
value = 'avg_vonmises/five_gauge_stress'
[../]
[./M_five]
type = ParsedFunction
vars = 'avg_hydro five_gauge_stress'
vals = 'avg_hydro five_gauge_stress'
value = 'abs(avg_hydro) / five_gauge_stress'
[../]
[./Q_three]
type = ParsedFunction
vars = 'avg_vonmises three_gauge_stress'
vals = 'avg_vonmises three_gauge_stress'
value = 'avg_vonmises / three_gauge_stress'
[../]
[./M_three]
type = ParsedFunction
vars = 'avg_hydro three_gauge_stress'
vals = 'avg_hydro three_gauge_stress'
value = 'abs(avg_hydro) / three_gauge_stress'
[../]
[./Q_two]
type = ParsedFunction
vars = 'avg_vonmises two_gauge_stress'
vals = 'avg_vonmises two_gauge_stress'
value = 'avg_vonmises/two_gauge_stress'
[../]
[./M_two]
type = ParsedFunction
vars = 'avg_hydro two_gauge_stress'
vals = 'avg_hydro two_gauge_stress'
value = 'abs(avg_hydro) / two_gauge_stress'
[../]
[./Q_onepointfive]
type = ParsedFunction
vars = 'avg_vonmises onepointfive_gauge_stress'
vals = 'avg_vonmises onepointfive_gauge_stress'
value = 'avg_vonmises / onepointfive_gauge_stress'
[../]
[./M_onepointfive]
type = ParsedFunction
vars = 'avg_hydro onepointfive_gauge_stress'
vals = 'avg_hydro onepointfive_gauge_stress'
value = 'abs(avg_hydro) / onepointfive_gauge_stress'
[../]
[./Q_one]
type = ParsedFunction
vars = 'avg_vonmises one_gauge_stress'
vals = 'avg_vonmises one_gauge_stress'
value = 'avg_vonmises / one_gauge_stress'
[../]
[./M_one]
type = ParsedFunction
vars = 'avg_hydro one_gauge_stress'
vals = 'avg_hydro one_gauge_stress'
value = 'abs(avg_hydro) / one_gauge_stress'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = 'gtn lps_ten lps_five lps_three lps_two lps_onepointfive lps_one'
initial_porosity = 1e-3
outputs = all
extra_stress_names = extra_stress
[../]
[./gtn]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 1 # arbitrary
viscoplasticity_model = GTN
base_name = gtn
outputs = all
relative_tolerance = 1e-30
[../]
[./lps_ten]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 10
base_name = ten
outputs = all
relative_tolerance = 1e-30
[../]
[./lps_five]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 5
base_name = five
outputs = all
relative_tolerance = 1e-30
[../]
[./lps_three]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 3
base_name = three
outputs = all
relative_tolerance = 1e-30
[../]
[./lps_two]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 2
base_name = two
outputs = all
relative_tolerance = 1e-30
[../]
[./lps_onepointfive]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 1.5
base_name = onepointfive
outputs = all
relative_tolerance = 1e-30
[../]
[./lps_one]
type = ADViscoplasticityStressUpdate
coefficient = 0
power = 1
base_name = one
outputs = all
relative_tolerance = 1e-30
[../]
[./const_stress]
type = ComputeExtraStressConstant
extra_stress_tensor = '1 1 1 1 1 1 1 1 1'
outputs = all
[../]
[]
[BCs]
[./no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./no_disp_z]
type = ADDirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./Pressure]
[./bcs]
boundary = 'top right front'
function = '10^(t/4.5)'
use_automatic_differentiation = true
[../]
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
num_steps = 10
nl_abs_tol = 1e-8
[]
[Postprocessors]
[./avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
[../]
[./avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
[../]
[./gtn_gauge_stress]
type = ElementAverageValue
variable = gtn_gauge_stress
outputs = none
[../]
[./0Q_gtn]
type = FunctionValuePostprocessor
function = Q_gtn
[../]
[./0M_gtn]
type = FunctionValuePostprocessor
function = M_gtn
[../]
[./ten_gauge_stress]
type = ElementAverageValue
variable = ten_gauge_stress
outputs = none
[../]
[./1Q_ten]
type = FunctionValuePostprocessor
function = Q_ten
[../]
[./1M_ten]
type = FunctionValuePostprocessor
function = M_ten
[../]
[./five_gauge_stress]
type = ElementAverageValue
variable = five_gauge_stress
outputs = none
[../]
[./2Q_five]
type = FunctionValuePostprocessor
function = Q_five
[../]
[./2M_five]
type = FunctionValuePostprocessor
function = M_five
[../]
[./three_gauge_stress]
type = ElementAverageValue
variable = three_gauge_stress
outputs = none
[../]
[./3Q_three]
type = FunctionValuePostprocessor
function = Q_three
[../]
[./3M_three]
type = FunctionValuePostprocessor
function = M_three
[../]
[./two_gauge_stress]
type = ElementAverageValue
variable = two_gauge_stress
outputs = none
[../]
[./4Q_two]
type = FunctionValuePostprocessor
function = Q_two
[../]
[./4M_two]
type = FunctionValuePostprocessor
function = M_two
[../]
[./onepointfive_gauge_stress]
type = ElementAverageValue
variable = onepointfive_gauge_stress
outputs = none
[../]
[./5Q_onepointfive]
type = FunctionValuePostprocessor
function = Q_onepointfive
[../]
[./5M_onepointfive]
type = FunctionValuePostprocessor
function = M_onepointfive
[../]
[./one_gauge_stress]
type = ElementAverageValue
variable = one_gauge_stress
outputs = none
[../]
[./6Q_one]
type = FunctionValuePostprocessor
function = Q_one
[../]
[./6M_one]
type = FunctionValuePostprocessor
function = M_one
[../]
[]
[Outputs]
csv = true
file_base = exact_spherical_out
[]