Hipace
Public Member Functions | Private Attributes | List of all members
FFTPoissonSolverDirichlet Class Referencefinal

This class handles functions and data to perform transverse Fourier-based Poisson solves. More...

#include <FFTPoissonSolverDirichlet.H>

Inheritance diagram for FFTPoissonSolverDirichlet:
FFTPoissonSolver

Public Member Functions

 FFTPoissonSolverDirichlet (amrex::BoxArray const &a_realspace_ba, amrex::DistributionMapping const &dm, amrex::Geometry const &gm)
 
virtual ~FFTPoissonSolverDirichlet () 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, Dirichlet eigenvalue matrix m_eigenvalue_matrix 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
 
- Public Member Functions inherited from FFTPoissonSolver
 FFTPoissonSolver ()=default
 
virtual ~FFTPoissonSolver ()=0
 
amrex::MultiFabStagingArea ()
 

Private Attributes

amrex::MultiFab m_tmpSpectralField
 
amrex::MultiFab m_eigenvalue_matrix
 
AnyDST::DSTplans m_plan
 

Additional Inherited Members

- Protected Attributes inherited from FFTPoissonSolver
amrex::BoxArray m_spectralspace_ba
 
amrex::MultiFab m_stagingArea
 

Detailed Description

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:

  1. Compute S directly in FFTPoissonSolver::m_stagingArea
  2. Call FFTPoissonSolver::SolvePoissonEquation(mf), which will solve Poisson equation with RHS in the staging area and return the LHS in mf.

Constructor & Destructor Documentation

◆ FFTPoissonSolverDirichlet()

FFTPoissonSolverDirichlet::FFTPoissonSolverDirichlet ( amrex::BoxArray const &  a_realspace_ba,
amrex::DistributionMapping const &  dm,
amrex::Geometry const &  gm 
)

Constructor

◆ ~FFTPoissonSolverDirichlet()

virtual FFTPoissonSolverDirichlet::~FFTPoissonSolverDirichlet ( )
inlinefinaloverridevirtual

virtual destructor

Member Function Documentation

◆ define()

void FFTPoissonSolverDirichlet::define ( amrex::BoxArray const &  realspace_ba,
amrex::DistributionMapping const &  dm,
amrex::Geometry const &  gm 
)
finaloverridevirtual

Define real space and spectral space boxes and multifabs, Dirichlet eigenvalue matrix m_eigenvalue_matrix to solve Poisson equation and FFT plans. Currently only works with a single box, i.e., serial FFT.

Parameters
[in]realspace_baBoxArray on which the FFT is executed.
[in]dmDistributionMapping for the BoxArray.
[in]gmGeometry, contains the box dimensions.

Implements FFTPoissonSolver.

◆ SolvePoissonEquation()

void FFTPoissonSolverDirichlet::SolvePoissonEquation ( amrex::MultiFab lhs_mf)
finaloverridevirtual

Solve Poisson equation. The source term must be stored in the staging area m_stagingArea prior to this call.

Parameters
[in]lhs_mfDestination array, where the result is stored.

Implements FFTPoissonSolver.

Member Data Documentation

◆ m_eigenvalue_matrix

amrex::MultiFab FFTPoissonSolverDirichlet::m_eigenvalue_matrix
private

Multifab eigenvalues, to solve Poisson equation with Dirichlet BC.

◆ m_plan

AnyDST::DSTplans FFTPoissonSolverDirichlet::m_plan
private

DST plans

◆ m_tmpSpectralField

amrex::MultiFab FFTPoissonSolverDirichlet::m_tmpSpectralField
private

Spectral fields, contains (real) field in Fourier space


The documentation for this class was generated from the following files: