Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
finite-strain-elasticity-bending.parset 3.88 KiB
#############################################
#  Grid parameters
#############################################

structuredGrid = true

# bounding box
lower = 0 0 0

# whole experiment: 45 mm x 10 mm x 2 mm, scaling with 10^7 such that the thickness, which is around 100 nm, so 100x10^-9 = 10^-7 is equal to 1.
# upper = 45e4 10e4 2e4
# using only a section of the whole experiment as deformed grid to start with for dune-gfe: use much smaller dimensions!
upper = 200 100 200

elements = 10 5 5

# Number of grid levels: refinement levels of the surface shell part, refined using hierarchic refinement
numLevels = 1

#Overlap indicator for the grid when doing parallel calculations; when set to false, all communication will be done assuming there is no overlap when assembling the matrix and the rhs
overlap = false

# Adaptive Refinement
adaptiveRefinement = true

#############################################
#  Solver parameters
#############################################

# Number of homotopy steps for the Dirichlet boundary conditions
numHomotopySteps = 1

# Tolerance of the trust region solver
tolerance = 1e-6

# Max number of steps of the trust region solver
maxTrustRegionSteps = 200

# Initial trust-region radius
initialTrustRegionRadius = 10

# Number of multigrid iterations per trust-region step
numIt = 100

# Number of presmoothing steps
nu1 = 3

# Number of postsmoothing steps
nu2 = 3

# Number of coarse grid corrections
mu = 1

# Dampening for the smoothers of the multigrid solver
dampening = 1.0

# Number of base solver iterations
baseIt = 100

# Tolerance of the multigrid solver
mgTolerance = 1e-7

# Tolerance of the base grid solver
baseTolerance = 1e-8

############################
#   Material parameters
############################

energy = mooneyrivlin # stvenantkirchhoff, neohooke, hencky, exphencky or mooneyrivlin

[materialParameters]

## Lame parameters for stvenantkirchhoff, E = mu(3*lambda + 2*mu)/(lambda + mu)
# mu = 2.7191e+4
# lambda = 4.4364e+4

#mooneyrivlin_a = 2.7191e+6
#mooneyrivlin_b = 2.7191e+6
#mooneyrivlin_c = 2.7191e+6

#mooneyrivlin_10 = -7.28e+5 #182 20:1
#mooneyrivlin_01 = 9.17e+5
#mooneyrivlin_20 = 1.23e+5
#mooneyrivlin_02 = 8.15e+5
#mooneyrivlin_11 = -5.14e+5

#mooneyrivlin_10 = -3.01e+6 #182 2:1
#mooneyrivlin_01 = 3.36e+6
#mooneyrivlin_20 = 5.03e+6
#mooneyrivlin_02 = 13.1e+6
#mooneyrivlin_11 = -15.2e+6

mooneyrivlin_10 = -1.67e+6 #184 2:1
mooneyrivlin_01 = 1.94e+6
mooneyrivlin_20 = 2.42e+6
mooneyrivlin_02 = 6.52e+6
mooneyrivlin_11 = -7.34e+6

mooneyrivlin_30 = 0
mooneyrivlin_21 = 0
mooneyrivlin_12 = 0
mooneyrivlin_03 = 0

# volume-preserving parameter 
mooneyrivlin_k = 55e+6	# 184 2:1, mooneyrivlin_k = 5e+7 and mooneyrivlin_energy = log, the neumannValues = 27e4 0 0 result in a stretch of 30% of 45e4 10e4 2e4 in x-direction, so a stretch of 45e4*0.3 = 13.5e4

mooneyrivlin_energy = log # log, square or ciarlet; different ways to compute the Mooney-Rivlin-Energy

# ciarlet: Fomula from "Ciarlet: Three-Dimensional Elasticity", here no penalty term is 
# log: Generalized Rivlin model or polynomial hyperelastic model, using  0.5*mooneyrivlin_k*log(det(∇φ)) as the volume-preserving penalty term
# square: Generalized Rivlin model or polynomial hyperelastic model, using mooneyrivlin_k*(det(∇φ)-1)² as the volume-preserving penalty term

[]

#############################################
#  Boundary values
#############################################

problem = wriggers-l-shape

###  Python predicate specifying all Dirichlet grid vertices
# x is the vertex coordinate
dirichletVerticesPredicate = "x[0] < 0.01"

###  Python predicate specifying all surface shell grid vertices
# x is the vertex coordinate
adaptiveRefinementPredicate = "x[0] < 0.01"

###  Python predicate specifying all neumannValues grid vertices
# x is the vertex coordinate
neumannVerticesPredicate = "x[0] > 9.99"

###  Neumann values
neumannValues = 27e4 0 0

# Initial deformation
initialDeformation = "x"