Grid Solver#
Geometry#
The grid solver operates on a regular grid specified in the VTK ImageData format.
The material ID in material.yaml
is referenced via the value of a PointData dataset named material
.
Uncompressed and zlib compressed datasets are supported.
Using damask.Grid
is the recommended way for the generation and modification of grid solver geometries.
Load Case#
The load case of the grid solver is written in YAML style. It contains two top-level keys:
solver
loadstep
Note
The default YAML parser used in DAMASK does not support advanced features, such as references and line continuation statements, unless DAMASK was compiled with libfyaml.
solver
#
… is a dictionary that specifies for each considered physical phenomenon what solver to use. The following grid-based solvers are implemented
mechanical: spectral_basic | spectral_polarization | FEM
thermal: spectral
damage: spectral
loadstep
#
… is a list of dictionaries that specifies the details of each individual load step in the simulation. Every load step has a number of parameters that need to be declared:
discretization
N
: number of incrementst
: time of load step in seconds, i.e. \(t = \sum_{i=1}^N \Delta t_i\)r
: scaling factor (default 1) in geometric time step series, i.e. \(\Delta t_{i+1} = r\,\Delta t_i\)
f_out
: output frequency of results; e.g. \(f_\text{out} = 3\) writes results every third incrementf_restart
: output frequency of restart information; e.g. \(f_\text{restart} = 10\) writes restart information every tenth incrementestimate_rate
: estimate field of deformation gradient fluctuations based on former load step (default) or assume to be homogeneous, i.e. no fluctuationsboundary_conditions
mechanical
R
: rotation axis and angle (in degrees) from grid to load frame coordinate system (defaults to no rotation, i.e. load frame coincides with grid coordinates)F
: deformation gradient at end of load stepF_dot
: rate of deformation gradient during load stepL
: velocity gradient during load stepP
: first Piola–Kirchhoff stress at end of load stepP_dot
: rate of first Piola–Kirchhoff stress during load step
Mixed (deformation–stress) conditions are possible but necessarily mutually exclusive (indicated by ‘x’).
Example:
loadstep:
- discretization:
t: 100
N: 10
f_out: 10
boundary_conditions:
mechanical:
dot_F: [[1.0e-3, 0, 0],
[0, x, 0],
[0, 0, x]]
P: [[x, x, x],
[x, 0, x],
[x, x, 0]]
- discretization:
t: 1000
N: 50
boundary_conditions:
mechanical:
dot_F: [[1.0e-3, 0, 0],
[0, x, 0],
[0, 0, x]]
P: [[x, x, x],
[x, 0, x],
[x, x, 0]]
f_out: 10
f_restart: 25