Scrambler
1
|
Module for solving Poisson's equation. More...
Public Member Functions | |
subroutine | PoissonVectorGetBoxValues (n, Info, EllipticLevelObject) |
Routine for extracting solution from lhs vector. | |
subroutine | ApplyAnalyticBC (Info, rmbc) |
Applies analytic boundary conditions where necessary. | |
subroutine | FFTSOLVE (Info) |
Initialization routines | |
subroutine | Poisson_Init (EllipticObject) |
Initializes/Reads in variables needed by Poisson Module and sets up EllipticObject. | |
Communication routines | |
subroutine | PoissonPreSolveComm (n, done_solving) |
Performs communications needed before first solve. | |
subroutine | PoissonBetweenSolveComm (n, done_solving) |
Performs communication in between solves. | |
subroutine | PoissonPostSolveComm (n) |
Performs communication post solves. | |
Poisson Level Operations | |
subroutine | Poisson_Setup (n, EllipticLevelObject) |
Loops over grids setting matrix values for poisson equation. | |
subroutine | Poisson_LoadVectors (n, EllipticLevelObject) |
Loops over grids setting vector values. | |
subroutine | Poisson_UnLoadVectors (n, EllipticLevelObject) |
Loops over grids retrieving vector values. | |
subroutine | PoissonSetBC (n) |
Sets boundary values for calculating source terms. | |
subroutine | PoissonPostElliptic (n) |
Post Elliptic routines. | |
subroutine | UpdatePhiAtBoundaries (n) |
Updates phi with analytic solution at boundaries prior to solving. | |
subroutine | SelfGravCorrection (info) |
Corrects momentum and energy sources to use time centered phi. | |
Poisson Info Operations | |
subroutine | PoissonMatrixSetBoxValues (n, Info, EllipticLevelObject) |
Routine for setting up matrixboxvalues for given info structure. Matrix handle stored in EllipticLevelObjectmatrix. | |
subroutine | PoissonVectorSetBoxValues (n, Info, EllipticLevelObject) |
Routine for setting up lhs and rhs vectors for given info structure. | |
subroutine | PoissonGetMaxSpeed (Info) |
Self Gravity Source routine. | |
subroutine | ApplyPoissonPhysicalBC (Info, rmbc) |
Applies physical boundary conditions where necessary. | |
Miscellaneous routines | |
subroutine | Checkmthbc (mthbc) |
subroutine | MirrorPhiGhost (dim, edge, start, nCells, Info) |
subroutine | SelfGravCorrections (n) |
Public Attributes | |
INTEGER, dimension(:,:), allocatable | offsets |
INTEGER, dimension(:), allocatable | StencilValues |
INTEGER, dimension(:), allocatable | iEntries |
INTEGER, dimension(3, 2) | Poisson_mthbc |
REAL(KIND=qPREC) | PoissonScale |
INTEGER, parameter, public | ZEROSLOPE = 0 |
INTEGER, parameter, public | REFLECTING = 1 |
INTEGER, parameter, public | PERIODIC = 2 |
INTEGER, parameter, public | MULTIPOLE_EXPANSION = 3 |
INTEGER, parameter, public | USERSPECIFIED = 4 |
LOGICAL, dimension(3) | lPoissonPeriodic |
INTEGER | UpdateFreq = 1 |
Module for solving Poisson's equation.
Definition at line 39 of file poisson.f90.
subroutine Poisson_Init | ( | TYPE(EllipticObjectDef) | EllipticObject | ) |
Initializes/Reads in variables needed by Poisson Module and sets up EllipticObject.
Definition at line 66 of file poisson.f90.
subroutine PoissonPreSolveComm | ( | INTEGER | n, |
LOGICAL | done_solving | ||
) |
Performs communications needed before first solve.
n | level |
done_solving | Logical flag that determines whether a solve needs to be performed |
Definition at line 138 of file poisson.f90.
subroutine PoissonBetweenSolveComm | ( | INTEGER | n, |
LOGICAL | done_solving | ||
) |
Performs communication in between solves.
n | level |
done_solving | Logical flag that determines whether a solve needs to be performed |
Definition at line 148 of file poisson.f90.
subroutine PoissonPostSolveComm | ( | INTEGER | n | ) |
subroutine Poisson_Setup | ( | INTEGER | n, |
TYPE(EllipticLevelObjectDef) | EllipticLevelObject | ||
) |
Loops over grids setting matrix values for poisson equation.
n | level |
EllipticLevelObject | handle to Elliptic Level Object |
Definition at line 176 of file poisson.f90.
subroutine Poisson_LoadVectors | ( | INTEGER | n, |
TYPE(EllipticLevelObjectDef) | EllipticLevelObject | ||
) |
Loops over grids setting vector values.
n | level |
EllipticLevelObject | handle to Elliptic Level Object |
Definition at line 192 of file poisson.f90.
subroutine Poisson_UnLoadVectors | ( | INTEGER | n, |
TYPE(EllipticLevelObjectDef) | EllipticLevelObject | ||
) |
Loops over grids retrieving vector values.
n | level |
EllipticLevelObject | handle to Elliptic Level Object |
Definition at line 208 of file poisson.f90.
subroutine PoissonSetBC | ( | INTEGER | n | ) |
Sets boundary values for calculating source terms.
n | level |
Definition at line 225 of file poisson.f90.
subroutine PoissonPostElliptic | ( | INTEGER | n | ) |
subroutine UpdatePhiAtBoundaries | ( | INTEGER | n | ) |
Updates phi with analytic solution at boundaries prior to solving.
n | level |
Definition at line 269 of file poisson.f90.
subroutine SelfGravCorrection | ( | TYPE(InfoDef) | info | ) |
Corrects momentum and energy sources to use time centered phi.
Definition at line 282 of file poisson.f90.
subroutine PoissonMatrixSetBoxValues | ( | INTEGER | n, |
TYPE(InfoDef) | Info, | ||
TYPE(EllipticLevelObjectDef) | EllipticLevelObject | ||
) |
Routine for setting up matrixboxvalues for given info structure. Matrix handle stored in EllipticLevelObjectmatrix.
n | level |
Info | Info object |
EllipticLevelObject | Elliptic Level Object |
Definition at line 471 of file poisson.f90.
subroutine PoissonVectorSetBoxValues | ( | INTEGER | n, |
TYPE(InfoDef) | Info, | ||
TYPE(EllipticLevelObjectDef) | EllipticLevelObject | ||
) |
Routine for setting up lhs and rhs vectors for given info structure.
n | level |
Info | Info object |
EllipticLevelObject | Elliptic Level Object |
Vector handles stored in EllipticLevelObjectSolutionVector and EllipticLevelObjectVariableVector
Definition at line 545 of file poisson.f90.
subroutine PoissonVectorGetBoxValues | ( | INTEGER | n, |
TYPE(InfoDef) | Info, | ||
TYPE(EllipticLevelObjectDef) | EllipticLevelObject | ||
) |
Routine for extracting solution from lhs vector.
n | level |
Info | Info object |
EllipticLevelObject | Elliptic Level Object |
Handle stored in EllipticLevelObjectSolutionVector
Definition at line 653 of file poisson.f90.
subroutine PoissonGetMaxSpeed | ( | TYPE(InfoDef) | Info | ) |
Self Gravity Source routine.
Info | Info Object |
Definition at line 688 of file poisson.f90.
subroutine ApplyAnalyticBC | ( | TYPE (InfoDef) | Info, |
INTEGER | rmbc | ||
) |
Applies analytic boundary conditions where necessary.
Info | Info object |
Definition at line 716 of file poisson.f90.
subroutine ApplyPoissonPhysicalBC | ( | TYPE (InfoDef) | Info, |
INTEGER | rmbc | ||
) |
Applies physical boundary conditions where necessary.
Info | Info object |
Definition at line 753 of file poisson.f90.
subroutine Checkmthbc | ( | INTEGER, dimension(:,:) | mthbc | ) |
Definition at line 784 of file poisson.f90.
subroutine MirrorPhiGhost | ( | INTEGER | dim, |
INTEGER | edge, | ||
INTEGER | start, | ||
INTEGER | nCells, | ||
TYPE(InfoDef) | Info | ||
) |
Definition at line 811 of file poisson.f90.
subroutine SelfGravCorrections | ( | INTEGER | n | ) |
Definition at line 843 of file poisson.f90.
subroutine FFTSOLVE | ( | TYPE(InfoDef) | Info | ) |
Definition at line 859 of file poisson.f90.
INTEGER, dimension(:,:), allocatable offsets |
Definition at line 48 of file poisson.f90.
INTEGER, dimension(:), allocatable StencilValues |
Definition at line 49 of file poisson.f90.
INTEGER, dimension(:), allocatable iEntries |
Definition at line 50 of file poisson.f90.
INTEGER, dimension(3,2) Poisson_mthbc |
Definition at line 51 of file poisson.f90.
REAL(KIND=qPREC) PoissonScale |
Definition at line 52 of file poisson.f90.
INTEGER, parameter, public ZEROSLOPE = 0 |
Definition at line 53 of file poisson.f90.
INTEGER, parameter, public REFLECTING = 1 |
Definition at line 53 of file poisson.f90.
INTEGER, parameter, public PERIODIC = 2 |
Definition at line 53 of file poisson.f90.
INTEGER, parameter, public MULTIPOLE_EXPANSION = 3 |
Definition at line 53 of file poisson.f90.
INTEGER, parameter, public USERSPECIFIED = 4 |
Definition at line 53 of file poisson.f90.
LOGICAL, dimension(3) lPoissonPeriodic |
Definition at line 54 of file poisson.f90.
INTEGER UpdateFreq = 1 |
Definition at line 55 of file poisson.f90.