Functions | Variables

gravity/selfg_fft_obc.c File Reference

Contains functions to solve Poisson's equation for self-gravity in 3D using FFTs, using OPEN BCs in all three directions. More...

Go to the source code of this file.

Functions

void selfg_fft_obc_3d (DomainS *pD)
 Only works for uniform grid, periodic boundary conditions.
void selfg_fft_3d_init (MeshS *pM)
 Initializes plans for forward/backward FFTs, and allocates memory needed by FFTW.

Variables

static struct ath_3d_fft_planfplan3d
static struct ath_3d_fft_planbplan3d
static ath_fft_data * work = NULL

Detailed Description

Contains functions to solve Poisson's equation for self-gravity in 3D using FFTs, using OPEN BCs in all three directions.

The function uses FFTW3.x, and for MPI parallel use Steve Plimpton's block decomposition routines added by N. Lemaster to /athena/fftsrc. This means to use these fns the code must be

For PERIODIC BCs, use selfg_fft() functions.

CONTAINS PUBLIC FUNCTIONS:

Definition in file selfg_fft_obc.c.


Function Documentation

void selfg_fft_3d_init ( MeshS pM  ) 

Initializes plans for forward/backward FFTs, and allocates memory needed by FFTW.

NOTE: for SMR, allocation of memory for Poisson kernel arrays Geee, Gooo, Goee, Geoo, Geoe, Goeo, Geeo, Gooe could also be done here

Definition at line 607 of file selfg_fft_obc.c.

References ath_3d_fft_malloc(), ath_3d_fft_quick_plan(), ATH_FFT_BACKWARD, ATH_FFT_FORWARD, MeshS::Domain, MeshS::DomainsPerLevel, DomainS::Grid, MeshS::NLevels, and work.

Referenced by selfg_init().

Here is the call graph for this function:

Here is the caller graph for this function:

void selfg_fft_obc_3d ( DomainS pD  ) 

Only works for uniform grid, periodic boundary conditions.

Definition at line 50 of file selfg_fft_obc.c.

References ath_3d_fft(), ath_error(), calloc_3d_array(), ConsS::d, GridS::Disp, dkx, GridS::dx1, GridS::dx2, GridS::dx3, four_pi_G, ath_3d_fft_plan::gcnt, DomainS::Grid, GridS::ie, GridS::is, GridS::je, GridS::js, GridS::ke, GridS::ks, GridS::Nx, DomainS::Nx, GridS::Phi, GridS::Phi_old, GridS::U, and work.

Here is the call graph for this function:


Variable Documentation

struct ath_3d_fft_plan * bplan3d [static]

Definition at line 36 of file selfg_fft_obc.c.

struct ath_3d_fft_plan* fplan3d [static]

Definition at line 36 of file selfg_fft_obc.c.

ath_fft_data* work = NULL [static]

Definition at line 37 of file selfg_fft_obc.c.

Referenced by selfg_fft_3d_init(), and selfg_fft_obc_3d().