# 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.

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 increments

• t: 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 increment

• f_restart: output frequency of restart information; e.g. $$f_\text{restart} = 10$$ writes restart information every tenth increment

• estimate_rate: estimate field of deformation gradient fluctuations based on former load step (default) or assume to be homogeneous, i.e. no fluctuations

• boundary_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 step

• F_dot: rate of deformation gradient during load step

• L: velocity gradient during load step

• P: first Piola–Kirchhoff stress at end of load step

• P_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