Hipace
|
This class handles functions and data to perform transverse Fourier-based Poisson solves. More...
#include <FFTPoissonSolverPeriodic.H>
Public Member Functions | |
FFTPoissonSolverPeriodic (amrex::BoxArray const &realspace_ba, amrex::DistributionMapping const &dm, amrex::Geometry const &gm) | |
virtual | ~FFTPoissonSolverPeriodic () override final |
virtual void | define (amrex::BoxArray const &realspace_ba, amrex::DistributionMapping const &dm, amrex::Geometry const &gm) override final |
Define real space and spectral space boxes and multifabs, multiplier coefficients inv_k2 to solve Poisson equation and FFT plans. Currently only works with a single box, i.e., serial FFT. More... | |
virtual void | SolvePoissonEquation (amrex::MultiFab &lhs_mf) override final |
![]() | |
FFTPoissonSolver ()=default | |
virtual | ~FFTPoissonSolver ()=0 |
amrex::MultiFab & | StagingArea () |
Private Attributes | |
SpectralField | m_tmpSpectralField |
amrex::MultiFab | m_inv_k2 |
AnyFFT::FFTplans | m_forward_plan |
AnyFFT::FFTplans | m_backward_plan |
Additional Inherited Members | |
![]() | |
amrex::BoxArray | m_spectralspace_ba |
amrex::MultiFab | m_stagingArea |
This class handles functions and data to perform transverse Fourier-based Poisson solves.
For a given source S, it solves equation Laplacian(F) = S and returns F. Once an instance is created, a typical use consists in:
FFTPoissonSolverPeriodic::FFTPoissonSolverPeriodic | ( | amrex::BoxArray const & | realspace_ba, |
amrex::DistributionMapping const & | dm, | ||
amrex::Geometry const & | gm | ||
) |
Constructor
|
inlinefinaloverridevirtual |
virtual destructor
|
finaloverridevirtual |
Define real space and spectral space boxes and multifabs, multiplier coefficients inv_k2 to solve Poisson equation and FFT plans. Currently only works with a single box, i.e., serial FFT.
[in] | realspace_ba | BoxArray on which the FFT is executed. |
[in] | dm | DistributionMapping for the BoxArray. |
[in] | gm | Geometry, contains the box dimensions. |
Implements FFTPoissonSolver.
|
finaloverridevirtual |
Solve Poisson equation. The source term must be stored in the staging area m_stagingArea prior to this call.
[in] | lhs_mf | Destination array, where the result is stored. |
Implements FFTPoissonSolver.
|
private |
|
private |
FFT plans
|
private |
Multifab containing 1/(kx^2 + ky^2), to solve Poisson equation.
|
private |
Spectral fields, contains (complex) field in Fourier space