Skip to content
Snippets Groups Projects
film-on-substrate.parset 4.23 KiB
#############################################
#  Grid parameters
#############################################

structuredGrid = true
# 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:
lower = 0 0 0
upper = 200 100 200

elements = 4 2 2

# Number of grid levels, all elements containing surfaceshell grid vertices will get adaptively refined
numLevels = 1

# When starting from a file, the stress-free configuration of the surfaceShell is read from a file, this file needs to match the *finest* grid level!
startFromFile = false
pathToGridDeformationFile = ./
gridDeformationFile = deformation

# When not starting from a file, deformation of the surface shell part can be given here using the gridDeformation function
gridDeformation="[1.3*x[0], x[1], x[2]]"

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

dirichletValues = identity-dirichlet-values

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

###  Python predicate specifying all surfaceshell grid vertices, elements conataining these vertices will get adaptively refined
# x is the vertex coordinate
surfaceShellVerticesPredicate = "x[2] > 199.99 and x[0] > 49.99 and x[0] < 150.01"

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

##  Neumann values
neumannValues = 0 0 0 

# Initial deformation
initialDeformation = "x"

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

# Inner solver, cholmod or multigrid
solvertype = cholmod

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

# Tolerance of the solver
tolerance = 1e-3

# Max number of solver steps
maxSolverSteps = 1

# Measure convergence
instrumented = 0

#############################################
#  Solver parameters specific for proximal newton solver using cholmod
#############################################

# initial regularization parameter
initialRegularization = 1000000

#############################################
#  Solver parameters specific for trust-region solver using multigrid solver 
#############################################

trustRegionScaling = 1 1 1 0.01 0.01 0.01

# Initial trust-region radius
initialTrustRegionRadius = 3.125

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

# Number of presmoothing steps
nu1 = 3

# Number of postsmoothing steps
nu2 = 3

# Number of coarse grid corrections
mu = 1

# Number of base solver iterations
baseIt = 1

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

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

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

energy = mooneyrivlin

## For the Wriggers L-shape example
[materialParameters]

surfaceShellParameters = surface-shell-parameters-1-3

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


# Cosserat couple modulus
mu_c = 0

# Length scale parameter
L_c = 0.2

b1 = 1
b2 = 1
b3 = 1

# 
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 = 57e+6	# 184 2:1, mooneyrivlin_k = 57e+6 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

[]