ThermoElastic
This test demonstrates multiphysics coupling using the ThermoElastic integrator that inherits both from HeatConduction and Mechanics. In the test, the domain is initially stress-free and at T=0. Thermal evolution is driven by the lower and left boundaries that are at T=1. The circular inclusion has a coefficient of thermal expansion, while the matrix does not. So, as the inclusion heats up, it expands, inducing a stress distribution.
![../_images/movie7.gif](../_images/movie7.gif)
2d
Two-dimensional |
|
Serial |
|
Validated using check script |
|
./bin/thermoelastic-2d-g++ tests/ThermoElastic/input stop_time="10"
|
2d-coverage
Two-dimensional |
|
Serial |
|
Not validated |
|
./bin/thermoelastic-2d-g++ tests/ThermoElastic/input stop_time="1"
|
Input file (../../tests/ThermoElastic/input)
#@
#@ [2d]
#@ dim=2
#@ check=true
#@ exe=thermoelastic
#@ args=stop_time=10
#@
#@ [2d-coverage]
#@ dim=2
#@ check=false
#@ exe=thermoelastic
#@ args=stop_time=1
#@ coverage=true
#@
alamo.program = thermoelastic
plot_file = tests/ThermoElastic/output
# Simulation length
timestep = 0.005
stop_time = 40.0
# amr parameters
amr.plot_int = 100
amr.max_level = 3
amr.n_cell = 32 32 32
amr.blocking_factor = 4
amr.regrid_int = 50
amr.grid_eff = 1.0
amr.cell.all = 1
# geometry
geometry.prob_lo = -8 -8 -8
geometry.prob_hi = 8 8 8
geometry.is_periodic = 0 0 0
alpha = 0.001 0.0
#
# HEAT TRANSFER MODEL
#
hc.heat.alpha = 1.0
hc.heat.refinement_threshold = 0.1
# Specify initial conditions
hc.ic.type = sphere
hc.ic.sphere.center = 0.5 0.5 0.5
hc.ic.sphere.radius = 0.25
hc.ic.sphere.inside = 0.0
# Boundary conditions
hc.bc.temp.constant.type.xhi = dirichlet
hc.bc.temp.constant.type.xlo = dirichlet
hc.bc.temp.constant.type.yhi = dirichlet
hc.bc.temp.constant.type.ylo = dirichlet
hc.bc.temp.constant.type.zhi = dirichlet
hc.bc.temp.constant.type.zlo = dirichlet
hc.bc.temp.constant.val.xhi = 0.0
hc.bc.temp.constant.val.xlo = 1.0
hc.bc.temp.constant.val.yhi = 0.0
hc.bc.temp.constant.val.ylo = 1.0
hc.bc.temp.constant.val.zhi = 0.0
hc.bc.temp.constant.val.zlo = 1.0
#
# ELASTICITY MODEL
#
el.interval = 100
# ellipse configuration
el.ic.type = ellipse
el.ic.ellipse.a = 3.0 3.0 3.0 # ellipse radii
el.ic.ellipse.x0 = 0 0 0 # location of ellipse center
el.ic.ellipse.eps = 0.8 # diffuse boundary
el.bc.type = constant
# elastic moduli
el.nmodels = 2
el.model1.E = 210
el.model1.nu = 0.3
el.model1.F0 = 0 0 0 0 0 0 0 0 0 # eigenstrain
el.model2.E = 210
el.model2.nu = 0.3
el.model2.F0 = 0 0 0 0 0 0 0 0 0 # eigenstrain
el.solver.verbose = 4
el.solver.nriters = 1
el.ref_threshold = 5E-5
el.eta_ref_threshold = 5E-5