Skip to content
forked from LadaF/PoisFFT

Free parallel fast Poisson solver. Requires FFTW3 and optionally PFFT.

License

Notifications You must be signed in to change notification settings

CPP-IPR/PoisFFT

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The PoisFFT library solves the Poisson equation on a uniform Cartesian grid 
using the Fast Fourier Transform. It calls the library FFTW3 and (if MPI is used) 
also PFFT.

The description is available in article

  Vladimir Fuka: PoisFFT - a free parallel fast Poisson solver, Applied Mathematics and Computation, 2015

  available online: http://dx.doi.org/10.1016/j.amc.2015.03.011 
  preprint: http://arxiv.org/abs/1409.8116

Please cite this article when using the library for your research.


The Poisson equation used is

    \Delta \phi = b
 
 where `\phi` and `b` are functions of 1, 2 or 3 spatial dimensions.


 
 
 
 
For instruction how to use the API after installation see `usage_Fortran.txt`,
`usage_C.txt` and `usage_C++`.



For examples see `testpoisson.f90`, `testpoisson.c` and `testpoisson.cc`.






The installation is done using SConstruct, a Python based build environment, if you do not have it, you must install it first. 

For compiling the library use

    scons

or 

    scons mpi=yes

in the `src` directory.

For compiling of the test programs add `test` after the above command.

If you use other compilers than GCC (gfortran, gcc, g++), add argument comp, i.e.,

    scons comp=intel

or

    scons comp=sun

For other compilers you will have to add the options in the `SConstruct` file.

If you want to disable OpenMP, use

    scons openmp=no

With MPI it is disabled automatically, but can be explicitly enabled by

    scons mpi=yes openmp=yes

for hybrid MPI/OpenMP parallelization.


About

Free parallel fast Poisson solver. Requires FFTW3 and optionally PFFT.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Fortran 91.4%
  • C 3.3%
  • Python 3.1%
  • C++ 2.2%