Skip to content

abhinavsns/openfpm

 
 

Repository files navigation

OpenFPM: A scalable open-source framework for particle and particle-mesh codes on parallel computers

OpenFPM.png

OpenFPM is an open-source software library that facilitates implementing scalable particle and hybrid particle-mesh simulation codes on heterogeneous shared-memory and distributed-memory parallel computer systems.

The library features:

  • Scalable serial and parallel data structures for heterogeneous computing systems available CPU and GPU-accelerated hardware
  • Operators for particle methods linear differential discretization, e.g. DC-PSE, SPH
  • Particle-mesh and mesh-particle interpolation schemes
  • Data structures for efficient particle methods simulations, e.g. Cell-List, Verlet-List
  • Sparse grid on CPU and GPU
  • Support for PETSc, Eigen linear algebra backends
  • Support for ODE integration operators with Boost.Numeric.Odeint
  • Level-set formulation with Algoim
  • GPU execution backends include CUDA, HIP, OpenMP, alpaka
  • ... and many others

Installation

We support MacOS, Linux and Windows subsystem for Linux.

To install please refer to the website instructions on how to build from source

Examples and documentation

Examples and documentation are available on the website, in the online Doxygen documentation and under the folder example.

Example codes include codes for discrete item-based (e.g. Lennard-Jones molecular dynamics) and continuous time and/or space simulations (e.g. Reaction-diffusion-advection equations):

  • Dam-break simulation of weakly compressible Navier-Stokes equations in SPH formulation
  • Diffusive heat conduction using sparse-grid level set formulation
  • 3D Active Fluid simulation
  • Gray-Scott reaction-system in 3D
  • Hybrid particle-mesh Vortex Method to solve incompressible Navier-Stokes equations
  • ... and others

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 60.8%
  • Cuda 17.5%
  • HTML 9.2%
  • Jupyter Notebook 4.8%
  • CMake 4.0%
  • Makefile 2.0%
  • Other 1.7%