Simulation

Module -S is dedicated to processing simulation results. It is able to rewrite FEPX raw simulation results into a more human-friendly simulation directory, and post-process the results further. The simulation directory can be taken as input by module -V for advanced visualization of the tessellation, mesh and simulation results.

Generalities

The first primary capability is to convert FEPX raw simulation results into a simulation directory, which is as simple as running

$ neper -S jobdir

The resulting simulation directory (jobdir.sim) contains both the simulation input and results, and is structured as follows. Result files are ASCII files and are provided at each simulation step.

jobdir.sim
├── inputs
│   ├── simulation.config
│   ├── simulation.msh
│   └── simulation.tess
├── report
└── results
    ├── elements
    │   ├── strain-eq
    │   │   ├── strain-eq.step0
    │   │   ├── strain-eq.step1
    │   │   ├── strain-eq.step2
    │   │   ...
    │   ├── stress
    │   │   ├── stress.step0
    │   │   ├── stress.step1
    │   │   ├── stress.step2
    │   │   ...
    │   ├── ...
    │   ...
    └── nodes
        ├── coo
        │   ├── coo.step0
        │   ├── coo.step1
        │   ├── coo.step2
        │   ...
        ├── ...
        ...

Computing New Nodal or Elemental Results

Nodal or elemental results can be added to the simulation directory. The data can be mesh results (as also available through Neper -M’s -stat* options), simulation subresults (such as vector or tensor components), or new results defined by mathematical expressions based on mesh or simulation results. The results can be assigned names. Existing results at a specific step can be accessed using (step=...).

$ neper -S jobdir.sim -eltres vol,stress33,energy:0.1234*(crss-crss(step=0))^2"

The results add to the simulation directory, which becomes:

jobdir.sim
├── inputs
│   ├── simulation.config
│   ├── simulation.msh
│   └── simulation.tess
├── report
└── results
    ├── elements
    │   ├── energy
    │   │   ├── energy.step0
    │   │   ├── energy.step1
    │   │   ├── energy.step2
    │   │   ...
    │   ├── strain-eq
    │   │   ├── strain-eq.step0
    │   │   ├── strain-eq.step1
    │   │   ├── strain-eq.step2
    │   │   ...
    │   ├── stress
    │   │   ├── stress.step0
    │   │   ├── stress.step1
    │   │   ├── stress.step2
    │   │   ...
    │   ├── stress33
    │   │   ├── stress33.step0
    │   │   ├── stress33.step1
    │   │   ├── stress33.step2
    │   │   ...
    │   ├── vol
    │   │   ├── vol.step0
    │   │   ├── vol.step1
    │   │   ├── vol.step2
    │   │   ...
    │   ├── ...
    │   ...
    └── nodes
        ├── coo
        │   ├── coo.step0
        │   ├── coo.step1
        │   ├── coo.step2
        │   ...
        ├── ...
        ...

Computing Elset and Mesh Results

Elset and mesh results can be computed from the elemental results of the simulation directory. This is simply done by volume-weighted averaging (orientations are also properly averaged, using quaternions). The results are written to directory elsets and mesh.

$ neper -S jobdir.sim -elsetres stress,stress33

The results add to the simulation directory, which becomes:

jobdir.sim
├── inputs
│   ├── simulation.config
│   ├── simulation.msh
│   └── simulation.tess
├── report
└── results
    ├── elements
    │   ├── energy
    │   │   ├── energy.step0
    │   │   ├── energy.step1
    │   │   ├── energy.step2
    │   │   ...
    │   ├── strain-eq
    │   │   ├── strain-eq.step0
    │   │   ├── strain-eq.step1
    │   │   ├── strain-eq.step2
    │   │   ...
    │   ├── stress
    │   │   ├── stress.step0
    │   │   ├── stress.step1
    │   │   ├── stress.step2
    │   │   ...
    │   ├── stress33
    │   │   ├── stress33.step0
    │   │   ├── stress33.step1
    │   │   ├── stress33.step2
    │   │   ...
    │   ├── vol
    │   │   ├── vol.step0
    │   │   ├── vol.step1
    │   │   ├── vol.step2
    │   │   ...
    │   ├── ...
    │   ...
    ├── elsets
    │   ├── stress
    │   │   ├── stress.step0
    │   │   ├── stress.step1
    │   │   ├── stress.step2
    │   │   ...
    │   ├── stress33
    │   │   ├── stress33.step0
    │   │   ├── stress33.step1
    │   │   ├── stress33.step2
    │   │   ...
    └── nodes
        ├── coo
        │   ├── coo.step0
        │   ├── coo.step1
        │   ├── coo.step2
        │   ...
        ├── ...
        ...

Removing Results

Results can be removed by preceding them by ! (note the single quotes, below):

$ neper -S jobdir.sim -eltres '!stress,!stress33,!vol,!strain-eq' -elsetres '!stress,!stress33'

The simulation directory becomes:

jobdir.sim
├── inputs
│   ├── simulation.config
│   ├── simulation.msh
│   └── simulation.tess
├── report
└── results
    ├── elements
    │   ├── energy
    │   │   ├── energy.step0
    │   │   ├── energy.step1
    │   │   ├── energy.step2
    │   │   ...
    │   ...
    └── nodes
        ├── coo
        │   ├── coo.step0
        │   ├── coo.step1
        │   ├── coo.step2
        │   ...
        ├── ...
        ...