Periodic Poisson solver using Henry FFT filter.
More...
#include <ParisPeriodic.hpp>
|
| | ParisPeriodic (const int n[3], const double lo[3], const double hi[3], const int m[3], const int id[3]) |
| |
| size_t | bytes () const |
| |
| void | solve (size_t bytes, double *density, double *potential) const |
| |
Periodic Poisson solver using Henry FFT filter.
◆ ParisPeriodic()
| ParisPeriodic::ParisPeriodic |
( |
const int |
n[3], |
|
|
const double |
lo[3], |
|
|
const double |
hi[3], |
|
|
const int |
m[3], |
|
|
const int |
id[3] |
|
) |
| |
- Parameters
-
| [in] | n[3] | { Global number of cells in each dimension, without ghost cells. } |
| [in] | lo[3] | { Physical location of the global lower bound of each dimension. } |
| [in] | hi[3] | { Physical location of the global upper bound of each dimension, minus one grid cell. The one-cell difference is because of the periodic domain. See PotentialParis3D::Initialize for an example computation of these arguments. } |
| [in] | m[3] | { Number of MPI tasks in each dimension. } |
| [in] | id[3] | { Coordinates of this MPI task, starting at {0,0,0}. } |
◆ bytes()
| size_t ParisPeriodic::bytes |
( |
| ) |
const |
|
inline |
- Returns
- { Number of bytes needed for array arguments for solve. }
◆ solve()
| void ParisPeriodic::solve |
( |
size_t |
bytes, |
|
|
double * |
density, |
|
|
double * |
potential |
|
) |
| const |
@detail { Solves the Poisson equation for the potential derived from the provided density. Assumes periodic boundary conditions. Assumes fields have no ghost cells. Uses a 3D FFT provided by the Henry class. }
- Parameters
-
| [in] | bytes | { Number of bytes allocated for arguments density and potential. Used to ensure that the arrays have enough extra work space. } |
| [in,out] | density | { Input density field. Modified as a work array. Must be at least bytes() bytes, likely larger than the original field. } |
| [out] | potential | { Output potential. Modified as a work array. Must be at least bytes() bytes, likely larger than the actual output field. } |
The documentation for this class was generated from the following file: