Skip to content

Command Line Tool

What is Diffcrash?

Diffcrash is a software from Sidact which is designed for robustness analysis of simulation runs. It can be used as a set of independent executables or as a postprocessor plugin. Diffcrash itself must be licensed. Please therefore contact Sidact directly. This commmand line utility makes running a Diffcrash analysis much easier.

How to use the utility?

You can get the run info by performing:

$ python -m lasso.diffcrash.run --help

==== D I F F C R A S H ====

an open lasso utility script

usage: run.py [-h] --reference-run REFERENCE_RUN
            [--exclude-runs [EXCLUDE_RUNS [EXCLUDE_RUNS ...]]] --crash-code
            CRASH_CODE [--start-stage [START_STAGE]]
            [--end-stage [END_STAGE]] [--diffcrash-home [DIFFCRASH_HOME]]
            [--use-id-mapping [USE_ID_MAPPING]]
            [--project-dir [PROJECT_DIR]] [--config-file [CONFIG_FILE]]
            [--parameter-file [PARAMETER_FILE]]
            [--n-processes [N_PROCESSES]]
            [simulation_runs [simulation_runs ...]]

Python utility script for Diffcrash.

positional arguments:
simulation_runs       Simulation runs or patterns used to search for
                        simulation runs.

optional arguments:
-h, --help            show this help message and exit
--reference-run REFERENCE_RUN
                        filepath of the reference run.
--exclude-runs [EXCLUDE_RUNS [EXCLUDE_RUNS ...]]
                        Runs to exclude from the analysis.
--crash-code CRASH_CODE
                        Which crash code is used ('dyna', 'pam' or 'radioss').
--start-stage [START_STAGE]
                        At which specific stage to start the analysis (SETUP,
                        IMPORT, MATH, EXPORT, MATRIX, EIGEN, MERGE).
--end-stage [END_STAGE]
                        At which specific stage to stop the analysis (SETUP,
                        IMPORT, MATH, EXPORT, MATRIX, EIGEN, MERGE).
--diffcrash-home [DIFFCRASH_HOME]
                        Home directory where Diffcrash is installed. Uses
                        environment variable 'DIFFCRASHHOME' if unspecified.
--use-id-mapping [USE_ID_MAPPING]
                        Whether to use id-based mapping (default is nearest
                        neighbour).
--project-dir [PROJECT_DIR]
                        Project dir to use for femzip.
--config-file [CONFIG_FILE]
                        Path to the config file.
--parameter-file [PARAMETER_FILE]
                        Path to the parameter file.
--n-processes [N_PROCESSES]
                        Number of processes to use (default: max-1).

It is important to specify a --reference-run for the analysis. If the reference run is contained within the rest of the simulation_runs, it is automatically removed from that list. simulation_runs can be either tagged individually or by using placeholders for entire directories (e.g. '*.fz') and subdirectories (e.g. '/**/*.fz').

Warning

Every run clears the project directory entirely!

Example

$ python -m lasso.diffcrash.run \
$    --reference-run ./runs/run_1.fz \ 
$    --crash-code dyna \
$    --project-dir diffcrash_project \  
$    ./runs/*.fz


==== D I F F C R A S H ==== 

an open lasso utility script

[/] diffcrash-home  : /sw/Linux/diffcrash/V6.1.24
[/] project-dir     : test-example-project
[/] crash-code      : dyna
[/] reference-run   : bus/run_1.fz
[/] use-id-mapping  : False
[/] # simul.-files  : 37
[/] # excluded files: 0
[/] config-file     : None
[!] Config file missing. Consider specifying the path with the option '--config-file'.
[/] parameter-file  : None
[!] Parameter file missing. Consider specifying the path with the option '--parameter-file'.
[/] n-processes     : 4

---- Running Routines ----   

[✔] Running Setup ... done in 3.88s
[✔] Running Imports ... done in 58.20s   
[✔] Running Math ... done in 56.22s   
[✔] Running Export ... done in 2.22s   
[✔] Running Matrix ... done in 9.78s   
[✔] Running Eigen ... done in 0.46s   
[✔] Running Merge ... done in 23.29s