Introduction to PeriLab

Presentation link

Christian WillbergORCID Symbol, Jan-Timo HesseORCID Symbol

2nd Peridynamics Day, August 20th, 2024, Braunschweig

Presentation URL: https://perihub.github.io/Presentations/PDDAY_2024
transparent

Motivation Peridynamics (PD)

  • alternative to classcical continuum mechanics
  • PD integral equation
  • focus material modeling and crack propagation no continuity for the displacement

  • Bond based
  • Ordinary state-based
  • Correspondence
  • Bond associated correspondence

  • Bond based
  • Ordinary state-based
  • Correspondence
  • Bond associated correspondence

Correspondence

CM Solving the PDE

  • 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 Solving the integral - Material point method

Advantages

  • fast to implement
  • cracks are easy to include
  • discretization

Diadvantages

  • convergence is lower
  • surfaces are not known

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 hour
Build time ~10 minutes < 2 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> 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 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

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

Upcomming

  • Coupled PD-FEM
  • Axissymmetric
  • New solver
  • ...

Thank you

Christian Willberg: Magdeburg-Stendal University of Applied Sciences & German Aerospace Center; christian.willberg@h2.de

Co - Developer
Jan-Timo Hesse: German Aerospace Center; jan-timo.hesse@dlr.de

- not the typical computational engineering presentation - algorithms are impresive, but we asked ourself, why so few algorithms reach the productive phase - are our results in paper realy reproducible? - We discuss all the time about fast algorithms and run time but -> next slide

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

- modern language allows packaging - 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