- fileThe filename to read.
C++ Type:MeshFileName
Description:The filename to read.
FileMeshGenerator
Support File Formats
The FileMeshGenerator
is the default type for MOOSE and as the name suggests it reads the mesh from an external file. MOOSE supports reading and writing a large number of formats and could be extended to read more.
Extension | Description |
---|---|
.e, .exd | Sandia's ExodusII format |
.dat | Tecplot ASCII file |
.fro | ACDL's surface triangulation file |
.gmv | LANL's GMV (General Mesh Viewer) format |
.mat | Matlab triangular ASCII file (read only) |
.msh | GMSH ASCII file |
.n, .nem | Sandia's Nemesis format |
.plt | Tecplot binary file (write only) |
.node, .ele; .poly | TetGen ASCII file (read; write) |
.inp | Abaqus .inp format (read only) |
.ucd | AVS's ASCII UCD format |
.unv | I-deas Universal format |
.xda, .xdr | libMesh formats |
.vtk, .pvtu | Visualization Toolkit |
Further FileMeshGenerator Documentation
Input 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
Input Files
- modules/combined/test/tests/gap_heat_transfer_htonly/planar_xz.i
- test/tests/mortar/continuity-2d-non-conforming/sequencing-stateful-soln-continuity.i
- modules/peridynamics/test/tests/mesh/2D_mesh_conversion_all_delete.i
- modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i
- modules/porous_flow/examples/restart/gas_injection.i
- test/tests/mortar/continuity-2d-conforming/conforming_two_var.i
- test/tests/meshgenerators/extra_nodeset_generator/generate_extra_nodeset.i
- test/tests/meshgenerators/block_deletion_generator/block_deletion_test11.i
- test/tests/meshgenerators/add_all_side_sets_generators/simple.i
- modules/peridynamics/test/tests/mesh/2D_sideset_generation.i
- test/tests/meshgenerators/gmsh_bcs/gmsh_bcs.i
- test/tests/mortar/continuity-2d-non-conforming/soln-continuity.i
- test/tests/meshgenerators/extra_nodeset_generator/generate_extra_nodeset_coord.i
- test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_auto.i
- modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i
- modules/contact/test/tests/mechanical-small-problem/frictionless-nodal-lm-mortar-disp.i
- modules/combined/test/tests/sliding_block/in_and_out/constraint/sm/frictionless_lm_sm.i
- modules/peridynamics/test/tests/mesh/3D_sideset_generation.i
- test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer2.i
- modules/porous_flow/examples/coal_mining/fine_with_fluid.i
- modules/contact/test/tests/mechanical-small-problem/frictionless-nodal-lm-mortar-disp-action.i
- modules/combined/test/tests/gap_heat_transfer_htonly/planar_yz.i
- test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator2.i
- modules/tensor_mechanics/examples/coal_mining/fine.i
- test/tests/mortar/cant-do-3d/periodic.i
- modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i
- modules/tensor_mechanics/test/tests/CylindricalRankTwoAux/test.i
- test/tests/meshgenerators/tiled_mesh_generator/tiled_mesh_generator.i
- test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i
- modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i
- modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-fb-tangential-lm-mortar-disp.i
- modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i
- modules/tensor_mechanics/tutorials/basics/part_3_1.i
- test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_splittrue.i
- modules/tensor_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i
- modules/combined/test/tests/sliding_block/in_and_out/constraint/frictional_lm.i
- modules/tensor_mechanics/examples/coal_mining/coarse.i
- modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i
- test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_splittrue.i
- test/tests/meshgenerators/patterned_mesh_generator/patterned_mesh_generator.i
- modules/peridynamics/test/tests/mesh/2D_mesh_conversion_single_blocks.i
- test/tests/meshgenerators/sidesets_by_normals_generator/less_simple.i
- test/tests/meshgenerators/sideset_around_subdomain_generator/around_normals_generator.i
- test/tests/meshgenerators/smooth_mesh_generator/mesh_smoother_generator.i
- modules/combined/test/tests/sliding_block/in_and_out/constraint/frictionless_lm.i
- test/tests/meshgenerators/mesh_extruder_generator/extrude_quad.i
- test/tests/mesh/mesh_only/mesh_only.i
- modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-fb-tangential-lm-mortar-action.i
- test/tests/meshgenerators/sidesets_between_subdomains_generator/between.i
- test/tests/transfers/multiapp_interpolation_transfer/fromrestrictedsub_sub.i
- modules/peridynamics/test/tests/mesh/2D_mesh_conversion_all_retain.i
- modules/tensor_mechanics/test/tests/shell/static/pinched_cylinder_symm.i
- modules/heat_conduction/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact.i
- test/tests/meshgenerators/transform_generator/rotate_and_scale.i
- modules/combined/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar.i
- test/tests/mortar/displaced-gap-conductance-2d-non-conforming/gap-conductance.i
- test/tests/meshgenerators/add_all_side_sets_generators/less_simple.i
- modules/porous_flow/examples/coal_mining/coarse_with_fluid.i
- modules/combined/test/tests/exception/ad.i
- modules/solid_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i
- modules/contact/test/tests/mechanical-small-problem/mortar-mech.i
- test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_polycrystal.i
- modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_retain.i
- test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_auto.i
- test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator.i
- modules/combined/test/tests/exception/nonad.i
- test/tests/meshgenerators/file_mesh_generator/file_mesh_generator.i
- test/tests/mortar/periodic-value/periodic.i
- test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_polycrystal.i
- test/tests/mortar/continuity-2d-conforming/conforming.i
- modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i
- test/tests/meshgenerators/sidesets_by_normals_generator/simple.i
- test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals_fixed.i
- modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_delete.i
- test/tests/meshgenerators/gmsh/gmsh_test.i
- modules/peridynamics/test/tests/mesh/2D_mesh_conversion_interface.i
- test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer1.i
- modules/heat_conduction/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact_constant_conductance.i
- test/tests/mortar/gap-conductance-2d-non-conforming/gap-conductance.i
- test/tests/meshgenerators/sideset_around_subdomain_generator/around.i
- test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals.i
- modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i
- test/tests/mortar/continuity-2d-conforming/equalgradient.i
- modules/heat_conduction/test/tests/meshed_gap_thermal_contact/meshed_annulus_thermal_contact.i
- modules/combined/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar_displaced.i
- modules/navier_stokes/test/tests/ins/jeffery_hamel/wedge_dirichlet.i
- test/tests/meshgenerators/mesh_extruder_generator/extrude_angle.i
- test/tests/meshgenerators/sidesets_from_points_generator/sidesets_from_points.i
modules/combined/test/tests/gap_heat_transfer_htonly/planar_xz.i
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the x-z plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
[file]
type = FileMeshGenerator
file = simple_2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 0'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
test/tests/mortar/continuity-2d-non-conforming/sequencing-stateful-soln-continuity.i
[Mesh]
second_order = true
[file]
type = FileMeshGenerator
file = nodal_normals_test_offset_nonmatching_gap.e
[]
[./master]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[../]
[./slave]
input = master
type = LowerDBlockFromSidesetGenerator
sidesets = '1'
new_block_id = '10'
[../]
[]
[Variables]
[./T]
block = '1 2'
order = SECOND
[../]
[./lambda]
block = '10'
[../]
[]
[AuxVariables]
[ssm]
order = CONSTANT
family = MONOMIAL
block = '1 2'
[]
[]
[BCs]
[./neumann]
type = FunctionGradientNeumannBC
exact_solution = exact_soln
variable = T
boundary = '3 4 5 6 7 8'
[../]
[]
[Kernels]
[./conduction]
type = Diffusion
variable = T
block = '1 2'
[../]
[./sink]
type = Reaction
variable = T
block = '1 2'
[../]
[./forcing_function]
type = BodyForce
variable = T
function = forcing_function
block = '1 2'
[../]
[]
[AuxKernels]
[ssm]
type = MaterialRealAux
variable = ssm
property = diffusivity
block = '1 2'
[]
[]
[Materials]
[./ssm]
type = SpatialStatefulMaterial
block = '1 2'
[../]
[]
[Functions]
[./forcing_function]
type = ParsedFunction
value = '-4 + x^2 + y^2'
[../]
[./exact_soln]
type = ParsedFunction
value = 'x^2 + y^2'
[../]
[]
[Debug]
show_var_residual_norms = 1
[]
[Constraints]
[./mortar]
type = EqualValueConstraint
master_boundary = 2
slave_boundary = 1
master_subdomain = 20
slave_subdomain = 10
variable = lambda
slave_variable = T
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = NEWTON
type = Steady
nl_abs_tol = 1e-12
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
num_grids = 2
[]
[Outputs]
exodus = true
[]
[Adaptivity]
steps = 1
marker = uniform
[Markers]
[uniform]
type = UniformMarker
mark = refine
[]
[]
[]
modules/peridynamics/test/tests/mesh/2D_mesh_conversion_all_delete.i
[MeshGenerators]
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_2blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
convert_block_ids = '1 2'
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 3D_cube.e
[../]
[./mgpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./gap_offset]
[../]
[./node_volume]
[../]
[]
[AuxKernels]
[./gap_offset]
type = BoundaryOffsetPD
variable = gap_offset
[../]
[./node_volume]
type = NodalVolumePD
variable = node_volume
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./blk1]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./material_pd]
type = ComputeSmallStrainVariableHorizonMaterialBPD
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 1001
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 1001
value = 0
[../]
[./fix_z]
type = DirichletBC
variable = disp_z
boundary = 1001
value = 0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1
[]
[Outputs]
exodus = true
[]
modules/porous_flow/examples/restart/gas_injection.i
# Using the results from the equilibrium run to provide the initial condition for
# porepressure, we now inject a gas phase into the brine-saturated reservoir. In this
# example, where the mesh used is identical to the mesh used in gravityeq.i, we can use
# the basic restart capability by simply setting the initial condition for porepressure
# using the results from gravityeq.i.
#
# Even though the gravity equilibrium is established using a 2D mesh, in this example,
# we shift the mesh 0.1 m to the right and rotate it about the Y axis to make a 2D radial
# model.
#
# Methane injection takes place over the surface of the hole created by rotating the mesh,
# and hence the injection area is 2 pi r h. We can calculate this using an AreaPostprocessor,
# and then use this in a ParsedFunction to calculate the injection rate so that 10 kg/s of
# methane is injected.
#
# Results can be improved by uniformly refining the initial mesh.
#
# Note: as this example uses the results from a previous simulation, gravityeq.i MUST be
# run before running this input file.
[Mesh]
uniform_refine = 1
[file]
type = FileMeshGenerator
file = gravityeq_out.e
[]
[./translate]
type = TransformGenerator
transform = TRANSLATE
vector_value = '0.1 0 0'
input = file
[../]
[]
[Problem]
coord_type = RZ
rz_coord_axis = Y
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 -9.81 0'
temperature_unit = Celsius
[]
[Variables]
[./pp_liq]
initial_from_file_var = porepressure
[../]
[./sat_gas]
initial_condition = 0
[../]
[]
[AuxVariables]
[./temperature]
initial_condition = 50
[../]
[./xnacl]
initial_condition = 0.1
[../]
[./brine_density]
family = MONOMIAL
order = CONSTANT
[../]
[./methane_density]
family = MONOMIAL
order = CONSTANT
[../]
[./massfrac_ph0_sp0]
initial_condition = 1
[../]
[./massfrac_ph1_sp0]
initial_condition = 0
[../]
[./pp_gas]
family = MONOMIAL
order = CONSTANT
[../]
[./sat_liq]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./mass0]
type = PorousFlowMassTimeDerivative
variable = pp_liq
[../]
[./flux0]
type = PorousFlowAdvectiveFlux
variable = pp_liq
[../]
[./mass1]
type = PorousFlowMassTimeDerivative
variable = sat_gas
fluid_component = 1
[../]
[./flux1]
type = PorousFlowAdvectiveFlux
variable = sat_gas
fluid_component = 1
[../]
[]
[AuxKernels]
[./brine_density]
type = PorousFlowPropertyAux
property = density
variable = brine_density
execute_on = 'initial timestep_end'
[../]
[./methane_density]
type = PorousFlowPropertyAux
property = density
variable = methane_density
phase = 1
execute_on = 'initial timestep_end'
[../]
[./pp_gas]
type = PorousFlowPropertyAux
property = pressure
phase = 1
variable = pp_gas
execute_on = 'initial timestep_end'
[../]
[./sat_liq]
type = PorousFlowPropertyAux
property = saturation
variable = sat_liq
execute_on = 'initial timestep_end'
[../]
[]
[BCs]
[./gas_injection]
type = PorousFlowSink
boundary = left
variable = sat_gas
flux_function = injection_rate
fluid_phase = 1
[../]
[./brine_out]
type = PorousFlowPiecewiseLinearSink
boundary = right
variable = pp_liq
multipliers = '0 1e9'
pt_vals = '0 1e9'
fluid_phase = 0
flux_function = 1e-6
use_mobility = true
[../]
[]
[Functions]
[./injection_rate]
type = ParsedFunction
vals = injection_area
vars = area
value = '-10/area'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp_liq sat_gas'
number_fluid_phases = 2
number_fluid_components = 2
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
alpha = 1e-5
m = 0.5
sat_lr = 0.2
[../]
[]
[Modules]
[./FluidProperties]
[./brine]
type = BrineFluidProperties
[../]
[./methane]
type = MethaneFluidProperties
[../]
[./methane_tab]
type = TabulatedFluidProperties
fp = methane
save_file = false
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
temperature = temperature
[../]
[./ps]
type = PorousFlow2PhasePS
phase0_porepressure = pp_liq
phase1_saturation = sat_gas
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
[../]
[./brine]
type = PorousFlowBrine
compute_enthalpy = false
compute_internal_energy = false
xnacl = xnacl
phase = 0
[../]
[./methane]
type = PorousFlowSingleComponentFluid
compute_enthalpy = false
compute_internal_energy = false
fp = methane_tab
phase = 1
[../]
[./porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1e-13 0 0 0 1e-13 0 0 0 1e-13'
[../]
[./relperm_liq]
type = PorousFlowRelativePermeabilityCorey
n = 2
phase = 0
s_res = 0.2
sum_s_res = 0.3
[../]
[./relperm_gas]
type = PorousFlowRelativePermeabilityCorey
n = 2
phase = 1
s_res = 0.1
sum_s_res = 0.3
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type'
petsc_options_value = ' asm lu NONZERO'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 1e8
nl_abs_tol = 1e-12
nl_rel_tol = 1e-06
nl_max_its = 20
dtmax = 1e6
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
[../]
[]
[Postprocessors]
[./mass_ph0]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
[../]
[./mass_ph1]
type = PorousFlowFluidMass
fluid_component = 1
execute_on = 'initial timestep_end'
[../]
[./injection_area]
type = AreaPostprocessor
boundary = left
execute_on = initial
[../]
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
perf_graph = true
checkpoint = true
[]
test/tests/mortar/continuity-2d-conforming/conforming_two_var.i
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'slave_lower'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'master_lower'
[]
[]
[Functions]
[./exact_sln]
type = ParsedFunction
value = y
[../]
[./ffn]
type = ParsedFunction
value = 0
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm_u]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[./v]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm_v]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[./coupled_u]
type = CoupledForce
variable = v
v = u
[../]
[]
[Constraints]
[./ced_u]
type = EqualValueConstraint
variable = lm_u
slave_variable = u
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
[../]
[./ced_v]
type = EqualValueConstraint
variable = lm_v
slave_variable = v
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_sln
[../]
[./allv]
type = DirichletBC
variable = v
boundary = '1 2 3 4'
value = 0
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_sln
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[./l2_v]
type = ElementL2Norm
variable = v
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-12
l_tol = 1e-12
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/extra_nodeset_generator/generate_extra_nodeset.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = square.e
[]
[./extra_nodeset]
type = ExtraNodesetGenerator
input = fmg
new_boundary = 'middle_node'
nodes = '2'
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/block_deletion_generator/block_deletion_test11.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = pyramid.e
[]
[./sbb2]
type = SubdomainBoundingBoxGenerator
input = fmg
block_id = 2
bottom_left = '-0.5 -0.5 -0.5'
top_right = '0.5 0.5 0.5'
[../]
[./swiss_cheese2]
type = BlockDeletionGenerator
block_id = 2
input = 'sbb2'
[../]
[./sbb3]
type = SubdomainBoundingBoxGenerator
input = swiss_cheese2
block_id = 3
bottom_left = '-5 -5 -3'
top_right = '-2 -2 -1'
[../]
[./swiss_cheese3]
type = BlockDeletionGenerator
block_id = 3
input = 'sbb3'
[../]
[./sbb4]
type = SubdomainBoundingBoxGenerator
input = swiss_cheese3
block_id = 4
bottom_left = '-1 2 -2'
top_right = '1 5 0'
[../]
[./swiss_cheese4]
type = BlockDeletionGenerator
block_id = 4
input = 'sbb4'
[../]
[./sbb5]
type = OrientedSubdomainBoundingBoxGenerator
input = swiss_cheese4
block_id = 5
center = '2.4 -1.4 0.4'
height = 3
length = 8
length_direction = '-2 1 -1'
width = 3
width_direction = '1 2 0'
[../]
[./swiss_cheese5]
type = BlockDeletionGenerator
block_id = 5
input = 'sbb5'
[../]
[./sbb6]
type = OrientedSubdomainBoundingBoxGenerator
input = swiss_cheese5
block_id = 6
center = '-1 0.4 2.2'
height = 1
length = 8
length_direction = '2 -1 -1'
width = 1
width_direction = '1 2 0'
[../]
[./swiss_cheese6]
type = BlockDeletionGenerator
block_id = 6
input = 'sbb6'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = top
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 100
dt = 100
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/add_all_side_sets_generators/simple.i
[Mesh]
[read]
type = FileMeshGenerator
file = twoblocks.e
[]
[block_1]
type = AllSideSetsByNormalsGenerator
input = read
[]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
modules/peridynamics/test/tests/mesh/2D_sideset_generation.i
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = circle.e
[../]
[./mgpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
construct_peridynamics_sideset = true
[../]
[]
test/tests/meshgenerators/gmsh_bcs/gmsh_bcs.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = plate_hole.msh
[]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 12
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 10
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
test/tests/mortar/continuity-2d-non-conforming/soln-continuity.i
[Mesh]
second_order = true
[file]
type = FileMeshGenerator
file = nodal_normals_test_offset_nonmatching_gap.e
[]
[./master]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[../]
[./slave]
input = master
type = LowerDBlockFromSidesetGenerator
sidesets = '1'
new_block_id = '10'
[../]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./T]
block = '1 2'
order = SECOND
[../]
[./lambda]
block = '10'
[../]
[]
[BCs]
[./neumann]
type = FunctionGradientNeumannBC
exact_solution = exact_soln
variable = T
boundary = '3 4 5 6 7 8'
[../]
[]
[Kernels]
[./conduction]
type = Diffusion
variable = T
block = '1 2'
[../]
[./sink]
type = Reaction
variable = T
block = '1 2'
[../]
[./forcing_function]
type = BodyForce
variable = T
function = forcing_function
block = '1 2'
[../]
[]
[Functions]
[./forcing_function]
type = ParsedFunction
value = '-4 + x^2 + y^2'
[../]
[./exact_soln]
type = ParsedFunction
value = 'x^2 + y^2'
[../]
[]
[Debug]
show_var_residual_norms = 1
[]
[Constraints]
[./mortar]
type = EqualValueConstraint
master_boundary = 2
slave_boundary = 1
master_subdomain = 20
slave_subdomain = 10
variable = lambda
slave_variable = T
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = NEWTON
type = Steady
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
[]
[Outputs]
exodus = true
[dofmap]
type = DOFMap
execute_on = 'initial'
[]
[]
test/tests/meshgenerators/extra_nodeset_generator/generate_extra_nodeset_coord.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = square.e
[]
[./extra_nodeset]
type = ExtraNodesetGenerator
input = fmg
new_boundary = 'middle_node'
coord = '0.5 0.5'
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_auto.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = 4ElementJunction.e
[]
[./breakmesh]
type = BreakMeshByBlockGenerator
input = fmg
[]
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = squares.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./scalar_strain_zz1]
order = FIRST
family = SCALAR
[../]
[./scalar_strain_zz2]
order = FIRST
family = SCALAR
[../]
[]
[AuxVariables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[./stress_zz1]
order = FIRST
family = LAGRANGE
[../]
[./stress_zz2]
order = FIRST
family = LAGRANGE
[../]
[]
[Modules/Peridynamics/Mechanics]
[./Master]
[./block1]
formulation = ORDINARY_STATE
block = 1001
[../]
[./block2]
formulation = ORDINARY_STATE
block = 1002
[../]
[../]
[./GeneralizedPlaneStrain]
[./block1]
formulation = ORDINARY_STATE
scalar_out_of_plane_strain = scalar_strain_zz1
out_of_plane_stress_variable = stress_zz1
block = 1001
[../]
[./block2]
formulation = ORDINARY_STATE
scalar_out_of_plane_strain = scalar_strain_zz2
out_of_plane_stress_variable = stress_zz2
block = 1002
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = tempfunc
use_displaced_mesh = false
[../]
[./stress_zz1]
type = NodalRankTwoPD
variable = stress_zz1
rank_two_tensor = stress
scalar_out_of_plane_strain = scalar_strain_zz1
poissons_ratio = 0.3
youngs_modulus = 1e6
temperature = temp
thermal_expansion_coeff = 0.02
stress_free_temperature = 0.5
output_type = component
index_i = 2
index_j = 2
block = 1001
[../]
[./stress_zz2]
type = NodalRankTwoPD
variable = stress_zz2
scalar_out_of_plane_strain = scalar_strain_zz2
poissons_ratio = 0.3
youngs_modulus = 1e6
temperature = temp
thermal_expansion_coeff = 0.02
stress_free_temperature = 0.5
rank_two_tensor = stress
output_type = component
index_i = 2
index_j = 2
block = 1002
[../]
[]
[Postprocessors]
[./react_z1]
type = NodalVariableIntegralPD
variable = stress_zz1
block = 1001
[../]
[./react_z2]
type = NodalVariableIntegralPD
variable = stress_zz2
block = 1002
[../]
[]
[Functions]
[./tempfunc]
type = ParsedFunction
value = '(1-x)*t'
[../]
[]
[BCs]
[./bottom1_x]
type = DirichletBC
boundary = 1001
variable = disp_x
value = 0.0
[../]
[./bottom1_y]
type = DirichletBC
boundary = 1001
variable = disp_y
value = 0.0
[../]
[./bottom2_x]
type = DirichletBC
boundary = 1002
variable = disp_x
value = 0.0
[../]
[./bottom2_y]
type = DirichletBC
boundary = 1002
variable = disp_y
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 1e6
block = '1001 1002'
[../]
[./force_density1]
type = ComputeSmallStrainVariableHorizonMaterialOSPD
temperature = temp
thermal_expansion_coeff = 0.02
stress_free_temperature = 0.5
scalar_out_of_plane_strain = scalar_strain_zz1
block = 1001
[../]
[./force_density2]
type = ComputeSmallStrainVariableHorizonMaterialOSPD
temperature = temp
thermal_expansion_coeff = 0.02
stress_free_temperature = 0.5
scalar_out_of_plane_strain = scalar_strain_zz2
block = 1002
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
l_tol = 1e-8
nl_rel_tol = 1e-12
start_time = 0.0
end_time = 1.0
[]
[Outputs]
exodus = true
file_base = generalized_plane_strain_squares_OSPD
[]
modules/contact/test/tests/mechanical-small-problem/frictionless-nodal-lm-mortar-disp.i
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[./simple_mesh]
type = FileMeshGenerator
file = mesh.e
[../]
[./master]
type = LowerDBlockFromSidesetGenerator
input = simple_mesh
sidesets = '2'
new_block_id = '3'
[../]
[./slave]
type = LowerDBlockFromSidesetGenerator
input = master
sidesets = '1'
new_block_id = '4'
[../]
[]
[Constraints]
[./lm]
type = NormalNodalLMMechanicalContact
slave = 1
master = 2
variable = frictionless_normal_lm
master_variable = disp_x
disp_y = disp_y
[../]
[x]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '1'
master_subdomain = '3'
slave_subdomain = '4'
variable = frictionless_normal_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[y]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '1'
master_subdomain = '3'
slave_subdomain = '4'
variable = frictionless_normal_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[Variables]
[./disp_x]
block = '1 2'
[../]
[./disp_y]
block = '1 2'
[../]
[./frictionless_normal_lm]
block = 4
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 'outside_left'
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 'outside_left'
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'outside_right'
function = '-5e-3 * t'
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'outside_right'
function = 0
[../]
[]
[Kernels]
[disp_x]
type = Diffusion
variable = disp_x
block = '1 2'
[]
[disp_y]
type = Diffusion
variable = disp_y
block = '1 2'
[]
[]
[Debug]
show_var_residual_norms = 1
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = PJFNK
type = Transient
num_steps = 10
dt = 1
dtmin = 1
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = '4'
execute_on = 'nonlinear timestep_end'
[]
[]
modules/combined/test/tests/sliding_block/in_and_out/constraint/sm/frictionless_lm_sm.i
[Mesh]
patch_size = 80
[file]
type = FileMeshGenerator
file = sliding_elastic_blocks_2d.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '3'
new_block_id = '30'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Variables]
[./disp_x]
block = '1 2'
[../]
[./disp_y]
block = '1 2'
[../]
[normal_lm]
block = '30'
[]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
block = '1 2'
[../]
[]
[Materials]
[./left]
type = Elastic
formulation = NonlinearPlaneStrain
block = 1
disp_y = disp_y
disp_x = disp_x
poissons_ratio = 0.3
youngs_modulus = 1e6
[../]
[./right]
type = Elastic
formulation = NonlinearPlaneStrain
block = 2
disp_y = disp_y
disp_x = disp_x
poissons_ratio = 0.3
youngs_modulus = 1e6
[../]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 15
dt = 0.1
dtmin = 0.01
l_max_its = 30
nl_max_its = 20
line_search = 'none'
timestep_tolerance = 1e-6
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
sync_times = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15'
[out]
type = Exodus
sync_only = true
[]
[dof]
execute_on = 'initial'
type = DOFMap
[]
[csv]
type = CSV
execute_on = 'nonlinear timestep_end'
[]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
value = -t
[../]
[./horizontal_movement]
type = ParsedFunction
value = -0.04*sin(4*t)+0.02
[../]
[]
[Constraints]
[./lm]
type = NormalNodalLMMechanicalContact
slave = 3
master = 2
variable = normal_lm
master_variable = disp_x
disp_y = disp_y
ncp_function_type = min
use_displaced_mesh = true
[../]
[normal_x]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = normal_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[normal_y]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = normal_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[lin]
type = NumLinearIterations
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '30'
execute_on = 'nonlinear timestep_end'
[]
[]
modules/peridynamics/test/tests/mesh/3D_sideset_generation.i
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = sphere.e
[../]
[./mgpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
construct_peridynamics_sideset = true
[../]
[]
test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer2.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = multiblock.e
[]
[./extrude]
type = MeshExtruderGenerator
input = fmg
num_layers = 6
extrusion_vector = '0 0 2'
bottom_sideset = 'new_bottom'
top_sideset = 'new_top'
# Remap layers
existing_subdomains = '1 2 5'
layers = '1 3 5'
new_ids = '10 12 15' # Repeat this remapping for each layer
[]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = u
boundary = 'new_bottom'
value = 0
[../]
[./top]
type = DirichletBC
variable = u
boundary = 'new_top'
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
modules/porous_flow/examples/coal_mining/fine_with_fluid.i
#################################################################
#
# NOTE:
# The mesh for this model is too large for the MOOSE repository
# so is kept in the the large_media submodule
#
#################################################################
#
# Strata deformation and fluid flow aaround a coal mine - 3D model
#
# A "half model" is used. The mine is 400m deep and
# just the roof is studied (-400<=z<=0). The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long. The outer boundaries
# are 1km from the excavation boundaries.
#
# The excavation takes 0.5 years.
#
# The boundary conditions for this simulation are:
# - disp_x = 0 at x=0 and x=1150
# - disp_y = 0 at y=-1000 and y=1000
# - disp_z = 0 at z=-400, but there is a time-dependent
# Young modulus that simulates excavation
# - wc_x = 0 at y=-1000 and y=1000
# - wc_y = 0 at x=0 and x=1150
# - no flow at x=0, z=-400 and z=0
# - fixed porepressure at y=-1000, y=1000 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# A single-phase unsaturated fluid is used.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa, and time units are measured in years.
#
# The initial porepressure is hydrostatic with P=0 at z=0, so
# Porepressure ~ - 0.01*z MPa, where the fluid has density 1E3 kg/m^3 and
# gravity = = 10 m.s^-2 = 1E-5 MPa m^2/kg.
# To be more accurate, i use
# Porepressure = -bulk * log(1 + g*rho0*z/bulk)
# where bulk=2E3 MPa and rho0=1Ee kg/m^3.
# The initial stress is consistent with the weight force from undrained
# density 2500 kg/m^3, and fluid porepressure, and a Biot coefficient of 0.7, ie,
# stress_zz^effective = 0.025*z + 0.7 * initial_porepressure
# The maximum and minimum principal horizontal effective stresses are
# assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 2 MPa
# MC friction angle = 35 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
# Fluid density at zero porepressure = 1E3 kg/m^3
# Fluid bulk modulus = 2E3 MPa
# Fluid viscosity = 1.1E-3 Pa.s = 1.1E-9 MPa.s = 3.5E-17 MPa.year
#
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
PorousFlowDictator = dictator
biot_coefficient = 0.7
[]
[Mesh]
[file]
type = FileMeshGenerator
file = fine.e
[]
[./xmin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = xmin
normal = '-1 0 0'
input = file
[../]
[./xmax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = xmax
normal = '1 0 0'
input = xmin
[../]
[./ymin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = ymin
normal = '0 -1 0'
input = xmax
[../]
[./ymax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = ymax
normal = '0 1 0'
input = ymin
[../]
[./zmax]
type = SideSetsAroundSubdomainGenerator
block = 30
new_boundary = zmax
normal = '0 0 1'
input = ymax
[../]
[./zmin]
type = SideSetsAroundSubdomainGenerator
block = 2
new_boundary = zmin
normal = '0 0 -1'
input = zmax
[../]
[./excav]
type = SubdomainBoundingBoxGenerator
input = zmin
block_id = 1
bottom_left = '0 0 -400'
top_right = '150 1000 -397'
[../]
[./roof]
type = SideSetsBetweenSubdomainsGenerator
master_block = 3
paired_block = 1
input = excav
new_boundary = roof
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[./porepressure]
scaling = 1E-5
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = ini_pp
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_y
component = 1
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6 # remember this is in MPa
[../]
[./poro_x]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_x
component = 0
[../]
[./poro_y]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./poro_z]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
component = 2
variable = disp_z
[../]
[./poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
use_displaced_mesh = false
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
variable = porepressure
fluid_component = 0
[../]
[./mass0]
type = PorousFlowMassTimeDerivative
use_displaced_mesh = false
fluid_component = 0
variable = porepressure
[../]
[./flux]
type = PorousFlowAdvectiveFlux
use_displaced_mesh = false
variable = porepressure
gravity = '0 0 -10E-6'
fluid_component = 0
[../]
[]
[AuxVariables]
[./saturation]
order = CONSTANT
family = MONOMIAL
[../]
[./darcy_x]
order = CONSTANT
family = MONOMIAL
[../]
[./darcy_y]
order = CONSTANT
family = MONOMIAL
[../]
[./darcy_z]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./perm_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./perm_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./perm_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./saturation_water]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
execute_on = timestep_end
[../]
[./darcy_x]
type = PorousFlowDarcyVelocityComponent
variable = darcy_x
gravity = '0 0 -10E-6'
component = x
[../]
[./darcy_y]
type = PorousFlowDarcyVelocityComponent
variable = darcy_y
gravity = '0 0 -10E-6'
component = y
[../]
[./darcy_z]
type = PorousFlowDarcyVelocityComponent
variable = darcy_z
gravity = '0 0 -10E-6'
component = z
[../]
[./porosity]
type = PorousFlowPropertyAux
property = porosity
variable = porosity
execute_on = timestep_end
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./total_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./total_strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./total_strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[../]
[./total_strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[../]
[./total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./total_strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[../]
[./total_strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[../]
[./total_strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[../]
[./total_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./perm_xx]
type = PorousFlowPropertyAux
property = permeability
variable = perm_xx
row = 0
column = 0
execute_on = timestep_end
[../]
[./perm_yy]
type = PorousFlowPropertyAux
property = permeability
variable = perm_yy
row = 1
column = 1
execute_on = timestep_end
[../]
[./perm_zz]
type = PorousFlowPropertyAux
property = permeability
variable = perm_zz
row = 2
column = 2
execute_on = timestep_end
[../]
[./mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
execute_on = timestep_end
[../]
[./mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
execute_on = timestep_end
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
execute_on = timestep_end
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
execute_on = timestep_end
[../]
[./mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
execute_on = timestep_end
[../]
[./mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
execute_on = timestep_end
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
execute_on = timestep_end
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 'xmin xmax'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = zmin
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_wc_y]
type = DirichletBC
variable = wc_y
boundary = 'xmin xmax'
value = 0.0
[../]
[./fix_porepressure]
type = FunctionDirichletBC
variable = porepressure
boundary = 'ymin ymax xmax'
function = ini_pp
[../]
[./roof_porepressure]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
pt_vals = '-1E3 1E3'
multipliers = '-1 1'
fluid_phase = 0
flux_function = roof_conductance
boundary = roof
[../]
[./roof]
type = StickyBC
variable = disp_z
min_value = -3.0
boundary = roof
[../]
[]
[Functions]
[./ini_pp]
type = ParsedFunction
vars = 'bulk p0 g rho0'
vals = '2E3 0.0 1E-5 1E3'
value = '-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)'
[../]
[./ini_xx]
type = ParsedFunction
vars = 'bulk p0 g rho0 biot'
vals = '2E3 0.0 1E-5 1E3 0.7'
value = '0.8*(2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)))'
[../]
[./ini_zz]
type = ParsedFunction
vars = 'bulk p0 g rho0 biot'
vals = '2E3 0.0 1E-5 1E3 0.7'
value = '2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk))'
[../]
[./excav_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval slope'
vals = '0.5 0 1000.0 1E-9 1 10'
# excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
# slope is the distance over which the modulus reduces from maxval to minval
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
[../]
[./density_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval'
vals = '0.5 0 1000.0 0 2500'
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
[../]
[./roof_conductance]
type = ParsedFunction
vars = 'end_t ymin ymax maxval minval'
vals = '0.5 0 1000.0 1E7 0'
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),maxval,minval)'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1 # MPa^-1
[../]
[./mc_coh_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.99 # MPa
value_residual = 2.01 # MPa
rate = 1.0
[../]
[./mc_fric]
type = TensorMechanicsHardeningConstant
value = 0.61 # 35deg
[../]
[./mc_dil]
type = TensorMechanicsHardeningConstant
value = 0.15 # 8deg
[../]
[./mc_tensile_str_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[../]
[./mc_compressive_str]
type = TensorMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[../]
[./wp_coh_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[../]
[./wp_tan_fric]
type = TensorMechanicsHardeningConstant
value = 0.26 # 15deg
[../]
[./wp_tan_dil]
type = TensorMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = TensorMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E3
density0 = 1000
thermal_expansion = 0
viscosity = 3.5E-17
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[../]
[./vol_strain]
type = PorousFlowVolumetricStrain
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./porosity_for_aux]
type = PorousFlowPorosity
at_nodes = false
fluid = true
mechanical = true
ensure_positive = true
porosity_zero = 0.02
solid_bulk = 5.3333E3
[../]
[./porosity_bulk]
type = PorousFlowPorosity
fluid = true
mechanical = true
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
ensure_positive = true
porosity_zero = 0.02
solid_bulk = 5.3333E3
[../]
[./porosity_excav]
type = PorousFlowPorosityConst
block = 1
porosity = 1.0
[../]
[./permeability_bulk]
type = PorousFlowPermeabilityKozenyCarman
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
poroperm_function = kozeny_carman_phi0
k0 = 1E-15
phi0 = 0.02
n = 2
m = 2
[../]
[./permeability_excav]
type = PorousFlowPermeabilityConst
block = 1
permeability = '0 0 0 0 0 0 0 0 0'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey
n = 4
s_res = 0.4
sum_s_res = 0.4
phase = 0
[../]
[./elasticity_tensor_0]
type = ComputeLayeredCosseratElasticityTensor
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
[../]
[./elasticity_tensor_1]
type = ComputeLayeredCosseratElasticityTensor
block = 1
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
elasticity_tensor_prefactor = excav_sideways
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
eigenstrain_name = ini_stress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
[../]
[./stress_0]
type = ComputeMultipleInelasticCosseratStress
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress_1]
type = ComputeMultipleInelasticCosseratStress
block = 1
inelastic_models = ''
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedMohrCoulombCosseratStressUpdate
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.05
smoothing_tol = 0.05 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[../]
[./undrained_density_0]
type = GenericConstantMaterial
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
prop_names = density
prop_values = 2500
[../]
[./undrained_density_1]
type = GenericFunctionMaterial
block = 1
prop_names = density
prop_values = density_sideways
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[./min_roof_disp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = disp_z
[../]
[./min_roof_pp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = porepressure
[../]
[./min_surface_disp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = disp_z
[../]
[./min_surface_pp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = porepressure
[../]
[./max_perm_zz]
type = ElementExtremeValue
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
variable = perm_zz
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
# best overall
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
# best if you don't have mumps:
#petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' asm 2 lu gmres 200'
# very basic:
#petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' bjacobi gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 200
nl_max_its = 30
start_time = 0.0
dt = 0.0025
end_time = 0.5
[]
[Outputs]
interval = 1
print_linear_residuals = true
exodus = true
csv = true
console = true
[]
modules/contact/test/tests/mechanical-small-problem/frictionless-nodal-lm-mortar-disp-action.i
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[./simple_mesh]
type = FileMeshGenerator
file = mesh.e
[../]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./disp_x]
block = '1 2'
[../]
[./disp_y]
block = '1 2'
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 'outside_left'
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 'outside_left'
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'outside_right'
function = '-5e-3 * t'
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'outside_right'
function = 0
[../]
[]
[Kernels]
[disp_x]
type = Diffusion
variable = disp_x
block = '1 2'
[]
[disp_y]
type = Diffusion
variable = disp_y
block = '1 2'
[]
[]
[Debug]
show_var_residual_norms = 1
[]
[Contact]
[frictionless]
mesh = simple_mesh
master = 2
slave = 1
formulation = mortar
system = constraint
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = PJFNK
type = Transient
num_steps = 10
dt = 1
dtmin = 1
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
[]
[Outputs]
exodus = true
hide = 'contact_pressure nodal_area_frictionless penetration'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = '4'
execute_on = 'nonlinear timestep_end'
[]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/planar_yz.i
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the y-z plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
[file]
type = FileMeshGenerator
file = simple_2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 90'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator2.i
[Mesh]
[./fmg_left]
type = FileMeshGenerator
file = left.e
[]
[./fmg_center]
type = FileMeshGenerator
file = center.e
[]
[./fmg_right]
type = FileMeshGenerator
file = right.e
[]
[./smg]
type = StitchedMeshGenerator
inputs = 'fmg_left fmg_center fmg_right'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'right left;
right left'
[]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/examples/coal_mining/fine.i
# Strata deformation and fracturing around a coal mine - 3D model
#
# A "half model" is used. The mine is 400m deep and
# just the roof is studied (-400<=z<=0). The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long. The outer boundaries
# are 1km from the excavation boundaries.
#
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions for this simulation are:
# - disp_x = 0 at x=0 and x=1150
# - disp_y = 0 at y=-1000 and y=1000
# - disp_z = 0 at z=-400, but there is a time-dependent
# Young's modulus that simulates excavation
# - wc_x = 0 at y=-1000 and y=1000
# - wc_y = 0 at x=0 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa. The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = 0.025*z MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg. The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 3 MPa
# MC friction angle = 37 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
#
[Mesh]
[file]
type = FileMeshGenerator
file = mesh/fine.e
[]
[./xmin]
input = file
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = xmin
normal = '-1 0 0'
[../]
[./xmax]
input = xmin
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = xmax
normal = '1 0 0'
[../]
[./ymin]
input = xmax
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = ymin
normal = '0 -1 0'
[../]
[./ymax]
input = ymin
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = ymax
normal = '0 1 0'
[../]
[./zmax]
input = ymax
type = SideSetsAroundSubdomainGenerator
block = 30
new_boundary = zmax
normal = '0 0 1'
[../]
[./zmin]
input = zmax
type = SideSetsAroundSubdomainGenerator
block = 2
new_boundary = zmin
normal = '0 0 -1'
[../]
[./excav]
type = SubdomainBoundingBoxGenerator
input = zmin
block_id = 1
bottom_left = '0 0 -400'
top_right = '150 1000 -397'
[../]
[./roof]
type = SideSetsAroundSubdomainGenerator
block = 1
input = excav
new_boundary = roof
normal = '0 0 1'
[../]
[]
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_y
component = 1
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6 # remember this is in MPa
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
[../]
[./mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
[../]
[./mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
[../]
[./mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 'xmin xmax'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = zmin
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_wc_y]
type = DirichletBC
variable = wc_y
boundary = 'xmin xmax'
value = 0.0
[../]
[./roof]
type = StickyBC
variable = disp_z
min_value = -3.0
boundary = roof
[../]
[]
[Functions]
[./ini_xx]
type = ParsedFunction
value = '0.8*2500*10E-6*z'
[../]
[./ini_zz]
type = ParsedFunction
value = '2500*10E-6*z'
[../]
[./excav_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval slope'
vals = '100.0 0 1000.0 1E-9 1 10'
# excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
# slope is the distance over which the modulus reduces from maxval to minval
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
[../]
[./density_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval'
vals = '100.0 0 1000.0 0 2500'
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
[../]
[]
[UserObjects]
[./mc_coh_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 2.99 # MPa
value_residual = 3.01 # MPa
rate = 1.0
[../]
[./mc_fric]
type = TensorMechanicsHardeningConstant
value = 0.65 # 37deg
[../]
[./mc_dil]
type = TensorMechanicsHardeningConstant
value = 0.15 # 8deg
[../]
[./mc_tensile_str_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[../]
[./mc_compressive_str]
type = TensorMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[../]
[./wp_coh_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_tan_fric]
type = TensorMechanicsHardeningConstant
value = 0.36 # 20deg
[../]
[./wp_tan_dil]
type = TensorMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = TensorMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[../]
[]
[Materials]
[./elasticity_tensor_0]
type = ComputeLayeredCosseratElasticityTensor
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
[../]
[./elasticity_tensor_1]
type = ComputeLayeredCosseratElasticityTensor
block = 1
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
elasticity_tensor_prefactor = excav_sideways
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
eigenstrain_name = ini_stress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
[../]
[./stress_0]
type = ComputeMultipleInelasticCosseratStress
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress_1]
type = ComputeMultipleInelasticCosseratStress
block = 1
inelastic_models = ''
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedMohrCoulombCosseratStressUpdate
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.1
smoothing_tol = 0.1 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[../]
[./density_0]
type = GenericConstantMaterial
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
prop_names = density
prop_values = 2500
[../]
[./density_1]
type = GenericFunctionMaterial
block = 1
prop_names = density
prop_values = density_sideways
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[./min_roof_disp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = disp_z
[../]
[./min_surface_disp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = disp_z
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' bjacobi gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 30
nl_max_its = 1000
start_time = 0.0
dt = 0.5
end_time = 100.0
[]
[Outputs]
interval = 1
print_linear_residuals = false
exodus = true
csv = true
console = true
[]
test/tests/mortar/cant-do-3d/periodic.i
[Mesh]
[file]
type = FileMeshGenerator
file = flow_test.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
new_block_id = 11
new_block_name = "slave"
sidesets = '1'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
new_block_id = 12
new_block_name = "master"
sidesets = '2'
[]
[]
[Variables]
[u]
block = 'bottom middle top'
[]
[lm]
block = 'slave'
[]
[]
[Kernels]
[diffusion]
type = Diffusion
variable = u
block = 'bottom middle top'
[]
[force]
type = BodyForce
variable = u
block = 'bottom middle top'
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
value = 1
boundary = 'around'
[]
[]
[Constraints]
[ev]
type = EqualValueConstraint
variable = lm
slave_variable = u
master_boundary = top
slave_boundary = bottom
master_subdomain = 12
slave_subdomain = 11
periodic = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i
# Test for bond-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = square.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1001
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1004
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1002
function = '-0.001*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./force_density]
type = ComputeSmallStrainVariableHorizonMaterialBPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_irregularD_variableH_BPD
exodus = true
[]
modules/tensor_mechanics/test/tests/CylindricalRankTwoAux/test.i
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = circle.e
[]
[cnode]
type = ExtraNodesetGenerator
coord = '1000.0 0.0'
new_boundary = 10
input = file_mesh
[]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./T]
[../]
[./stress_rr]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_tt]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./T_IC]
type = FunctionIC
variable = T
function = '1000-0.7*sqrt(x^2+y^2)'
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
[../]
[]
[AuxKernels]
[./stress_rr]
type = CylindricalRankTwoAux
variable = stress_rr
rank_two_tensor = stress
index_j = 0
index_i = 0
center_point = '0 0 0'
[../]
[./stress_tt]
type = CylindricalRankTwoAux
variable = stress_tt
rank_two_tensor = stress
index_j = 1
index_i = 1
center_point = '0 0 0'
[../]
[]
[BCs]
[./outer_x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./outer_y]
type = DirichletBC
variable = disp_y
boundary = '2 10'
value = 0
[../]
[]
[Materials]
[./iso_C]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '2.15e5 0.74e5'
block = 1
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y'
block = 1
eigenstrain_names = eigenstrain
[../]
[./stress]
type = ComputeLinearElasticStress
block = 1
[../]
[./thermal_strain]
type= ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
temperature = T
stress_free_temperature = 273
block = 1
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
l_max_its = 30
nl_max_its = 10
nl_abs_tol = 1e-9
nl_rel_tol = 1e-14
l_tol = 1e-4
[]
[Outputs]
exodus = true
perf_graph = true
[]
test/tests/meshgenerators/tiled_mesh_generator/tiled_mesh_generator.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = cube.e
[]
[./tmg]
type = TiledMeshGenerator
input = fmg
left_boundary = left
right_boundary = right
top_boundary = top
bottom_boundary = bottom
front_boundary = front
back_boundary = back
x_tiles = 2
y_tiles = 2
z_tiles = 2
# You can only run this test with ReplicatedMesh because the underlying
# algorithm, stitch_meshes(), only works with ReplicatedMesh.
parallel_type = replicated
[]
[]
[Outputs]
exodus = true
[]
test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf-2nd.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'slave_lower'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'master_lower'
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Functions]
[./exact_sln]
type = ParsedFunction
value = x*x+y*y
[../]
[./ffn]
type = ParsedFunction
value = -4
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
block = '1 2'
[../]
[./lm]
order = SECOND
family = LAGRANGE
block = slave_lower
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[Constraints]
[./ced]
type = EqualValueConstraint
variable = lm
slave_variable = u
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_sln
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_sln
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-14
l_tol = 1e-14
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the x-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 0'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 1 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-fb-tangential-lm-mortar-disp.i
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the slave block and the top of the
# master block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
[./file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[../]
[]
[Variables]
[./disp_x]
block = '1 2'
# order = SECOND
[../]
[./disp_y]
block = '1 2'
# order = SECOND
[../]
[./frictional_normal_lm]
block = 3
# family = MONOMIAL
# order = CONSTANT
[../]
[./frictional_tangential_lm]
block = 3
family = MONOMIAL
order = CONSTANT
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Kernels]
[./disp_x]
type = MatDiffusion
variable = disp_x
[../]
[./disp_y]
type = MatDiffusion
variable = disp_y
[../]
[]
[Constraints]
[frictional_normal_lm]
type = NormalNodalLMMechanicalContact
slave = 10
master = 20
variable = frictional_normal_lm
master_variable = disp_x
disp_y = disp_y
ncp_function_type = min
[../]
[normal_x]
type = NormalMortarMechanicalContact
master_boundary = 20
slave_boundary = 10
master_subdomain = 4
slave_subdomain = 3
variable = frictional_normal_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[normal_y]
type = NormalMortarMechanicalContact
master_boundary = 20
slave_boundary = 10
master_subdomain = 4
slave_subdomain = 3
variable = frictional_normal_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[frictional_tangential_lm]
type = TangentialMortarLMMechanicalContact
master_boundary = 20
slave_boundary = 10
master_subdomain = 4
slave_subdomain = 3
variable = frictional_tangential_lm
slave_variable = disp_x
slave_disp_y = disp_y
use_displaced_mesh = true
compute_primal_residuals = false
contact_pressure = frictional_normal_lm
friction_coefficient = .1
ncp_function_type = fb
[]
[tangential_x]
type = TangentialMortarMechanicalContact
master_boundary = 20
slave_boundary = 10
master_subdomain = 4
slave_subdomain = 3
variable = frictional_tangential_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[tangential_y]
type = TangentialMortarMechanicalContact
master_boundary = 20
slave_boundary = 10
master_subdomain = 4
slave_subdomain = 3
variable = frictional_tangential_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
# [./Predictor]
# type = SimplePredictor
# scale = 1.0
# [../]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
# checkpoint = true
# [./dofmap]
# type = DOFMap
# execute_on = 'initial'
# [../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[contact]
type = ContactDOFSetSize
variable = frictional_normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i
# Test for ordinary state-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = square.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1001
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1004
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1002
function = '-0.001 * t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = ORDINARY_STATE
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.0
[../]
[./force_density]
type = ComputeSmallStrainVariableHorizonMaterialOSPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_irregularD_variableH_OSPD
exodus = true
[]
modules/tensor_mechanics/tutorials/basics/part_3_1.i
#Tensor Mechanics tutorial: the basics
#Step 3, part 1
#3D simulation of uniaxial tension with J2 plasticity
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = necking_quad4.e
[]
[extrude]
type = MeshExtruderGenerator
extrusion_vector = '0 0 0.5'
num_layers = 2
bottom_sideset = 'back'
top_sideset = 'front'
input = file_mesh
[]
uniform_refine = 0
second_order = true
[]
[Modules/TensorMechanics/Master]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./hardening]
type = TensorMechanicsHardeningCubic
value_0 = 2.4e2
value_residual = 3.0e2
internal_0 = 0
internal_limit = 0.005
[../]
[./J2]
type = TensorMechanicsPlasticJ2
yield_strength = hardening
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x #change the variable to reflect the new displacement names
boundary = 1
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z #change the variable to reflect the new displacement names
boundary = back
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y #change the variable to reflect the new displacement names
boundary = 3
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y #change the variable to reflect the new displacement names
boundary = 4
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 16
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = 3
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = 3
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_splittrue.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = 4ElementJunction.e
[]
[./breakmesh]
type = BreakMeshByBlockGenerator
input = fmg
split_interface = true
[]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i
#This problem from [Wilson 1979] tests the thermal strain term in the
#interaction integral
#
#theta_e = 10 degrees C; a = 252; E = 207000; nu = 0.3; alpha = 1.35e-5
#
#With uniform_refine = 3, KI converges to
#KI = 5.602461e+02 (interaction integral)
#KI = 5.655005e+02 (J-integral)
#
#Both are in good agreement with [Shih 1986]:
#average_value = 0.4857 = KI / (sigma_theta * sqrt(pi * a))
#sigma_theta = E * alpha * theta_e / (1 - nu)
# = 207000 * 1.35e-5 * 10 / (1 - 0.3) = 39.9214
#KI = average_value * sigma_theta * sqrt(pi * a) = 5.656e+02
#
#References:
#W.K. Wilson, I.-W. Yu, Int J Fract 15 (1979) 377-387
#C.F. Shih, B. Moran, T. Nakamura, Int J Fract 30 (1986) 79-102
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = False
[]
[Mesh]
displacements = 'disp_x disp_y'
[file_mesh]
type = FileMeshGenerator
file = crack2d.e
[]
[rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 0 90'
input = file_mesh
[]
[]
[AuxVariables]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./tempfunc]
type = ParsedFunction
value = 10.0*(2*y/504)
[../]
[]
[DomainIntegral]
integrals = 'JIntegral InteractionIntegralKI'
boundary = 800
crack_direction_method = CrackDirectionVector
crack_direction_vector = '0 1 0'
2d = true
axis_2d = 2
radius_inner = '60.0 80.0 100.0 120.0'
radius_outer = '80.0 100.0 120.0 140.0'
convert_J_to_K = true
symmetry_plane = 0
incremental = true
# interaction integral parameters
disp_x = disp_x
disp_y = disp_y
block = 1
youngs_modulus = 207000
poissons_ratio = 0.3
temperature = temp
eigenstrain_names = thermal_expansion
[]
[Modules/TensorMechanics/Master]
[./master]
strain = FINITE
add_variables = true
incremental = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
planar_formulation = PLANE_STRAIN
eigenstrain_names = thermal_expansion
[../]
[]
[AuxKernels]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = tempfunc
block = 1
[../]
[]
[BCs]
[./crack_x]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[../]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 400
value = 0.0
[../]
[./no_y1]
type = DirichletBC
variable = disp_y
boundary = 900
value = 0.0
[../]
[] # BCs
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 0.0
thermal_expansion_coeff = 1.35e-5
temperature = temp
eigenstrain_name = thermal_expansion
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
line_search = 'none'
l_max_its = 50
nl_max_its = 40
nl_rel_step_tol= 1e-10
nl_rel_tol = 1e-10
start_time = 0.0
dt = 1
end_time = 1
num_steps = 1
[]
[Outputs]
file_base = interaction_integral_2d_rot_out
exodus = true
csv = true
[]
[Preconditioning]
active = 'smp'
[./smp]
type = SMP
pc_side = left
ksp_norm = preconditioned
full = true
[../]
[]
modules/combined/test/tests/sliding_block/in_and_out/constraint/frictional_lm.i
[Mesh]
patch_size = 80
[file]
type = FileMeshGenerator
file = sliding_elastic_blocks_2d.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '3'
new_block_id = '30'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[]
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Variables]
[normal_lm]
block = '30'
[]
[tangential_lm]
block = '30'
family = MONOMIAL
order = CONSTANT
[]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
add_variables = true
strain = FINITE
block = '1 2'
[../]
[]
[Materials]
[./tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 15
dt = 0.1
dtmin = 0.01
l_max_its = 30
nl_max_its = 20
line_search = 'none'
timestep_tolerance = 1e-6
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
sync_times = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15'
[out]
type = Exodus
sync_only = true
[]
[dof]
execute_on = 'initial'
type = DOFMap
[]
[csv]
type = CSV
execute_on = 'nonlinear timestep_end'
[]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
value = -t
[../]
[./horizontal_movement]
type = ParsedFunction
value = -0.04*sin(4*t)+0.02
[../]
[]
[Constraints]
[./lm]
type = NormalNodalLMMechanicalContact
slave = 3
master = 2
variable = normal_lm
master_variable = disp_x
disp_y = disp_y
ncp_function_type = min
use_displaced_mesh = true
c = 1e6 # relative scale difference between pressure and gap
[../]
[normal_x]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = normal_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[normal_y]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = normal_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[tangential_lm]
type = TangentialMortarLMMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = tangential_lm
slave_variable = disp_x
slave_disp_y = disp_y
use_displaced_mesh = true
compute_primal_residuals = false
contact_pressure = normal_lm
friction_coefficient = .4
ncp_function_type = fb
c = 1000 # relative scale difference between pressure and velocity
[]
[tangential_x]
type = TangentialMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = tangential_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[tangential_y]
type = TangentialMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = tangential_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[lin]
type = NumLinearIterations
[]
[cum_lin]
type = CumulativeValuePostprocessor
postprocessor = lin
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '30'
execute_on = 'nonlinear timestep_end'
[]
[]
modules/tensor_mechanics/examples/coal_mining/coarse.i
# Strata deformation and fracturing around a coal mine - 3D model
#
# A "half model" is used. The mine is 400m deep and
# just the roof is studied (-400<=z<=0). The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long. The outer boundaries
# are 1km from the excavation boundaries.
#
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions for this simulation are:
# - disp_x = 0 at x=0 and x=1150
# - disp_y = 0 at y=-1000 and y=1000
# - disp_z = 0 at z=-400, but there is a time-dependent
# Young's modulus that simulates excavation
# - wc_x = 0 at y=-1000 and y=1000
# - wc_y = 0 at x=0 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa. The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = 0.025*z MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg. The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 3 MPa
# MC friction angle = 37 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
#
[Mesh]
[file]
type = FileMeshGenerator
file = mesh/coarse.e
[]
[./xmin]
input = file
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = xmin
normal = '-1 0 0'
[../]
[./xmax]
input = xmin
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = xmax
normal = '1 0 0'
[../]
[./ymin]
input = xmax
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = ymin
normal = '0 -1 0'
[../]
[./ymax]
input = ymin
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = ymax
normal = '0 1 0'
[../]
[./zmax]
input = ymax
type = SideSetsAroundSubdomainGenerator
block = 16
new_boundary = zmax
normal = '0 0 1'
[../]
[./zmin]
input = zmax
type = SideSetsAroundSubdomainGenerator
block = 2
new_boundary = zmin
normal = '0 0 -1'
[../]
[./excav]
type = SubdomainBoundingBoxGenerator
input = zmin
block_id = 1
bottom_left = '0 0 -400'
top_right = '150 1000 -397'
[../]
[./roof]
type = SideSetsAroundSubdomainGenerator
block = 1
input = excav
new_boundary = roof
normal = '0 0 1'
[../]
[]
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_y
component = 1
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6 # remember this is in MPa
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
[../]
[./mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
[../]
[./mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
[../]
[./mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 'xmin xmax'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = zmin
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_wc_y]
type = DirichletBC
variable = wc_y
boundary = 'xmin xmax'
value = 0.0
[../]
[./roof]
type = StickyBC
variable = disp_z
min_value = -3.0
boundary = roof
[../]
[]
[Functions]
[./ini_xx]
type = ParsedFunction
value = '0.8*2500*10E-6*z'
[../]
[./ini_zz]
type = ParsedFunction
value = '2500*10E-6*z'
[../]
[./excav_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval slope'
vals = '17.0 0 1000.0 1E-9 1 60'
# excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
# slope is the distance over which the modulus reduces from maxval to minval
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
[../]
[./density_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval'
vals = '17.0 0 1000.0 0 2500'
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
[../]
[]
[UserObjects]
[./mc_coh_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 2.99 # MPa
value_residual = 3.01 # MPa
rate = 1.0
[../]
[./mc_fric]
type = TensorMechanicsHardeningConstant
value = 0.65 # 37deg
[../]
[./mc_dil]
type = TensorMechanicsHardeningConstant
value = 0.15 # 8deg
[../]
[./mc_tensile_str_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[../]
[./mc_compressive_str]
type = TensorMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[../]
[./wp_coh_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_tan_fric]
type = TensorMechanicsHardeningConstant
value = 0.36 # 20deg
[../]
[./wp_tan_dil]
type = TensorMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = TensorMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[../]
[]
[Materials]
[./elasticity_tensor_0]
type = ComputeLayeredCosseratElasticityTensor
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
[../]
[./elasticity_tensor_1]
type = ComputeLayeredCosseratElasticityTensor
block = 1
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
elasticity_tensor_prefactor = excav_sideways
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
eigenstrain_name = ini_stress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
[../]
[./stress_0]
type = ComputeMultipleInelasticCosseratStress
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress_1]
type = ComputeMultipleInelasticCosseratStress
block = 1
inelastic_models = ''
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedMohrCoulombCosseratStressUpdate
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.1
smoothing_tol = 0.1 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[../]
[./density_0]
type = GenericConstantMaterial
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
prop_names = density
prop_values = 2500
[../]
[./density_1]
type = GenericFunctionMaterial
block = 1
prop_names = density
prop_values = density_sideways
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[./min_roof_disp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = disp_z
[../]
[./min_surface_disp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = disp_z
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' bjacobi gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 30
nl_max_its = 1000
start_time = 0.0
dt = 0.5 # this gives min(disp_z)=-4.3, use dt=0.0625 if you want to restrict disp_z>=-3.2
end_time = 17.0
[]
[Outputs]
interval = 1
print_linear_residuals = false
exodus = true
csv = true
console = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the y-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 90'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '1 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_splittrue.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = coh3D_3Blocks.e
#parallel_type = replicated
[]
[./breakmesh]
type = BreakMeshByBlockGenerator
input = fmg
split_interface = true
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/patterned_mesh_generator/patterned_mesh_generator.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = quad_mesh.e
[]
[./fmg2]
type = FileMeshGenerator
file = tri_mesh.e
[]
[./pmg]
type = PatternedMeshGenerator
inputs = 'fmg fmg2'
pattern = '0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 1 1 0 0 0 0 0 0 0 0 1 1 0 ;
0 1 1 1 0 0 0 0 0 0 1 1 1 0 ;
0 1 0 1 1 0 0 0 0 1 1 0 1 0 ;
0 1 0 0 1 1 0 0 1 1 0 0 1 0 ;
0 1 0 0 0 1 1 1 1 0 0 0 1 0 ;
0 1 0 0 0 0 1 1 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 0 0 0 0 0 0 0 0 0 0 0 0 0'
bottom_boundary = 1
right_boundary = 2
top_boundary = 3
left_boundary = 4
[]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = MatCoefDiffusion
variable = u
conductivity = conductivity
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = 3
value = 1
[../]
[./bottom]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[]
[Materials]
[./mat1]
type = GenericConstantMaterial
block = 1
prop_names = conductivity
prop_values = 100
[../]
[./mat2]
type = GenericConstantMaterial
block = 2
prop_names = conductivity
prop_values = 1e-4
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/mesh/2D_mesh_conversion_single_blocks.i
# Four disconnected FE mesh blocks are converted to PD mesh blocks
# Interfacial bonds are formed between blocks 1 and 2, 2 and 3, 3 and 4
# All four PD mesh blocks are combined into one block
# All interfacial bonds are gathered into one block
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_4blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
convert_block_ids = '1 2 3 4'
single_converted_block = true
connect_block_id_pairs = '1 2 2 3 3 4'
single_interface_block = true
construct_peridynamics_sideset = true
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
test/tests/meshgenerators/sidesets_by_normals_generator/less_simple.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = reactor.e
[]
[./generate_sidesets]
type = AllSideSetsByNormalsGenerator
input = fmg
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/sideset_around_subdomain_generator/around_normals_generator.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = twoblocks.e
[]
[./top_block1]
type = SideSetsAroundSubdomainGenerator
input = fmg
block = 'left'
new_boundary = 'top_of_left_block'
normal = '0 0 1'
[]
[./bottom_block2]
type = SideSetsAroundSubdomainGenerator
input = top_block1
block = 'right'
new_boundary = 'bottom_of_right_block'
normal = '0 0 -1'
[]
[./right_block1]
type = SideSetsAroundSubdomainGenerator
input = bottom_block2
block = 'left'
new_boundary = 'right_of_left_block'
normal = '1 0 0'
[]
[./right_block2]
type = SideSetsAroundSubdomainGenerator
input = right_block1
block = 'right'
new_boundary = 'right_of_right_block'
normal = '1 0 0'
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/smooth_mesh_generator/mesh_smoother_generator.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = concentric_circle_mesh_in.e
[]
[./smooth]
type = SmoothMeshGenerator
input = fmg
iterations = 3
[]
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/sliding_block/in_and_out/constraint/frictionless_lm.i
[Mesh]
patch_size = 80
[file]
type = FileMeshGenerator
file = sliding_elastic_blocks_2d.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '3'
new_block_id = '30'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Modules/TensorMechanics/Master]
[./all]
add_variables = true
strain = FINITE
block = '1 2'
[../]
[]
[Variables]
[normal_lm]
block = '30'
[]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 15
dt = 0.1
dtmin = 0.01
l_max_its = 30
nl_max_its = 20
line_search = 'none'
timestep_tolerance = 1e-6
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
sync_times = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15'
[out]
type = Exodus
sync_only = true
[]
[dof]
execute_on = 'initial'
type = DOFMap
[]
[csv]
type = CSV
execute_on = 'nonlinear timestep_end'
[]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
value = -t
[../]
[./horizontal_movement]
type = ParsedFunction
value = -0.04*sin(4*t)+0.02
[../]
[]
[Constraints]
[./lm]
type = NormalNodalLMMechanicalContact
slave = 3
master = 2
variable = normal_lm
master_variable = disp_x
disp_y = disp_y
ncp_function_type = min
use_displaced_mesh = true
[../]
[normal_x]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = normal_lm
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[normal_y]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '3'
master_subdomain = '20'
slave_subdomain = '30'
variable = normal_lm
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[lin]
type = NumLinearIterations
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '30'
execute_on = 'nonlinear timestep_end'
[]
[]
test/tests/meshgenerators/mesh_extruder_generator/extrude_quad.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = chimney_quad.e
[]
[./extrude]
type = MeshExtruderGenerator
input = fmg
num_layers = 20
extrusion_vector = '0 1e-2 0'
bottom_sideset = 'new_bottom'
top_sideset = 'new_top'
[]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = u
boundary = 'new_bottom'
value = 0
[../]
[./top]
type = DirichletBC
variable = u
boundary = 'new_top'
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out_quad
exodus = true
[]
test/tests/mesh/mesh_only/mesh_only.i
[Mesh]
uniform_refine = 1
[file]
type = FileMeshGenerator
file = chimney_quad.e
[]
[./extrude]
input = file
type = MeshExtruderGenerator
num_layers = 20
extrusion_vector = '0 1e-2 0'
bottom_sideset = '2'
top_sideset = '4'
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-fb-tangential-lm-mortar-action.i
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the slave block and the top of the
# master block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
[./original_file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[../]
# These sidesets need to be deleted because the contact action adds them automatically. For this
# particular mesh, the new IDs will be identical to the deleted ones and will conflict if we don't
# remove the original ones.
[./delete_3]
type = BlockDeletionGenerator
input = original_file_mesh
block_id = 3
[../]
[./revised_file_mesh]
type = BlockDeletionGenerator
input = delete_3
block_id = 4
[../]
[]
[Variables]
[./disp_x]
block = '1 2'
# order = SECOND
[../]
[./disp_y]
block = '1 2'
# order = SECOND
[../]
[]
[Contact]
[frictional]
mesh = revised_file_mesh
master = 20
slave = 10
formulation = mortar
system = constraint
model = coulomb
friction_coefficient = 0.1
[]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Kernels]
[./disp_x]
type = MatDiffusion
variable = disp_x
[../]
[./disp_y]
type = MatDiffusion
variable = disp_y
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
hide = 'contact_pressure nodal_area_frictional penetration'
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[contact]
type = ContactDOFSetSize
variable = frictional_normal_lm
subdomain = frictional_slave_subdomain
execute_on = 'nonlinear timestep_end'
[]
[]
test/tests/meshgenerators/sidesets_between_subdomains_generator/between.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = twoblocks.e
[]
[./extrude]
type = SideSetsBetweenSubdomainsGenerator
input = fmg
master_block = 'left'
paired_block = 'right'
new_boundary = 'in_between'
[../]
[]
[Outputs]
exodus = true
[]
test/tests/transfers/multiapp_interpolation_transfer/fromrestrictedsub_sub.i
[Mesh]
[file]
type = FileMeshGenerator
file = 2subdomains.e
[]
[boundary_fuel_side]
input = file
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.2 0 0'
top_right = '0.3 1 0'
[]
[]
[Variables]
[u]
[]
[]
[AuxVariables]
[elemental]
block = '2'
order = CONSTANT
family = MONOMIAL
[]
[nodal]
block = '2'
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[AuxKernels]
[elemaux]
type = CoupledAux
variable = elemental
coupled = u
block = '2'
[]
[nodaux]
type = CoupledAux
variable = nodal
coupled = u
block = '2'
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 1
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/mesh/2D_mesh_conversion_all_retain.i
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_2blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = true
convert_block_ids = '1 2'
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
modules/tensor_mechanics/test/tests/shell/static/pinched_cylinder_symm.i
# Test for displacement of pinched cylinder
# Ref: Figure 10 and Table 6 from Dvorkin and Bathe, Eng. Comput., Vol. 1, 1984.
# A cylinder of radius 1 m and length 2 m (along Z axis) with clamped ends
# (at z = 0 and 2 m) is pinched at mid-length by placing point loads of 10 N
# at (1, 0, 1) and (-1, 0, 1). Due to the symmetry of the problem, only 1/8th
# of the cylinder needs to be modeled.
# The normalized series solution for the displacement at the loading point is
# w = Wc E t / P = 164.24; where Wc is the displacement in m, E is the Young's
# modulus, t is the thickness and P is the point load.
# For this problem, E = 1e6 Pa, L = 2 m, R = 1 m, t = 0.01 m, P = 10 N and
# Poisson's ratio = 0.3. FEM results from different mesh discretizations are
# presented below. Only the 10x10 mesh is included as a test.
# Mesh of 1/8 cylinder | FEM/analytical (Moose) | FEM/analytical (Dvorkin)
# |ratio of normalized disp.| ratio of normalized disp.
#----------------------|-------------------------|-------------------------
# 10 x 10 | 0.806 | 0.83
# 20 x 20 | 1.06 | 0.96
# 40 x 40 | 0.95 | -
# 80 x 160 | 0.96 | -
# The results from FEM analysis matches well with the series solution and with
# the solution presented by Dvorkin and Bathe (1984).
[Mesh]
[./mesh]
type = FileMeshGenerator
file = pinched_cyl_10_10.msh
[../]
[./block_100]
type = ParsedSubdomainMeshGenerator
input = mesh
combinatorial_geometry = 'x > -1.1 & x < 1.1 & y > -1.1 & y < 1.1 & z > -0.1 & z < 2.1'
block_id = 100
[../]
[./nodeset_1]
type = BoundingBoxNodeSetGenerator
input = block_100
top_right = '1.1 1.1 0'
bottom_left = '-1.1 -1.1 0'
new_boundary = 'CD' #CD
[../]
[./nodeset_2]
type = BoundingBoxNodeSetGenerator
input = nodeset_1
top_right = '1.1 1.1 1.0'
bottom_left = '-1.1 -1.1 1.0'
new_boundary = 'AB' #AB
[../]
[./nodeset_3]
type = BoundingBoxNodeSetGenerator
input = nodeset_2
top_right = '0.02 1.1 1.0'
bottom_left = '-0.1 0.98 0.0'
new_boundary = 'AD' #AD
[../]
[./nodeset_4]
type = BoundingBoxNodeSetGenerator
input = nodeset_3
top_right = '1.1 0.02 1.0'
bottom_left = '0.98 -0.1 0.0'
new_boundary = 'BC' #BC
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./simply_support_x]
type = DirichletBC
variable = disp_x
boundary = 'CD AD'
value = 0.0
[../]
[./simply_support_y]
type = DirichletBC
variable = disp_y
boundary = 'CD BC'
value = 0.0
[../]
[./simply_support_z]
type = DirichletBC
variable = disp_z
boundary = 'CD AB'
value = 0.0
[../]
[./simply_support_rot_x]
type = DirichletBC
variable = rot_x
boundary = 'CD BC'
value = 0.0
[../]
[./simply_support_rot_y]
type = DirichletBC
variable = rot_y
boundary = 'CD AD'
value = 0.0
[../]
[]
[DiracKernels]
[./point1]
type = ConstantPointSource
variable = disp_x
point = '1 0 1'
value = -2.5 # P = 10
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1.0
dtmin = 1.0
end_time = 1.0
[]
[Kernels]
[./solid_disp_x]
type = ADStressDivergenceShell
block = '100'
component = 0
variable = disp_x
through_thickness_order = SECOND
[../]
[./solid_disp_y]
type = ADStressDivergenceShell
block = '100'
component = 1
variable = disp_y
through_thickness_order = SECOND
[../]
[./solid_disp_z]
type = ADStressDivergenceShell
block = '100'
component = 2
variable = disp_z
through_thickness_order = SECOND
[../]
[./solid_rot_x]
type = ADStressDivergenceShell
block = '100'
component = 3
variable = rot_x
through_thickness_order = SECOND
[../]
[./solid_rot_y]
type = ADStressDivergenceShell
block = '100'
component = 4
variable = rot_y
through_thickness_order = SECOND
[../]
[]
[Materials]
[./elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 1e6
poissons_ratio = 0.3
block = '100'
through_thickness_order = SECOND
[../]
[./strain]
type = ADComputeIncrementalShellStrain
block = '100'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.01
through_thickness_order = SECOND
[../]
[./stress]
type = ADComputeShellStress
block = '100'
through_thickness_order = SECOND
[../]
[]
[Postprocessors]
[./disp_z2]
type = PointValue
point = '1 0 1'
variable = disp_x
[../]
[]
[Outputs]
exodus = true
[]
modules/heat_conduction/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact.i
[Mesh]
[fmesh]
type = FileMeshGenerator
file = meshed_gap.e
[]
[block0]
type = SubdomainBoundingBoxGenerator
input = fmesh
bottom_left = '.5 -.5 0'
top_right = '.7 .5 0'
block_id = 4
[]
[]
[Variables]
[./temp]
block = '1 3'
initial_condition = 1.0
[../]
[]
[Kernels]
[./hc]
type = HeatConduction
variable = temp
block = '1 3'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temp
boundary = 1
value = 1
[../]
[./right]
type = DirichletBC
variable = temp
boundary = 4
value = 2
[../]
[]
[ThermalContact]
[./gap_conductivity]
type = GapHeatTransfer
variable = temp
master = 2
slave = 3
gap_conductivity = 0.5
[../]
[]
[Materials]
[./hcm]
type = HeatConductionMaterial
block = '1 3'
temp = temp
thermal_conductivity = 1
[../]
[]
[Problem]
type = FEProblem
kernel_coverage_check = false
material_coverage_check = false
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
test/tests/meshgenerators/transform_generator/rotate_and_scale.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = cylinder.e
[]
[./rotate]
type = TransformGenerator
input = fmg
transform = ROTATE
vector_value = '0 90 0'
[]
[./scale]
type = TransformGenerator
input = rotate
transform = SCALE
vector_value ='1e2 1e2 1e2'
[]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 2
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar.i
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-gap.e
[]
[slave]
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'slave_lower'
input = file
[]
[master]
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'master_lower'
input = slave
[]
[]
[Problem]
kernel_coverage_check = false
material_coverage_check = false
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[]
[Materials]
[./left]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1000
specific_heat = 1
[../]
[./right]
type = HeatConductionMaterial
block = 2
thermal_conductivity = 500
specific_heat = 1
[../]
[]
[Kernels]
[./hc]
type = HeatConduction
variable = temp
use_displaced_mesh = false
block = '1 2'
[../]
[]
[Constraints]
[./ced]
type = GapConductanceConstraint
variable = lm
slave_variable = temp
k = 100
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temp
boundary = 'left'
value = 1
[../]
[./right]
type = DirichletBC
variable = temp
boundary = 'right'
value = 0
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-11
[]
[Outputs]
exodus = true
[]
test/tests/mortar/displaced-gap-conductance-2d-non-conforming/gap-conductance.i
[Mesh]
displacements = 'disp_x disp_y'
[file]
type = FileMeshGenerator
file = nodal_normals_test_offset_nonmatching_gap.e
# block 1: left
# block 2: right
[]
[./master]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[../]
[./slave]
input = master
type = LowerDBlockFromSidesetGenerator
sidesets = '1'
new_block_id = '10'
[../]
[]
[AuxVariables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[AuxKernels]
[function_x]
type = FunctionAux
function = '.05 * t'
variable = 'disp_x'
block = '2'
[]
[function_y]
type = FunctionAux
function = '.05 * t'
variable = 'disp_y'
block = '2'
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./T]
block = '1 2'
[../]
[./lambda]
block = '10'
family = MONOMIAL
order = CONSTANT
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = T
boundary = '5'
value = 0
[../]
[./right]
type = DirichletBC
variable = T
boundary = '8'
value = 1
[../]
[]
[Kernels]
[./conduction]
type = Diffusion
variable = T
block = '1 2'
[../]
[]
[Debug]
show_var_residual_norms = 1
[]
[Constraints]
[./mortar]
type = GapHeatConductanceTest
master_boundary = 2
slave_boundary = 1
master_subdomain = 20
slave_subdomain = 10
variable = lambda
slave_variable = T
use_displaced_mesh = true
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = NEWTON
type = Transient
num_steps = 5
petsc_options_iname = '-pc_type -snes_linesearch_type'
petsc_options_value = 'lu basic'
[]
[Outputs]
exodus = true
[dofmap]
type = DOFMap
execute_on = 'initial'
[]
[]
test/tests/meshgenerators/add_all_side_sets_generators/less_simple.i
[Mesh]
[read]
type = FileMeshGenerator
file = reactor.e
[]
[block_1]
type = AllSideSetsByNormalsGenerator
input = read
[]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
modules/porous_flow/examples/coal_mining/coarse_with_fluid.i
# Strata deformation and fluid flow aaround a coal mine - 3D model
#
# A "half model" is used. The mine is 400m deep and
# just the roof is studied (-400<=z<=0). The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long. The outer boundaries
# are 1km from the excavation boundaries.
#
# The excavation takes 0.5 years.
#
# The boundary conditions for this simulation are:
# - disp_x = 0 at x=0 and x=1150
# - disp_y = 0 at y=-1000 and y=1000
# - disp_z = 0 at z=-400, but there is a time-dependent
# Young modulus that simulates excavation
# - wc_x = 0 at y=-1000 and y=1000
# - wc_y = 0 at x=0 and x=1150
# - no flow at x=0, z=-400 and z=0
# - fixed porepressure at y=-1000, y=1000 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# A single-phase unsaturated fluid is used.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa, and time units are measured in years.
#
# The initial porepressure is hydrostatic with P=0 at z=0, so
# Porepressure ~ - 0.01*z MPa, where the fluid has density 1E3 kg/m^3 and
# gravity = = 10 m.s^-2 = 1E-5 MPa m^2/kg.
# To be more accurate, i use
# Porepressure = -bulk * log(1 + g*rho0*z/bulk)
# where bulk=2E3 MPa and rho0=1Ee kg/m^3.
# The initial stress is consistent with the weight force from undrained
# density 2500 kg/m^3, and fluid porepressure, and a Biot coefficient of 0.7, ie,
# stress_zz^effective = 0.025*z + 0.7 * initial_porepressure
# The maximum and minimum principal horizontal effective stresses are
# assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 2 MPa
# MC friction angle = 35 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
# Fluid density at zero porepressure = 1E3 kg/m^3
# Fluid bulk modulus = 2E3 MPa
# Fluid viscosity = 1.1E-3 Pa.s = 1.1E-9 MPa.s = 3.5E-17 MPa.year
#
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
PorousFlowDictator = dictator
biot_coefficient = 0.7
[]
[Mesh]
[file]
type = FileMeshGenerator
file = mesh/coarse.e
[]
[./xmin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = xmin
normal = '-1 0 0'
input = file
[../]
[./xmax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = xmax
normal = '1 0 0'
input = xmin
[../]
[./ymin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = ymin
normal = '0 -1 0'
input = xmax
[../]
[./ymax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = ymax
normal = '0 1 0'
input = ymin
[../]
[./zmax]
type = SideSetsAroundSubdomainGenerator
block = 16
new_boundary = zmax
normal = '0 0 1'
input = ymax
[../]
[./zmin]
type = SideSetsAroundSubdomainGenerator
block = 2
new_boundary = zmin
normal = '0 0 -1'
input = zmax
[../]
[./excav]
type = SubdomainBoundingBoxGenerator
input = zmin
block_id = 1
bottom_left = '0 0 -400'
top_right = '150 1000 -397'
[../]
[./roof]
type = SideSetsBetweenSubdomainsGenerator
master_block = 3
paired_block = 1
input = excav
new_boundary = roof
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[./porepressure]
scaling = 1E-5
[../]
[]
[ICs]
[./porepressure]
type = FunctionIC
variable = porepressure
function = ini_pp
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_y
component = 1
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6 # remember this is in MPa
[../]
[./poro_x]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_x
component = 0
[../]
[./poro_y]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./poro_z]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
component = 2
variable = disp_z
[../]
[./mass0]
type = PorousFlowMassTimeDerivative
use_displaced_mesh = false
fluid_component = 0
variable = porepressure
[../]
[./flux]
type = PorousFlowAdvectiveFlux
use_displaced_mesh = false
variable = porepressure
gravity = '0 0 -10E-6'
fluid_component = 0
[../]
[./poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
use_displaced_mesh = false
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
variable = porepressure
fluid_component = 0
[../]
[]
[AuxVariables]
[./saturation]
order = CONSTANT
family = MONOMIAL
[../]
[./darcy_x]
order = CONSTANT
family = MONOMIAL
[../]
[./darcy_y]
order = CONSTANT
family = MONOMIAL
[../]
[./darcy_z]
order = CONSTANT
family = MONOMIAL
[../]
[./porosity]
order = CONSTANT
family = MONOMIAL
[../]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./perm_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./perm_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./perm_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./saturation_water]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
execute_on = timestep_end
[../]
[./darcy_x]
type = PorousFlowDarcyVelocityComponent
variable = darcy_x
gravity = '0 0 -10E-6'
component = x
[../]
[./darcy_y]
type = PorousFlowDarcyVelocityComponent
variable = darcy_y
gravity = '0 0 -10E-6'
component = y
[../]
[./darcy_z]
type = PorousFlowDarcyVelocityComponent
variable = darcy_z
gravity = '0 0 -10E-6'
component = z
[../]
[./porosity]
type = PorousFlowPropertyAux
property = porosity
variable = porosity
execute_on = timestep_end
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./total_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./total_strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./total_strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[../]
[./total_strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[../]
[./total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./total_strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[../]
[./total_strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[../]
[./total_strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[../]
[./total_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./perm_xx]
type = PorousFlowPropertyAux
property = permeability
variable = perm_xx
row = 0
column = 0
execute_on = timestep_end
[../]
[./perm_yy]
type = PorousFlowPropertyAux
property = permeability
variable = perm_yy
row = 1
column = 1
execute_on = timestep_end
[../]
[./perm_zz]
type = PorousFlowPropertyAux
property = permeability
variable = perm_zz
row = 2
column = 2
execute_on = timestep_end
[../]
[./mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
execute_on = timestep_end
[../]
[./mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
execute_on = timestep_end
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
execute_on = timestep_end
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
execute_on = timestep_end
[../]
[./mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
execute_on = timestep_end
[../]
[./mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
execute_on = timestep_end
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
execute_on = timestep_end
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 'xmin xmax'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = zmin
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = 'ymin ymax'
value = 0.0
[../]
[./no_wc_y]
type = DirichletBC
variable = wc_y
boundary = 'xmin xmax'
value = 0.0
[../]
[./fix_porepressure]
type = FunctionDirichletBC
variable = porepressure
boundary = 'ymin ymax xmax'
function = ini_pp
[../]
[./roof_porepressure]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
pt_vals = '-1E3 1E3'
multipliers = '-1 1'
fluid_phase = 0
flux_function = roof_conductance
boundary = roof
[../]
[./roof_bcs]
type = StickyBC
variable = disp_z
min_value = -3.0
boundary = roof
[../]
[]
[Functions]
[./ini_pp]
type = ParsedFunction
vars = 'bulk p0 g rho0'
vals = '2E3 0.0 1E-5 1E3'
value = '-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)'
[../]
[./ini_xx]
type = ParsedFunction
vars = 'bulk p0 g rho0 biot'
vals = '2E3 0.0 1E-5 1E3 0.7'
value = '0.8*(2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)))'
[../]
[./ini_zz]
type = ParsedFunction
vars = 'bulk p0 g rho0 biot'
vals = '2E3 0.0 1E-5 1E3 0.7'
value = '2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk))'
[../]
[./excav_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval slope'
vals = '0.5 0 1000.0 1E-9 1 60'
# excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
# slope is the distance over which the modulus reduces from maxval to minval
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
[../]
[./density_sideways]
type = ParsedFunction
vars = 'end_t ymin ymax minval maxval'
vals = '0.5 0 1000.0 0 2500'
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
[../]
[./roof_conductance]
type = ParsedFunction
vars = 'end_t ymin ymax maxval minval'
vals = '0.5 0 1000.0 1E7 0'
value = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),maxval,minval)'
[../]
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[./pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1 # MPa^-1
[../]
[./mc_coh_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.99 # MPa
value_residual = 2.01 # MPa
rate = 1.0
[../]
[./mc_fric]
type = TensorMechanicsHardeningConstant
value = 0.61 # 35deg
[../]
[./mc_dil]
type = TensorMechanicsHardeningConstant
value = 0.15 # 8deg
[../]
[./mc_tensile_str_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[../]
[./mc_compressive_str]
type = TensorMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[../]
[./wp_coh_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[../]
[./wp_tan_fric]
type = TensorMechanicsHardeningConstant
value = 0.26 # 15deg
[../]
[./wp_tan_dil]
type = TensorMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = TensorMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E3
density0 = 1000
thermal_expansion = 0
viscosity = 3.5E-17
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[../]
[./vol_strain]
type = PorousFlowVolumetricStrain
[../]
[./ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./porosity_bulk]
type = PorousFlowPorosity
fluid = true
mechanical = true
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
ensure_positive = true
porosity_zero = 0.02
solid_bulk = 5.3333E3
[../]
[./porosity_excav]
type = PorousFlowPorosityConst
block = 1
porosity = 1.0
[../]
[./permeability_bulk]
type = PorousFlowPermeabilityKozenyCarman
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
poroperm_function = kozeny_carman_phi0
k0 = 1E-15
phi0 = 0.02
n = 2
m = 2
[../]
[./permeability_excav]
type = PorousFlowPermeabilityConst
block = 1
permeability = '0 0 0 0 0 0 0 0 0'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey
n = 4
s_res = 0.4
sum_s_res = 0.4
phase = 0
[../]
[./elasticity_tensor_0]
type = ComputeLayeredCosseratElasticityTensor
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
[../]
[./elasticity_tensor_1]
type = ComputeLayeredCosseratElasticityTensor
block = 1
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
elasticity_tensor_prefactor = excav_sideways
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
eigenstrain_name = ini_stress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
[../]
[./stress_0]
type = ComputeMultipleInelasticCosseratStress
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress_1]
type = ComputeMultipleInelasticCosseratStress
block = 1
inelastic_models = ''
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedMohrCoulombCosseratStressUpdate
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.05
smoothing_tol = 0.05 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[../]
[./undrained_density_0]
type = GenericConstantMaterial
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
prop_names = density
prop_values = 2500
[../]
[./undrained_density_1]
type = GenericFunctionMaterial
block = 1
prop_names = density
prop_values = density_sideways
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[./min_roof_disp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = disp_z
[../]
[./min_roof_pp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = porepressure
[../]
[./min_surface_disp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = disp_z
[../]
[./min_surface_pp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = porepressure
[../]
[./max_perm_zz]
type = ElementExtremeValue
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
variable = perm_zz
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
# best overall
# petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
# petsc_options_value = ' lu mumps'
# best if you do not have mumps:
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# best if you do not have mumps or superlu_dist:
#petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' asm 2 lu gmres 200'
# very basic:
#petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' bjacobi gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 200
nl_max_its = 30
start_time = 0.0
dt = 0.014706
end_time = 0.014706 #0.5
[]
[Outputs]
interval = 1
print_linear_residuals = true
exodus = true
csv = true
console = true
[]
modules/combined/test/tests/exception/ad.i
[GlobalParams]
order = SECOND
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
patch_update_strategy = iteration
[./gen]
type = FileMeshGenerator
file = mesh.e
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 501
[../]
[]
[AuxVariables]
[./density_aux]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./finite]
strain = FINITE
use_automatic_differentiation = true
[../]
[]
[Kernels]
[./gravity]
type = ADGravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = ADMatDiffusion
variable = temp
diffusivity = 1
[../]
[./heat_ie]
type = ADTimeDerivative
variable = temp
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = density
variable = density_aux
boundary = inner_surface
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = outer_interior
slave = inner_surface
quadrature = true
[../]
[]
[BCs]
[./no_x]
type = ADDirichletBC
variable = disp_x
boundary = 'centerline'
value = 0.0
[../]
[./no_y]
type = ADDirichletBC
variable = disp_y
boundary = 'centerline outer_exterior'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = outer_exterior
variable = temp
function = '500 + t'
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '1'
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e11
poissons_ratio = 0.3
[../]
[./inner_elastic_stress]
type = ADComputeMultipleInelasticStress
inelastic_models = 'inner_creep'
block = inner
outputs = all
[../]
[./inner_creep]
type = ADPowerLawCreepExceptionTest
coefficient = 10e-22
n_exponent = 2
activation_energy = 0
block = inner
[../]
[./outer_stressstress]
type = ADComputeFiniteStrainElasticStress
block = outer
[../]
[]
[Executioner]
type = Transient
petsc_options = ' -snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = none
nl_abs_tol = 1e-7
l_max_its = 20
num_steps = 1
dt = 1
dtmin = .1
[]
[Outputs]
exodus = true
[]
modules/solid_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i
#This problem from [Wilson 1979] tests the thermal strain term in the
#interaction integral
#
#theta_e = 10 degrees C; a = 252; E = 207000; nu = 0.3; alpha = 1.35e-5
#
#With uniform_refine = 3, KI converges to
#KI = 5.602461e+02 (interaction integral)
#KI = 5.655005e+02 (J-integral)
#
#Both are in good agreement with [Shih 1986]:
#average_value = 0.4857 = KI / (sigma_theta * sqrt(pi * a))
#sigma_theta = E * alpha * theta_e / (1 - nu)
# = 207000 * 1.35e-5 * 10 / (1 - 0.3) = 39.9214
#KI = average_value * sigma_theta * sqrt(pi * a) = 5.656e+02
#
#References:
#W.K. Wilson, I.-W. Yu, Int J Fract 15 (1979) 377-387
#C.F. Shih, B. Moran, T. Nakamura, Int J Fract 30 (1986) 79-102
[GlobalParams]
order = FIRST
family = LAGRANGE
disp_x = disp_x
disp_y = disp_y
volumetric_locking_correction = False
displacements = 'disp_x disp_y'
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = crack2d.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 0 90'
input = file_mesh
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./stress_xx] # stress aux variables are defined for output; this is a way to get integration point variables to the output file
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./tempfunc]
type = ParsedFunction
value = 10.0*(2*y/504)
[../]
[]
[DomainIntegral]
integrals = 'JIntegral InteractionIntegralKI'
boundary = 800
crack_direction_method = CrackDirectionVector
crack_direction_vector = '0 1 0'
2d = true
axis_2d = 2
radius_inner = '60.0 80.0 100.0 120.0'
radius_outer = '80.0 100.0 120.0 140.0'
convert_J_to_K = true
symmetry_plane = 0
incremental = true
# interaction integral parameters
disp_x = disp_x
disp_y = disp_y
block = 1
youngs_modulus = 207000
poissons_ratio = 0.3
temperature = temp
solid_mechanics = true
[]
[SolidMechanics]
[./solid]
[../]
[]
[AuxKernels]
[./stress_xx] # computes stress components for output
type = MaterialTensorAux
tensor = stress
variable = stress_xx
index = 0
execute_on = timestep_end # for efficiency, only compute at the end of a timestep
[../]
[./stress_yy]
type = MaterialTensorAux
tensor = stress
variable = stress_yy
index = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = MaterialTensorAux
tensor = stress
variable = stress_zz
index = 2
execute_on = timestep_end
[../]
[./vonmises]
type = MaterialTensorAux
tensor = stress
variable = vonmises
quantity = vonmises
execute_on = timestep_end
[../]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = tempfunc
block = 1
[../]
[]
[BCs]
[./crack_x]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[../]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 400
value = 0.0
[../]
[./no_y1]
type = DirichletBC
variable = disp_y
boundary = 900
value = 0.0
[../]
[] # BCs
[Materials]
[./stiffStuff]
type = Elastic
block = 1
disp_x = disp_x
disp_y = disp_y
youngs_modulus = 207000
poissons_ratio = 0.3
thermal_expansion = 1.35e-5
formulation = NonlinearPlaneStrain
compute_JIntegral = true
compute_InteractionIntegral = true
temp = temp
stress_free_temperature = 0.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
line_search = 'none'
l_max_its = 50
nl_max_its = 40
nl_rel_step_tol= 1e-10
nl_rel_tol = 1e-10
start_time = 0.0
dt = 1
end_time = 1
num_steps = 1
[]
[Outputs]
file_base = interaction_integral_2d_rot_out
exodus = true
csv = true
[]
[Preconditioning]
active = 'smp'
[./smp]
type = SMP
pc_side = left
ksp_norm = preconditioned
full = true
[../]
[]
modules/contact/test/tests/mechanical-small-problem/mortar-mech.i
[Mesh]
displacements = 'disp_x disp_y'
[file]
type = FileMeshGenerator
file = mesh.e
[]
[./master]
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
input = file
[../]
[./slave]
type = LowerDBlockFromSidesetGenerator
sidesets = '1'
new_block_id = '10'
input = master
[../]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./disp_x]
block = '1 2'
[../]
[./disp_y]
block = '1 2'
[../]
[./lambda]
block = '10'
family = MONOMIAL
order = CONSTANT
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 'outside_left'
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 'outside_left'
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'outside_right'
function = '-5e-3 * t'
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'outside_right'
function = 0
[../]
[]
[Kernels]
[disp_x]
type = Diffusion
variable = disp_x
block = '1 2'
[]
[disp_y]
type = Diffusion
variable = disp_y
block = '1 2'
[]
[]
[Debug]
show_var_residual_norms = 1
[]
[Constraints]
[lm]
type = NormalMortarLMMechanicalContact
master_boundary = '2'
slave_boundary = '1'
master_subdomain = '20'
slave_subdomain = '10'
variable = lambda
slave_variable = disp_x
slave_disp_y = disp_y
use_displaced_mesh = true
compute_primal_residuals = false
[]
[x]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '1'
master_subdomain = '20'
slave_subdomain = '10'
variable = lambda
slave_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[y]
type = NormalMortarMechanicalContact
master_boundary = '2'
slave_boundary = '1'
master_subdomain = '20'
slave_subdomain = '10'
variable = lambda
slave_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = PJFNK
type = Transient
num_steps = 10
dt = 1
dtmin = 1
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
[]
[Outputs]
exodus = true
[dofmap]
type = DOFMap
execute_on = 'initial'
[]
[]
test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_polycrystal.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = poly2.msh
#parallel_type = replicated
[]
[./breakmesh]
type = BreakMeshByBlockGenerator
input = fmg
split_interface = true
[]
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_retain.i
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_2blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = true
convert_block_ids = 2
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_auto.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = coh3D_3Blocks.e
parallel_type = replicated
[]
[./breakmesh]
type = BreakMeshByBlockGenerator
input = fmg
split_interface = true
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator.i
[Mesh]
[./fmg_left]
type = FileMeshGenerator
file = left.e
[]
[./fmg_center]
type = FileMeshGenerator
file = center.e
[]
[./fmg_right]
type = FileMeshGenerator
file = right.e
[]
[./smg]
type = StitchedMeshGenerator
inputs = 'fmg_left fmg_center fmg_right'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'right left;
right left'
parallel_type = 'replicated'
[]
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/exception/nonad.i
[GlobalParams]
order = SECOND
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
patch_update_strategy = iteration
[./gen]
type = FileMeshGenerator
file = mesh.e
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 501
[../]
[]
[AuxVariables]
[./density_aux]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./finite]
strain = FINITE
[../]
[]
[Kernels]
[./gravity]
type = Gravity
variable = disp_y
value = -9.81
[../]
[./heat]
type = MatDiffusion
variable = temp
diffusivity = 1
[../]
[./heat_ie]
type = TimeDerivative
variable = temp
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = density
variable = density_aux
boundary = inner_surface
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = outer_interior
slave = inner_surface
quadrature = true
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 'centerline'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'centerline outer_exterior'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
boundary = outer_exterior
variable = temp
function = '500 + t'
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '1'
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e11
poissons_ratio = 0.3
[../]
[./inner_elastic_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'inner_creep'
block = inner
outputs = all
[../]
[./inner_creep]
type = PowerLawCreepExceptionTest
coefficient = 10e-22
n_exponent = 2
activation_energy = 0
block = inner
[../]
[./outer_stressstress]
type = ComputeFiniteStrainElasticStress
block = outer
[../]
[]
[Executioner]
type = Transient
petsc_options = ' -snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = none
nl_abs_tol = 1e-7
l_max_its = 20
num_steps = 1
dt = 1
dtmin = .1
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/file_mesh_generator/file_mesh_generator.i
[Mesh]
[fmg]
type = FileMeshGenerator
file = square.e
[]
[]
[Outputs]
exodus = true
[]
test/tests/mortar/periodic-value/periodic.i
[Mesh]
[file]
type = FileMeshGenerator
file = square.msh
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
new_block_id = 11
new_block_name = "slave"
sidesets = '101'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
new_block_id = 12
new_block_name = "master"
sidesets = '103'
[]
[]
[Variables]
[u]
order = SECOND
block = 'domain'
[]
[lm]
block = 'slave'
[]
[]
[Kernels]
[diffusion]
type = Diffusion
variable = u
block = 'domain'
[]
[force]
type = BodyForce
variable = u
block = 'domain'
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
value = 1
boundary = 'left'
[]
[]
[Constraints]
[ev]
type = EqualValueConstraint
variable = lm
slave_variable = u
master_boundary = 103
slave_boundary = 101
master_subdomain = 12
slave_subdomain = 11
periodic = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_polycrystal.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = poly.msh
#parallel_type = replicated
[]
[./breakmesh]
type = BreakMeshByBlockGenerator
input = fmg
split_interface = true
[]
[]
[Outputs]
exodus = true
[]
test/tests/mortar/continuity-2d-conforming/conforming.i
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'slave_lower'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'master_lower'
[]
[]
[Functions]
[./exact_sln]
type = ParsedFunction
value = y
[../]
[./ffn]
type = ParsedFunction
value = 0
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[Constraints]
[./ced]
type = EqualValueConstraint
variable = lm
slave_variable = u
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_sln
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_sln
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-11
l_tol = 1e-10
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i
#
# 2-D RZ Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks, or cylinders in the case of RZ.:
#
# Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1)))
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the flux post processors.
#
# As a second test, use the rectilinear (parallel plate) form of the gap heat transfer.
#
# Flux = (T_left - T_right) * (gapK/gapL)
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(1)
# 2*pi*1*1*100/(1) = 628.3 watts
#
# For comparison, see results from the flux post processors.
#
[Problem]
coord_type = RZ
rz_coord_axis = Y # this is modified through CLI args to test Z-R as opposed to R-Z
[]
[Mesh]
active = 'file'
[file]
type = FileMeshGenerator
file = gap_heat_transfer_htonly_rz_test.e
[]
[rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '90 0 0'
input = file
[]
[]
[Functions]
[./ramp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[./thermal_contact2]
type = GapHeatTransfer
variable = temp2
master = 3
slave = 2
gap_geometry_type = PLATE
appended_property_name = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[./temp2]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat2]
type = HeatConduction
variable = temp2
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = ramp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[./temp_far_left2]
type = FunctionDirichletBC
boundary = 1
variable = temp2
function = ramp
[../]
[./temp_far_right2]
type = DirichletBC
boundary = 4
variable = temp2
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[./conductance2]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond2
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1e6
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -ksp_monitor -snes_ksp_ew'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
# petsc_options_iname = '-snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
# petsc_options_value = 'ls basic basic 201 hypre boomeramg 4'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
# petsc_options_value = '201 hypre boomeramg 4'
nl_abs_tol = 1e-3
nl_rel_tol = 1e-8
l_tol = 1e-6
l_max_its = 100
start_time = 0.0
dt = 1e-1
dtmin = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[./temp_left2]
type = SideAverageValue
boundary = 2
variable = temp2
execute_on = 'initial timestep_end'
[../]
[./temp_right2]
type = SideAverageValue
boundary = 3
variable = temp2
execute_on = 'initial timestep_end'
[../]
[./flux_left2]
type = SideFluxIntegral
variable = temp2
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right2]
type = SideFluxIntegral
variable = temp2
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/sidesets_by_normals_generator/simple.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = twoblocks.e
[]
[./generate_sidesets]
type = AllSideSetsByNormalsGenerator
input = fmg
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals_fixed.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = cylinder.e
#parallel_type = replicated
[]
[./sidesets]
type = SideSetsFromNormalsGenerator
input = fmg
normals = '0 1 0
0 -1 0'
fixed_normal = true
new_boundary = 'front back'
variance = 0.5
[]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./front]
type = DirichletBC
variable = u
boundary = front
value = 0
[../]
[./back]
type = DirichletBC
variable = u
boundary = back
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_delete.i
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_2blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
convert_block_ids = 1
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
test/tests/meshgenerators/gmsh/gmsh_test.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = sample.msh
[]
[]
modules/peridynamics/test/tests/mesh/2D_mesh_conversion_interface.i
# Two of four disconnected FE mesh blocks are converted to PD mesh blocks
# Interfacial bonds are formed between these two blocks, and assigned with a block ID
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_4blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
convert_block_ids = '2 3'
#non_convert_block_ids = '1 4'
connect_block_id_pairs = '2 3'
construct_peridynamics_sideset = true
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer1.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = multiblock.e
[]
[./extrude]
type = MeshExtruderGenerator
input = fmg
num_layers = 6
extrusion_vector = '0 0 2'
bottom_sideset = 'new_bottom'
top_sideset = 'new_top'
# Remap layers
existing_subdomains = '1 2 5'
layers = '1 3 5'
new_ids = '10 12 15
30 32 35
50 52 55'
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = u
boundary = 'new_bottom'
value = 0
[../]
[./top]
type = DirichletBC
variable = u
boundary = 'new_top'
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
modules/heat_conduction/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact_constant_conductance.i
[Mesh]
[fmesh]
type = FileMeshGenerator
file = meshed_gap.e
[]
[block0]
type = SubdomainBoundingBoxGenerator
input = fmesh
bottom_left = '.5 -.5 0'
top_right = '.7 .5 0'
block_id = 4
[]
[]
[Variables]
[./temp]
block = '1 3'
initial_condition = 1.0
[../]
[]
[Kernels]
[./hc]
type = HeatConduction
variable = temp
block = '1 3'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temp
boundary = 1
value = 1
[../]
[./right]
type = DirichletBC
variable = temp
boundary = 4
value = 2
[../]
[]
[ThermalContact]
[./gap_conductance]
type = GapHeatTransfer
variable = temp
master = 2
slave = 3
gap_conductance = 2.5
[../]
[]
[Materials]
[./hcm]
type = HeatConductionMaterial
block = '1 3'
temp = temp
thermal_conductivity = 1
[../]
[]
[Problem]
type = FEProblem
kernel_coverage_check = false
material_coverage_check = false
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
test/tests/mortar/gap-conductance-2d-non-conforming/gap-conductance.i
[Mesh]
[file]
type = FileMeshGenerator
file = nodal_normals_test_offset_nonmatching_gap.e
[]
[./master]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '20'
[../]
[./slave]
input = master
type = LowerDBlockFromSidesetGenerator
sidesets = '1'
new_block_id = '10'
[../]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./T]
block = '1 2'
[../]
[./lambda]
block = '10'
[../]
[]
[BCs]
[./neumann]
type = FunctionGradientNeumannBC
exact_solution = exact_soln
variable = T
boundary = '3 4 5 6 7 8'
[../]
[]
[Kernels]
[./conduction]
type = Diffusion
variable = T
block = '1 2'
[../]
[./sink]
type = Reaction
variable = T
block = '1 2'
[../]
[./forcing_function]
type = BodyForce
variable = T
function = forcing_function
block = '1 2'
[../]
[]
[Functions]
[./forcing_function]
type = ParsedFunction
value = '-4 + x^2 + y^2'
[../]
[./exact_soln]
type = ParsedFunction
value = 'x^2 + y^2'
[../]
[]
[Debug]
show_var_residual_norms = 1
[]
[Constraints]
[./mortar]
type = GapHeatConductanceTest
master_boundary = 2
slave_boundary = 1
master_subdomain = 20
slave_subdomain = 10
variable = lambda
slave_variable = T
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = NEWTON
type = Steady
petsc_options_iname = '-pc_type -snes_linesearch_type'
petsc_options_value = 'lu basic'
[]
[Outputs]
exodus = true
[dofmap]
type = DOFMap
execute_on = 'initial'
[]
[]
test/tests/meshgenerators/sideset_around_subdomain_generator/around.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = twoblocks.e
[]
[./block_1]
type = SideSetsAroundSubdomainGenerator
input = fmg
block = 'left'
new_boundary = 'hull_1'
[]
[./block_2]
type = SideSetsAroundSubdomainGenerator
input = block_1
block = 'right'
new_boundary = 'hull_2'
[]
[]
[Outputs]
exodus = true
[]
test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = cylinder.e
#parallel_type = replicated
[]
[./sidesets]
type = SideSetsFromNormalsGenerator
input = fmg
normals = '0 0 1
0 1 0
0 0 -1'
fixed_normal = false
new_boundary = 'top side bottom'
[]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = u
boundary = bottom
value = 0
[../]
[./top]
type = DirichletBC
variable = u
boundary = top
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_square.e
[../]
[./mgpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./gap_offset]
[../]
[./node_area]
[../]
[]
[AuxKernels]
[./gap_offset]
type = BoundaryOffsetPD
variable = gap_offset
[../]
[./node_area]
type = NodalVolumePD
variable = node_area
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./blk1]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./material_pd]
type = ComputeSmallStrainVariableHorizonMaterialBPD
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 1001
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 1001
value = 0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1
[]
[Outputs]
exodus = true
[]
test/tests/mortar/continuity-2d-conforming/equalgradient.i
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf.e
[]
[slave]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'slave_lower'
[]
[master]
input = slave
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'master_lower'
[]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lmx]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[./lmy]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[]
[ICs]
[./block1]
type = FunctionIC
variable = u
block = 1
function = y
[../]
[./block2]
type = FunctionIC
variable = u
block = 2
function = y-0.5
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[Constraints]
[./cedx]
type = EqualGradientConstraint
slave_variable = u
variable = lmx
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
component = 0
[../]
[./cedy]
type = EqualGradientConstraint
slave_variable = u
variable = lmy
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
component = 1
[../]
[]
[BCs]
[./all]
type = DiffusionFluxBC
variable = u
boundary = '2 4 100 101'
[../]
[./boundary]
type = DirichletBC
boundary = 1
variable = u
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
boundary = 3
variable = u
function = 0.5-t
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Transient
nl_rel_tol = 1e-11
l_tol = 1e-10
l_max_its = 10
dt = 0.05
num_steps = 3
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
modules/heat_conduction/test/tests/meshed_gap_thermal_contact/meshed_annulus_thermal_contact.i
[Mesh]
[fmesh]
type = FileMeshGenerator
file = meshed_annulus.e
[]
[rename]
type = RenameBlockGenerator
input = fmesh
old_block_id = '1 2 3'
new_block_id = '1 4 3'
[]
[]
[Variables]
[./temp]
block = '1 3'
initial_condition = 1.0
[../]
[]
[Kernels]
[./hc]
type = HeatConduction
variable = temp
block = '1 3'
[../]
[./source]
type = HeatSource
variable = temp
block = 3
value = 10.0
[../]
[]
[BCs]
[./outside]
type = DirichletBC
variable = temp
boundary = 1
value = 1.0
[../]
[]
[ThermalContact]
[./gap_conductivity]
type = GapHeatTransfer
variable = temp
master = 2
slave = 3
gap_conductivity = 0.5
[../]
[]
[Materials]
[./hcm]
type = HeatConductionMaterial
block = '1 3'
temp = temp
thermal_conductivity = 1
[../]
[]
[Problem]
type = FEProblem
kernel_coverage_check = false
material_coverage_check = false
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
modules/combined/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar_displaced.i
[Mesh]
displacements = 'disp_x disp_y'
[file]
type = FileMeshGenerator
file = 2blk-gap.e
[]
[slave]
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = 10001
new_block_name = 'slave_lower'
input = file
[]
[master]
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = 10000
new_block_name = 'master_lower'
input = slave
[]
[]
[Problem]
kernel_coverage_check = false
material_coverage_check = false
[]
[AuxVariables]
[./disp_x]
block = '1'
[../]
[./disp_y]
block = '1'
[../]
[]
[AuxKernels]
[./disp_x_kernel]
type = ConstantAux
variable = disp_x
value = 0.1
block = '1'
[../]
[./disp_y_kernel]
type = ConstantAux
variable = disp_y
value = 0
block = '1'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm]
order = FIRST
family = LAGRANGE
block = 'slave_lower'
[../]
[]
[Materials]
[./left]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1000
specific_heat = 1
[../]
[./right]
type = HeatConductionMaterial
block = 2
thermal_conductivity = 500
specific_heat = 1
[../]
[]
[Kernels]
[./hc_displaced_block]
type = HeatConduction
variable = temp
use_displaced_mesh = true
block = '1'
[../]
[./hc_undisplaced_block]
type = HeatConduction
variable = temp
use_displaced_mesh = false
block = '2'
[../]
[]
[Constraints]
[./ced]
type = GapConductanceConstraint
variable = lm
slave_variable = temp
k = 100
use_displaced_mesh = true
master_boundary = 100
master_subdomain = 10000
slave_boundary = 101
slave_subdomain = 10001
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temp
boundary = 'left'
value = 1
[../]
[./right]
type = DirichletBC
variable = temp
boundary = 'right'
value = 0
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-11
[]
[Outputs]
exodus = true
show = 'temp disp_x disp_y'
[]
modules/navier_stokes/test/tests/ins/jeffery_hamel/wedge_dirichlet.i
# This input file tests whether we can converge to the semi-analytical
# solution for flow in a 2D wedge.
[GlobalParams]
gravity = '0 0 0'
# Params used by the WedgeFunction for computing the exact solution.
# The value of K is only required for comparing the pressure to the
# exact solution, and is computed by the associated jeffery_hamel.py
# script.
alpha_degrees = 15
Re = 30
K = -9.78221333616
f = f_theta
[]
[Mesh]
[file]
type = FileMeshGenerator
# file = wedge_4x6.e
file = wedge_8x12.e
# file = wedge_16x24.e
# file = wedge_32x48.e
# file = wedge_64x96.e
[]
[./corner_node]
# Pin is on the centerline of the channel on the left-hand side of
# the domain at r=1. If you change the domain, you will need to
# update this pin location for the pressure exact solution to
# work.
type = ExtraNodesetGenerator
new_boundary = pinned_node
coord = '1 0'
input = file
[../]
[]
[Variables]
[./vel_x]
order = SECOND
family = LAGRANGE
[../]
[./vel_y]
order = SECOND
family = LAGRANGE
[../]
[./p]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
p = p
[../]
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
p = p
component = 0
[../]
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
p = p
component = 1
[../]
[]
[BCs]
[./vel_x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'top_wall bottom_wall'
value = 0.0
[../]
[./vel_y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'top_wall bottom_wall'
value = 0.0
[../]
[./vel_x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'inlet outlet'
function = 'vel_x_exact'
[../]
[./vel_y_inlet]
type = FunctionDirichletBC
variable = vel_y
boundary = 'inlet outlet'
function = 'vel_y_exact'
[../]
[./pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 1
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = NEWTON
[../]
[]
[Executioner]
type = Transient
dt = 1.e-2
dtmin = 1.e-2
num_steps = 5
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = '300 bjacobi ilu 4'
line_search = none
nl_rel_tol = 1e-13
nl_abs_tol = 1e-11
nl_max_its = 10
l_tol = 1e-6
l_max_its = 300
[]
[Outputs]
exodus = true
[]
[Functions]
[./f_theta]
# Non-dimensional solution values f(eta), 0 <= eta <= 1 for
# alpha=15 deg, Re=30. Note: this introduces an input file
# ordering dependency: this Function must appear *before* the two
# functions below which use it since apparently proper dependency
# resolution is not done in this scenario.
type = PiecewiseLinear
data_file = 'f.csv'
format = 'columns'
[../]
[./vel_x_exact]
type = WedgeFunction
var_num = 0
mu = 1
rho = 1
[../]
[./vel_y_exact]
type = WedgeFunction
var_num = 1
mu = 1
rho = 1
[../]
[./p_exact]
type = WedgeFunction
var_num = 2
mu = 1
rho = 1
[../]
[]
[Postprocessors]
[./vel_x_L2_error]
type = ElementL2Error
variable = vel_x
function = vel_x_exact
execute_on = 'initial timestep_end'
[../]
[./vel_y_L2_error]
type = ElementL2Error
variable = vel_y
function = vel_y_exact
execute_on = 'initial timestep_end'
[../]
[./p_L2_error]
type = ElementL2Error
variable = p
function = p_exact
execute_on = 'initial timestep_end'
[../]
[]
test/tests/meshgenerators/mesh_extruder_generator/extrude_angle.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = chimney_quad.e
[]
[./extrude]
type = MeshExtruderGenerator
input = fmg
num_layers = 20
extrusion_vector = '1e-2 1e-2 0'
bottom_sideset = '10'
top_sideset = '20'
[]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = u
boundary = 10
value = 0
[../]
[./top]
type = DirichletBC
variable = u
boundary = 20
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out_quad_angle
exodus = true
[]
test/tests/meshgenerators/sidesets_from_points_generator/sidesets_from_points.i
[Mesh]
[./fmg]
type = FileMeshGenerator
file = cylinder.e
#parallel_type = replicated
[]
[./sidesets]
type = SideSetsFromPointsGenerator
input = fmg
points = '0 0 0.5
0.1 0 0
0 0 -0.5'
new_boundary = 'top side bottom'
[]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = u
boundary = bottom
value = 0
[../]
[./top]
type = DirichletBC
variable = u
boundary = top
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]