PSD: Parallel Finite Element Solver for Continuum Dynamics
PSD: Parallel Finite Element Solver for Continuum Dynamics - Published in JOSS (2026)
Science Score: 87.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 2 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: sciencedirect.com, springer.com -
○Academic email domains
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Repository
Massively parallel FEM solvers for soil/structure/soild dynamics
Basic Info
- Host: GitHub
- Owner: mohd-afeef-badri
- License: apache-2.0
- Language: C++
- Default Branch: main
- Homepage: https://mohd-afeef-badri.github.io/psd/
- Size: 239 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 5
- Releases: 0
Metadata Files
Readme.MD
PSD v2.6
PSD (Parallel finite element Solver for continuum Dynamics) is a high-performance finite element solver for solid mechanics applications. Designed for large-scale simulations, PSD is capable of solving problems with billions of unknowns in both static and dynamic regimes, with support for linear and nonlinear models.
At its core, PSD uses:
It supports advanced material and fracture models, including hybrid phase-field fracture mechanics, and leverages the generalized-α time integration scheme, enabling seamless use of Newmark-β, central difference, or Hilber-Hughes-Taylor (HHT) methods.
PSD’s parallel capabilities are based on a domain decomposition approach using vectorial finite elements. It demonstrates quasi-optimal scalability and has been successfully tested on up to 24,000 cores, solving problems with over 5 billion unknowns.
A sequential version of the solver is also available and does not require PETSc.
Features
- 2D and 3D simulations
- Static solid mechanics
- Transient solid dynamics
- Hybrid phase-field fracture mechanics
- Linear and nonlinear material behaviors, including elastoplasticity with strain hardening
- High-performance parallel computing
- Generalized-α time integration
- Native support for:
.mesh(MEDIT).msh(Gmsh).med(SALOME)
- Output support:
.pvd,.vtk,.vtu(ParaView)- ASCII trace files for physical quantities
🔧 Installation
Refer to the installation guide here.
📚 Tutorials
Explore tutorials for different physics modules:
Quick Start: Typical Workflow of a PSD Simulation
PSD is a TUI (terminal user interface) based finite element solver. Parallel or sequential PSD simulations can run on Linux platforms. Command line options (flags) which user enters are used to control the PSD solver. In order to make your choice of physics, model, mesh, etc., command line options need to be typed right into the bash.
A typical PSD simulation is performed in three steps.
Step 1: Setting up the solver
Its time to set up the PSD solver. Open the terminal window at the location of the solver, i.e., $HOME/PSD/Solver. Then run the following command in the terminal.
bash
PSD_PreProcess [Options-PSD]
Via the command line options you will embed the physics within the solver. This step generates a bunch of .edp files which are native to FreeFEM and additionally prints out instructions on what to do next. You then need to open and edit couple of these files via your favourite text editor, which could be vim, gedit ,Notepad++, etc. To facilitate the edit process for your will have to go through the instructions printed on the terminal.
For example to generate a sequential 2D elasticity solver for a problem with body force and one Dirichlet border use
bash
PSD_PreProcess -dimension 2 -bodyforceconditions 1 -dirichletconditions 1
Step 2: Launching the solver
Now you are all set to run your simulation. To do so you will need to do the run the following in the terminal:
if you complied a parallel PSD version
bash
PSD_Solve -np $N Main.edp -v 0 -nw
if you complied a sequential PSD version
bash
PSD_Solve_Seq Main.edp -v 0 -nw
- In the parallel command $N is an
intvalue, i.e., number of processes that you want to use for performing the simulation in parallel. - Additional flag
-wgmay be required while launching the solver, this is in case debug mode is on.
Step 3: Result visualization Final step is to have a look at the results of the simulation. PSD can provides output results in the form of plots, finite element fields of interest, etc. ParaView's pvd, vtu, and pvtu files are used for postprocessing (see figure below). ASCII data files that to trace certain quantities of interest like reaction forces, kinetic energies, etc can also be outputted.

Contributing & Community
We welcome contributions to PSD! To ensure a smooth collaboration and maintain the high standards required for parallel FEM solvers, please follow these guidelines: - Contributing: Please read and follow CONTRIBUTING.md in order to contribute to PSD. - Community: We follow the CODEOFCONDUCT.md to ensure a welcoming and professional environment for all researchers and developers. - Issues: If you find a bug or have a feature request, please open an entry in the Issue Tracker.
Owner
- Name: Mohd Afeef Badri
- Login: mohd-afeef-badri
- Kind: user
- Location: France
- Company: CEA -- French Alternative Energies and Atomic Energy Commission
- Repositories: 1
- Profile: https://github.com/mohd-afeef-badri
Researcher at CEA - French Alternative Energies and Atomic Energy Commission
JOSS Publication
PSD: Parallel Finite Element Solver for Continuum Dynamics
Authors
Université Paris-Saclay, CEA, Service de Génie Logiciel pour la Simulation (SGLS), 91191, Gif-sur-Yvette, France
Tags
finite elements parallel computing earthquake simulation fracture mechanics HPCGitHub Events
Total
- Delete event: 20
- Pull request event: 43
- Issues event: 8
- Watch event: 4
- Issue comment event: 10
- Push event: 139
- Public event: 2
- Pull request review comment event: 2
- Pull request review event: 7
- Create event: 25
Last Year
- Delete event: 7
- Pull request event: 13
- Issues event: 2
- Issue comment event: 10
- Push event: 66
- Pull request review event: 1
- Create event: 9
Issues and Pull Requests
Last synced: 5 months ago
All Time
- Total issues: 3
- Total pull requests: 22
- Average time to close issues: 7 days
- Average time to close pull requests: about 6 hours
- Total issue authors: 1
- Total pull request authors: 4
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 17
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 13
- Average time to close issues: N/A
- Average time to close pull requests: about 6 hours
- Issue authors: 1
- Pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 9
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mohd-afeef-badri (3)
Pull Request Authors
- mohd-afeef-badri (13)
- RaniaSaadi2026 (6)
- antoinemarlot (2)
- cpp2cool (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite