- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Description:The list of boundary IDs from the mesh where this boundary condition applies
- variableThe name of the variable that this boundary condition applies to
C++ Type:NonlinearVariableName
Description:The name of the variable that this boundary condition applies to
NeumannBC
Imposes the integrated boundary condition , where is a constant, controllable value.
Description
NeumannBC
is the simplest type of IntegratedBC
, and is used for imposing flux boundary conditions on systems of partial differential equations (PDEs). This class is appropriate to use for PDEs of the form where is the domain, and is its boundary. In this case, a NeumannBC
object is used to impose the condition (3) on the subset of the boundary denoted by . The value
parameter corresponds to the constant , and the user must define one or more sidesets corresponding to the boundary subset . The normal derivative notation is , where is the outward unit normal to .
Example Input Syntax
[./right]
type = NeumannBC
variable = u
boundary = right
value = 2
[../]
(test/tests/bcs/1d_neumann/1d_neumann.i)/opt/civet/build_0/moose/test/tests/bcs/1d_neumann/1d_neumann.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
construct_side_list_from_node_list = true
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 2
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
Input Parameters
- displacementsThe displacements
C++ Type:std::vector
Options:
Description:The displacements
- value0The value of the gradient on the boundary.
Default:0
C++ Type:double
Options:
Description:The value of the gradient on the boundary.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector
Options:
Description:The name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Options:
Description:Determines whether this object is calculated using an implicit or explicit form
- save_inThe name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector
Options:
Description:The name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Options:
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Options:
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector
Options:
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector
Options:
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Options:nontime system
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Options:nontime time
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
Input Files
- test/tests/misc/save_in/save_in_test.i
- test/tests/kernels/2d_diffusion/2d_diffusion_neumannbc_test.i
- modules/tensor_mechanics/test/tests/static_deformations/cosserat_shear.i
- tutorials/darcy_thermo_mech/step10_multiapps/problems/step10_micro.i
- modules/tensor_mechanics/test/tests/static_deformations/cosserat_tension.i
- test/tests/time_integrators/aee/aee.i
- test/tests/materials/has_material/has_block_prop.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_pps_lim.i
- modules/porous_flow/test/tests/poro_elasticity/terzaghi.i
- test/tests/executioners/fixed_point/nonlinear_fixed_point.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_init_dt_restart.i
- test/tests/interfacekernels/1d_interface/mixed_shapes.i
- test/tests/kernels/anisotropic_diffusion/aniso_diffusion.i
- test/tests/misc/save_in/save_in_soln_var_err_test.i
- tutorials/darcy_thermo_mech/step10_multiapps/tests/auxkernels/corrosion/corrosion.i
- test/tests/time_steppers/iteration_adaptive/hit_function_knot.i
- test/tests/bcs/sideset_from_nodeset/sideset_from_nodeset_test.i
- modules/porous_flow/test/tests/poro_elasticity/terzaghi_fully_saturated_volume.i
- test/tests/executioners/fixed_point/2d_diffusion_fixed_point.i
- test/tests/bcs/periodic/periodic_subdomain_restricted_test.i
- test/tests/misc/check_error/double_restrict_uo.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_dtfunc.i
- modules/porous_flow/test/tests/poro_elasticity/terzaghi_basicthm.i
- modules/xfem/test/tests/diffusion_xfem/diffusion_flux_bc.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_init_dt.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_dtfunc_restart.i
- modules/heat_conduction/test/tests/heat_conduction_ortho/heat_conduction_ortho.i
- test/tests/materials/material/mat_cyclic_coupling.i
- test/tests/multiapps/relaxation/picard_master.i
- test/tests/misc/displaced_mesh_coupling/nonad.i
- modules/solid_mechanics/test/tests/solid_mech_cube/solid_mech_cube_test.i
- modules/misc/test/tests/coupled_directional_mesh_height_interpolation/coupled_directional_mesh_height_interpolation.i
- test/tests/materials/material/three_coupled_mat_test.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_shrink_init_dt.i
- modules/combined/examples/effective_properties/effective_th_cond.i
- test/tests/kernels/block_kernel/block_vars.i
- test/tests/postprocessors/find_value_on_line/findvalueonline.i
- modules/porous_flow/test/tests/poro_elasticity/terzaghi_constM.i
- test/tests/materials/material/coupled_material_test.i
- examples/ex08_materials/ex08.i
- modules/tensor_mechanics/test/tests/visco/visco_small_strain.i
- modules/tensor_mechanics/test/tests/visco/burgers_creep.i
- modules/tensor_mechanics/test/tests/test_jacobian/jacobian_test_planestrain.i
- examples/ex21_debugging/ex21.i
- modules/solid_mechanics/test/tests/test_jacobian/jacobian_test_linear.i
- modules/tensor_mechanics/test/tests/visco/visco_finite_strain.i
- test/tests/postprocessors/nodal_max_value/block_nodal_pps_test.i
- test/tests/bcs/1d_neumann/from_cubit.i
- modules/combined/test/tests/poro_mechanics/terzaghi.i
- test/tests/multiapps/relaxation/bad_relax_factor_master.i
- test/tests/multiapps/relaxation/sub_relaxed_master.i
- test/tests/bcs/1d_neumann/1d_neumann.i
- test/tests/time_steppers/iteration_adaptive/piecewise_linear.i
- test/tests/time_integrators/abort/abort.i
- modules/xfem/test/tests/moving_interface/phase_transition.i
- test/tests/tag/tag_neumann.i
- test/tests/outputs/debug/show_top_residuals_debug.i
- test/tests/multiapps/relaxation/picard_relaxed_master.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_shrink_init_dt_restart.i
- test/tests/bcs/misc_bcs/vacuum_bc_test.i
- test/tests/kernels/vector_fe/coupled_vector_gradient.i
- test/tests/bcs/sideset_from_nodeset/sideset_from_nodeset_test2.i
- test/tests/misc/save_in/diag_save_in_soln_var_err_test.i
- test/tests/mesh/side_list_from_node_list/side_list_from_node_list.i
- test/tests/functions/default_function/default_function.i
- modules/tensor_mechanics/test/tests/visco/gen_kv_creep.i
- test/tests/controls/time_periods/bcs/bcs_integrated.i
- test/tests/time_steppers/iteration_adaptive/adapt_tstep_reject_large_dt.i
- test/tests/kernels/2d_diffusion/matdiffusion.i
- modules/combined/test/tests/thermal_conductivity_temperature_function_test/thermal_conductivity_temperature_function_test.i
- modules/phase_field/examples/rigidbodymotion/AC_CH_Multigrain.i
- test/tests/dirackernels/function_dirac_source/function_dirac_source.i
- modules/tensor_mechanics/test/tests/test_jacobian/jacobian_test_3D.i
- modules/solid_mechanics/test/tests/test_jacobian/jacobian_test_planestrain.i
test/tests/misc/save_in/save_in_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./saved]
[../]
[./bc_saved]
[../]
[./accumulated]
[../]
[./diag_saved]
[../]
[./bc_diag_saved]
[../]
[./saved_dirichlet]
[../]
[./diag_saved_dirichlet]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
save_in = 'saved accumulated saved_dirichlet'
diag_save_in = 'diag_saved diag_saved_dirichlet'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
save_in = saved_dirichlet
diag_save_in = diag_saved_dirichlet
[../]
[./nbc]
type = NeumannBC
variable = u
boundary = right
value = 1
save_in = 'bc_saved accumulated'
diag_save_in = bc_diag_saved
[../]
[]
[Postprocessors]
[./left_flux]
type = NodalSum
variable = saved
boundary = 1
[../]
[./saved_norm]
type = NodalL2Norm
variable = saved
execute_on = timestep_end
block = 0
[../]
[./saved_dirichlet_norm]
type = NodalL2Norm
variable = saved_dirichlet
execute_on = timestep_end
block = 0
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = out
exodus = true
[]
test/tests/kernels/2d_diffusion/2d_diffusion_neumannbc_test.i
[Mesh]
file = square.e
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff'
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 2
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = neumannbc_out
exodus = true
[]
modules/tensor_mechanics/test/tests/static_deformations/cosserat_shear.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 6
ny = 6
ymin = 0
ymax = 10
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Postprocessors]
[./disp_y_top]
type = PointValue
point = '0.5 1 0.1'
variable = disp_y
[../]
[./disp_x_top]
type = PointValue
point = '0.5 1 0.1'
variable = disp_x
[../]
[./wc_z_top]
type = PointValue
point = '0.5 1 0.1'
variable = wc_z
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
displacements = 'disp_x disp_y disp_z'
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
displacements = 'disp_x disp_y disp_z'
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
displacements = 'disp_x disp_y disp_z'
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
component = 1
displacements = 'wc_x wc_y wc_z'
base_name = couple
[../]
[./z_couple]
type = StressDivergenceTensors
variable = wc_z
component = 2
displacements = 'wc_x wc_y wc_z'
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[./z_moment]
type = MomentBalancing
variable = wc_z
component = 2
[../]
[]
[BCs]
[./Periodic]
[./xperiodic]
auto_direction = x
variable = 'disp_x disp_y disp_z wc_x wc_y wc_z'
[../]
[./zperiodic]
auto_direction = z
variable = 'disp_x disp_y disp_z wc_x wc_y wc_z'
[../]
[../]
[./ux_equals_zero_on_top]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[./wcx_equals_zero_on_top]
type = DirichletBC
variable = wc_x
boundary = top
value = 0
[../]
[./wcy_equals_zero_on_top]
type = DirichletBC
variable = wc_y
boundary = top
value = 0
[../]
[./wcz_equals_zero_on_top]
type = DirichletBC
variable = wc_z
boundary = top
value = 0
[../]
# following is natural BC
[./top_cauchy_zero]
type = NeumannBC
variable = disp_x
boundary = top
value = 0
[../]
[./ux_bottom]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 1.0
[../]
[./uy_bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./uz_bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./wc_x_bottom]
type = DirichletBC
variable = wc_x
boundary = bottom
value = 0.0
[../]
[./wc_y_bottom]
type = DirichletBC
variable = wc_y
boundary = bottom
value = 0.0
[../]
[./wc_z_bottom]
type = DirichletBC
variable = wc_z
boundary = bottom
value = 0.17
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeCosseratElasticityTensor
B_ijkl = 40
E_ijkl = '5 10 5'
fill_method = 'general_isotropic'
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
tutorials/darcy_thermo_mech/step10_multiapps/problems/step10_micro.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
ymax = 0.1
xmax = 0.1
uniform_refine = 0
[]
[Adaptivity]
max_h_level = 4
initial_steps = 6
initial_marker = error_marker
cycles_per_step = 2
marker = error_marker
[Indicators]
[phi_jump]
type = GradientJumpIndicator
variable = phi
[]
[]
[Markers]
[error_marker]
type = ErrorFractionMarker
indicator = phi_jump
refine = 0.8
coarsen = 0.1
[]
[]
[]
[Variables]
[temperature]
initial_condition = 300
[]
[]
[AuxVariables]
[phi]
[]
[por_var]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[corrosion]
type = RandomCorrosion
variable = phi
reference_temperature = 300
temperature = temperature_in
execute_on = 'INITIAL TIMESTEP_END'
[]
[por_var]
type = MaterialRealAux
variable = por_var
property = porosity
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Kernels]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[]
[BCs]
[left]
type = PostprocessorDirichletBC
variable = temperature
boundary = left
postprocessor = temperature_in
[]
[right]
type = NeumannBC
variable = temperature
boundary = right
value = 100 # prescribed flux
[]
[]
[Materials]
[column]
type = PackedColumn
temperature = temperature
radius = 1 # mm
phase = phi
[]
[]
[Postprocessors]
[temperature_in]
type = Receiver
default = 301
[]
[k_eff]
type = ThermalConductivity
variable = temperature
T_hot = temperature_in
flux = 100
dx = 0.1
boundary = right
length_scale = 1
k0 = 12.05
execute_on = 'INITIAL TIMESTEP_END'
[]
[por_var]
type = ElementAverageValue
variable = por_var
execute_on = 'INITIAL TIMESTEP_END'
[]
[t_right]
type = SideAverageValue
boundary = right
variable = temperature
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
end_time = 1000
dt = 1
steady_state_tolerance = 1e-9
steady_state_detection = true
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
[]
[ICs]
[close_pack]
radius = 0.01 # meter
outvalue = 0 # water
variable = phi
invalue = 1 # steel
type = ClosePackIC
[]
[]
modules/tensor_mechanics/test/tests/static_deformations/cosserat_tension.i
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
zmax = 0.2
[]
[bottom_xline1]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[bottom_xline2]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0.5 0 0'
input = bottom_xline1
[]
[bottom_xline3]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '1 0 0'
input = bottom_xline2
[]
[bottom_zline1]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '0 0 0.0'
input = bottom_xline3
[]
[bottom_zline2]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '0 0 0.1'
input = bottom_zline1
[]
[bottom_zline3]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '0 0 0.2'
input = bottom_zline2
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Postprocessors]
[./disp_y_top]
type = PointValue
point = '0.5 1 0.1'
variable = disp_y
[../]
[./wc_z_top]
type = PointValue
point = '0.5 1 0.1'
variable = wc_z
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./z_couple]
type = StressDivergenceTensors
variable = wc_z
displacements = 'wc_x wc_y wc_z'
component = 2
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[./z_moment]
type = MomentBalancing
variable = wc_z
component = 2
[../]
[]
[BCs]
[./y_bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./x_line]
type = DirichletBC
variable = disp_z
boundary = 101
value = 0
[../]
[./z_line]
type = DirichletBC
variable = disp_x
boundary = 102
value = 0
[../]
[./wc_x_bottom]
type = DirichletBC
variable = wc_x
boundary = bottom
value = 0
[../]
[./wc_y_bottom]
type = DirichletBC
variable = wc_y
boundary = bottom
value = 0
[../]
[./wc_z_bottom]
type = DirichletBC
variable = wc_z
boundary = bottom
value = 0
[../]
[./top_force]
type = NeumannBC
variable = disp_y
boundary = top
value = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeCosseratElasticityTensor
B_ijkl = 0.5
E_ijkl = '1 2 1.3333'
fill_method = 'general_isotropic'
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = cosserat_tension_out
exodus = true
[]
test/tests/time_integrators/aee/aee.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 1.0
[]
#still need BC for Energy, IC's for both.
[Variables]
active = 'Time'
[./Time]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
[../]
[]
[Functions]
active = 'func'
[./func]
type = ParsedFunction
value = 2.0*t
[../]
[]
[Kernels]
active = 't_time func_time'
[./t_time]
type = TimeDerivative
variable = Time
[../]
[./func_time]
type = BodyForce
variable = Time
function = func
[../]
[]
[BCs]
active = 'Top_Temperature'
[./Top_Temperature]
type = NeumannBC
variable = Time
boundary = 'left right'
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
#scheme = 'crank-nicolson'
start_time = 0
num_steps = 4
nl_abs_tol = 1e-15
petsc_options = '-snes_converged_reason'
abort_on_solve_fail = true
[./TimeStepper]
type = AB2PredictorCorrector
dt = .01
e_max = 10
e_tol = 1
[../]
[]
[Outputs]
exodus = true
[]
test/tests/materials/has_material/has_block_prop.i
[Mesh]
type = FileMesh
file = rectangle.e
[]
[Variables]
[./u]
[../]
[]
[Kernels]
active = 'u_diff'
[./u_diff]
type = MatCoefDiffusion
variable = u
block = '1 2'
conductivity = k
[../]
[]
[BCs]
[./left]
type = NeumannBC
variable = u
boundary = 1
value = 1
[../]
[./right]
type = DirichletBC
variable = u
boundary = 2
value = 0
[../]
[]
[Materials]
[./right]
type = GenericConstantMaterial
block = 2
prop_names = 'k k_right'
prop_values = '1 2'
[../]
[./left]
type = GenericConstantMaterial
block = 1
prop_names = 'k'
prop_values = '0.1'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_pps_lim.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./timestep_fn]
type = PiecewiseLinear
x = '0. 40.'
y = '10. 1. '
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 40.0
n_startup_steps = 2
dtmax = 6.0
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 10
timestep_limiting_postprocessor = timestep_pp
dt = 1.0
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
# Just use a simple postprocessor to test capability to limit the time step length to the postprocessor value
[./timestep_pp]
type = FunctionValuePostprocessor
function = timestep_fn
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
checkpoint = true
[]
modules/porous_flow/test/tests/poro_elasticity/terzaghi.i
# Terzaghi's problem of consolodation of a drained medium
#
# A saturated soil sample sits in a bath of water.
# It is constrained on its sides, and bottom.
# Its sides and bottom are also impermeable.
# Initially it is unstressed.
# A normal stress, q, is applied to the soil's top.
# The soil then slowly compresses as water is squeezed
# out from the sample from its top (the top BC for
# the porepressure is porepressure = 0).
#
# See, for example. Section 2.2 of the online manuscript
# Arnold Verruijt "Theory and Problems of Poroelasticity" Delft University of Technology 2013
# but note that the "sigma" in that paper is the negative
# of the stress in TensorMechanics
#
# Here are the problem's parameters, and their values:
# Soil height. h = 10
# Soil's Lame lambda. la = 2
# Soil's Lame mu, which is also the Soil's shear modulus. mu = 3
# Soil bulk modulus. K = la + 2*mu/3 = 4
# Soil confined compressibility. m = 1/(K + 4mu/3) = 0.125
# Soil bulk compliance. 1/K = 0.25
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Soil initial storativity, which is the reciprocal of the initial Biot modulus. S = phi0/Kf + (alpha - phi0)(1 - alpha)/K = 0.0625
# Consolidation coefficient. c = k/(S + alpha^2 m) = 13.95348837
# Normal stress on top. q = 1
# Initial porepressure, resulting from instantaneous application of q, assuming corresponding instantaneous increase of porepressure (Note that this is calculated by MOOSE: we only need it for the analytical solution). p0 = alpha*m*q/(S + alpha^2 m) = 0.69767442
# Initial vertical displacement (down is positive), resulting from instantaneous application of q (Note this is calculated by MOOSE: we only need it for the analytical solution). uz0 = q*m*h*S/(S + alpha^2 m)
# Final vertical displacement (down in positive) (Note this is calculated by MOOSE: we only need it for the analytical solution). uzinf = q*m*h
#
# The solution for porepressure is
# P = 4*p0/\pi \sum_{k=1}^{\infty} \frac{(-1)^{k-1}}{2k-1} \cos ((2k-1)\pi z/(2h)) \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
# This series converges very slowly for ct/h^2 small, so in that domain
# P = p0 erf( (1-(z/h))/(2 \sqrt(ct/h^2)) )
#
# The degree of consolidation is defined as
# U = (uz - uz0)/(uzinf - uz0)
# where uz0 and uzinf are defined above, and
# uz = the vertical displacement of the top (down is positive)
# U = 1 - (8/\pi^2)\sum_{k=1}^{\infty} \frac{1}{(2k-1)^2} \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
#
# FINAL NOTE: The above solution assumes constant Biot Modulus.
# In porous_flow this is not true. Therefore the solution is
# a little different than in the paper. This test was therefore
# validated against MOOSE's poromechanics, which can choose either
# a constant Biot Modulus (which has been shown to agree with
# the analytic solution), or a non-constant Biot Modulus (which
# gives the same results as porous_flow).
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 10
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = 0
zmax = 10
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[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.8
alpha = 1
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[../]
[./confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[../]
[./basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[../]
[./topdrained]
type = DirichletBC
variable = porepressure
value = 0
boundary = front
[../]
[./topload]
type = NeumannBC
variable = disp_z
value = -1
boundary = front
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[../]
[./poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[../]
[./poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[../]
[./poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[../]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[../]
[./flux]
type = PorousFlowAdvectiveFlux
variable = porepressure
gravity = '0 0 0'
fluid_component = 0
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 0.96
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '2 3'
# bulk modulus is lambda + 2*mu/3 = 2 + 2*3/3 = 4
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./eff_fluid_pressure_qp]
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]
type = PorousFlowPorosity
fluid = true
mechanical = true
ensure_positive = false
porosity_zero = 0.1
biot_coefficient = 0.6
solid_bulk = 4
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey
n = 0 # unimportant in this fully-saturated situation
phase = 0
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
use_displaced_mesh = false
[../]
[./p1]
type = PointValue
outputs = csv
point = '0 0 1'
variable = porepressure
use_displaced_mesh = false
[../]
[./p2]
type = PointValue
outputs = csv
point = '0 0 2'
variable = porepressure
use_displaced_mesh = false
[../]
[./p3]
type = PointValue
outputs = csv
point = '0 0 3'
variable = porepressure
use_displaced_mesh = false
[../]
[./p4]
type = PointValue
outputs = csv
point = '0 0 4'
variable = porepressure
use_displaced_mesh = false
[../]
[./p5]
type = PointValue
outputs = csv
point = '0 0 5'
variable = porepressure
use_displaced_mesh = false
[../]
[./p6]
type = PointValue
outputs = csv
point = '0 0 6'
variable = porepressure
use_displaced_mesh = false
[../]
[./p7]
type = PointValue
outputs = csv
point = '0 0 7'
variable = porepressure
use_displaced_mesh = false
[../]
[./p8]
type = PointValue
outputs = csv
point = '0 0 8'
variable = porepressure
use_displaced_mesh = false
[../]
[./p9]
type = PointValue
outputs = csv
point = '0 0 9'
variable = porepressure
use_displaced_mesh = false
[../]
[./p99]
type = PointValue
outputs = csv
point = '0 0 10'
variable = porepressure
use_displaced_mesh = false
[../]
[./zdisp]
type = PointValue
outputs = csv
point = '0 0 10'
variable = disp_z
use_displaced_mesh = false
[../]
[./dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.5*t<0.1,0.5*t,0.1)
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.0001
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = terzaghi
[./csv]
type = CSV
[../]
[]
test/tests/executioners/fixed_point/nonlinear_fixed_point.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = -1
xmax = 1
ymin = -1
ymax = 1
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./power]
type = PReaction
variable = u
coefficient = 0.2
power = -5
# Comment out this will make fixed point iteration converged in one iteration.
# However, this makes the solving diverge and require a proper initial condition (>1.00625).
vector_tags = 'previous'
[../]
[]
[BCs]
[./left]
type = VacuumBC
variable = u
boundary = left
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 10
[../]
[]
[Postprocessors]
[./unorm]
type = ElementL2Norm
variable = u
[../]
[]
[Problem]
type = FixedPointProblem
fp_tag_name = 'previous'
[]
[Executioner]
type = FixedPointSteady
nl_rel_tol = 1e-2
nl_abs_tol = 1e-12
[]
[Outputs]
exodus = true
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_init_dt_restart.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 50.0
n_startup_steps = 2
dtmax = 6.0
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 10
dt = 1.0
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
[Problem]
restart_file_base = adapt_tstep_grow_init_dt_out_cp/LATEST
[]
test/tests/interfacekernels/1d_interface/mixed_shapes.i
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
nx = 10
xmax = 2
[]
[./subdomain1]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '1.0 0 0'
block_id = 1
top_right = '2.0 1.0 0'
[../]
[./interface]
input = subdomain1
type = SideSetsBetweenSubdomainsGenerator
master_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
[../]
[./interface_again]
input = interface
type = SideSetsBetweenSubdomainsGenerator
master_block = '1'
paired_block = '0'
new_boundary = 'master1_interface'
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '0'
[../]
[./v]
order = FIRST
family = MONOMIAL
block = '1'
[../]
[]
[Kernels]
[./diff_u]
type = CoeffParamDiffusion
variable = u
D = 4
block = 0
[../]
[./diff_v]
type = CoeffParamDiffusion
variable = v
D = 2
block = 1
[../]
[./body_u]
type = BodyForce
variable = u
block = 0
function = 'x^3+x^2+x+1'
[../]
[./body_v]
type = BodyForce
variable = v
block = 1
function = 'x^3+x^2+x+1'
[../]
[]
[DGKernels]
[./dg_diff_v]
type = DGDiffusion
variable = v
block = 1
diff = 2
sigma = 6
epsilon = -1
[../]
[]
[InterfaceKernels]
[./interface]
type = OneSideDiffusion
variable = u
neighbor_var = v
boundary = master0_interface
D = 4
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 'left'
value = 1
[../]
# [./right]
# type = DirichletBC
# variable = v
# boundary = 'right'
# value = 0
# [../]
[./right]
type = DGFunctionDiffusionDirichletBC
variable = v
boundary = 'right'
function = 0
epsilon = -1
sigma = 6
[../]
[./middle]
type = NeumannBC
variable = u
boundary = 'master0_interface'
value = '.5'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
print_linear_residuals = true
[]
[Debug]
show_var_residual_norms = true
[]
test/tests/kernels/anisotropic_diffusion/aniso_diffusion.i
[Mesh]
file = mixed_block.e
uniform_refine=3
[]
[Functions]
[./top_bc]
type = ParsedFunction
value = 'x'
[../]
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = AnisotropicDiffusion
variable = u
tensor_coeff = '2 0 0
0 4 0
0 0 0'
[../]
[]
[BCs]
active = 'lower_left top'
[./lower_left]
type = DirichletBC
variable = u
boundary = '1 4'
value = 1
[../]
[./top]
type = FunctionNeumannBC
variable = u
boundary = 3
function = top_bc
[../]
[./right]
type = NeumannBC
variable = u
boundary = 2
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
test/tests/misc/save_in/save_in_soln_var_err_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./saved]
[../]
[./bc_saved]
[../]
[./accumulated]
[../]
[./diag_saved]
[../]
[./bc_diag_saved]
[../]
[./saved_dirichlet]
[../]
[./diag_saved_dirichlet]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
save_in = 'u saved accumulated saved_dirichlet'
diag_save_in = 'diag_saved diag_saved_dirichlet'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
save_in = saved_dirichlet
diag_save_in = diag_saved_dirichlet
[../]
[./nbc]
type = NeumannBC
variable = u
boundary = right
value = 1
save_in = 'bc_saved accumulated'
diag_save_in = bc_diag_saved
[../]
[]
[Postprocessors]
[./left_flux]
type = NodalSum
variable = saved
boundary = 1
[../]
[./saved_norm]
type = NodalL2Norm
variable = saved
execute_on = timestep_end
block = 0
[../]
[./saved_dirichlet_norm]
type = NodalL2Norm
variable = saved_dirichlet
execute_on = timestep_end
block = 0
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = out
exodus = true
[]
tutorials/darcy_thermo_mech/step10_multiapps/tests/auxkernels/corrosion/corrosion.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
ymax = 0.1
xmax = 0.1
uniform_refine = 0
[]
[Adaptivity]
max_h_level = 3
initial_steps = 5
cycles_per_step = 2
initial_marker = error_marker
marker = error_marker
[Indicators]
[phi_jump]
type = GradientJumpIndicator
variable = phi
[]
[]
[Markers]
[error_marker]
type = ErrorFractionMarker
indicator = phi_jump
refine = 0.9
[]
[]
[]
[Variables]
[temperature]
initial_condition = 300
[]
[]
[AuxVariables]
[phi]
[]
[]
[AuxKernels]
[corrosion]
type = RandomCorrosion
execute_on = 'timestep_end'
variable = phi
reference_temperature = 300
temperature = 301
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[BCs]
[left]
type = PostprocessorDirichletBC
variable = temperature
boundary = left
postprocessor = 301
[]
[right]
type = NeumannBC
variable = temperature
boundary = right
value = 100 # prescribed flux
[]
[]
[Materials]
[column]
type = PackedColumn
temperature = temperature
radius = 1 # mm
phase = phi
outputs = exodus
output_properties = porosity
[]
[]
[Problem]
type = FEProblem
[]
[Postprocessors]
[k_eff]
type = ThermalConductivity
variable = temperature
T_hot = 301
flux = 100
dx = 0.1
boundary = right
length_scale = 1
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
[console]
type = Console
execute_postprocessors_on = 'timestep_begin timestep_end'
[]
[]
[ICs]
[close_pack]
radius = 0.01
outvalue = 0 # water
variable = phi
invalue = 1 #steel
type = ClosePackIC
[]
[]
test/tests/time_steppers/iteration_adaptive/hit_function_knot.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./knot]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0 0'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 2.0
timestep_tolerance = 0.3
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.9
optimal_iterations = 10
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[]
test/tests/bcs/sideset_from_nodeset/sideset_from_nodeset_test.i
[Mesh]
file = cube_no_sidesets.e
construct_side_list_from_node_list = true
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff'
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 3
value = 3
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = cube_hex_out
exodus = true
[]
modules/porous_flow/test/tests/poro_elasticity/terzaghi_fully_saturated_volume.i
# Terzaghi's problem of consolodation of a drained medium
# The FullySaturated Kernels are used, with multiply_by_density = false
# so that this becomes a linear problem with constant Biot Modulus
# Also, since the FullySaturated Kernels are used, we have to
# use consistent_with_displaced_mesh = false in the calculation of volumetric strain
#
# A saturated soil sample sits in a bath of water.
# It is constrained on its sides, and bottom.
# Its sides and bottom are also impermeable.
# Initially it is unstressed.
# A normal stress, q, is applied to the soil's top.
# The soil then slowly compresses as water is squeezed
# out from the sample from its top (the top BC for
# the porepressure is porepressure = 0).
#
# See, for example. Section 2.2 of the online manuscript
# Arnold Verruijt "Theory and Problems of Poroelasticity" Delft University of Technology 2013
# but note that the "sigma" in that paper is the negative
# of the stress in TensorMechanics
#
# Here are the problem's parameters, and their values:
# Soil height. h = 10
# Soil's Lame lambda. la = 2
# Soil's Lame mu, which is also the Soil's shear modulus. mu = 3
# Soil bulk modulus. K = la + 2*mu/3 = 4
# Soil confined compressibility. m = 1/(K + 4mu/3) = 0.125
# Soil bulk compliance. 1/K = 0.25
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Soil initial storativity, which is the reciprocal of the initial Biot modulus. S = phi0/Kf + (alpha - phi0)(1 - alpha)/K = 0.0625
# Consolidation coefficient. c = k/(S + alpha^2 m) = 13.95348837
# Normal stress on top. q = 1
# Initial porepressure, resulting from instantaneous application of q, assuming corresponding instantaneous increase of porepressure (Note that this is calculated by MOOSE: we only need it for the analytical solution). p0 = alpha*m*q/(S + alpha^2 m) = 0.69767442
# Initial vertical displacement (down is positive), resulting from instantaneous application of q (Note this is calculated by MOOSE: we only need it for the analytical solution). uz0 = q*m*h*S/(S + alpha^2 m)
# Final vertical displacement (down in positive) (Note this is calculated by MOOSE: we only need it for the analytical solution). uzinf = q*m*h
#
# The solution for porepressure is
# P = 4*p0/\pi \sum_{k=1}^{\infty} \frac{(-1)^{k-1}}{2k-1} \cos ((2k-1)\pi z/(2h)) \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
# This series converges very slowly for ct/h^2 small, so in that domain
# P = p0 erf( (1-(z/h))/(2 \sqrt(ct/h^2)) )
#
# The degree of consolidation is defined as
# U = (uz - uz0)/(uzinf - uz0)
# where uz0 and uzinf are defined above, and
# uz = the vertical displacement of the top (down is positive)
# U = 1 - (8/\pi^2)\sum_{k=1}^{\infty} \frac{1}{(2k-1)^2} \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 10
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = 0
zmax = 10
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[UserObjects]
[./dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[../]
[./confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[../]
[./basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[../]
[./topdrained]
type = DirichletBC
variable = porepressure
value = 0
boundary = front
[../]
[./topload]
type = NeumannBC
variable = disp_z
value = -1
boundary = front
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[../]
[./poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[../]
[./poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[../]
[./mass0]
type = PorousFlowFullySaturatedMassTimeDerivative
coupling_type = HydroMechanical
biot_coefficient = 0.6
multiply_by_density = false
variable = porepressure
[../]
[./flux]
type = PorousFlowFullySaturatedDarcyBase
multiply_by_density = false
variable = porepressure
gravity = '0 0 0'
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 0.96
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '2 3'
# bulk modulus is lambda + 2*mu/3 = 2 + 2*3/3 = 4
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./eff_fluid_pressure_qp]
type = PorousFlowEffectiveFluidPressure
[../]
[./vol_strain]
type = PorousFlowVolumetricStrain
consistent_with_displaced_mesh = false
[../]
[./ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = porepressure
[../]
[./massfrac]
type = PorousFlowMassFraction
[../]
[./simple_fluid_qp]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[../]
[./porosity]
type = PorousFlowPorosityConst # only the initial value of this is used
porosity = 0.1
[../]
[./biot_modulus]
type = PorousFlowConstantBiotModulus
biot_coefficient = 0.6
fluid_bulk_modulus = 8
solid_bulk_compliance = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
use_displaced_mesh = false
[../]
[./p1]
type = PointValue
outputs = csv
point = '0 0 1'
variable = porepressure
use_displaced_mesh = false
[../]
[./p2]
type = PointValue
outputs = csv
point = '0 0 2'
variable = porepressure
use_displaced_mesh = false
[../]
[./p3]
type = PointValue
outputs = csv
point = '0 0 3'
variable = porepressure
use_displaced_mesh = false
[../]
[./p4]
type = PointValue
outputs = csv
point = '0 0 4'
variable = porepressure
use_displaced_mesh = false
[../]
[./p5]
type = PointValue
outputs = csv
point = '0 0 5'
variable = porepressure
use_displaced_mesh = false
[../]
[./p6]
type = PointValue
outputs = csv
point = '0 0 6'
variable = porepressure
use_displaced_mesh = false
[../]
[./p7]
type = PointValue
outputs = csv
point = '0 0 7'
variable = porepressure
use_displaced_mesh = false
[../]
[./p8]
type = PointValue
outputs = csv
point = '0 0 8'
variable = porepressure
use_displaced_mesh = false
[../]
[./p9]
type = PointValue
outputs = csv
point = '0 0 9'
variable = porepressure
use_displaced_mesh = false
[../]
[./p99]
type = PointValue
outputs = csv
point = '0 0 10'
variable = porepressure
use_displaced_mesh = false
[../]
[./zdisp]
type = PointValue
outputs = csv
point = '0 0 10'
variable = disp_z
use_displaced_mesh = false
[../]
[./dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.5*t<0.1,0.5*t,0.1)
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.0001
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = terzaghi_fully_saturated_volume
[./csv]
type = CSV
[../]
[]
test/tests/executioners/fixed_point/2d_diffusion_fixed_point.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = -1
xmax = 1
ymin = -1
ymax = 1
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./pseudo_time]
type = CoefReaction
variable = u
coefficient = -0.1
# comment out this will make fixed point iteration converged in one iteration
vector_tags = 'previous'
[../]
[./pseudo_time_compensation]
type = CoefReaction
variable = u
coefficient = 0.1
[../]
[]
[BCs]
[./left]
type = VacuumBC
variable = u
boundary = left
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./unorm]
type = ElementL2Norm
variable = u
[../]
[]
[Problem]
type = FixedPointProblem
fp_tag_name = 'previous'
[]
[Executioner]
type = FixedPointSteady
nl_rel_tol = 1e-2
nl_abs_tol = 1e-12
[]
[Outputs]
exodus = true
[]
test/tests/bcs/periodic/periodic_subdomain_restricted_test.i
[Mesh]
file = rect-2blk.e
[]
[Variables]
active = 'u v'
[./u]
order = FIRST
family = LAGRANGE
block = 1
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff_u diff_v'
[./diff_u]
type = Diffusion
variable = u
block = 1
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'Periodic left_u right_u left_v right_v'
[./Periodic]
[./u]
variable = u
primary = 1
secondary = 5
translation = '0 1 0'
[../]
[./v1]
variable = v
primary = 1
secondary = 5
translation = '0 1 0'
[../]
[./v2]
variable = v
primary = 2
secondary = 4
translation = '0 1 0'
[../]
[../]
[./left_u]
type = DirichletBC
variable = u
boundary = 6
value = 0
[../]
[./right_u]
type = NeumannBC
variable = u
boundary = 8
value = 4
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = 6
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = 3
value = 6
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_restrict
exodus = true
[]
test/tests/misc/check_error/double_restrict_uo.i
[Mesh]
file = sq-2blk.e
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 1
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left_u]
type = DirichletBC
variable = u
boundary = 6
value = 0
[../]
[./right_u]
type = NeumannBC
variable = u
boundary = 8
value = 4
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = 6
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = 3
value = 6
[../]
[]
[Postprocessors]
# This test demonstrates that you can have a block restricted NodalPostprocessor
[./restricted_max]
type = NodalMaxValue
variable = v
block = 1 # Block restricted
boundary = 1 # Boundary restricted
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_dtfunc.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
preset = false
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 5.0
[TimeStepper]
type = IterationAdaptiveDT
dt = 1.0
optimal_iterations = 10
time_t = '0.0 5.0'
time_dt = '1.0 5.0'
[]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
checkpoint = true
[]
modules/porous_flow/test/tests/poro_elasticity/terzaghi_basicthm.i
# Using a BasicTHM action
# Terzaghi's problem of consolodation of a drained medium
# The FullySaturated Kernels are used, with multiply_by_density = false
# so that this becomes a linear problem with constant Biot Modulus
# Also, since the FullySaturated Kernels are used, we have to
# use consistent_with_displaced_mesh = false in the calculation of volumetric strain
#
# A saturated soil sample sits in a bath of water.
# It is constrained on its sides, and bottom.
# Its sides and bottom are also impermeable.
# Initially it is unstressed.
# A normal stress, q, is applied to the soil's top.
# The soil then slowly compresses as water is squeezed
# out from the sample from its top (the top BC for
# the porepressure is porepressure = 0).
#
# See, for example. Section 2.2 of the online manuscript
# Arnold Verruijt "Theory and Problems of Poroelasticity" Delft University of Technology 2013
# but note that the "sigma" in that paper is the negative
# of the stress in TensorMechanics
#
# Here are the problem's parameters, and their values:
# Soil height. h = 10
# Soil's Lame lambda. la = 2
# Soil's Lame mu, which is also the Soil's shear modulus. mu = 3
# Soil bulk modulus. K = la + 2*mu/3 = 4
# Soil confined compressibility. m = 1/(K + 4mu/3) = 0.125
# Soil bulk compliance. 1/K = 0.25
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Soil initial storativity, which is the reciprocal of the initial Biot modulus. S = phi0/Kf + (alpha - phi0)(1 - alpha)/K = 0.0625
# Consolidation coefficient. c = k/(S + alpha^2 m) = 13.95348837
# Normal stress on top. q = 1
# Initial porepressure, resulting from instantaneous application of q, assuming corresponding instantaneous increase of porepressure (Note that this is calculated by MOOSE: we only need it for the analytical solution). p0 = alpha*m*q/(S + alpha^2 m) = 0.69767442
# Initial vertical displacement (down is positive), resulting from instantaneous application of q (Note this is calculated by MOOSE: we only need it for the analytical solution). uz0 = q*m*h*S/(S + alpha^2 m)
# Final vertical displacement (down in positive) (Note this is calculated by MOOSE: we only need it for the analytical solution). uzinf = q*m*h
#
# The solution for porepressure is
# P = 4*p0/\pi \sum_{k=1}^{\infty} \frac{(-1)^{k-1}}{2k-1} \cos ((2k-1)\pi z/(2h)) \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
# This series converges very slowly for ct/h^2 small, so in that domain
# P = p0 erf( (1-(z/h))/(2 \sqrt(ct/h^2)) )
#
# The degree of consolidation is defined as
# U = (uz - uz0)/(uzinf - uz0)
# where uz0 and uzinf are defined above, and
# uz = the vertical displacement of the top (down is positive)
# U = 1 - (8/\pi^2)\sum_{k=1}^{\infty} \frac{1}{(2k-1)^2} \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 10
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = 0
zmax = 10
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[../]
[./confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[../]
[./basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[../]
[./topdrained]
type = DirichletBC
variable = porepressure
value = 0
boundary = front
[../]
[./topload]
type = NeumannBC
variable = disp_z
value = -1
boundary = front
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 8.0
viscosity = 0.96
density0 = 1.0
[../]
[../]
[]
[PorousFlowBasicTHM]
coupling_type = HydroMechanical
displacements = 'disp_x disp_y disp_z'
multiply_by_density = false
porepressure = porepressure
biot_coefficient = 0.6
gravity = '0 0 0'
fp = the_simple_fluid
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '2 3'
# bulk modulus is lambda + 2*mu/3 = 2 + 2*3/3 = 4
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./porosity]
type = PorousFlowPorosityConst # only the initial value of this is used
porosity = 0.1
[../]
[./biot_modulus]
type = PorousFlowConstantBiotModulus
biot_coefficient = 0.6
fluid_bulk_modulus = 8
solid_bulk_compliance = 0.25
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
use_displaced_mesh = false
[../]
[./p1]
type = PointValue
outputs = csv
point = '0 0 1'
variable = porepressure
use_displaced_mesh = false
[../]
[./p2]
type = PointValue
outputs = csv
point = '0 0 2'
variable = porepressure
use_displaced_mesh = false
[../]
[./p3]
type = PointValue
outputs = csv
point = '0 0 3'
variable = porepressure
use_displaced_mesh = false
[../]
[./p4]
type = PointValue
outputs = csv
point = '0 0 4'
variable = porepressure
use_displaced_mesh = false
[../]
[./p5]
type = PointValue
outputs = csv
point = '0 0 5'
variable = porepressure
use_displaced_mesh = false
[../]
[./p6]
type = PointValue
outputs = csv
point = '0 0 6'
variable = porepressure
use_displaced_mesh = false
[../]
[./p7]
type = PointValue
outputs = csv
point = '0 0 7'
variable = porepressure
use_displaced_mesh = false
[../]
[./p8]
type = PointValue
outputs = csv
point = '0 0 8'
variable = porepressure
use_displaced_mesh = false
[../]
[./p9]
type = PointValue
outputs = csv
point = '0 0 9'
variable = porepressure
use_displaced_mesh = false
[../]
[./p99]
type = PointValue
outputs = csv
point = '0 0 10'
variable = porepressure
use_displaced_mesh = false
[../]
[./zdisp]
type = PointValue
outputs = csv
point = '0 0 10'
variable = disp_z
use_displaced_mesh = false
[../]
[./dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.5*t<0.1,0.5*t,0.1)
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.0001
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = terzaghi_basicthm
[./csv]
type = CSV
[../]
[]
modules/xfem/test/tests/diffusion_xfem/diffusion_flux_bc.i
# The Neumann BC is applied on the cutted boundary.
# The solution is not correct because so far integration along the cutted element faces is not right.
# To correct this, we need to re-calcuate the weights based on area/volume fraction. This will be implemented soon.
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 6
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.5 1.0 0.5 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
# Define boundary conditions
[./top_u]
type = NeumannBC
variable = u
boundary = 2
value = -1.0
[../]
[./bottom]
type = DirichletBC
variable = u
boundary = 0
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 1.0
[]
[Outputs]
interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_init_dt.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 20.0
n_startup_steps = 2
dtmax = 6.0
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 10
dt = 1.0
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
checkpoint = true
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_grow_dtfunc_restart.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
verbose = true
petsc_options = -snes_ksp_ew
petsc_options_iname = -ksp_gmres_restart
petsc_options_value = 101
line_search = none
nl_rel_tol = 1e-8
end_time = 20.0
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1.0
optimal_iterations = 10
time_t = '0.0 5.0'
time_dt = '1.0 5.0'
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Problem]
restart_file_base = adapt_tstep_grow_dtfunc_out_cp/0003
[]
modules/heat_conduction/test/tests/heat_conduction_ortho/heat_conduction_ortho.i
#
# Three independent cubes are thermally loaded, one in x, one in y, and one in z.
# Each direction has a different thermal conductivity, resulting in a different
# temperature at the side with the Neumann bc.
#
# For x: 100/1000 = 1e-1
# For y: 100/100 = 1e+0
# for z: 100/10 = 1e+1
#
[Mesh]
file = heat_conduction_ortho.e
[]
[Variables]
[./temp]
[../]
[]
[Kernels]
[./heat]
type = AnisoHeatConduction
variable = temp
[../]
[]
[BCs]
[./temps]
type = DirichletBC
variable = temp
boundary = 1
value = 0
[../]
[./neum]
type = NeumannBC
variable = temp
boundary = 2
value = 100
[../]
[]
[Materials]
[./heat]
type = AnisoHeatConductionMaterial
block = 1
specific_heat = 0.116
thermal_conductivity_x_pp = tcx
thermal_conductivity_y_pp = tcy
thermal_conductivity_z_pp = tcz
[../]
[./density]
type = GenericConstantMaterial
block = 1
prop_names = 'density'
prop_values = 0.283
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[]
[Outputs]
exodus = true
hide = 'tcx tcy tcz'
[]
[Postprocessors]
[./tcx]
type = FunctionValuePostprocessor
function = 1000
outputs = none
execute_on = 'initial timestep_end'
[../]
[./tcy]
type = FunctionValuePostprocessor
function = 100
outputs = none
execute_on = 'initial timestep_end'
[../]
[./tcz]
type = FunctionValuePostprocessor
function = 10
outputs = none
execute_on = 'initial timestep_end'
[../]
[]
test/tests/materials/material/mat_cyclic_coupling.i
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = some_prop
[../]
[./conv]
type = MatConvection
variable = u
x = 1
y = 0
mat_prop = some_other_prop
[../]
[]
[BCs]
[./right]
type = NeumannBC
variable = u
boundary = 1
value = 1
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[]
[Materials]
# order is switched intentionally, so we won't get lucky and dep-resolver has to do its job
[./mat2]
type = CoupledMaterial
block = 0
mat_prop = 'some_prop'
coupled_mat_prop = 'some_other_prop'
[../]
[./mat1]
type = CoupledMaterial
block = 0
mat_prop = 'some_other_prop'
coupled_mat_prop = 'some_prop'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out_coupled
exodus = true
[]
test/tests/multiapps/relaxation/picard_master.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
parallel_type = replicated
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./v]
initial_condition = 1
[../]
[./inverse_v]
initial_condition = 1
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[./force_u]
type = CoupledForce
variable = u
v = inverse_v
[../]
[]
[AuxKernels]
[./invert_v]
type = QuotientAux
variable = inverse_v
denominator = v
numerator = 20.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./Neumann_right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./picard_its]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 4
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_abs_tol = 1e-14
[]
[Outputs]
exodus = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = MooseTestApp
execute_on = timestep_begin
positions = '0 0 0'
input_files = picard_relaxed_sub.i
[../]
[]
[Transfers]
[./v_from_sub]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = v
variable = v
[../]
[./u_to_sub]
type = MultiAppNearestNodeTransfer
direction = to_multiapp
multi_app = sub
source_variable = u
variable = u
[../]
[]
test/tests/misc/displaced_mesh_coupling/nonad.i
[GlobalParams]
displacements = 'u'
[]
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./u]
type = Diffusion
use_displaced_mesh = true
variable = u
[../]
[./v]
type = Diffusion
use_displaced_mesh = false
variable = v
[../]
[]
[BCs]
[./no_x]
type = NeumannBC
variable = u
boundary = left
value = 1.0e-3
use_displaced_mesh = true
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./lright]
type = DirichletBC
variable = v
boundary = right
value = 1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
exodus = true
[]
modules/solid_mechanics/test/tests/solid_mech_cube/solid_mech_cube_test.i
#Run with 4 procs
[Mesh]
file = cube.e
[]
[Variables]
[./x_disp]
order = FIRST
family = LAGRANGE
[../]
[./y_disp]
order = FIRST
family = LAGRANGE
[../]
[./z_disp]
order = FIRST
family = LAGRANGE
[../]
[]
[SolidMechanics]
[./solid]
disp_x = x_disp
disp_y = y_disp
disp_z = z_disp
[../]
[]
[BCs]
[./y_force]
type = NeumannBC
variable = y_disp
boundary = 2
value = -1.0
[../]
[./left]
type = DirichletBC
variable = x_disp
boundary = 3
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = y_disp
boundary = 1
value = 0.0
[../]
[]
[Materials]
[./constant]
type = LinearIsotropicMaterial
block = 1
youngs_modulus = 1e6
poissons_ratio = .3
disp_x = x_disp
disp_y = y_disp
disp_z = z_disp
[../]
[]
[Executioner]
type = Steady #Transient
solve_type = PJFNK
l_max_its = 100
# start_time = 0.0
# num_steps = 4
# dt = 0.000005
[]
[Outputs]
file_base = out
exodus = true
[]
modules/misc/test/tests/coupled_directional_mesh_height_interpolation/coupled_directional_mesh_height_interpolation.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmin = 1
xmax = 2
displacements = 'disp_x disp_y'
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./disp_x]
[../]
[./disp_y]
[../]
[./stretch]
[../]
[]
[Functions]
[./stretch_func]
type = ParsedFunction
value = t
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./interpolation]
type = CoupledDirectionalMeshHeightInterpolation
variable = disp_x
direction = x
execute_on = timestep_begin
coupled_var = stretch
[../]
[./stretch_aux]
type = FunctionAux
variable = stretch
function = stretch_func
execute_on = timestep_begin
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
use_displaced_mesh = true
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 1
use_displaced_mesh = true
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 1
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/materials/material/three_coupled_mat_test.i
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = a
[../]
[./conv]
type = MatConvection
variable = u
x = 1
y = 0
mat_prop = b
[../]
[]
[BCs]
[./right]
type = NeumannBC
variable = u
boundary = 1
value = 1
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[]
[Materials]
[./matA]
type = CoupledMaterial
block = 0
mat_prop = 'a'
coupled_mat_prop = 'b'
[../]
[./matB]
type = CoupledMaterial
block = 0
mat_prop = 'b'
coupled_mat_prop = 'c'
[../]
[./matC]
type = CoupledMaterial
block = 0
mat_prop = 'c'
coupled_mat_prop = 'd'
[../]
[./matD]
type = GenericConstantMaterial
block = 0
prop_names = 'd'
prop_values = '2'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out_three
exodus = true
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_shrink_init_dt.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[dt]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 10
[]
[right]
type = NeumannBC
variable = u
boundary = right
value = -1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
dtmin = 1.0
end_time = 10.0
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 1
linear_iteration_ratio = 1
dt = 5.0
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
[]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
checkpoint = true
[]
modules/combined/examples/effective_properties/effective_th_cond.i
# This example calculates the effective thermal conductivity across a microstructure
# with circular second phase precipitates. Two methods are used to calculate the effective thermal conductivity,
# the direct method that applies a temperature to one side and a heat flux to the other,
# and the AEH method.
[Mesh] #Sets mesh size to 10 microns by 10 microns
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 100
ny = 100
xmax = 10
ymax = 10
[]
[./new_nodeset]
input = gen
type = ExtraNodesetGenerator
coord = '5 5'
new_boundary = 100
[../]
[]
[Variables] #Adds variables needed for two ways of calculating effective thermal cond.
[./T] #Temperature used for the direct calculation
initial_condition = 800
[../]
[./Tx_AEH] #Temperature used for the x-component of the AEH solve
initial_condition = 800
scaling = 1.0e4 #Scales residual to improve convergence
[../]
[./Ty_AEH] #Temperature used for the y-component of the AEH solve
initial_condition = 800
scaling = 1.0e4 #Scales residual to improve convergence
[../]
[]
[AuxVariables] #Creates second constant phase
[./phase2]
[../]
[]
[ICs] #Sets the IC for the second constant phase
[./phase2_IC] #Creates circles with smooth interfaces at random locations
variable = phase2
type = MultiSmoothCircleIC
int_width = 0.3
numbub = 20
bubspac = 1.5
radius = 0.5
outvalue = 0
invalue = 1
block = 0
[../]
[]
[Kernels]
[./HtCond] #Kernel for direct calculation of thermal cond
type = HeatConduction
variable = T
[../]
[./heat_x] #All other kernels are for AEH approach to calculate thermal cond.
type = HeatConduction
variable = Tx_AEH
[../]
[./heat_rhs_x]
type = HomogenizedHeatConduction
variable = Tx_AEH
component = 0
[../]
[./heat_y]
type = HeatConduction
variable = Ty_AEH
[../]
[./heat_rhs_y]
type = HomogenizedHeatConduction
variable = Ty_AEH
component = 1
[../]
[]
[BCs]
[./Periodic]
[./all]
auto_direction = 'x y'
variable = 'Tx_AEH Ty_AEH'
[../]
[../]
[./left_T] #Fix temperature on the left side
type = DirichletBC
variable = T
boundary = left
value = 800
[../]
[./right_flux] #Set heat flux on the right side
type = NeumannBC
variable = T
boundary = right
value = 5e-6
[../]
[./fix_x] #Fix Tx_AEH at a single point
type = DirichletBC
variable = Tx_AEH
value = 800
boundary = 100
[../]
[./fix_y] #Fix Ty_AEH at a single point
type = DirichletBC
variable = Ty_AEH
value = 800
boundary = 100
[../]
[]
[Materials]
[./thcond] #The equation defining the thermal conductivity is defined here, using two ifs
# The k in the bulk is k_b, in the precipitate k_p2, and across the interaface k_int
type = ParsedMaterial
block = 0
constant_names = 'length_scale k_b k_p2 k_int'
constant_expressions = '1e-6 5 1 0.1'
function = 'sk_b:= length_scale*k_b; sk_p2:= length_scale*k_p2; sk_int:= k_int*length_scale; if(phase2>0.1,if(phase2>0.95,sk_p2,sk_int),sk_b)'
outputs = exodus
f_name = thermal_conductivity
args = phase2
[../]
[]
[Postprocessors]
[./right_T]
type = SideAverageValue
variable = T
boundary = right
[../]
[./k_x_direct] #Effective thermal conductivity from direct method
# This value is lower than the AEH value because it is impacted by second phase
# on the right boundary
type = ThermalConductivity
variable = T
flux = 5e-6
length_scale = 1e-06
T_hot = 800
dx = 10
boundary = right
[../]
[./k_x_AEH] #Effective thermal conductivity in x-direction from AEH
type = HomogenizedThermalConductivity
variable = Tx_AEH
temp_x = Tx_AEH
temp_y = Ty_AEH
component = 0
scale_factor = 1e6 #Scale due to length scale of problem
[../]
[./k_y_AEH] #Effective thermal conductivity in x-direction from AEH
type = HomogenizedThermalConductivity
variable = Ty_AEH
temp_x = Tx_AEH
temp_y = Ty_AEH
component = 1
scale_factor = 1e6 #Scale due to length scale of problem
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'Tx_AEH Ty_AEH'
off_diag_column = 'Ty_AEH Tx_AEH'
[../]
[]
[Executioner]
type = Steady
l_max_its = 15
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = 'hypre boomeramg 31 0.7'
l_tol = 1e-04
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
csv = true
[]
test/tests/kernels/block_kernel/block_vars.i
[Mesh]
file = rect-2blk.e
[]
[Variables]
active = 'u v'
[./u]
order = FIRST
family = LAGRANGE
block = 1
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff_u diff_v'
[./diff_u]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'left_u right_u left_v right_v'
[./left_u]
type = DirichletBC
variable = u
boundary = 6
value = 0
[../]
[./right_u]
type = NeumannBC
variable = u
boundary = 8
value = 4
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = 6
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = 3
value = 6
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_vars
exodus = true
[]
test/tests/postprocessors/find_value_on_line/findvalueonline.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
xmin = 0
xmax = 10
[]
[Variables]
[./phi]
[./InitialCondition]
type = FunctionIC
function = if(x<1,1-x,0)
[../]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = phi
[../]
[./dt]
type = TimeDerivative
variable = phi
[../]
[]
[BCs]
[./influx]
type = NeumannBC
boundary = left
variable = phi
value = 1
[../]
[./fix]
type = DirichletBC
boundary = right
variable = phi
value = 0
[../]
[]
[Postprocessors]
[./pos]
type = FindValueOnLine
target = 0.5
v = phi
start_point = '0 0 0'
end_point = '10 0 0'
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 2.5
[]
[Outputs]
csv = true
[]
modules/porous_flow/test/tests/poro_elasticity/terzaghi_constM.i
# Terzaghi's problem of consolodation of a drained medium
#
# A saturated soil sample sits in a bath of water.
# It is constrained on its sides, and bottom.
# Its sides and bottom are also impermeable.
# Initially it is unstressed.
# A normal stress, q, is applied to the soil's top.
# The soil then slowly compresses as water is squeezed
# out from the sample from its top (the top BC for
# the porepressure is porepressure = 0).
#
# See, for example. Section 2.2 of the online manuscript
# Arnold Verruijt "Theory and Problems of Poroelasticity" Delft University of Technology 2013
# but note that the "sigma" in that paper is the negative
# of the stress in TensorMechanics
#
# Here are the problem's parameters, and their values:
# Soil height. h = 10
# Soil's Lame lambda. la = 2
# Soil's Lame mu, which is also the Soil's shear modulus. mu = 3
# Soil bulk modulus. K = la + 2*mu/3 = 4
# Soil confined compressibility. m = 1/(K + 4mu/3) = 0.125
# Soil bulk compliance. 1/K = 0.25
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Soil initial storativity, which is the reciprocal of the initial Biot modulus. S = phi0/Kf + (alpha - phi0)(1 - alpha)/K = 0.0625
# Consolidation coefficient. c = k/(S + alpha^2 m) = 13.95348837
# Normal stress on top. q = 1
# Initial porepressure, resulting from instantaneous application of q, assuming corresponding instantaneous increase of porepressure (Note that this is calculated by MOOSE: we only need it for the analytical solution). p0 = alpha*m*q/(S + alpha^2 m) = 0.69767442
# Initial vertical displacement (down is positive), resulting from instantaneous application of q (Note this is calculated by MOOSE: we only need it for the analytical solution). uz0 = q*m*h*S/(S + alpha^2 m)
# Final vertical displacement (down in positive) (Note this is calculated by MOOSE: we only need it for the analytical solution). uzinf = q*m*h
#
# The solution for porepressure is
# P = 4*p0/\pi \sum_{k=1}^{\infty} \frac{(-1)^{k-1}}{2k-1} \cos ((2k-1)\pi z/(2h)) \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
# This series converges very slowly for ct/h^2 small, so in that domain
# P = p0 erf( (1-(z/h))/(2 \sqrt(ct/h^2)) )
#
# The degree of consolidation is defined as
# U = (uz - uz0)/(uzinf - uz0)
# where uz0 and uzinf are defined above, and
# uz = the vertical displacement of the top (down is positive)
# U = 1 - (8/\pi^2)\sum_{k=1}^{\infty} \frac{1}{(2k-1)^2} \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 10
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = 0
zmax = 10
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[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.8
alpha = 1
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[../]
[./confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[../]
[./basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[../]
[./topdrained]
type = DirichletBC
variable = porepressure
value = 0
boundary = front
[../]
[./topload]
type = NeumannBC
variable = disp_z
value = -1
boundary = front
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[../]
[./poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[../]
[./poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[../]
[./poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[../]
[./mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[../]
[./flux]
type = PorousFlowAdvectiveFlux
variable = porepressure
gravity = '0 0 0'
fluid_component = 0
[../]
[]
[Modules]
[./FluidProperties]
[./simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 0.96
[../]
[../]
[]
[Materials]
[./temperature]
type = PorousFlowTemperature
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '2 3'
# bulk modulus is lambda + 2*mu/3 = 2 + 2*3/3 = 4
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./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]
type = PorousFlowPorosityHMBiotModulus
porosity_zero = 0.1
biot_coefficient = 0.6
solid_bulk = 4
constant_fluid_bulk_modulus = 8
constant_biot_modulus = 16
[../]
[./permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[../]
[./relperm]
type = PorousFlowRelativePermeabilityCorey
n = 0 # unimportant in this fully-saturated situation
phase = 0
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
use_displaced_mesh = false
[../]
[./p1]
type = PointValue
outputs = csv
point = '0 0 1'
variable = porepressure
use_displaced_mesh = false
[../]
[./p2]
type = PointValue
outputs = csv
point = '0 0 2'
variable = porepressure
use_displaced_mesh = false
[../]
[./p3]
type = PointValue
outputs = csv
point = '0 0 3'
variable = porepressure
use_displaced_mesh = false
[../]
[./p4]
type = PointValue
outputs = csv
point = '0 0 4'
variable = porepressure
use_displaced_mesh = false
[../]
[./p5]
type = PointValue
outputs = csv
point = '0 0 5'
variable = porepressure
use_displaced_mesh = false
[../]
[./p6]
type = PointValue
outputs = csv
point = '0 0 6'
variable = porepressure
use_displaced_mesh = false
[../]
[./p7]
type = PointValue
outputs = csv
point = '0 0 7'
variable = porepressure
use_displaced_mesh = false
[../]
[./p8]
type = PointValue
outputs = csv
point = '0 0 8'
variable = porepressure
use_displaced_mesh = false
[../]
[./p9]
type = PointValue
outputs = csv
point = '0 0 9'
variable = porepressure
use_displaced_mesh = false
[../]
[./p99]
type = PointValue
outputs = csv
point = '0 0 10'
variable = porepressure
use_displaced_mesh = false
[../]
[./zdisp]
type = PointValue
outputs = csv
point = '0 0 10'
variable = disp_z
use_displaced_mesh = false
[../]
[./dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.5*t<0.1,0.5*t,0.1)
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.0001
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = terzaghi_constM
[./csv]
type = CSV
[../]
[]
test/tests/materials/material/coupled_material_test.i
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = mp1
[../]
[./conv]
type = MatConvection
variable = u
x = 1
y = 0
mat_prop = some_prop
[../]
[]
[BCs]
[./right]
type = NeumannBC
variable = u
boundary = 1
value = 1
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[]
[Materials]
# order is switched intentionally, so we won't get luck and dep-resolver has to do its job
[./mat2]
type = CoupledMaterial
block = 0
mat_prop = 'some_prop'
coupled_mat_prop = 'mp1'
[../]
[./mat1]
type = GenericConstantMaterial
block = 0
prop_names = 'mp1'
prop_values = '2'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out_coupled
exodus = true
[]
examples/ex08_materials/ex08.i
[Mesh]
file = reactor.e
# Let's assign human friendly names to the blocks on the fly
block_id = '1 2'
block_name = 'fuel deflector'
boundary_id = '4 5'
boundary_name = 'bottom top'
[]
[Variables]
[./diffused]
order = FIRST
family = LAGRANGE
initial_condition = 0.5 # shortcut/convenience for setting constant initial condition
[../]
[./convected]
order = FIRST
family = LAGRANGE
initial_condition = 0.0 # shortcut/convenience for setting constant initial condition
[../]
[]
[Kernels]
# This Kernel consumes a real-gradient material property from the active material
[./convection]
type = ExampleConvection
variable = convected
[../]
[./diff_convected]
type = Diffusion
variable = convected
[../]
[./example_diff]
# This Kernel uses "diffusivity" from the active material
type = ExampleDiffusion
variable = diffused
[../]
[./time_deriv_diffused]
type = TimeDerivative
variable = diffused
[../]
[./time_deriv_convected]
type = TimeDerivative
variable = convected
[../]
[]
[BCs]
[./bottom_diffused]
type = DirichletBC
variable = diffused
boundary = 'bottom'
value = 0
[../]
[./top_diffused]
type = DirichletBC
variable = diffused
boundary = 'top'
value = 5
[../]
[./bottom_convected]
type = DirichletBC
variable = convected
boundary = 'bottom'
value = 0
[../]
[./top_convected]
type = NeumannBC
variable = convected
boundary = 'top'
value = 1
[../]
[]
[Materials]
[./example]
type = ExampleMaterial
block = 'fuel'
diffusion_gradient = 'diffused'
# Approximate Parabolic Diffusivity
independent_vals = '0 0.25 0.5 0.75 1.0'
dependent_vals = '1e-2 5e-3 1e-3 5e-3 1e-2'
[../]
[./example1]
type = ExampleMaterial
block = 'deflector'
diffusion_gradient = 'diffused'
# Constant Diffusivity
independent_vals = '0 1.0'
dependent_vals = '1e-1 1e-1'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
dt = 0.1
num_steps = 10
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
modules/tensor_mechanics/test/tests/visco/visco_small_strain.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
variable = creep_strain_xx
rank_two_tensor = creep_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./axial_load]
type = NeumannBC
variable = disp_x
boundary = right
value = 10e6
[../]
[]
[Materials]
[./kelvin_voigt]
type = GeneralizedKelvinVoigtModel
creep_modulus = '10e9 10e9'
creep_viscosity = '1 10'
poisson_ratio = 0.2
young_modulus = 10e9
[../]
[./stress]
type = ComputeLinearViscoelasticStress
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[UserObjects]
[./update]
type = LinearViscoelasticityManager
viscoelastic_model = kelvin_voigt
[../]
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./creep_strain_xx]
type = ElementAverageValue
variable = creep_strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
l_max_its = 100
l_tol = 1e-8
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 0.01
end_time = 100
[./TimeStepper]
type = LogConstantDT
first_dt = 0.1
log_dt = 0.1
[../]
[]
[Outputs]
file_base = visco_small_strain_out
exodus = true
[]
modules/tensor_mechanics/test/tests/visco/burgers_creep.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
variable = creep_strain_xx
rank_two_tensor = creep_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./axial_load]
type = NeumannBC
variable = disp_x
boundary = right
value = 10e6
[../]
[]
[Materials]
[./burgers]
type = GeneralizedKelvinVoigtModel
creep_modulus = '10e9'
creep_viscosity = '1 10'
poisson_ratio = 0.2
young_modulus = 10e9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'creep'
[../]
[./creep]
type = LinearViscoelasticStressUpdate
[../]
[./strain]
type = ComputeIncrementalSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[UserObjects]
[./update]
type = LinearViscoelasticityManager
viscoelastic_model = burgers
[../]
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./creep_strain_xx]
type = ElementAverageValue
variable = creep_strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
l_max_its = 50
l_tol = 1e-10
nl_max_its = 20
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dtmin = 0.01
end_time = 100
[./TimeStepper]
type = LogConstantDT
first_dt = 0.1
log_dt = 0.1
[../]
[]
[Outputs]
file_base = burgers_creep_out
exodus = true
[]
modules/tensor_mechanics/test/tests/test_jacobian/jacobian_test_planestrain.i
# This test is designed to test the jacobian for a single
# element with/without volumetric locking correction.
# The mesh contains one element whose y displacement is zero at
# the bottom surface (y=0) and -1.0 at the top surface (y=1).
# Result: The hand coded jacobian matches well with the finite
# difference jacobian with an error norm in the order of 1e-15
# for total and incremental small strain formulations and with
# an error in the order of 1e-8 for finite strain formulations.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[BCs]
[./y_force]
type = NeumannBC
variable = disp_y
boundary = top
value = -1.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 0
[../]
[./strain]
block = 0
[../]
[./stress]
block = 0
[../]
[]
[Preconditioning]
active = 'smp'
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient #Transient
solve_type = NEWTON
petsc_options = '-snes_check_jacobian -snes_check_jacobian_view'
l_max_its = 100
nl_abs_tol = 1e-4
start_time = 0.0
num_steps = 1
dt = 0.005
dtmin = 0.005
end_time = 0.005
[]
[Outputs]
exodus = true
[]
examples/ex21_debugging/ex21.i
[Mesh]
file = reactor.e
#Let's assign human friendly names to the blocks on the fly
block_id = '1 2'
block_name = 'fuel deflector'
boundary_id = '4 5'
boundary_name = 'bottom top'
[]
[Variables]
#Use active lists to help debug problems. Switching on and off
#different Kernels or Variables is extremely useful!
active = 'diffused convected'
[diffused]
order = FIRST
family = LAGRANGE
initial_condition = 0.5
[]
[convected]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
[]
[]
[Kernels]
#This Kernel consumes a real-gradient material property from the active material
active = 'convection diff_convected example_diff time_deriv_diffused time_deriv_convected'
[convection]
type = ExampleConvection
variable = convected
[]
[diff_convected]
type = Diffusion
variable = convected
[]
[example_diff]
type = ExampleDiffusion
variable = diffused
coupled_coef = convected
[]
[time_deriv_diffused]
type = TimeDerivative
variable = diffused
[]
[time_deriv_convected]
type = TimeDerivative
variable = convected
[]
[]
[BCs]
[bottom_diffused]
type = DirichletBC
variable = diffused
boundary = 'bottom'
value = 0
[]
[top_diffused]
type = DirichletBC
variable = diffused
boundary = 'top'
value = 5
[]
[bottom_convected]
type = DirichletBC
variable = convected
boundary = 'bottom'
value = 0
[]
[top_convected]
type = NeumannBC
variable = convected
boundary = 'top'
value = 1
[]
[]
[Materials]
[example]
type = ExampleMaterial
block = 'fuel'
diffusion_gradient = 'diffused'
#Approximate Parabolic Diffusivity
independent_vals = '0 0.25 0.5 0.75 1.0'
dependent_vals = '1e-2 5e-3 1e-3 5e-3 1e-2'
[]
[example1]
type = ExampleMaterial
block = 'deflector'
diffusion_gradient = 'diffused'
# Constant Diffusivity
independent_vals = '0 1.0'
dependent_vals = '1e-1 1e-1'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
dt = 0.1
num_steps = 10
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
modules/solid_mechanics/test/tests/test_jacobian/jacobian_test_linear.i
# This test is designed to test the jacobian for a single
# element with volumetric locking correction.
# This test uses linear small strain formulations.
# To test the jacobian obtained from finite strain formulation comment out
# formulation = linear in the materials block.
# The mesh contains one element whose y displacement is zero at
# the bottom surface (y=0) and -1.0 at the top surface (y=1).
# Result: The hand coded jacobian matches well with the finite
# difference jacobian with a error norm of 7e-15 for the linear
# small strain formulation.
# For the finite strain formulation, the error norm is in the order of 1e-8.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Variables]
[./x_disp]
order = FIRST
family = LAGRANGE
[../]
[./y_disp]
order = FIRST
family = LAGRANGE
[../]
[./z_disp]
order = FIRST
family = LAGRANGE
[../]
[]
[SolidMechanics]
[./solid]
disp_x = x_disp
disp_y = y_disp
disp_z = z_disp
[../]
[]
[BCs]
[./y_force]
type = NeumannBC
variable = y_disp
boundary = top
value = -1.0
[../]
[./bottom]
type = DirichletBC
variable = y_disp
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elastic]
type = Elastic
block = 0
disp_x = x_disp
disp_y = y_disp
disp_z = z_disp
poissons_ratio = 0.3
youngs_modulus = 1e6
formulation = linear
[../]
[]
[Preconditioning]
active = 'smp'
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient #Transient
solve_type = NEWTON
petsc_options = '-snes_check_jacobian -snes_check_jacobian_view'
l_max_its = 100
nl_abs_tol = 1e-4
start_time = 0.0
num_steps = 1
dt = 0.005
dtmin = 0.005
end_time = 0.005
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/visco/visco_finite_strain.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
variable = creep_strain_xx
rank_two_tensor = creep_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./axial_load]
type = NeumannBC
variable = disp_x
boundary = right
value = 10e6
[../]
[]
[Materials]
[./kelvin_voigt]
type = GeneralizedKelvinVoigtModel
creep_modulus = '10e9 10e9'
creep_viscosity = '1 10'
poisson_ratio = 0.2
young_modulus = 10e9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'creep'
[../]
[./creep]
type = LinearViscoelasticStressUpdate
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[UserObjects]
[./update]
type = LinearViscoelasticityManager
viscoelastic_model = kelvin_voigt
[../]
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./creep_strain_xx]
type = ElementAverageValue
variable = creep_strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
l_max_its = 100
l_tol = 1e-8
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 0.01
end_time = 100
[./TimeStepper]
type = LogConstantDT
first_dt = 0.1
log_dt = 0.1
[../]
[]
[Outputs]
file_base = visco_finite_strain_out
exodus = true
[]
test/tests/postprocessors/nodal_max_value/block_nodal_pps_test.i
[Mesh]
file = rect-2blk.e
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 1
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left_u]
type = DirichletBC
variable = u
boundary = 6
value = 0
[../]
[./right_u]
type = NeumannBC
variable = u
boundary = 8
value = 4
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = 6
value = 1
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = 3
value = 6
[../]
[]
[Postprocessors]
# This test demonstrates that you can have a block restricted NodalPostprocessor
[./restricted_max]
type = NodalMaxValue
variable = v
block = 1 # Block restricted
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
test/tests/bcs/1d_neumann/from_cubit.i
[Mesh]
file = 1d_line.e
construct_side_list_from_node_list = true
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 2
value = 2
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/poro_mechanics/terzaghi.i
# Terzaghi's problem of consolodation of a drained medium
#
# A saturated soil sample sits in a bath of water.
# It is constrained on its sides, and bottom.
# Its sides and bottom are also impermeable.
# Initially it is unstressed.
# A normal stress, q, is applied to the soil's top.
# The soil then slowly compresses as water is squeezed
# out from the sample from its top (the top BC for
# the porepressure is porepressure = 0).
#
# See, for example. Section 2.2 of the online manuscript
# Arnold Verruijt "Theory and Problems of Poroelasticity" Delft University of Technology 2013
# but note that the "sigma" in that paper is the negative
# of the stress in TensorMechanics
#
# Here are the problem's parameters, and their values:
# Soil height. h = 10
# Soil's Lame lambda. la = 2
# Soil's Lame mu, which is also the Soil's shear modulus. mu = 3
# Soil bulk modulus. K = la + 2*mu/3 = 4
# Soil confined compressibility. m = 1/(K + 4mu/3) = 0.125
# Soil bulk compliance. 1/K = 0.25
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Soil initial storativity, which is the reciprocal of the initial Biot modulus. S = phi0/Kf + (alpha - phi0)(1 - alpha)/K = 0.0625
# Consolidation coefficient. c = k/(S + alpha^2 m) = 13.95348837
# Normal stress on top. q = 1
# Initial porepressure, resulting from instantaneous application of q, assuming corresponding instantaneous increase of porepressure (Note that this is calculated by MOOSE: we only need it for the analytical solution). p0 = alpha*m*q/(S + alpha^2 m) = 0.69767442
# Initial vertical displacement (down is positive), resulting from instantaneous application of q (Note this is calculated by MOOSE: we only need it for the analytical solution). uz0 = q*m*h*S/(S + alpha^2 m)
# Final vertical displacement (down in positive) (Note this is calculated by MOOSE: we only need it for the analytical solution). uzinf = q*m*h
#
# The solution for porepressure is
# P = 4*p0/\pi \sum_{k=1}^{\infty} \frac{(-1)^{k-1}}{2k-1} \cos ((2k-1)\pi z/(2h)) \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
# This series converges very slowly for ct/h^2 small, so in that domain
# P = p0 erf( (1-(z/h))/(2 \sqrt(ct/h^2)) )
#
# The degree of consolidation is defined as
# U = (uz - uz0)/(uzinf - uz0)
# where uz0 and uzinf are defined above, and
# uz = the vertical displacement of the top (down is positive)
# U = 1 - (8/\pi^2)\sum_{k=1}^{\infty} \frac{1}{(2k-1)^2} \exp(-(2k-1)^2 \pi^2 ct/(4 h^2))
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 10
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = 0
zmax = 10
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[../]
[./confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[../]
[./basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[../]
[./topdrained]
type = DirichletBC
variable = porepressure
value = 0
boundary = front
[../]
[./topload]
type = NeumannBC
variable = disp_z
value = -1
boundary = front
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PoroMechanicsCoupling
variable = disp_x
component = 0
[../]
[./poro_y]
type = PoroMechanicsCoupling
variable = disp_y
component = 1
[../]
[./poro_z]
type = PoroMechanicsCoupling
variable = disp_z
component = 2
[../]
[./poro_timederiv]
type = PoroFullSatTimeDerivative
variable = porepressure
[../]
[./darcy_flow]
type = CoefDiffusion
variable = porepressure
coef = 1.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '2 3'
# bulk modulus is lambda + 2*mu/3 = 2 + 2*3/3 = 4
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./poro_material]
type = PoroFullSatMaterial
porosity0 = 0.1
biot_coefficient = 0.6
solid_bulk_compliance = 0.25
fluid_bulk_compliance = 0.125
constant_porosity = true
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
[../]
[./p1]
type = PointValue
outputs = csv
point = '0 0 1'
variable = porepressure
[../]
[./p2]
type = PointValue
outputs = csv
point = '0 0 2'
variable = porepressure
[../]
[./p3]
type = PointValue
outputs = csv
point = '0 0 3'
variable = porepressure
[../]
[./p4]
type = PointValue
outputs = csv
point = '0 0 4'
variable = porepressure
[../]
[./p5]
type = PointValue
outputs = csv
point = '0 0 5'
variable = porepressure
[../]
[./p6]
type = PointValue
outputs = csv
point = '0 0 6'
variable = porepressure
[../]
[./p7]
type = PointValue
outputs = csv
point = '0 0 7'
variable = porepressure
[../]
[./p8]
type = PointValue
outputs = csv
point = '0 0 8'
variable = porepressure
[../]
[./p9]
type = PointValue
outputs = csv
point = '0 0 9'
variable = porepressure
[../]
[./p99]
type = PointValue
outputs = csv
point = '0 0 10'
variable = porepressure
[../]
[./zdisp]
type = PointValue
outputs = csv
point = '0 0 10'
variable = disp_z
[../]
[./dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.5*t<0.1,0.5*t,0.1)
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-10 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.0001
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = terzaghi
[./csv]
type = CSV
[../]
[]
test/tests/multiapps/relaxation/bad_relax_factor_master.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
parallel_type = replicated
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./v]
initial_condition = 1
[../]
[./inverse_v]
initial_condition = 1
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[./force_u]
type = CoupledForce
variable = u
v = inverse_v
[../]
[]
[AuxKernels]
[./invert_v]
type = QuotientAux
variable = inverse_v
denominator = v
numerator = 20.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./Neumann_right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./picard_its]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 4
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_abs_tol = 1e-14
relaxation_factor = 2.0
relaxed_variables = u
[]
[Outputs]
exodus = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = MooseTestApp
execute_on = timestep_begin
positions = '0 0 0'
input_files = picard_relaxed_sub.i
[../]
[]
[Transfers]
[./v_from_sub]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = v
variable = v
[../]
[./u_to_sub]
type = MultiAppNearestNodeTransfer
direction = to_multiapp
multi_app = sub
source_variable = u
variable = u
[../]
[]
test/tests/multiapps/relaxation/sub_relaxed_master.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
parallel_type = replicated
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./v]
initial_condition = 1
[../]
[./inverse_v]
initial_condition = 1
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[./force_u]
type = CoupledForce
variable = u
v = inverse_v
[../]
[]
[AuxKernels]
[./invert_v]
type = QuotientAux
variable = inverse_v
denominator = v
numerator = 20.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./Neumann_right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./picard_its]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 4
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_abs_tol = 1e-14
[]
[Outputs]
exodus = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = MooseTestApp
execute_on = timestep_begin
positions = '0 0 0'
input_files = sub_relaxed_sub.i
relaxed_variables = v
relaxation_factor = 0.94
[../]
[]
[Transfers]
[./v_from_sub]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = v
variable = v
[../]
[./u_to_sub]
type = MultiAppNearestNodeTransfer
direction = to_multiapp
multi_app = sub
source_variable = u
variable = u
[../]
[]
test/tests/bcs/1d_neumann/1d_neumann.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
construct_side_list_from_node_list = true
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 2
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/time_steppers/iteration_adaptive/piecewise_linear.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./temp_spike]
type = PiecewiseLinear
x = '0 1 1.1 1.2 2'
y = '1 1 2 1 1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = temp_spike
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 2.0
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.9
optimal_iterations = 10
timestep_limiting_function = temp_spike
max_function_change = 0.5
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
csv = true
[]
test/tests/time_integrators/abort/abort.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 1.0
[]
#still need BC for Energy, IC's for both.
[Variables]
active = 'Time'
[./Time]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
[../]
[]
[Functions]
active = 'func'
[./func]
type = ParsedFunction
value = 2.0*t
[../]
[]
[Kernels]
active = 't_time func_time'
[./t_time]
type = TimeDerivative
variable = Time
[../]
[./func_time]
type = BodyForce
variable = Time
function = func
[../]
[]
[BCs]
active = 'Top_Temperature'
[./Top_Temperature]
type = NeumannBC
variable = Time
boundary = 'left right'
[../]
[]
[Executioner]
type = Transient
#scheme = 'BDF2'
#scheme = 'crank-nicolson'
start_time = 0
num_steps = 4
dt = 1000000000
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
steady_state_tolerance = .00000000000000001
steady_state_detection = true
nl_abs_tol = 1e-15
petsc_options = '-snes_converged_reason'
abort_on_solve_fail = true
[]
[Outputs]
file_base = out
exodus = true
[]
modules/xfem/test/tests/moving_interface/phase_transition.i
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 1
xmin = 0
xmax = 2
ymin = 0
ymax = 1
elem_type = QUAD4
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./velocity]
type = XFEMPhaseTransitionMovingInterfaceVelocity
diffusivity_at_positive_level_set = 5
diffusivity_at_negative_level_set = 1
equilibrium_concentration_jump = 1
value_at_interface_uo = value_uo
[../]
[./value_uo]
type = PointValueAtXFEMInterface
variable = 'u'
geometric_cut_userobject = 'moving_line_segments'
execute_on = 'nonlinear'
level_set_var = ls
[../]
[./moving_line_segments]
type = MovingLineSegmentCutSetUserObject
cut_data = '0.5 0 0.5 1.0 0 0'
heal_always = true
interface_velocity = velocity
[../]
[]
[Variables]
[./u]
[../]
[]
[ICs]
[./ic_u]
type = FunctionIC
variable = u
function = 'if(x<0.51, 2, 1)'
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[Constraints]
[./u_constraint]
type = XFEMEqualValueAtInterface
geometric_cut_userobject = 'moving_line_segments'
use_displaced_mesh = false
variable = u
value = 2
alpha = 1e5
[../]
[]
[Kernels]
[./diff]
type = MatDiffusion
variable = u
diffusivity = diffusion_coefficient
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[AuxKernels]
[./ls]
type = LineSegmentLevelSetAux
line_segment_cut_set_user_object = 'moving_line_segments'
variable = ls
[../]
[]
[Materials]
[./diffusivity_A]
type = GenericConstantMaterial
prop_names = A_diffusion_coefficient
prop_values = 5
[../]
[./diffusivity_B]
type = GenericConstantMaterial
prop_names = B_diffusion_coefficient
prop_values = 1
[../]
[./diff_combined]
type = LevelSetBiMaterialReal
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = diffusion_coefficient
[../]
[]
[BCs]
# Define boundary conditions
[./left_u]
type = DirichletBC
variable = u
value = 2
boundary = 3
[../]
[./right_u]
type = NeumannBC
variable = u
boundary = 1
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-12
nl_abs_tol = 1e-11
start_time = 0.0
dt = 0.01
num_steps = 4
max_xfem_update = 1
[]
[Outputs]
execute_on = timestep_end
exodus = true
perf_graph = true
[./console]
type = Console
output_linear = true
[../]
csv = true
[]
test/tests/tag/tag_neumann.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
construct_side_list_from_node_list = true
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = u
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 2
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/outputs/debug/show_top_residuals_debug.i
[Mesh]
block_id = '0 1'
block_name = 'block_zero block_one'
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[./subdomain_id]
input = gen
type = SubdomainIDGenerator
subdomain_id = 1
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[./v]
family = MONOMIAL
order = CONSTANT
[../]
[./w]
family = SCALAR
order = FIRST
[../]
[]
[Kernels]
[./u_kernel]
type = Diffusion
variable = u
[../]
[./v_kernel]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./u_bc]
type = DirichletBC
variable = u
value = 100
boundary = left
[../]
[./v_bc]
type = NeumannBC
variable = v
value = 100
boundary = left
[../]
[]
[ScalarKernels]
[./w_kernel]
type = AlphaCED
variable = w
value = 100
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
# For this test, we don't actually want the solution to converge because we
# want nonzero nonlinear residual entries at the end of the time step.
nl_abs_tol = 0.999
nl_rel_tol = 0.999
l_max_its = 1
petsc_options_iname = '-pc_type'
petsc_options_value = 'none'
[]
[Debug]
show_top_residuals = 10
[]
test/tests/multiapps/relaxation/picard_relaxed_master.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
parallel_type = replicated
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./v]
initial_condition = 1
[../]
[./inverse_v]
initial_condition = 1
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[./force_u]
type = CoupledForce
variable = u
v = inverse_v
[../]
[]
[AuxKernels]
[./invert_v]
type = QuotientAux
variable = inverse_v
denominator = v
numerator = 20.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./Neumann_right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./picard_its]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 4
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_abs_tol = 1e-14
relaxation_factor = 0.95
relaxed_variables = u
[]
[Outputs]
exodus = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[MultiApps]
[./sub]
type = TransientMultiApp
app_type = MooseTestApp
execute_on = timestep_begin
positions = '0 0 0'
input_files = picard_relaxed_sub.i
[../]
[]
[Transfers]
[./v_from_sub]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = v
variable = v
[../]
[./u_to_sub]
type = MultiAppNearestNodeTransfer
direction = to_multiapp
multi_app = sub
source_variable = u
variable = u
[../]
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_shrink_init_dt_restart.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dtmin = 1.0
end_time = 25.0
[./TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 1
linear_iteration_ratio = 1
dt = 2.0
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
[Problem]
restart_file_base = adapt_tstep_shrink_init_dt_out_cp/LATEST
[]
test/tests/bcs/misc_bcs/vacuum_bc_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
nz = 0
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff'
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
active = 'left right top'
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0.0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 1
value = 2.0
[../]
[./top]
type = VacuumBC
variable = u
boundary = 2
alpha = 5.0
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
test/tests/kernels/vector_fe/coupled_vector_gradient.i
# This example demonstrates ability to set Dirichlet boundary conditions for LAGRANGE_VEC variables
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
family = LAGRANGE_VEC
order = FIRST
[../]
[./v]
family = LAGRANGE_VEC
order = FIRST
[../]
[./w]
family = LAGRANGE_VEC
order = FIRST
[../]
[./s]
family = LAGRANGE_VEC
order = FIRST
[../]
[./q]
[../]
[]
[Kernels]
[./u_diff]
type = VectorDiffusion
variable = u
[../]
[./v_diff]
type = VectorDiffusion
variable = v
[../]
[./w_diff]
type = VectorDiffusion
variable = w
[../]
[./s_diff]
type = VectorDiffusion
variable = s
[../]
[./v_coupled_diff]
type = CoupledVectorDiffusion
variable = v
v = u
[../]
[./w_coupled_diff]
type = CoupledVectorDiffusion
variable = w
v = u
state = old
[../]
[./s_coupled_diff]
type = CoupledVectorDiffusion
variable = s
v = u
state = older
[../]
[./q_diff]
type = Diffusion
variable = q
[../]
[]
[BCs]
[./left_u]
type = VectorDirichletBC
variable = u
values = '0 0 0'
boundary = 'left'
[../]
[./left_v]
type = VectorDirichletBC
variable = v
values = '0 0 0'
boundary = 'left'
[../]
[./left_w]
type = VectorDirichletBC
variable = w
values = '0 0 0'
boundary = 'left'
[../]
[./left_s]
type = VectorDirichletBC
variable = s
values = '0 0 0'
boundary = 'left'
[../]
[./right_u]
type = VectorFunctionDirichletBC
variable = u
boundary = 'right'
function_x = 'x_exact'
function_y = 'y_exact'
[../]
[./right_v]
type = VectorFunctionDirichletBC
variable = v
boundary = 'right'
function_x = 'x_exact'
function_y = 'y_exact'
[../]
[./right_w]
type = VectorFunctionDirichletBC
variable = w
boundary = 'right'
function_x = 'x_exact_old'
function_y = 'y_exact_old'
[../]
[./right_s]
type = VectorFunctionDirichletBC
variable = s
boundary = 'right'
function_x = 'x_exact_older'
function_y = 'y_exact_older'
[../]
[./left_q]
type = DirichletBC
variable = q
boundary = 'left'
value = 1
[../]
[./right_q]
type = NeumannBC
variable = q
boundary = 'right'
value = 1
[../]
[]
[Functions]
[./x_exact]
type = ParsedFunction
value = 't'
[../]
[./y_exact]
type = ParsedFunction
value = 't'
[../]
[./x_exact_old]
type = ParsedFunction
value = 'if(t < 1, 0, t - 1)'
[../]
[./y_exact_old]
type = ParsedFunction
value = 'if(t < 1, 0, t - 1)'
[../]
[./x_exact_older]
type = ParsedFunction
value = 'if(t < 2, 0, t - 2)'
[../]
[./y_exact_older]
type = ParsedFunction
value = 'if(t < 2, 0, t - 2)'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 1
num_steps = 3
solve_type = 'NEWTON'
petsc_options = '-ksp_converged_reason -snes_converged_reason'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '100'
nl_max_its = 3
l_max_its = 100
dtmin = 1
[]
[Outputs]
exodus = true
[]
test/tests/bcs/sideset_from_nodeset/sideset_from_nodeset_test2.i
[Mesh]
file = cube_no_sidesets2.e
construct_side_list_from_node_list = true
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff'
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 3
value = 3
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = cube_tet_out
exodus = true
[]
test/tests/misc/save_in/diag_save_in_soln_var_err_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./saved]
[../]
[./bc_saved]
[../]
[./accumulated]
[../]
[./diag_saved]
[../]
[./bc_diag_saved]
[../]
[./saved_dirichlet]
[../]
[./diag_saved_dirichlet]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
save_in = 'saved accumulated saved_dirichlet'
diag_save_in = 'u diag_saved diag_saved_dirichlet'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
save_in = saved_dirichlet
diag_save_in = diag_saved_dirichlet
[../]
[./nbc]
type = NeumannBC
variable = u
boundary = right
value = 1
save_in = 'bc_saved accumulated'
diag_save_in = bc_diag_saved
[../]
[]
[Postprocessors]
[./left_flux]
type = NodalSum
variable = saved
boundary = 1
[../]
[./saved_norm]
type = NodalL2Norm
variable = saved
execute_on = timestep_end
block = 0
[../]
[./saved_dirichlet_norm]
type = NodalL2Norm
variable = saved_dirichlet
execute_on = timestep_end
block = 0
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = out
exodus = true
[]
test/tests/mesh/side_list_from_node_list/side_list_from_node_list.i
[Mesh]
type = FileMesh
file = square_nodesets_only.e
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 2
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/functions/default_function/default_function.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = FuncCoefDiffusion
variable = u
# No default function supplied
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/visco/gen_kv_creep.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
variable = creep_strain_xx
rank_two_tensor = creep_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./axial_load]
type = NeumannBC
variable = disp_x
boundary = right
value = 10e6
[../]
[]
[Materials]
[./kelvin_voigt]
type = GeneralizedKelvinVoigtModel
creep_modulus = '10e9 10e9'
creep_viscosity = '1 10'
poisson_ratio = 0.2
young_modulus = 10e9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'creep'
[../]
[./creep]
type = LinearViscoelasticStressUpdate
[../]
[./strain]
type = ComputeIncrementalSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[UserObjects]
[./update]
type = LinearViscoelasticityManager
viscoelastic_model = kelvin_voigt
[../]
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[./creep_strain_xx]
type = ElementAverageValue
variable = creep_strain_xx
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
l_max_its = 100
l_tol = 1e-8
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 0.01
end_time = 100
[./TimeStepper]
type = LogConstantDT
first_dt = 0.1
log_dt = 0.1
[../]
[]
[Outputs]
file_base = gen_kv_creep_out
exodus = true
[]
test/tests/controls/time_periods/bcs/bcs_integrated.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 1
[../]
[./right2]
type = FunctionNeumannBC
variable = u
boundary = right
function = (y*(t-1))+1
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'BCs::right2'
start_time = '0'
end_time = '0.95'
execute_on = 'initial timestep_begin'
[../]
[./period2]
type = TimePeriod
disable_objects = 'BCs::right'
start_time = '1'
execute_on = 'initial timestep_begin'
[../]
[]
test/tests/time_steppers/iteration_adaptive/adapt_tstep_reject_large_dt.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./timestep_fn]
type = PiecewiseConstant
x = '0. 10.0'
y = '10.0 1.0'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 12.0
dtmax = 10.0
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_postprocessor = timestep_pp
reject_large_step = true
reject_large_step_threshold = 0.5
dt = 3.0
growth_factor = 1.0
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
# Just use a simple postprocessor to test capability to limit the time step length to the postprocessor value
[./timestep_pp]
type = FunctionValuePostprocessor
function = timestep_fn
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
checkpoint = true
[]
test/tests/kernels/2d_diffusion/matdiffusion.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
xmax = 1.0
ymax = 1.0
elem_type = QUAD4
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./cres]
type = MatDiffusion
variable = u
diffusivity = Du
[../]
[./ctime]
type = TimeDerivative
variable = u
[../]
[]
[Materials]
[./Dc]
type = DerivativeParsedMaterial
f_name = Du
function = '0.01+u^2'
args = 'u'
derivative_order = 1
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = NeumannBC
variable = u
boundary = 2
value = 1
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
scheme = 'BDF2'
dt = 1
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/thermal_conductivity_temperature_function_test/thermal_conductivity_temperature_function_test.i
#
# This test evaluates the capability of HeatConductionMaterial to define
# thermal conductivity as a function of temperature. The test uses the patch test
# cube mesh with a flux bc on one side and a temperature bc on the opposite side.
# The temperature bc changes as a function of time from 100 to 200. The thermal
# conductivity is a function of temperature, with k = 1 for temps = 100-199, k = 2
# for temps _>_ 200. The flux, q = 10 is constant. The Transient Executioner is used here
# although the interial kernel is omitted, so this is really a series of two steady-state
# solutions.
#
# ---------------
# | |
# | |
# q -> | k | T2
# | |
# T1 = ? | |
# ---------------
# dx = 1
#
#
# q = -k dT/dx
#
# q = -k (T1 - T2)/dx
#
# T1 = (q/-k)*dx + T2
#
# for: T2 = 100, k = 1, q = -10
#
# T1 = 110
# --------
#
# for: T2 = 200, k = 2, q = -10
#
# T1 = 205
# --------
#
[Mesh]#Comment
file = fe_patch.e
[] # Mesh
[Functions]
[./k_func]
type = PiecewiseLinear
x = '100 199 200'
y = '1 1 2'
[../]
[./c_func]
type = PiecewiseLinear
x = '100 200'
y = '0.116 0.116'
[../]
[./t_func]
type = PiecewiseLinear
x = '0 1 2'
y = '100 100 200'
[../]
[] # Functions
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[] # Variables
[Kernels]
[./heat_r]
type = HeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temps_function]
type = FunctionDirichletBC
variable = temp
boundary = 1000
function = t_func
[../]
[./flux_in]
type = NeumannBC
variable = temp
boundary = 100
value = 10
[../]
[] # BCs
[Materials]
[./heat]
type = HeatConductionMaterial
block = 1
temp = temp
thermal_conductivity_temperature_function = k_func
specific_heat_temperature_function = c_func
[../]
[./density]
type = Density
block = 1
density = 0.283
[../]
[] # Materials
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1
end_time = 2
num_steps = 2
[] # Executioner
[Outputs]
file_base = out
exodus = true
[] # Outputs
modules/phase_field/examples/rigidbodymotion/AC_CH_Multigrain.i
# Tests the rigid body motion due to applied force of multiple particles.
# ***COPY AND PASTE THESE AS NEEDED***
# 'gr0 gr1 gr2 gr3 gr4 gr5 gr6 gr7 gr8 gr9 gr10 gr11 gr12 gr13 gr14 gr15 gr16 gr17 gr18 gr19'
# (gr0^2+gr1^2+gr2^2+gr3^2+gr4^2+gr5^2+gr6^2+gr7^2+gr8^2+gr9^2+gr10^2+gr11^2+gr12^2+gr13^2+gr14^2+gr15^2+gr16^2+gr17^2+gr18^2+gr19^2)
# (gr0^3+gr1^3+gr2^3+gr3^3+gr4^3+gr5^3+gr6^3+gr7^3+gr8^3+gr9^3+gr10^3+gr11^3+gr12^3+gr13^3+gr14^3+gr15^3+gr16^3+gr17^3+gr18^3+gr19^3)
[GlobalParams]
op_num = 4
var_name_base = gr
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmin = 0
xmax = 600
ymin = 0
ymax = 600
elem_type = QUAD4
uniform_refine = 1
[]
[Variables]
[./c]
[../]
[./w]
[../]
[./PolycrystalVariables] # Automatically creates order parameter variables
[../]
[]
[AuxVariables]
[./bnds]
[../]
[./force]
order = CONSTANT
family = MONOMIAL
[../]
[./free_energy]
order = CONSTANT
family = MONOMIAL
[../]
[./unique_grains]
order = CONSTANT
family = MONOMIAL
[../]
[./var_indices]
order = CONSTANT
family = MONOMIAL
[../]
[./centroids]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./load_x]
# Defines the force on the grains in the x-direction
type = ParsedFunction
value = 0.005*cos(x*pi/600)
[../]
[./load_y]
# Defines the force on the grains in the y-direction
type = ConstantFunction
value = 0.002
[../]
[]
[Kernels]
[./RigidBodyMultiKernel]
# Creates all of the necessary Allen Cahn kernels automatically
c = c
f_name = f_loc
mob_name = L
kappa_name = kappa_gr
grain_force = grain_force
grain_volumes = grain_volumes
grain_tracker_object = grain_center
[../]
# Cahn Hilliard kernels
[./dt_w]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[./CH_wres]
type = SplitCHWRes
variable = w
mob_name = M
[../]
[./CH_Parsed]
type = SplitCHParsed
variable = c
f_name = f_loc
w = w
kappa_name = kappa_c
args = 'gr0 gr1 gr2 gr3' # Must be changed as op_num changes. Copy/paste from line 4
[../]
[./CH_RBM]
type = MultiGrainRigidBodyMotion
variable = w
c = c
v = 'gr0 gr1 gr2 gr3'
grain_force = grain_force
grain_volumes = grain_volumes
grain_tracker_object = grain_center
[../]
[]
[AuxKernels]
[./force_x]
type = FunctionAux
variable = force
function = load_x
[../]
[./force_y]
type = FunctionAux
variable = force
function = load_y
[../]
[./energy_density]
type = TotalFreeEnergy
variable = free_energy
f_name = f_loc
kappa_names = kappa_c
interfacial_vars = c
[../]
[./bnds]
type = BndsCalcAux
variable = bnds
[../]
[]
[BCs]
[./bcs]
#zero flux BC
type = NeumannBC
value = 0
variable = c
boundary = '0 1 2 3'
[../]
[]
[Materials]
[./constants]
type = GenericConstantMaterial
prop_names = 'kappa_gr kappa_c M L'
prop_values = '250 4000 4.5 60'
[../]
[./free_energy]
type = DerivativeParsedMaterial
f_name = f_loc
constant_names = 'A B'
constant_expressions = '450 1.5'
args = 'c gr0 gr1 gr2 gr3' #Must be changed as op_num changes. Copy/paste from line 4
function = 'A*c^2*(1-c)^2+B*(c^2+6*(1-c)*(gr0^2+gr1^2+gr2^2+gr3^2)
-4*(2-c)*(gr0^3+gr1^3+gr2^3+gr3^3)
+3*(gr0^2+gr1^2+gr2^2+gr3^2)^2)'
#Copy/paste from lines 5-6
derivative_order = 2
[../]
[./force_density]
type = ExternalForceDensityMaterial
c = c
k = 10.0
force_x = load_x
force_y = load_y
[../]
[]
[Postprocessors]
[./total_energy]
type = ElementIntegralVariablePostprocessor
variable = free_energy
execute_on = 'initial timestep_end'
[../]
[]
[VectorPostprocessors]
[./forces]
type = GrainForcesPostprocessor
grain_force = grain_force
[../]
[./grain_volumes]
type = FeatureVolumeVectorPostprocessor
flood_counter = grain_center
execute_on = 'initial timestep_begin'
[../]
[]
[UserObjects]
[./grain_center]
type = GrainTracker
outputs = none
compute_var_to_feature_map = true
execute_on = 'initial timestep_begin'
[../]
[./grain_force]
type = ComputeExternalGrainForceAndTorque
grain_data = grain_center
c = c
etas = 'gr0 gr1 gr2 gr3'
force_density = force_density_ext
execute_on = 'linear nonlinear'
[../]
[]
[Preconditioning]
[./coupled]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = bdf2
solve_type = NEWTON
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type
-sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly
ilu 2'
l_tol = 1e-05
nl_max_its = 30
l_max_its = 30
nl_rel_tol = 1e-07
nl_abs_tol = 1e-09
start_time = 0.0
end_time = 4
dt = 0.05
[]
[Outputs]
exodus = true
perf_graph = true
[./display]
type = Console
max_rows = 12
[../]
[]
[ICs]
[./concentration_IC]
type = SpecifiedSmoothCircleIC
x_positions = '150 450 150 450'
y_positions = '150 150 450 450'
z_positions = '0 0 0 0'
radii = '120 120 120 120'
variable = c
invalue = 1.0
outvalue = 0.0
int_width = 25
[../]
[./gr0_IC]
type = SmoothCircleIC
variable = gr0
x1 = 150
y1 = 150
radius = 120
invalue = 1.0
outvalue = 0.0
int_width = 25
[../]
[./gr1_IC]
type = SmoothCircleIC
variable = gr1
x1 = 450
y1 = 150
radius = 120
invalue = 1.0
outvalue = 0.0
int_width = 25
[../]
[./gr2_IC]
type = SmoothCircleIC
variable = gr2
x1 = 150
y1 = 450
radius = 120
invalue = 1.0
outvalue = 0.0
int_width = 25
[../]
[./gr3_IC]
type = SmoothCircleIC
variable = gr3
x1 = 450
y1 = 450
radius = 120
invalue = 1.0
outvalue = 0.0
int_width = 25
[../]
[]
test/tests/dirackernels/function_dirac_source/function_dirac_source.i
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 5
ny = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./time]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[DiracKernels]
[./point_source]
type = FunctionDiracSource
variable = u
function = switch_off
point = '0.1 0.2 0.0'
[../]
[]
[Functions]
[./switch_off]
type = ParsedFunction
value = 'if(t < 1.0001, 1, 0)'
[../]
[]
[BCs]
[./external]
type = NeumannBC
variable = u
boundary = '0 1 2 3'
value = 0
[../]
[]
[Postprocessors]
[./total_internal_energy]
type = ElementIntegralVariablePostprocessor
variable = u
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 1
l_tol = 1e-03
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/test_jacobian/jacobian_test_3D.i
# This test is designed to test the jacobian for a single
# element with/without volumetric locking correction.
# The mesh contains one element whose y displacement is zero at
# the bottom surface (y=0) and -1.0 at the top surface (y=1).
# Result: The hand coded jacobian matches well with the finite
# difference jacobian with an error norm in the order of 1e-15
# for total and incremental small strain cases and with an error
# norm in the order of 1e-8 for finite strain cases.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
[../]
[]
[BCs]
[./y_force]
type = NeumannBC
variable = disp_y
boundary = top
value = -1.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 0
[../]
[./stress]
block = 0
[../]
[]
[Preconditioning]
active = 'smp'
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient #Transient
solve_type = NEWTON
petsc_options = '-snes_check_jacobian -snes_check_jacobian_view'
l_max_its = 100
nl_abs_tol = 1e-4
start_time = 0.0
num_steps = 1
dt = 0.005
dtmin = 0.005
end_time = 0.005
[]
[Outputs]
exodus = true
[]
modules/solid_mechanics/test/tests/test_jacobian/jacobian_test_planestrain.i
# This test is designed to test the jacobian for a single
# element with volumetric locking correction.
# This test uses small plane strain formulations.
# To test the jacobian obtained from finite strain formulation comment out
# formulation = NonlinearPlaneStrain in the materials block.
# The mesh contains one element whose y displacement is zero at
# the bottom surface (y=0) and -1.0 at the top surface (y=1).
# Result: The hand coded jacobian matches well with the finite
# difference jacobian with a error norm of 2.9e-15 for the small planestrain
# formulation.
# For the finite strain formulation, the error norm is in the order of 2.3e-8.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
[]
[Variables]
[./x_disp]
order = FIRST
family = LAGRANGE
[../]
[./y_disp]
order = FIRST
family = LAGRANGE
[../]
[]
[SolidMechanics]
[./solid]
disp_x = x_disp
disp_y = y_disp
[../]
[]
[BCs]
[./y_force]
type = NeumannBC
variable = y_disp
boundary = top
value = -1.0
[../]
[./bottom]
type = DirichletBC
variable = y_disp
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./elastic]
type = Elastic
block = 0
disp_x = x_disp
disp_y = y_disp
poissons_ratio = 0.3
youngs_modulus = 1e6
formulation = PlaneStrain
[../]
[]
[Preconditioning]
active = 'smp'
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient #Transient
solve_type = NEWTON
petsc_options = '-snes_check_jacobian -snes_check_jacobian_view'
l_max_its = 100
nl_abs_tol = 1e-4
start_time = 0.0
num_steps = 1
dt = 0.005
dtmin = 0.005
end_time = 0.005
[]
[Outputs]
exodus = true
[]
Child Objects
test/include/bcs/OnOffNeumannBC.h
// This file is part of the MOOSE framework
// https://www.mooseframework.org
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#pragma once
#include "NeumannBC.h"
/**
* NeumanBC with ability to turn on and off
*/
class OnOffNeumannBC : public NeumannBC
{
public:
static InputParameters validParams();
OnOffNeumannBC(const InputParameters & parameters);
virtual bool shouldApply();
protected:
};
test/include/bcs/MatTestNeumannBC.h
// This file is part of the MOOSE framework
// https://www.mooseframework.org
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#pragma once
#include "NeumannBC.h"
/**
* Neumann boundary condition for testing BoundaryRestrictable class
*/
class MatTestNeumannBC : public NeumannBC
{
public:
static InputParameters validParams();
MatTestNeumannBC(const InputParameters & parameters);
protected:
virtual Real computeQpResidual();
const std::string _prop_name;
const MaterialProperty<Real> * _value;
};