LEAP is a Computational Fluid Dynamics (CFD) code developed by Prof. Mohamed Houssem Kasbaoui at Arizona State University. LEAP is designed to deliver robust and efficient algorithms for CFD applications involving laminar and turbulent single-phase/multiphase flows. -- https://kasbaoui.bitbucket.io
Find us on…
LEAP is a state-of-the-art, highly scalable, Computational Fluid Dynamics (CFD) code developed by Prof. Mohamed Houssem Kasbaoui at Arizona State University. LEAP is designed to deliver robust and efficient algorithms for CFD applications involving laminar and turbulent single-phase/multiphase flows. The code is built bottom-up to leverage MPI parallelization and modern FORTRAN features (Object Oriented Programing, data polymorphism and code-reusability).
As a modern CFD package, LEAP offers the following advantages:
Flexible, Reusable, and Extendable Data Structures: Data structures are implemented with reusability and scalability in mind thanks to the new polymorphism and object oriented capabilities of Fortran 2008 and 2018. The two workhorses in LEAP are Eulerian and Lagrangian data types. These and other data types make it easy to build solvers in LEAP.
eulerian_obj
) represents field quantities such as velocity field, pressure field, etc. The module leapEulerian defines a suite of data types and procedures that allows one to very easily define and work with new fields. Thanks to Object Oriented Fortran and polymorphism, things like allocation and parallel communications (for ghostcells and others) happen under the hood.lagrangian_obj
) represents lagrangian quantities such as tracers, inertial particles, immersed boundary markers. Abstract derived types are defined in the module leapLagrangian and can be easily extended to represent whatever Lagrangian quantity one desires. Here too, Object Oriented Fortran and polymorphism means that defining new types is made very easy with things like parallel communications and I/O directly inherited from the base type. Users can focus on implementing their physics, and worry less about the geeky MPI details or recoding basic procedures like interpolations.solver_obj
) allows the user to easily define a new solver, implement any PDE using the provided finite-difference schemes (up to 6th order), advance the solution in time, and perform IO in single or double precision. There is no limit on how many different solvers can be implemented or any requirement on the equations to be solved.High-Performance and Portrable I/O:
By default, LEAP reads/writes files in the HDF5 file format, the gold standard for open-source, high-performance, and portable file format in scientific computing. HDF5 files can be explored using tools such as h5dump
provided with HDF5 distributions. LEAP uses the H5HUT library to write The HDF5 files. These files can also be ingested by popular scientific visualization software such as VisIt or ParaView. In addition, LEAP can output files in the SILO file format. This is the preferred I/O driver for files intended for visualization using VisIt/ParaView.Additonal I/O drivers can be implmented upon request.
Solvers currently implemented in LEAP:
leap/inputs
directory.In addition to providing the sovlers above, LEAP can be called as an external library to provide the following features:
Refer to the User Guide for additional information.
LEAP is currently under development. More features will be made available over time.
LEAP users are kindly asked to cite the following publication in their academic work:
LEAP requires a compiler compatible with Fortran 2008, such as Intel Fortran Compiler 18x or Gfortran 8x and higher.
The following libraries are required to run LEAP:
Refer to the WIKI for instructions on how to compile the prerequisite libraries and LEAP.
Documentation and instructions on how to use LEAP are available here: https://kasbaoui.bitbucket.io/leap.
Documentation is generated by the automatic documentation generator FORD. To generate a local copy, navigate to the doc folder and create the documentation as following:
#!bash
cd /PATH/TO/LEAP/doc
ford leap-doc.md
You will find the documentation under
#!bash
/PATH/TO/LEAP/doc/html/index.html
If you need suport with compiling, running, developing applications based on LEAP, or if you need to report bugs contact Prof. Kasbaoui (houssem.kasbaoui@asu.edu).
LEAP is distributed open-source under GPLv3 license. See LICENSE.md.