2.2.1. postResults


Purpose

Extract data from a simulation result file into an ASCII table.


parent_gray

Background

Supported file formats

  • MSC.Marc (*.t16)
  • DAMASK_spectral (*.spectralOut)

Types of output

  • nodal scalar (displacement, temperature, ...)
  • elemental scalar (equivalent stress, ...)
  • elemental tensor (stress, strain, ...)
  • homogenization output
  • crystallite output (phase, orientation, deformation gradient, ...)
  • constitutive output (dislocation density, slip resistance, twin volume fraction, ...)

Output processing

The result extraction internally comprises three steps:
  • filtering the data according to geometry or mesh properties. Use the --filter option to specify filtering conditions.
  • grouping the filtered data by user-defined criteria based on geometry and mesh properties. Use the --separation option to indicate which discrimination criteria you want for grouping.
  • mapping the values in each group to one scalar quantity by a user-defined function. Use the --map option to indicate how to map all values of a group to a single scalar.

File positions and increments

Typically, a result file contains more than one time step but, for instance, a number $N$ of them. We distinguish between »positions«, which follow a strictly consecutive numbering $1,\ldots,N$, and »increments«, which follow the numbering that the respective increment had in the course of the overall simulation. Example: suppose a simulation comprises 100 increments of which only every tenth is written to the result file. The result file will then contain positions $0,1,\ldots,10$ and increments $0,10,\ldots,100$ (because the initial configuration is always included as position 0 and increment 0).


parent_gray

Usage

> postResults [options] resultfile


parent_gray

Switches

--info / -i [ False ]
just list contents of resultfile
--legacy / -l [ False ]
interpret user block according to legacy (prior to DAMASK rev 1115) format
--split / -s [ False ]
split output into one separate file per increment
--increments [ False ]
range indicator addresses true increment numbers, not plain positions in file
--sloppy [ False ]
do not pre-check validity of increment range
--time / -t [ False ]
output time of increment (as first data column)
--nodal / -n [ False ]
data is extrapolated to nodal value


parent_gray

Options

--type / -p string [ auto ]
type of resultfile
--prefix string [ none ]
prefix to output file name
--suffix string [ none ]
suffix to output file name
--dir / -d string [ postProc ]
name of subdirectory to hold output
--range / -r start end step [ all ]
range of positions (or increments) to output

--homogenization string or int [ 1 ]
homogenization identifier (section in material.config part <homogenization>)
--crystallite string or int [ 1 ]
crystallite identifier (section in material.config part <crystallite>)
--phase string or int [ 1 ]
phase identifier (section in material.config part <phase>)

--ns list
nodal scalars to extract
--es list
elemental scalars to extract
--et list
elemental tensors to extract
--ho list
homogenization results to extract
--cr list
crystallite results to extract
--co list
constitutive results to extract

--filter / -f PythonCode
condition(s) to filter results. keywords interpreted in the PythonCode are 'elem', 'node', 'ip', 'grain', and 'x', 'y', 'z'.
--separation list
properties to separate (and sort) results. keywords are 'elem', 'node', 'ip', 'grain', and 'x', 'y', 'z'.
--sort list
properties to sort results (overrides --separate order). keywords are 'none', 'elem', 'node', 'ip', 'grain', and 'x', 'y', 'z'.
--map / -m string or PythonLambda
function applied to map multiple values to one scalar quantity per group. User-defined mappings (lambda a,b,n:) are formulated in an incremental fashion for each new data point, a(dd), and may use the current (incremental) result, b(ase), as well as the number, n(umber), of already processed data points for evaluation. Predefined options are
  • min right lambda n,b,a: min(b,a)
  • max right lambda n,b,a: max(b,a)
  • avg right lambda n,b,a: (n*b+a)/(n+1)
  • avgabs right lambda n,b,a: (n*b+abs(a))/(n+1)
  • sum right lambda n,b,a: b+a
  • sumabs right lambda n,b,a: b+abs(a)


parent_gray

Examples

  • volume-averaged results of deformation gradient and first Piola–Kirchhoff stress for all increments
    --cr f,p
  • spatially resolved slip resistance (of phenopowerlaw) in separate files for increments 10, 11, and 12
    --range 10 12 1 --increments --split --separation x,y,z --co resistance_slip
  • get averaged results in slices perpendicular to x for all negative y coordinates split per increment
    --filter 'y < 0.0'  --split --separation x --map 'avg'
  • global sum of squared data falling into first quadrant arc between R1 and R2
    --filter 'x >= 0.0 and y >= 0.0 and x*x + y*y >= R1*R1 and x*x + y*y <=R2*R2' --map 'lambda n,b,a: n*b+a*a'

This topic: Documentation > Processing > PostProcessing > PostResults
Topic revision: 15 Apr 2014, PhilipEisenlohr
This site is powered by FoswikiCopyright by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding DAMASK? Send feedback
§ Imprint § Data Protection