Reducing the entry barrier of Peridynamic simulations

Presentation link

Jan-Timo HesseORCID Symbol, Christian WillbergORCID Symbol and Anna PernatiiORCID Symbol

94th Annual Meeting of the International Association of Applied Mathematics and Mechanics, March 18th to 22nd, 2024, Magdeburg

Presentation DOI: 10.5281/zenodo.10785539

transparent

Motivation Peridynamics (PD)

  • alternative to classcical continuum mechanics
  • PD integral equation
  • focus material modeling and crack propagation no continuity for the displacement
  • many applications and a lot of good research

Solving process

  • CM is typically solved using finite element method (FEM)
    • state of the art technology; many options
    • flexible
    • not able to model cracks in a consistent way
  • PD is typically solved using material point method
    • simple implementation
    • low convergences
    • not many options

PD Software

%%{init: { 'theme':'forest','quadrantChart': { 'pointLabelFontSize': '130%'} } }%% quadrantChart x-axis Low Functionalty --> High Functionalty y-axis Hard to use --> Simple to use Peridigm: [0.85, 0.2] PeriLab: [0.5, 0.8] EMU: [0.95, 0.1] PeriPy: [0.2, 0.7] PeriPyDIC: [0.2, 0.6] LAMMPS: [0.3, 0.3] PeriFlakes: [0.35, 0.4] Relation-Based Software: [0.4, 0.25] BB_PD: [0.2, 0.50] PeriDEM: [0.13, 0.3]

Problem description - Peridigm

  • many publications / algorithms, but not many codes
  • Peridigm pain
  • solution which does not run "requires" infinite time to solve a problem
%%{init: { 'theme':'forest', 'sequence': {'mirrorActors':false} } }%% flowchart TD Peridigm --- Basics Basics --- CMAke Basics --- MPI Basics --- Python Basics --- Compiler Compiler --- Fortran Compiler --- C Compiler --- C++ Peridigm --- Libraries Libraries --- Trilinos Trilinos --- Blas Trilinos --- Lapack Trilinos --- X11 Libraries --- Boost Libraries --- HDF5 Libraries --- NetCDF-C

Reducing entry barrier

Criteria Peridigm PeriLab
Distribution Manual download Package manager
Installation time ~1 day - 1 week ~1 day - 1 week
Build time ~10 minutes < 5 minutes
New material min. 5 files min. 1 file
New Input parameter Input deck / 6 files / compilation In input deck
Libraries (inst.&upd.) manual automatic
Compiling process deep knowledge no knowledge

Package manager

  • checks all dependencies
  • allows the specification of the library version
  • automatic installation in terminal
        $ julia
        julia> ]
        pkg> activate .
        pkg> up
  • as a package, if no development takes place
        $ julia
        julia> ]
        pkg> activate .
        pkg> add PeriLab

Using Macros

        if eval(Meta.parse(parse_statement)) == name
            parse_statement = m["Module Name"] * "." * specifics["Call Function"]
            function_call = eval(Meta.parse(parse_statement))
            return function_call(values...)
        end
%%{init: { 'theme':'forest', 'sequence': {'mirrorActors':false} } }%% sequenceDiagram main->>Yaml Reader: Read Yaml Reader->>Get Module Names: Find Modules Get Module Names->>Evaluate Macros: Integrate Modules Evaluate Macros->>main:Compile new code main->>Analysis: Run new code

Adding external input (1/2)

  • Peridigm steps
    • variable definition in code
    • specification of memory size for parallelization reasons
    • low flexibility
    • compiling, testing, etc.
  • PeriLab process
    • define variable in mesh input
    • no extra compiling necessary

Adding external input (2/2)

Mesh and Nodesets Input

Mesh Input
header: x y block_id volume myName
0.0   0.0   1  0.01  0.123
0.0   0.1   1  0.01  1.3
0.1   0.0   1  0.01  1.3
...
Presentation link

Examples (1/2)

Examples (2/2)

Performance

-a
-a
-d
-a
-g
-f
-g
-5
-5
-8

Conclusion

  • modern language should be preferred if new projects are started
  • Julia is a great alternative to C++ and for PhD students easier to learn and to handle
  • installation time was reduced to minutes from hours (if it even works)
  • more user focussed developement

Thank you

Jan-Timo Hesse: German Aerospace Center; jan-timo.hesse@dlr.de
Christian Willberg: Magdeburg-Stendal University of Applied Sciences & German Aerospace Center; christian.willberg@h2.de
Anna Pernatii: OvGU Magdeburg anna.pernatii@ovgu.de

* multiple theories * fast very large dof, because of crack propagation *

- compiling is a real issue - cmake, paths, etc. - manual update checking

- modern language allows packageing - all dependencies are defined in a toml - no manual checking

- Macros allows easy integration of modules - search functions; check with input; compile the final product - Only used modules are included