- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Controllable:No
Description:The name of the variable that this residual object operates on
HeatConductionTimeDerivative
Time derivative term of the heat equation for quasi-constant specific heat and the density .
This Kernel will not generate the correct on-diagonal Jacobians for temperature dependent specific heat or density , and this kernel does not contribute an off-diagonal Jacobian at all.
See also HeatCapacityConductionTimeDerivative and SpecificHeatConductionTimeDerivative.
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- density_namedensityProperty name of the density material property
Default:density
C++ Type:MaterialPropertyName
Controllable:No
Description:Property name of the density material property
- density_name_dTName of material property for the derivative of the density with respect to the variable.
C++ Type:MaterialPropertyName
Controllable:No
Description:Name of material property for the derivative of the density with respect to the variable.
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Controllable:No
Description:The displacements
- lumpingFalseTrue for mass matrix lumping, false otherwise
Default:False
C++ Type:bool
Controllable:No
Description:True for mass matrix lumping, false otherwise
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- specific_heatspecific_heatName of the specific heat material property
Default:specific_heat
C++ Type:MaterialPropertyName
Controllable:No
Description:Name of the specific heat material property
- specific_heat_dTName of the material property for the derivative of the specific heat with respect to the variable.
C++ Type:MaterialPropertyName
Controllable:No
Description:Name of the material property for the derivative of the specific heat with respect to the variable.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
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<TagName>
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystem timeThe tag for the matrices this Kernel should fill
Default:system time
C++ Type:MultiMooseEnum
Options:nontime, system, time
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagstimeThe tag for the vectors this Kernel should fill
Default:time
C++ Type:MultiMooseEnum
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe name of auxiliary variables to save this Kernel'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<AuxVariableName>
Controllable:No
Description:The name of auxiliary variables to save this Kernel'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
Controllable:Yes
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
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- save_inThe name of auxiliary variables to save this Kernel'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<AuxVariableName>
Controllable:No
Description:The name of auxiliary variables to save this Kernel'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
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshTrueWhether 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:True
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step01.i)
- (modules/combined/test/tests/restart-transient-from-ss-with-stateful/parent_tr.i)
- (modules/combined/test/tests/heat_convection/heat_convection_rz_tf_test.i)
- (modules/functional_expansion_tools/examples/2D_interface_different_submesh/sub.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart2.i)
- (modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_3d.i)
- (modules/functional_expansion_tools/examples/2D_interface_different_submesh/main.i)
- (modules/heat_transfer/tutorials/introduction/therm_step03a.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_hex_template.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_quad_template.i)
- (modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step02.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_direct/main.i)
- (modules/heat_transfer/test/tests/joule_heating/transient_jouleheating.i)
- (modules/functional_expansion_tools/examples/2D_interface/sub.i)
- (tutorials/tutorial03_verification/app/test/tests/step03_analytical/1d_analytical.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change.i)
- (tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_main.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/block_w_line.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_force_step.i)
- (modules/functional_expansion_tools/examples/2D_volumetric_Cartesian/main.i)
- (modules/heat_transfer/test/tests/transient_heat/transient_heat_derivatives.i)
- (modules/heat_transfer/test/tests/verify_against_analytical/1D_transient.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/line.i)
- (modules/combined/test/tests/heat_convection/heat_convection_rz_test.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/strip.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart1.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_Cartesian/main.i)
- (modules/combined/test/tests/heat_convection/heat_convection_3d_tf_test.i)
- (modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_2d.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_edge_template.i)
- (modules/functional_expansion_tools/examples/2D_interface/main.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_different_submesh/main.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_strip.i)
- (modules/combined/test/tests/heat_convection/heat_convection_3d_test.i)
- (modules/combined/tutorials/introduction/thermal_mechanical/thermomech_step01.i)
- (modules/combined/test/tests/inelastic_strain/creep/creep_nl1.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_cylindrical/main.i)
- (modules/functional_expansion_tools/examples/1D_volumetric_Cartesian/main.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_line.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/block_w_bar.i)
- (modules/heat_transfer/tutorials/introduction/therm_step03.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_cylindrical_subapp_mesh_refine/main.i)
Child Objects
(modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step01.i)
#
# A first attempt at thermo mechanical contact
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/step01.html
#
[GlobalParams]
displacements = 'disp_x disp_y'
block = 0
[]
[Mesh]
[generated1]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 15
xmin = -0.6
xmax = -0.1
ymax = 5
bias_y = 0.9
boundary_name_prefix = pillar1
[]
[generated2]
type = GeneratedMeshGenerator
dim = 2
nx = 6
ny = 15
xmin = 0.1
xmax = 0.6
ymax = 4.999
bias_y = 0.9
boundary_name_prefix = pillar2
boundary_id_offset = 4
[]
[collect_meshes]
type = MeshCollectionGenerator
inputs = 'generated1 generated2'
[]
patch_update_strategy = iteration
[]
[Variables]
# temperature field variable
[T]
# initialize to an average temperature
initial_condition = 50
order = FIRST
family = LAGRANGE
[]
# temperature lagrange multiplier
[Tlm]
block = 'pillars_secondary_subdomain'
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[dTdt]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[Modules/TensorMechanics/Master]
[all]
add_variables = true
strain = FINITE
generate_output = 'vonmises_stress'
[]
[]
[Contact]
[pillars]
primary = pillar1_right
secondary = pillar2_left
model = frictionless
formulation = mortar
[]
[]
[Constraints]
# thermal contact constraint
[Tlm]
type = GapConductanceConstraint
variable = Tlm
secondary_variable = T
use_displaced_mesh = true
k = 1e-1
primary_boundary = pillar1_right
primary_subdomain = pillars_primary_subdomain
secondary_boundary = pillar2_left
secondary_subdomain = pillars_secondary_subdomain
[]
[]
[BCs]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = 'pillar1_bottom pillar2_bottom'
value = 0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'pillar1_bottom pillar2_bottom'
value = 0
[]
[Pressure]
[sides]
boundary = 'pillar1_left pillar2_right'
function = 1e4*t^2
[]
[]
# thermal boundary conditions (pillars are heated/cooled from the bottom)
[heat_left]
type = DirichletBC
variable = T
boundary = pillar1_bottom
value = 100
[]
[cool_right]
type = DirichletBC
variable = T
boundary = pillar2_bottom
value = 0
[]
[]
[Materials]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
# thermal properties
[thermal_conductivity]
type = HeatConductionMaterial
thermal_conductivity = 100
specific_heat = 1
[]
[density]
type = Density
density = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = none
# we deal with the saddle point structure of the system by adding a small shift
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu nonzero'
end_time = 5
dt = 0.1
[Predictor]
type = SimplePredictor
scale = 1
[]
[]
[Outputs]
exodus = true
print_linear_residuals = false
perf_graph = true
[]
(modules/combined/test/tests/restart-transient-from-ss-with-stateful/parent_tr.i)
[Problem]
restart_file_base = parent_ss_checkpoint_cp/LATEST
force_restart = true
# The auxiliary field has an initial condition
allow_initial_conditions_with_restart = true
[]
[Mesh]
file = parent_ss_checkpoint_cp/LATEST
[]
[Variables]
[temp]
# no initial condition for restart.
[]
[]
[AuxVariables]
[power]
order = FIRST
family = L2_LAGRANGE
initial_condition = 350
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source_fuel]
type = CoupledForce
variable = temp
v = 'power'
[]
[]
[BCs]
[all]
type = DirichletBC
variable = temp
boundary = 'bottom top left right'
value = 300
[]
[]
[Materials]
[heat_material]
type = HeatConductionMaterial
temp = temp
specific_heat = 1000
thermal_conductivity = 500
[]
[density]
type = Density
density = 2000
[]
[]
[Postprocessors]
[avg_temp]
type = ElementAverageValue
variable = temp
execute_on = 'timestep_end'
[]
[avg_power]
type = ElementAverageValue
variable = power
execute_on = 'timestep_end'
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 300'
line_search = 'none'
l_tol = 1e-02
nl_rel_tol = 5e-05
nl_abs_tol = 5e-05
l_max_its = 50
nl_max_its = 25
start_time = 0
end_time = 40
dt = 10
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
color = true
exodus = true
[]
[MultiApps]
[bison]
type = TransientMultiApp
positions = '0 0 0'
input_files = 'sub_tr.i'
execute_on = 'timestep_end'
[]
[]
[Transfers]
[to_bison_mechanics]
type = MultiAppProjectionTransfer
to_multi_app = bison
variable = temp
source_variable = temp
execute_on = 'timestep_end'
[]
[]
(modules/combined/test/tests/heat_convection/heat_convection_rz_tf_test.i)
# Test cases for convective boundary conditions. TKLarson, 11/01/11, rev. 0.
# Input file for htc_2dtest0
# TKLarson
# 11/01/11
# Revision 0
#
# Goals of this test are:
# 1) show that the 'fluid' temperature for convective boundary condition
# is behaving as expected/desired
# 2) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
# q = h*A*(Tw - Tf)
# where
# q - heat transfer rate (w)
# h - heat transfer coefficient (w/m^2-K)
# A - surface area (m^2)
# Tw - surface temperature (K)
# Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
# called 'duration,' the length of time in seconds that it takes initial to linearly ramp
# to 'final.'
# The mesh for this test case is based on an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004) (because I already had a version of the model). While the
# Brazillian Cylinder test is for dynamic tensile testing of concrete, the model works for the present
# purposes. The model is 2-d RZ coordinates.
#
# Brazillian Cylinder sample dimensions:
# L = 20.3 cm, 0.203 m, (8 in)
# r = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
# density = 2405.28 km/m^3
# specific heat = 826.4 J/kg-K
# thermal conductivity 1.937 w/m-K
# alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial cylinder temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use a very large h (1000000) to make the surface temperature mimick the fluid temperature.
# What we expect for this problem:
# 1) Use of h = 1000000 should cause the cylinder surface temperature to track the fluid temperature
# 2) The fluid temperature should rise from initial (294.26 K) to final (477.6 K) in 600 s.
# 3) 1) and 2) should prove that the Tf boundary condition is ramping as desired.
# Note, we do the above because there is no way to plot a variable that is not on a mesh node!
[Problem]
coord_type = RZ
[]
[Mesh] # Mesh Start
# 10cm x 20cm cylinder not so detailed mesh, 2 radial, 6 axial nodes
# Only one block (Block 1), all concrete
# Sideset 1 - top of cylinder, Sideset 2 - length of cylinder, Sideset 3 - bottom of cylinder
file = heat_convection_rz_mesh.e
[] # Mesh END
[Variables] # Variables Start
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 294.26 # Initial cylinder temperature
[../]
[] # Variables END
[Kernels] # Kernels Start
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[] # Kernels END
[BCs] # Boundary Conditions Start
# Heat transfer coefficient on outer cylinder radius and ends
[./convective_clad_surface] # Convective Start
type = ConvectiveFluxBC # Convective flux, e.g. q'' = h*(Tw - Tf)
boundary = '1 2 3' # BC applied on top, along length, and bottom
variable = temp
rate = 1000000. # convective heat transfer coefficient (w/m^2-K)[176000 "]
# # the above h is ~ infinity for present purposes
initial = 294.26 # initial ambient (lab or oven) temperature (K)
final = 477.6 # final ambient (lab or oven) temperature (K)
duration = 600. # length of time in seconds that it takes the ambient
# temperature to ramp from initial to final
[../] # Convective End
[] # BCs END
[Materials] # Materials Start
[./thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 826.4
thermal_conductivity = 1.937 # this makes alpha 9.74e-7 m^2/s
[../]
[./density]
type = Density
block = 1
density = 2405.28
[../]
[] # Materials END
[Executioner] # Executioner Start
type = Transient
# type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 60.
num_steps = 20 # Total run time 1200 s
[] # Executioner END
[Outputs] # Output Start
# Output Start
file_base = out_rz_tf
exodus = true
[] # Output END
# # Input file END
(modules/functional_expansion_tools/examples/2D_interface_different_submesh/sub.i)
# Derived from the example '2D_interface' with the following differences:
#
# 1) The number of y divisions in the sub app is not the same as the master app
# 2) The subapp mesh is skewed in y
# 3) The Functional Expansion order for the flux term was increased to 7
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.4
xmax = 2.4
nx = 30
ymin = 0.0
ymax = 10.0
ny = 23
bias_y = 1.2
[]
[Variables]
[./s]
[../]
[]
[Kernels]
[./diff_s]
type = HeatConduction
variable = s
[../]
[./time_diff_s]
type = HeatConductionTimeDerivative
variable = s
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_s]
type = ConstantIC
value = 2
variable = s
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = s
boundary = bottom
value = 0.1
[../]
[./interface_flux]
type = FXFluxBC
boundary = left
variable = s
function = FX_Basis_Flux_Sub
[../]
[]
[Functions]
[./FX_Basis_Value_Sub]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Sub]
type = FunctionSeries
series_type = Cartesian
orders = '7'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Sub]
type = FXBoundaryValueUserObject
function = FX_Basis_Value_Sub
variable = s
boundary = left
[../]
[./FX_Flux_UserObject_Sub]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Sub
variable = s
boundary = left
diffusivity = thermal_conductivity
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart2.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function. For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
block = 1
[]
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Fiss_Function]
type = PiecewiseLinear
x = '0 1e6 2e6 2.001e6 2.002e6'
y = '0 3e8 3e8 12e8 0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
volumetric_locking_correction = true
incremental = true
eigenstrain_names = thermal_expansion
decomposition_method = EigenSolution
add_variables = true
generate_output = 'vonmises_stress'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = HeatSource
variable = temp
value = 1.0
function = Fiss_Function
[../]
[]
[BCs]
[./bottom_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 300
[../]
[./top_bottom_disp_x]
type = DirichletBC
variable = disp_x
boundary = '1'
value = 0
[../]
[./top_bottom_disp_y]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0
[../]
[./top_bottom_disp_z]
type = DirichletBC
variable = disp_z
boundary = '1'
value = 0
[../]
[]
[Materials]
[./thermal]
type = HeatConductionMaterial
temp = temp
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 300e6
poissons_ratio = .3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 5e-6
stress_free_temperature = 300.0
temperature = temp
eigenstrain_name = thermal_expansion
[../]
[./density]
type = Density
density = 10963.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
verbose = true
nl_abs_tol = 1e-10
num_steps = 50000
end_time = 2.002e6
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_function = Fiss_Function
max_function_change = 3e7
dt = 1e6
[../]
[]
[Postprocessors]
[./Temperature_of_Block]
type = ElementAverageValue
variable = temp
execute_on = 'timestep_end'
[../]
[./vonMises]
type = ElementAverageValue
variable = vonmises_stress
execute_on = 'timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 10
[../]
[]
[Problem]
restart_file_base = adapt_tstep_function_change_restart1_checkpoint_cp/0065
[]
(modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_3d.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
nx = 10
ny = 10
nz = 2
zmax = 0.2
dim = 3
[]
[block1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 0.2'
input = gen
[]
[block2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 0.2'
input = block1
[]
[breakmesh]
input = block2
type = BreakMeshByBlockGenerator
block_pairs = '1 2'
split_interface = true
add_interface_on_two_sides = true
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time]
type = HeatConductionTimeDerivative
variable = temperature
[]
[thermal_cond]
type = HeatConduction
variable = temperature
[]
[]
[InterfaceKernels]
[thin_layer]
type = ThinLayerHeatTransfer
thermal_conductivity = thermal_conductivity_layer
specific_heat = specific_heat_layer
density = density_layer
heat_source = heat_source_layer
thickness = 0.01
variable = temperature
neighbor_var = temperature
boundary = Block1_Block2
[]
[]
[BCs]
[left_temp]
type = DirichletBC
value = 0
variable = temperature
boundary = left
[]
[right_temp]
type = DirichletBC
value = 0
variable = temperature
boundary = right
[]
[]
[Materials]
[thermal_cond]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1 1 1'
[]
[thermal_cond_layer]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity_layer specific_heat_layer heat_source_layer density_layer'
prop_values = '0.05 1 10000 1'
boundary = Block1_Block2
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
num_steps = 2
[]
[Outputs]
print_linear_residuals = false
exodus = true
[]
(modules/functional_expansion_tools/examples/2D_interface_different_submesh/main.i)
# Derived from the example '2D_interface' with the following differences:
#
# 1) The number of y divisions in the sub app is not the same as the master app
# 2) The subapp mesh is skewed in y
# 3) The Functional Expansion order for the flux term was increased to 7
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 0.4
nx = 6
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./m]
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./source_m]
type = BodyForce
variable = m
value = 100
[../]
[]
[Materials]
[./Impervium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.00001 50.0 100.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
value = 2
variable = m
[../]
[]
[BCs]
[./interface_value]
type = FXValueBC
variable = m
boundary = right
function = FX_Basis_Value_Main
[../]
[./interface_flux]
type = FXFluxBC
boundary = right
variable = m
function = FX_Basis_Flux_Main
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Main]
type = FunctionSeries
series_type = Cartesian
orders = '7'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Flux_UserObject_Main]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Main
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[]
[Postprocessors]
[./average_interface_value]
type = SideAverageValue
variable = m
boundary = right
[../]
[./total_flux]
type = SideDiffusiveFluxIntegral
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[./picard_iterations]
type = NumFixedPointIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
sub_cycling = true
[../]
[]
[Transfers]
[./FluxToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Flux_UserObject_Main
multi_app_object_name = FX_Basis_Flux_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[./FluxToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Flux_Main
multi_app_object_name = FX_Flux_UserObject_Sub
[../]
[]
(modules/heat_transfer/tutorials/introduction/therm_step03a.i)
#
# Single block thermal input with time derivative and volumetric heat source terms
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step03.html
#
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[]
[Variables]
[T]
initial_condition = 300.0
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[time_derivative]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = HeatSource
variable = T
value = 1e4
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
specific_heat = 0.5
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = 8000.0
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[]
[Executioner]
type = Transient
end_time = 5
dt = 1
[]
[VectorPostprocessors]
[t_sampler]
type = LineValueSampler
variable = T
start_point = '0 0.5 0'
end_point = '2 0.5 0'
num_points = 20
sort_by = x
[]
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = therm_step03a_out
execute_on = final
[]
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_hex_template.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 5
ny = 1
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 0.01
zmin = 0.0
zmax = 0.01
elem_type = HEX8
[]
[Variables]
[./temp]
initial_condition = 0.0
[../]
[]
[BCs]
[./FixedTempLeft]
type = DirichletBC
variable = temp
boundary = left
value = 0.0
[../]
[./FunctionTempRight]
type = FunctionDirichletBC
variable = temp
boundary = right
function = '100.0 * sin(pi*t/40)'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '35.0 440.5 7200.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 1
end_time = 32.0
[]
[Postprocessors]
[./target_temp]
type = NodalVariableValue
variable = temp
nodeid = 19
[../]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_quad_template.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 0.01
elem_type = QUAD4
[]
[Variables]
[./temp]
initial_condition = 0.0
[../]
[]
[BCs]
[./FixedTempLeft]
type = DirichletBC
variable = temp
boundary = left
value = 0.0
[../]
[./FunctionTempRight]
type = FunctionDirichletBC
variable = temp
boundary = right
function = '100.0 * sin(pi*t/40)'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '35.0 440.5 7200.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 1
end_time = 32.0
[]
[Postprocessors]
[./target_temp]
type = NodalVariableValue
variable = temp
nodeid = 9
[../]
[]
[Outputs]
csv = true
[]
(modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step02.i)
#
# Three shell thermo mechanical contact
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/step02.html
#
[GlobalParams]
displacements = 'disp_x disp_y'
block = '0 1 2'
[]
[Problem]
# switch to an axisymmetric coordinate system
coord_type = RZ
[]
[Mesh]
# inner cylinder
[inner]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 40
xmax = 1
ymin = -1.75
ymax = 1.75
boundary_name_prefix = inner
[]
# middle shell with subdomain ID 1
[middle_elements]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 40
xmin = 1.1
xmax = 2.1
ymin = -2.5
ymax = 2.5
boundary_name_prefix = middle
boundary_id_offset = 4
[]
[middle]
type = SubdomainIDGenerator
input = middle_elements
subdomain_id = 1
[]
# outer shell with subdomain ID 2
[outer_elements]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 48
xmin = 2.2
xmax = 3.2
ymin = -3
ymax = 3
boundary_name_prefix = outer
boundary_id_offset = 8
[]
[outer]
type = SubdomainIDGenerator
input = outer_elements
subdomain_id = 2
[]
[collect_meshes]
type = MeshCollectionGenerator
inputs = 'inner middle outer'
[]
# add set of 3 nodes to remove rigid body modes for y-translation in each block
[pin]
type = ExtraNodesetGenerator
input = collect_meshes
new_boundary = pin
coord = '0 0 0; 1.6 0 0; 2.7 0 0'
[]
patch_update_strategy = iteration
[]
[Variables]
# temperature field variable (first order Lagrange by default)
[T]
[]
# temperature lagrange multipliers
[Tlm1]
block = 'inner_gap_secondary_subdomain'
[]
[Tlm2]
block = 'outer_gap_secondary_subdomain'
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[dTdt]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[Modules/TensorMechanics/Master]
[all]
add_variables = true
strain = FINITE
eigenstrain_names = thermal
generate_output = 'vonmises_stress stress_xx strain_xx stress_yy strain_yy'
volumetric_locking_correction = true
temperature = T
[]
[]
[Contact]
[inner_gap]
primary = middle_left
secondary = inner_right
model = frictionless
formulation = mortar
c_normal = 1e+0
[]
[outer_gap]
primary = outer_left
secondary = middle_right
model = frictionless
formulation = mortar
c_normal = 1e+0
[]
[]
[Constraints]
# thermal contact constraint
[Tlm1]
type = GapConductanceConstraint
variable = Tlm1
secondary_variable = T
use_displaced_mesh = true
k = 1e-1
primary_boundary = middle_left
primary_subdomain = inner_gap_secondary_subdomain
secondary_boundary = inner_right
secondary_subdomain = inner_gap_primary_subdomain
[]
[Tlm2]
type = GapConductanceConstraint
variable = Tlm2
secondary_variable = T
use_displaced_mesh = true
k = 1e-1
primary_boundary = outer_left
primary_subdomain = outer_gap_secondary_subdomain
secondary_boundary = middle_right
secondary_subdomain = outer_gap_primary_subdomain
[]
[]
[BCs]
[center_axis_fix]
type = DirichletBC
variable = disp_x
boundary = 'inner_left'
value = 0
[]
[y_translation_fix]
type = DirichletBC
variable = disp_y
boundary = 'pin'
value = 0
[]
[heat_center]
type = FunctionDirichletBC
variable = T
boundary = 'inner_left'
function = t*40
[]
[cool_right]
type = DirichletBC
variable = T
boundary = 'outer_right'
value = 0
[]
[]
[Materials]
[eigen_strain_inner]
type = ComputeThermalExpansionEigenstrain
eigenstrain_name = thermal
temperature = T
thermal_expansion_coeff = 1e-3
stress_free_temperature = 0
block = 0
[]
[eigen_strain_middle]
type = ComputeThermalExpansionEigenstrain
eigenstrain_name = thermal
temperature = T
thermal_expansion_coeff = 2e-4
stress_free_temperature = 0
block = 1
[]
[eigen_strain_outer]
type = ComputeThermalExpansionEigenstrain
eigenstrain_name = thermal
temperature = T
thermal_expansion_coeff = 1e-5
stress_free_temperature = 0
block = 2
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
# thermal properties
[thermal_conductivity_0]
type = HeatConductionMaterial
thermal_conductivity = 50
specific_heat = 1
block = 0
[]
[thermal_conductivity_1]
type = HeatConductionMaterial
thermal_conductivity = 5
specific_heat = 1
block = 1
[]
[thermal_conductivity_2]
type = HeatConductionMaterial
thermal_conductivity = 1
specific_heat = 1
block = 2
[]
[density]
type = Density
density = 1
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
# [Debug]
# show_var_residual_norms = true
# []
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu nonzero '
snesmf_reuse_base = false
end_time = 7
dt = 0.05
nl_rel_tol = 1e-08
nl_abs_tol = 1e-50
[Predictor]
type = SimplePredictor
scale = 0.5
[]
[]
[Outputs]
exodus = true
print_linear_residuals = false
perf_graph = true
[]
(modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_direct/main.i)
# Derived from the example '3D_volumetric_Cartesian' with the following differences:
#
# 1) The coupling is performed via BodyForce instead of the
# FunctionSeriesToAux+CoupledForce approach
[Mesh]
type = GeneratedMesh
dim = 3
xmin = 0.0
xmax = 10.0
nx = 15
ymin = 1.0
ymax = 11.0
ny = 25
zmin = 2.0
zmax = 12.0
nz = 35
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = BodyForce
variable = m
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'top bottom left right front back'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '3 4 5'
physical_bounds = '0.0 10.0 1.0 11.0 2.0 12.0'
x = Legendre
y = Legendre
z = Legendre
enable_cache = true
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/heat_transfer/test/tests/joule_heating/transient_jouleheating.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 5
ymax = 5
[]
[Variables]
[./T]
initial_condition = 293.0 #in K
[../]
[./elec]
[../]
[]
[Kernels]
[./HeatDiff]
type = HeatConduction
variable = T
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = T
[../]
[./HeatSrc]
type = JouleHeatingSource
variable = T
elec = elec
[../]
[./electric]
type = HeatConduction
variable = elec
diffusion_coefficient = electrical_conductivity
[../]
[]
[BCs]
[./lefttemp]
type = DirichletBC
boundary = left
variable = T
value = 293 #in K
[../]
[./elec_left]
type = DirichletBC
variable = elec
boundary = left
value = 1 #in V
[../]
[./elec_right]
type = DirichletBC
variable = elec
boundary = right
value = 0
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '397.48' #copper in W/(m K)
block = 0
[../]
[./cp]
type = GenericConstantMaterial
prop_names = 'specific_heat'
prop_values = '385.0' #copper in J/(kg K)
block = 0
[../]
[./rho]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '8920.0' #copper in kg/(m^3)
block = 0
[../]
[./sigma] #copper is default material
type = ElectricalConductivity
temperature = T
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = bdf2
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_grmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 101 preonly ilu 1'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-4
dt = 1
end_time = 5
automatic_scaling = true
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/functional_expansion_tools/examples/2D_interface/sub.i)
# Basic example coupling a master and sub app at an interface in a 2D model.
# The master app provides a flux term to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's interface conditions, both value and flux, are transferred back
# to the master app
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.4
xmax = 2.4
nx = 30
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./s]
[../]
[]
[Kernels]
[./diff_s]
type = HeatConduction
variable = s
[../]
[./time_diff_s]
type = HeatConductionTimeDerivative
variable = s
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_s]
type = ConstantIC
value = 2
variable = s
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = s
boundary = bottom
value = 0.1
[../]
[./interface_flux]
type = FXFluxBC
boundary = left
variable = s
function = FX_Basis_Flux_Sub
[../]
[]
[Functions]
[./FX_Basis_Value_Sub]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Sub]
type = FunctionSeries
series_type = Cartesian
orders = '5'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Sub]
type = FXBoundaryValueUserObject
function = FX_Basis_Value_Sub
variable = s
boundary = left
[../]
[./FX_Flux_UserObject_Sub]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Sub
variable = s
boundary = left
diffusivity = thermal_conductivity
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
(tutorials/tutorial03_verification/app/test/tests/step03_analytical/1d_analytical.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.03
nx = 200
[]
[]
[Variables]
[T]
[]
[]
[ICs]
[T_O]
type = ConstantIC
variable = T
value = 300
[]
[]
[Kernels]
[T_time]
type = HeatConductionTimeDerivative
variable = T
density_name = 7800
specific_heat = 450
[]
[T_cond]
type = HeatConduction
variable = T
diffusion_coefficient = 80.2
[]
[]
[BCs]
[left]
type = NeumannBC
variable = T
boundary = left
value = 7e5
[]
[]
[Executioner]
type = Transient
scheme = bdf2
solve_type = NEWTON
dt = 0.01
end_time = 1
[]
[Outputs]
exodus = true
csv = true
[]
[Functions]
[T_exact]
type = ParsedFunction
symbol_names = 'k rho cp T0 qs'
symbol_values = '80.2 7800 450 300 7e5'
expression = 'T0 + '
'qs/k*(2*sqrt(k/(rho*cp)*t/pi)*exp(-x^2/(4*k/(rho*cp)*(t+1e-50))) - '
'x*(1-erf(x/(2*sqrt(k/(rho*cp)*(t+1e-50))))))'
[]
[]
[Postprocessors]
[error]
type = NodalL2Error
variable = T
function = T_exact
[]
[h]
type = AverageElementSize
[]
[]
[VectorPostprocessors]
[T_exact]
type = LineFunctionSampler
functions = T_exact
start_point = '0 0 0'
end_point = '0.03 0 0'
num_points = 200
sort_by = x
execute_on = 'INITIAL TIMESTEP_END'
[]
[T_simulation]
type = LineValueSampler
variable = T
start_point = '0 0 0'
end_point = '0.03 0 0'
num_points = 200
sort_by = x
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function. For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
block = 1
[]
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Fiss_Function]
type = PiecewiseLinear
x = '0 1e6 2e6 2.001e6 2.002e6'
y = '0 3e8 3e8 12e8 0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
volumetric_locking_correction = true
incremental = true
eigenstrain_names = thermal_expansion
decomposition_method = EigenSolution
add_variables = true
generate_output = 'vonmises_stress'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = HeatSource
variable = temp
value = 1.0
function = Fiss_Function
[../]
[]
[BCs]
[./bottom_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 300
[../]
[./top_bottom_disp_x]
type = DirichletBC
variable = disp_x
boundary = '1'
value = 0
[../]
[./top_bottom_disp_y]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0
[../]
[./top_bottom_disp_z]
type = DirichletBC
variable = disp_z
boundary = '1'
value = 0
[../]
[]
[Materials]
[./thermal]
type = HeatConductionMaterial
temp = temp
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 300e6
poissons_ratio = .3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 5e-6
stress_free_temperature = 300.0
temperature = temp
eigenstrain_name = thermal_expansion
[../]
[./density]
type = Density
density = 10963.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
verbose = true
nl_abs_tol = 1e-10
start_time = 0.0
num_steps = 50000
end_time = 2.002e6
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_function = Fiss_Function
max_function_change = 3e7
dt = 1e6
[../]
[]
[Postprocessors]
[./Temperature_of_Block]
type = ElementAverageValue
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonMises]
type = ElementAverageValue
variable = vonmises_stress
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 10
[../]
[]
(tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_main.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
ymax = 0
ymin = -0.2
nx = 20
ny = 4
[]
[]
[Variables]
[T]
[]
[]
[ICs]
[T_O]
type = ConstantIC
variable = T
value = 263.15
[]
[]
[Functions]
[source]
type = ParsedFunction
symbol_names = 'hours shortwave kappa'
symbol_values = '9 650 40'
expression = 'shortwave*sin(0.5*x*pi)*exp(kappa*y)*sin(1/(hours*3600)*pi*t)'
[]
[]
[Kernels]
[T_time]
type = HeatConductionTimeDerivative
variable = T
density_name = 150
specific_heat = 2000
[]
[T_cond]
type = HeatConduction
variable = T
diffusion_coefficient = 0.01
[]
[T_source]
type = HeatSource
variable = T
function = source
[]
[]
[BCs]
[top]
type = NeumannBC
boundary = top
variable = T
value = -5
[]
[bottom]
type = DirichletBC
boundary = bottom
variable = T
value = 263.15
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
dt = 600 # 10 min
end_time = 32400 # 9 hour
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/block_w_line.i)
[Mesh]
parallel_type = 'replicated'
[block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 50
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
zmin = -0.04
zmax = 0.04
boundary_name_prefix = block
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 1
[]
[line]
type = GeneratedMeshGenerator
dim = 1
xmin = -0.5
xmax = 0.5
nx = 10
boundary_name_prefix = line
boundary_id_offset = 10
[]
[line_id]
type = SubdomainIDGenerator
input = line
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'block_id line_id'
[]
[line_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'block line'
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
block = 'block'
[]
[heat_conduction]
type = HeatConduction
variable = temperature
block = 'block'
[]
[time_derivative_line]
type = TrussHeatConductionTimeDerivative
variable = temperature
area = area
block = 'line'
[]
[heat_conduction_line]
type = TrussHeatConduction
variable = temperature
area = area
block = 'line'
[]
[]
[AuxVariables]
[area]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[area]
type = ConstantAux
variable = area
value = 0.008
execute_on = 'initial timestep_begin'
[]
[]
[Constraints]
[equalvalue]
type = EqualValueEmbeddedConstraint
secondary = 'line'
primary = 'block'
penalty = 1e6
formulation = kinematic
primary_variable = temperature
variable = temperature
[]
[]
[Materials]
[block]
type = GenericConstantMaterial
block = 'block'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[line]
type = GenericConstantMaterial
block = 'line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'block_right line_right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/block_w_line'
time_data = true
[]
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_force_step.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function. For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
order = FIRST
family = LAGRANGE
block = 1
volumetric_locking_correction = true
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Fiss_Function]
type = PiecewiseLinear
data_file = blip.csv
format = columns
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
incremental = true
eigenstrain_names = thermal_expansion
add_variables = true
generate_output = 'vonmises_stress'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = HeatSource
variable = temp
value = 1.0
function = Fiss_Function
[../]
[]
[BCs]
[./bottom_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 300
[../]
[./top_bottom_disp_x]
type = DirichletBC
variable = disp_x
boundary = '1'
value = 0
[../]
[./top_bottom_disp_y]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0
[../]
[./top_bottom_disp_z]
type = DirichletBC
variable = disp_z
boundary = '1'
value = 0
[../]
[]
[Materials]
[./thermal]
type = HeatConductionMaterial
temp = temp
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 300e6
poissons_ratio = .3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 5e-6
stress_free_temperature = 300.0
temperature = temp
eigenstrain_name = thermal_expansion
[../]
[./density]
type = Density
density = 10963.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
verbose = true
nl_abs_tol = 1e-10
start_time = 0.0
num_steps = 50000
end_time = 5.1e3
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_function = Fiss_Function
max_function_change = 3e20
force_step_every_function_point = true
dt = 1e2
[../]
[]
[Postprocessors]
[./Temperature_of_Block]
type = ElementAverageValue
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonMises]
type = ElementAverageValue
variable = vonmises_stress
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 10
[../]
[]
(modules/functional_expansion_tools/examples/2D_volumetric_Cartesian/main.i)
# Basic example coupling a master and sub app in a 2D Cartesian volume.
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 10.0
nx = 15
ymin = 1.0
ymax = 11.0
ny = 25
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./s_in]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = CoupledForce
variable = m
v = s_in
[../]
[]
[AuxKernels]
[./reconstruct_s_in]
type = FunctionSeriesToAux
variable = s_in
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'top bottom left right'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '3 4'
physical_bounds = '0.0 10.0 1.0 11.0'
x = Legendre
y = Legendre
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/heat_transfer/test/tests/transient_heat/transient_heat_derivatives.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 2
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie]
type = HeatConductionTimeDerivative
variable = temp
specific_heat_dT = specific_heat_dT
density_name_dT = density_dT
[]
[]
[Functions]
[spheat]
type = ParsedFunction
expression = 't^4'
[]
[thcond]
type = ParsedFunction
expression = 'exp(t)'
[]
[]
[BCs]
[bottom]
type = DirichletBC
variable = temp
boundary = 1
value = 4
[]
[top]
type = DirichletBC
variable = temp
boundary = 2
value = 1
[]
[]
[Materials]
[constant]
type = HeatConductionMaterial
thermal_conductivity_temperature_function = thcond
specific_heat_temperature_function = spheat
temp = temp
[]
[density]
type = ParsedMaterial
property_name = density
coupled_variables = temp
expression = 'temp^3 + 2/temp'
[]
[density_dT]
type = ParsedMaterial
property_name = density_dT
coupled_variables = temp
expression = '3 * temp^2 - 2/temp/temp'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
num_steps = 1
dt = .1
nl_max_its = 10
dtmin = .1
[]
[Postprocessors]
[avg]
type = ElementAverageValue
variable = temp
[]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/verify_against_analytical/1D_transient.i)
# This test solves a 1D transient heat equation
# The error is caclulated by comparing to the analytical solution
# The problem setup and analytical solution are taken from "Advanced Engineering
# Mathematics, 10th edition" by Erwin Kreyszig.
# http://www.amazon.com/Advanced-Engineering-Mathematics-Erwin-Kreyszig/dp/0470458364
# It is Example 1 in section 12.6 on page 561
[Mesh]
type = GeneratedMesh
dim = 1
nx = 160
xmax = 80
[]
[Variables]
[./T]
[../]
[]
[ICs]
[./T_IC]
type = FunctionIC
variable = T
function = '100*sin(pi*x/80)'
[../]
[]
[Kernels]
[./HeatDiff]
type = HeatConduction
variable = T
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = T
[../]
[]
[BCs]
[./sides]
type = DirichletBC
variable = T
boundary = 'left right'
value = 0
[../]
[]
[Materials]
[./k]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '0.95' #copper in cal/(cm sec C)
[../]
[./cp]
type = GenericConstantMaterial
prop_names = 'specific_heat'
prop_values = '0.092' #copper in cal/(g C)
[../]
[./rho]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '8.92' #copper in g/(cm^3)
[../]
[]
[Postprocessors]
[./error]
type = NodalL2Error
function = '100*sin(pi*x/80)*exp(-0.95/(0.092*8.92)*pi^2/80^2*t)'
variable = T
[../]
[]
[Executioner]
type = Transient
scheme = bdf2
l_tol = 1e-6
dt = 2
end_time = 100
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/line.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 10
xmax = 0.5
xmin = -0.5
[]
[left_line]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '-0.5 0 0'
top_right = '0 0 0'
block_id = 1
block_name = 'left_line'
location = INSIDE
[]
[right_line]
type = SubdomainBoundingBoxGenerator
input = left_line
bottom_left = '0 0 0'
top_right = '0.5 0 0'
block_id = 2
block_name = 'right_line'
location = INSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
# type = HeatConductionTimeDerivative
type = TrussHeatConductionTimeDerivative
variable = temperature
area = area
[]
[heat_conduction]
# type = HeatConduction
type = TrussHeatConduction
variable = temperature
area = area
[]
[]
[AuxVariables]
[area]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[area]
type = ConstantAux
variable = area
value = 0.1
execute_on = 'initial timestep_begin'
[]
[]
[Materials]
[left_line]
type = GenericConstantMaterial
block = 'left_line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.1 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[right_line]
type = GenericConstantMaterial
block = 'right_line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '5.0e-3 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[center]
type = LineValueSampler
start_point = '-0.5 0 0'
end_point = '0.5 0 0'
num_points = 40
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/line'
time_data = true
[]
[]
(modules/combined/test/tests/heat_convection/heat_convection_rz_test.i)
# Test cases for convective boundary conditions. TKLarson, 11/01/11, rev. 0.
# Input file for htc_2dtest1
# TKLarson
# 11/01/11
# Revision 0
#
# Goals of this test are:
# 1) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
# q = h*A*(Tw - Tf)
# where
# q - heat transfer rate (w)
# h - heat transfer coefficient (w/m^2-K)
# A - surface area (m^2)
# Tw - surface temperature (K)
# Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
# called 'duration,' the length of time in seconds that it takes initial to linearly ramp
# to 'final.'
# The mesh for this test case is based on an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004) (because I already had a version of the model). While the
# Brazillian Cylinder test is for dynamic tensile testing of concrete, the model works for the present
# purposes. The model is 2-d RZ coordinates.
#
# Brazillian Cylinder sample dimensions:
# L = 20.3 cm, 0.203 m, (8 in)
# r = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
# density = 2405.28 km/m^3
# specific heat = 826.4 J/kg-K
# thermal conductivity 1.937 w/m-K
# alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial cylinder temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use a natural convection h (284 w/m^2-K (50 BTU/hr-ft^2-F)) on all faces of the cylinder.
# This is akin to putting the cylinder in an oven (nonconvection type) and turning the oven on.
# What we expect for this problem:
# 1) Use of h = 284 should cause the cylinder to slowly warm up
# 2) The fluid temperature should rise from initial (294 K) to final (477 K) in 600 s.
# 3) 1) and 2) should cause the cylinder to become soaked at 477.6 K after sufficient time(i.e. ~ 1/2 hr).
# This is a simple thermal soak problem.
[Problem]
coord_type = RZ
[]
[Mesh] # Mesh Start
# 10cm x 20cm cylinder not so detailed mesh, 2 radial, 6 axial nodes
# Only one block (Block 1), all concrete
# Sideset 1 - top of cylinder, Sideset 2 - length of cylinder, Sideset 3 - bottom of cylinder
file = heat_convection_rz_mesh.e
[] # Mesh END
[Variables] # Variables Start
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 294.26 # Initial cylinder temperature
[../]
[] # Variables END
[Kernels] # Kernels Start
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[] # Kernels END
[BCs] # Boundary Conditions Start
# Heat transfer coefficient on outer cylinder radius and ends
[./convective_clad_surface] # Convective Start
type = ConvectiveFluxBC # Convective flux, e.g. q'' = h*(Tw - Tf)
boundary = '1 2 3' # BC applied on top, along length, and bottom
variable = temp
rate = 284. # (w/m^2-K)[50 BTU/hr/-ft^2-F]
# the above h is a reasonable natural convection value
initial = 294.26 # initial ambient (lab or oven) temperature (K)
final = 477.6 # final ambient (lab or oven) temperature (K)
duration = 600. # length of time in seconds that it takes the ambient
# temperature to ramp from initial to final
[../] # Convective End
[] # BCs END
[Materials] # Materials Start
[./thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 826.4
# thermal_conductivity = 1.937 # this makes alpha 9.74e-7 m^2/s
# thermal_conductivity = 19.37 # this makes alpha 9.74e-6 m^2/s
# thermal conductivity arbitrarily increased by a decade to
# make the cylinder thermally soak faster (only for the purposes
# of this test problem
thermal_conductivity = 193.7 # this makes alpha 9.74e-5 m^2/s
# thermal conductivity arbitrarily increased by 2 decade to
# make the cylinder thermally soak faster (only for the purposes
# of this test problem
[../]
[./density]
type = Density
block = 1
density = 2405.28
[../]
[] # Materials END
[Executioner] # Executioner Start
type = Transient
# type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 60.
num_steps = 20 # Total run time 1200 s
[] # Executioner END
[Outputs] # Output Start
# Output Start
file_base = out_rz
exodus = true
[] # Output END
# # Input file END
(modules/heat_transfer/test/tests/truss_heat_conduction/strip.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 1
xmax = 0.5
xmin = -0.5
ymin = -0.05
ymax = 0.05
[]
[left_line]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '-0.5 0 0'
top_right = '0 0 0'
block_id = 1
block_name = 'left_strip'
location = INSIDE
[]
[right_line]
type = SubdomainBoundingBoxGenerator
input = left_line
bottom_left = '0 0 0'
top_right = '0.5 0 0'
block_id = 2
block_name = 'right_strip'
location = INSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[Materials]
[left_strip]
type = GenericConstantMaterial
block = 'left_strip'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.1 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[right_strip]
type = GenericConstantMaterial
block = 'right_strip'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '5.0e-3 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[center]
type = LineValueSampler
start_point = '-0.5 0 0'
end_point = '0.5 0 0'
num_points = 40
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/strip'
time_data = true
[]
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart1.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function. For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
order = FIRST
family = LAGRANGE
block = 1
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 1hex8_10mm_cube.e
[]
[Functions]
[./Fiss_Function]
type = PiecewiseLinear
x = '0 1e6 2e6 2.001e6 2.002e6'
y = '0 3e8 3e8 12e8 0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
incremental = true
volumetric_locking_correction = true
eigenstrain_names = thermal_expansion
decomposition_method = EigenSolution
add_variables = true
generate_output = 'vonmises_stress'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[./heat_source]
type = HeatSource
variable = temp
value = 1.0
function = Fiss_Function
[../]
[]
[BCs]
[./bottom_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 300
[../]
[./top_bottom_disp_x]
type = DirichletBC
variable = disp_x
boundary = '1'
value = 0
[../]
[./top_bottom_disp_y]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0
[../]
[./top_bottom_disp_z]
type = DirichletBC
variable = disp_z
boundary = '1'
value = 0
[../]
[]
[Materials]
[./thermal]
type = HeatConductionMaterial
temp = temp
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 300e6
poissons_ratio = .3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 5e-6
stress_free_temperature = 300.0
temperature = temp
eigenstrain_name = thermal_expansion
[../]
[./density]
type = Density
density = 10963.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
verbose = true
nl_abs_tol = 1e-10
start_time = 0.0
num_steps = 65
end_time = 2.002e6
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_function = Fiss_Function
max_function_change = 3e7
dt = 1e6
[../]
[]
[Postprocessors]
[./Temperature_of_Block]
type = ElementAverageValue
variable = temp
execute_on = 'initial timestep_end'
[../]
[./vonMises]
type = ElementAverageValue
variable = vonmises_stress
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 10
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[]
(modules/functional_expansion_tools/examples/3D_volumetric_Cartesian/main.i)
# Basic example coupling a master and sub app in a 3D Cartesian volume.
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable.
#
# Note: this problem is not light, and may take a few minutes to solve.
[Mesh]
type = GeneratedMesh
dim = 3
xmin = 0.0
xmax = 10.0
nx = 15
ymin = 1.0
ymax = 11.0
ny = 25
zmin = 2.0
zmax = 12.0
nz = 35
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./s_in]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = CoupledForce
variable = m
v = s_in
[../]
[]
[AuxKernels]
[./reconstruct_s_in]
type = FunctionSeriesToAux
variable = s_in
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'top bottom left right front back'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '3 4 5'
physical_bounds = '0.0 10.0 1.0 11.0 2.0 12.0'
x = Legendre
y = Legendre
z = Legendre
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/combined/test/tests/heat_convection/heat_convection_3d_tf_test.i)
# Test cases for convective boundary conditions.
# Input file for htc_3dtest0
# TKLarson
# 11/02/11
# Revision 0
#
# Goals of this test are:
# 1) show that the 'fluid' temperature for convective boundary condition
# is behaving as expected/desired
# 2) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
# q = h*A*(Tw - Tf)
# where
# q - heat transfer rate (w)
# h - heat transfer coefficient (w/m^2-K)
# A - surface area (m^2)
# Tw - surface temperature (K)
# Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
# called 'duration,' the length of time in seconds that it takes initial to linearly ramp
# to 'final.'
# The mesh for this test case is concocted from an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004). I turned a cylinder model into a rectangular parallelpiped,
# because I already had the cylinder model.
# The model is 3-d xyz coordinates.
#
# Brazillian Parallelpiped sample dimensions:
# z = 10.3 cm, 0.103 m, (4 in)
# y = 5.08 cm, 0.0508 m, (2 in)
# x = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
# density = 2405.28 km/m^3
# specific heat = 826.4 J/kg-K
# thermal conductivity 1.937 w/m-K
# alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial parallelpiped temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use a very large h (1000000) to make the surface temperature mimick the fluid temperature.
# What we expect for this problem:
# 1) Use of h = 1000000 should cause the parallelpiped surface temperature to track the fluid temperature
# 2) The fluid temperature should rise from initial (294.26 K) to final (477.6 K) in 600 s.
# 3) 1) and 2) should prove that the Tf boundary condition is ramping as desired.
# Note, we do the above because there is no way to plot a variable that is not on a mesh node!
[Mesh] # Mesh Start
# 5cm x 5cm x 10cm parallelpiped not so detailed mesh, 4 elements each end, 8 elements each long face
# Only one block (Block 1), all concrete
# Sideset definitions:
# 1 - xy plane at z=0,
# 2 - xy plane at z=-0.103,
# 3 - xz plane at y=0,
# 4 - yz plane at x=0,
# 5 - xz plane at y=0.0508,
# 6 - yz plane at x=0.0508
file = heat_convection_3d_mesh.e
#
[] # Mesh END
[Variables] # Variables Start
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 294.26 # Initial parallelpiped temperature
[../]
[] # Variables END
[Kernels] # Kernels Start
[./heat]
# type = HeatConductionRZ
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# type = HeatConductionTimeDerivativeRZ
type = HeatConductionTimeDerivative
variable = temp
[../]
[] # Kernels END
[BCs] # Boundary Conditions Start
# Heat transfer coefficient on outer parallelpiped radius and ends
[./convective_clad_surface] # Convective Start
# type = ConvectiveFluxRZ # Convective flux, e.g. q'' = h*(Tw - Tf)
type = ConvectiveFluxBC # Convective flux, e.g. q'' = h*(Tw - Tf)
boundary = '1 2 3 4 5 6' # BC applied on top, along length, and bottom
variable = temp
rate = 1000000. # convective heat transfer coefficient (w/m^2-K)[176000 "]
# # the above h is ~ infinity for present purposes
initial = 294.26 # initial ambient (lab or oven) temperature (K)
final = 477.6 # final ambient (lab or oven) temperature (K)
duration = 600. # length of time in seconds that it takes the ambient
# temperature to ramp from initial to final
[../] # Convective End
[] # BCs END
[Materials] # Materials Start
[./thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 826.4
thermal_conductivity = 1.937 # this makes alpha 9.74e-7 m^2/s
[../]
[./density]
type = Density
block = 1
density = 2405.28
[../]
[] # Materials END
[Executioner] # Executioner Start
type = Transient
# type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 60.
num_steps = 20 # Total run time 1200 s
[] # Executioner END
[Outputs] # Output Start
# Output Start
file_base = out_3d_tf
exodus = true
[] # Output END
# # Input file END
(modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_2d.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
nx = 10
ny = 10
dim = 2
[]
[block1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 0'
input = gen
[]
[block2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 0'
input = block1
[]
[breakmesh]
input = block2
type = BreakMeshByBlockGenerator
block_pairs = '1 2'
split_interface = true
add_interface_on_two_sides = true
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time]
type = HeatConductionTimeDerivative
variable = temperature
[]
[thermal_cond]
type = HeatConduction
variable = temperature
[]
[]
[InterfaceKernels]
[thin_layer]
type = ThinLayerHeatTransfer
thermal_conductivity = thermal_conductivity_layer
specific_heat = specific_heat_layer
density = density_layer
heat_source = heat_source_layer
thickness = 0.01
variable = temperature
neighbor_var = temperature
boundary = Block1_Block2
[]
[]
[BCs]
[left_temp]
type = DirichletBC
value = 0
variable = temperature
boundary = left
[]
[right_temp]
type = DirichletBC
value = 0
variable = temperature
boundary = right
[]
[]
[Materials]
[thermal_cond]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1 1 1'
[]
[thermal_cond_layer]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity_layer specific_heat_layer heat_source_layer density_layer'
prop_values = '0.05 1 10000 1'
boundary = Block1_Block2
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
num_steps = 2
[]
[Outputs]
print_linear_residuals = false
exodus = true
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_edge_template.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 5
xmin = 0.0
xmax = 0.1
elem_type = EDGE2
[]
[Variables]
[./temp]
initial_condition = 0.0
[../]
[]
[BCs]
[./FixedTempLeft]
type = DirichletBC
variable = temp
boundary = left
value = 0.0
[../]
[./FunctionTempRight]
type = FunctionDirichletBC
variable = temp
boundary = right
function = '100.0 * sin(pi*t/40)'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '35.0 440.5 7200.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 1
end_time = 32.0
[]
[Postprocessors]
[./target_temp]
type = NodalVariableValue
variable = temp
nodeid = 4
[../]
[]
[Outputs]
csv = true
[]
(modules/functional_expansion_tools/examples/2D_interface/main.i)
# Basic example coupling a master and sub app at an interface in a 2D model.
# The master app provides a flux term to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's interface conditions, both value and flux, are transferred back
# to the master app
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 0.4
nx = 6
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./m]
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./source_m]
type = BodyForce
variable = m
value = 100
[../]
[]
[Materials]
[./Impervium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.00001 50.0 100.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
value = 2
variable = m
[../]
[]
[BCs]
[./interface_value]
type = FXValueBC
variable = m
boundary = right
function = FX_Basis_Value_Main
[../]
[./interface_flux]
type = FXFluxBC
boundary = right
variable = m
function = FX_Basis_Flux_Main
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Main]
type = FunctionSeries
series_type = Cartesian
orders = '5'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Flux_UserObject_Main]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Main
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[]
[Postprocessors]
[./average_interface_value]
type = SideAverageValue
variable = m
boundary = right
[../]
[./total_flux]
type = SideDiffusiveFluxIntegral
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[./picard_iterations]
type = NumFixedPointIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
sub_cycling = true
[../]
[]
[Transfers]
[./FluxToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Flux_UserObject_Main
multi_app_object_name = FX_Basis_Flux_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[./FluxToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Flux_Main
multi_app_object_name = FX_Flux_UserObject_Sub
[../]
[]
(modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_different_submesh/main.i)
# Derived from the example '3D_volumetric_Cartesian' with the following differences:
#
# 1) The number of x and y divisions in the sub app is not the same as the master app
# 2) The subapp mesh is skewed in x and z
[Mesh]
type = GeneratedMesh
dim = 3
xmin = 0.0
xmax = 10.0
nx = 15
ymin = 1.0
ymax = 11.0
ny = 25
zmin = 2.0
zmax = 12.0
nz = 35
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./s_in]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = CoupledForce
variable = m
v = s_in
[../]
[]
[AuxKernels]
[./reconstruct_s_in]
type = FunctionSeriesToAux
variable = s_in
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'top bottom left right front back'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '3 4 5'
physical_bounds = '0.0 10.0 1.0 11.0 2.0 12.0'
x = Legendre
y = Legendre
z = Legendre
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_strip.i)
[Mesh]
[rectangle]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 50
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
[]
[strip]
type = SubdomainBoundingBoxGenerator
input = rectangle
bottom_left = '-0.5 -0.05 0'
top_right = '0.5 0.05 0'
block_id = 2
block_name = 'strip'
location = INSIDE
[]
[top_bottom_layers]
type = SubdomainBoundingBoxGenerator
input = strip
bottom_left = '-0.5 -0.05 0'
top_right = '0.5 0.05 0'
block_id = 1
block_name = 'rectangle'
location = OUTSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[Materials]
[block]
type = GenericConstantMaterial
block = 'rectangle'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[strip]
type = GenericConstantMaterial
block = 'strip'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/rectangle_w_strip'
time_data = true
[]
[]
(modules/combined/test/tests/heat_convection/heat_convection_3d_test.i)
# Test cases for convective boundary conditions.
# Input file for htc_3dtest1
# TKLarson
# 11/02/11
# Revision 0
#
# Goals of this test are:
# 1) show that the 'fluid' temperature for convective boundary condition
# is behaving as expected/desired
# 2) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
# q = h*A*(Tw - Tf)
# where
# q - heat transfer rate (w)
# h - heat transfer coefficient (w/m^2-K)
# A - surface area (m^2)
# Tw - surface temperature (K)
# Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
# called 'duration,' the length of time in seconds that it takes initial to linearly ramp
# to 'final.'
# The mesh for this test case is concocted from an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004). I turned a cylinder model into a rectangular parallelpiped,
# because I already had the cylinder model.
# The model is 3-d xyz coordinates.
#
# Brazillian Parallelpiped sample dimensions:
# z = 10.3 cm, 0.103 m, (4 in)
# y = 5.08 cm, 0.0508 m, (2 in)
# x = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
# density = 2405.28 km/m^3
# specific heat = 826.4 J/kg-K
# thermal conductivity 1.937 w/m-K
# alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial parallelpiped temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use an h representative of natural convection conditions as the boundary condition for all sides
# on the parallelpiped. Akin to putting the object in an oven and turning the oven on.
# This is essentially a thermal soak.
#
# What we expect for this problem:
# 1) Use of h = 284 w/m^2-K (50 BTU/hr-ft^2-F) should cause the parallelpiped to slowly heat up to 477K.
# 2) The fluid temperature should rise from initial (294.26 K) to final (477.6 K) in 600 s.
# 3) 1) and 2) should show the convective BC is working as desired.
#
[Mesh] # Mesh Start
# 5cm x 5cm x 10cm parallelpiped not so detailed mesh, 4 elements each end, 8 elements each long face
# Only one block (Block 1), all concrete
# Sideset definitions:
# 1 - xy plane at z=0,
# 2 - xy plane at z=-0.103,
# 3 - xz plane at y=0,
# 4 - yz plane at x=0,
# 5 - xz plane at y=0.0508,
# 6 - yz plane at x=0.0508
file = heat_convection_3d_mesh.e
#
[] # Mesh END
[Variables] # Variables Start
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 294.26 # Initial parallelpiped temperature
[../]
[] # Variables END
[Kernels] # Kernels Start
[./heat]
# type = HeatConductionRZ
type = HeatConduction
variable = temp
[../]
[./heat_ie]
# type = HeatConductionTimeDerivativeRZ
type = HeatConductionTimeDerivative
variable = temp
[../]
[] # Kernels END
[BCs] # Boundary Conditions Start
# Heat transfer coefficient on outer parallelpiped radius and ends
[./convective_clad_surface] # Convective Start
# type = ConvectiveFluxRZ # Convective flux, e.g. q'' = h*(Tw - Tf)
type = ConvectiveFluxBC # Convective flux, e.g. q'' = h*(Tw - Tf)
boundary = '1 2 3 4 5 6' # BC applied on top, along length, and bottom
variable = temp
rate = 284. # convective heat transfer coefficient (w/m^2-K)[50 BTU/hr-ft^2-F]
initial = 294.26 # initial ambient (lab or oven) temperature (K)
final = 477.6 # final ambient (lab or oven) temperature (K)
duration = 600. # length of time in seconds that it takes the ambient
# temperature to ramp from initial to final
[../] # Convective End
[] # BCs END
[Materials] # Materials Start
[./thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 826.4
#thermal_conductivity = 1.937 # this makes alpha 9.74e-7 m^2/s
thermal_conductivity = 193.7 # this makes alpha 9.74e-5 m^2/s
# above conductivity arbitrarily increased by 2 decades to make the
# object soak faster for the present purposes
[../]
[./density]
type = Density
block = 1
density = 2405.28
[../]
[] # Materials END
[Executioner] # Executioner Start
type = Transient
# type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 60.
num_steps = 20 # Total run time 1200 s
[] # Executioner END
[Outputs] # Output Start
# Output Start
file_base = out_3d
exodus = true
[] # Output END
# # Input file END
(modules/combined/tutorials/introduction/thermal_mechanical/thermomech_step01.i)
#
# Single block coupled thermal/mechanical
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/thermoech_step01.html
#
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[pin]
type = ExtraNodesetGenerator
input = generated
new_boundary = pin
coord = '0 0 0'
[]
[]
[Variables]
[T]
initial_condition = 300.0
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[time_derivative]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = HeatSource
variable = T
value = 5e4
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
automatic_eigenstrain_names = true
generate_output = 'vonmises_stress'
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
specific_heat = 0.5
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = 8000.0
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[expansion1]
type = ComputeThermalExpansionEigenstrain
temperature = T
thermal_expansion_coeff = 0.001
stress_free_temperature = 300
eigenstrain_name = thermal_expansion
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[pin_x]
type = DirichletBC
variable = disp_x
boundary = pin
value = 0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
end_time = 5
dt = 1
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/inelastic_strain/creep/creep_nl1.i)
#
# Test for effective strain calculation.
# Boundary conditions from NAFEMS test NL1
#
# This is not a verification test. This is the creep analog of the same test
# in the elas_plas directory. Instead of using the IsotropicPlasticity
# material model this test uses the PowerLawCreep material model.
#
[GlobalParams]
temperature = temp
order = FIRST
family = LAGRANGE
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = one_elem2.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 600.0
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./eff_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
decomposition_method = EigenSolution
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./pressure]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = pressure
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./elastic_strain_yy]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./tot_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_xx
index_i = 0
index_j = 0
[../]
[./tot_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_yy
index_i = 1
index_j = 1
[../]
[./tot_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_zz
index_i = 2
index_j = 2
[../]
[./eff_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = eff_creep_strain
[../]
[]
[Functions]
[./appl_dispy]
type = PiecewiseLinear
x = '0 1.0 2.0'
y = '0.0 0.25e-4 0.50e-4'
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./origin_x]
type = DirichletBC
variable = disp_x
boundary = 103
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0.0
[../]
[./origin_y]
type = DirichletBC
variable = disp_y
boundary = 103
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = appl_dispy
[../]
[./temp_fix]
type = DirichletBC
variable = temp
boundary = '1 2'
value = 600.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 250e9
poissons_ratio = 0.25
[../]
[./strain]
type = ComputePlaneFiniteStrain
block = 1
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
block = 1
inelastic_models = 'powerlawcrp'
[../]
[./powerlawcrp]
type = PowerLawCreepStressUpdate
block = 1
coefficient = 3.125e-14
n_exponent = 5.0
m_exponent = 0.0
activation_energy = 0.0
[../]
[./thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[../]
[./density]
type = Density
block = 1
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
l_tol = 1e-6
l_max_its = 100
nl_max_its = 20
dt = 1.0
start_time = 0.0
num_steps = 100
end_time = 2.0
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./stress_xy]
type = ElementAverageValue
variable = stress_xy
[../]
[./vonmises]
type = ElementAverageValue
variable = vonmises
[../]
[./pressure]
type = ElementAverageValue
variable = pressure
[../]
[./el_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./el_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
[../]
[./el_strain_zz]
type = ElementAverageValue
variable = elastic_strain_zz
[../]
[./crp_strain_xx]
type = ElementAverageValue
variable = creep_strain_xx
[../]
[./crp_strain_yy]
type = ElementAverageValue
variable = creep_strain_yy
[../]
[./crp_strain_zz]
type = ElementAverageValue
variable = creep_strain_zz
[../]
[./eff_creep_strain]
type = ElementAverageValue
variable = eff_creep_strain
[../]
[./tot_strain_xx]
type = ElementAverageValue
variable = tot_strain_xx
[../]
[./tot_strain_yy]
type = ElementAverageValue
variable = tot_strain_yy
[../]
[./tot_strain_zz]
type = ElementAverageValue
variable = tot_strain_zz
[../]
[./disp_x1]
type = NodalVariableValue
nodeid = 0
variable = disp_x
[../]
[./disp_x4]
type = NodalVariableValue
nodeid = 3
variable = disp_x
[../]
[./disp_y1]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y4]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/functional_expansion_tools/examples/3D_volumetric_cylindrical/main.i)
# Basic example coupling a master and sub app in a 3D cylindrical mesh from an input file
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable, the recommended approach.
#
# Note: this problem is not light, and may take a few minutes to solve.
[Mesh]
type = FileMesh
file = cyl-tet.e
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./s_in]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = CoupledForce
variable = m
v = s_in
[../]
[]
[AuxKernels]
[./reconstruct_s_in]
type = FunctionSeriesToAux
variable = s_in
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'top bottom outside'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = CylindricalDuo
orders = '5 3' # Axial first, then (r, t) FX
physical_bounds = '-2.5 2.5 0 0 1' # z_min z_max x_center y_center radius
z = Legendre # Axial in z
disc = Zernike # (r, t) default to unit disc in x-y plane
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/functional_expansion_tools/examples/1D_volumetric_Cartesian/main.i)
# Basic example coupling a master and sub app in a 1D Cartesian volume.
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable.
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0.0
xmax = 10.0
nx = 15
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./s_in]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = CoupledForce
variable = m
v = s_in
[../]
[]
[AuxKernels]
[./reconstruct_s_in]
type = FunctionSeriesToAux
variable = s_in
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'left right'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '3'
physical_bounds = '0.0 10.0'
x = Legendre
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_line.i)
[Mesh]
parallel_type = 'replicated'
[rectangle]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 50
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
boundary_name_prefix = rectangle
[]
[rectangle_id]
type = SubdomainIDGenerator
input = rectangle
subdomain_id = 1
[]
[line]
type = GeneratedMeshGenerator
dim = 1
xmin = -0.5
xmax = 0.5
nx = 10
boundary_name_prefix = line
boundary_id_offset = 10
[]
[line_id]
type = SubdomainIDGenerator
input = line
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'rectangle_id line_id'
[]
[blcok_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'rectangle line'
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
block = 'rectangle'
[]
[heat_conduction]
type = HeatConduction
variable = temperature
block = 'rectangle'
[]
[time_derivative_line]
type = TrussHeatConductionTimeDerivative
variable = temperature
area = area
block = 'line'
[]
[heat_conduction_line]
type = TrussHeatConduction
variable = temperature
area = area
block = 'line'
[]
[]
[AuxVariables]
[area]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[area]
type = ConstantAux
variable = area
value = 0.1 # strip thickness
execute_on = 'initial timestep_begin'
[]
[]
[Constraints]
[equalvalue]
type = EqualValueEmbeddedConstraint
secondary = 'line'
primary = 'rectangle'
penalty = 1e6
formulation = kinematic
primary_variable = temperature
variable = temperature
[]
[]
[Materials]
[rectangle]
type = GenericConstantMaterial
block = 'rectangle'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[line]
type = GenericConstantMaterial
block = 'line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'rectangle_right line_right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/rectangle_w_line'
time_data = true
[]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/block_w_bar.i)
[Mesh]
[whole]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 50
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
zmin = -0.04
zmax = 0.04
[]
[bar]
type = SubdomainBoundingBoxGenerator
input = whole
bottom_left = '-0.6 -0.05 -0.04'
top_right = '0.6 0.05 0.04'
block_id = 2
block_name = 'bar'
location = INSIDE
[]
[block]
type = SubdomainBoundingBoxGenerator
input = bar
bottom_left = '-0.6 -0.05 -0.04'
top_right = '0.6 0.05 0.04'
block_id = 1
block_name = 'block'
location = OUTSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[Materials]
[block]
type = GenericConstantMaterial
block = 'block'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[line]
type = GenericConstantMaterial
block = 'bar'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/block_w_bar'
time_data = true
[]
[]
(modules/heat_transfer/tutorials/introduction/therm_step03.i)
#
# Single block thermal input with time derivative term
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step03.html
#
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[]
[Variables]
[T]
initial_condition = 300.0
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[time_derivative]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
specific_heat = 0.5
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = 8000.0
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[]
[Executioner]
type = Transient
end_time = 5
dt = 1
[]
[VectorPostprocessors]
[t_sampler]
type = LineValueSampler
variable = T
start_point = '0 0.5 0'
end_point = '2 0.5 0'
num_points = 20
sort_by = x
[]
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = therm_step03_out
execute_on = final
[]
[]
(modules/functional_expansion_tools/examples/3D_volumetric_cylindrical_subapp_mesh_refine/main.i)
# Derived from the example '3D_volumetric_cylindrical' with the following differences:
#
# 1) The model mesh is refined in the MasterApp by 1
# 2) Mesh adaptivity is enabled for the SubApp
# 3) Output from the SubApp is enabled so that the mesh changes can be visualized
[Mesh]
type = FileMesh
file = cyl-tet.e
uniform_refine = 1
[]
[Variables]
[./m]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./s_in]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./s_in] # Add in the contribution from the SubApp
type = CoupledForce
variable = m
v = s_in
[../]
[]
[AuxKernels]
[./reconstruct_s_in]
type = FunctionSeriesToAux
variable = s_in
function = FX_Basis_Value_Main
[../]
[]
[Materials]
[./Unobtanium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
variable = m
value = 1
[../]
[]
[BCs]
[./surround]
type = DirichletBC
variable = m
value = 1
boundary = 'top bottom outside'
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = CylindricalDuo
orders = '5 3' # Axial first, then (r, t) FX
physical_bounds = '-2.5 2.5 0 0 1' # z_min z_max x_center y_center radius
z = Legendre # Axial in z
disc = Zernike # (r, t) default to unit disc in x-y plane
[../]
[]
[UserObjects]
[./FX_Value_UserObject_Main]
type = FXVolumeUserObject
function = FX_Basis_Value_Main
variable = m
[../]
[]
[Postprocessors]
[./average_value]
type = ElementAverageValue
variable = m
[../]
[./peak_value]
type = ElementExtremeValue
value_type = max
variable = m
[../]
[./picard_iterations]
type = NumFixedPointIterations
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
output_sub_cycles = true
[../]
[]
[Transfers]
[./ValueToSub]
type = MultiAppFXTransfer
to_multi_app = FXTransferApp
this_app_object_name = FX_Value_UserObject_Main
multi_app_object_name = FX_Basis_Value_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
from_multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[]
(modules/heat_transfer/include/kernels/TrussHeatConductionTimeDerivative.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 "HeatConductionTimeDerivative.h"
#include "Material.h"
class TrussHeatConductionTimeDerivative : public HeatConductionTimeDerivative
{
public:
static InputParameters validParams();
TrussHeatConductionTimeDerivative(const InputParameters & parameters);
protected:
virtual Real computeQpResidual() override;
virtual Real computeQpJacobian() override;
/// Coupled variable for the cross-sectional area of truss element
const VariableValue & _area;
};