RubberPlateHole

This example demonstrates the Finite Kinematics newton solver in conjunction with the near-singular void field \(\psi\) to simulate a compliant material with a hole in the middle.

../_images/movie4.gif

It also demonstrates the use of the IC::Expression class with the variable functionality.

serial-2d

Two-dimensional

Serial

Not validated

./bin/mechanics-2d-g++ tests/RubberPlateHole/input

serial-2d-coverage

Two-dimensional

Serial

Not validated

./bin/mechanics-2d-g++ tests/RubberPlateHole/input  solver.nriters="1" solver.fixed_iter="1"
Input file (../../tests/RubberPlateHole/input)
#@
#@ [serial-2d]
#@ exe    = mechanics
#@ dim=2
#@ check=false
#@
#@ [serial-2d-coverage]
#@ exe    = mechanics
#@ dim=2
#@ check=false
#@ coverage=true
#@ args = solver.nriters=1
#@ args = solver.fixed_iter=1
#@

alamo.program = mechanics
alamo.program.mechanics.model = finite.neohookean
plot_file = output
type = static
timestep = 0.1
stop_time = 1.0

amr.plot_int = 1
amr.max_level = 2
amr.n_cell = 16 16 16
amr.blocking_factor = 2
amr.thermo.int = 1
amr.thermo.plot_int = 1
amr.node.all = 1
amr.cell.all = 1

geometry.prob_lo = -1 -1 -1
geometry.prob_hi =  1  1  1

ic.type = ellipse
ic.ellipse.a = 0.25 0.25 0.25
ic.ellipse.x0 = 0.5 0.5 0.5
ic.ellipse.eps = 0.05

nmodels = 1
model1.mu = 30
model1.kappa = 60

psi.ic.type=expression
psi.ic.expression.constant.eps = 0.05
psi.ic.expression.constant.R   = 0.25
psi.ic.expression.region0 = "0.5 + 0.5*tanh((x^2 + y^2 - R)/eps)"

solver.verbose = 2
solver.max_iter = 150
solver.nriters = 1000
solver.nrtolerance = 1E-5

ref_threshold = 100

bc.type = tension_test
bc.tension_test.type = uniaxial_stress
bc.tension_test.disp = (0,1:0,0.5)

solver.dump_on_fail = 1
amrex.signal_handling = 0
amrex.throw_exception = 1