Cholla 3.0.1-dev
Cholla - Massively parallel hydro on GPUs
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ParisPeriodic Class Reference

Periodic Poisson solver using Henry FFT filter. More...

#include <ParisPeriodic.hpp>

Public Member Functions

 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
 

Detailed Description

Periodic Poisson solver using Henry FFT filter.

Constructor & Destructor Documentation

◆ 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}. }

Member Function Documentation

◆ 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: