Public Methods |
| CCProjector () |
| CCProjector (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_crseGridsPtr, const Box &a_domain, const Real a_dx, CCProjector *a_finerProj, CCProjector *a_crseProj, int a_nRefCrse, int a_level, const PhysBCUtil &a_physBC) |
| full constructor
|
| CCProjector (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_crseGridsPtr, const ProblemDomain &a_domain, const Real a_dx, CCProjector *a_finerProj, CCProjector *a_crseProj, int a_nRefCrse, int a_level, const PhysBCUtil &a_physBC) |
| full constructor
|
| ~CCProjector () |
| destructor
|
void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_crseGridsPtr, const Box &a_domain, const Real a_dx, CCProjector *a_finerProj, CCProjector *a_crseProj, int a_nRefCrse, int a_level, const PhysBCUtil &a_physBC) |
| define function
|
void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_crseGridsPtr, const ProblemDomain &a_domain, const Real a_dx, CCProjector *a_finerProj, CCProjector *a_crseProj, int a_nRefCrse, int a_level, const PhysBCUtil &a_physBC) |
| define function
|
void | init (const CCProjector &a_oldProj) |
| initialize new projection with data from old projection
|
void | variableSetUp () |
| define static parts
|
void | setCrseProj (CCProjector *a_crseProj, int nRefCrse) |
void | setFineProj (CCProjector *a_fineProj) |
void | limitSolverCoarsening (bool a_limitSolverCoarsening) |
| set solver parameter
|
void | writeCheckpointHeader (HDF5Handle &a_handle) const |
| write checkpoint header
|
void | writeCheckpointLevel (HDF5Handle &a_handle) const |
| write this class to a checkpoint file for later restart
|
void | readCheckpointHeader (HDF5Handle &a_handle) |
| read the checkpoint header
|
void | readCheckpointLevel (HDF5Handle &a_handle) |
| read this class from a checkpoint file
|
void | levelMacProject (LevelData< FluxBox > &uEdge, Real a_oldTime, Real a_dt) |
void | LevelProject (LevelData< FArrayBox > &a_velocity, LevelData< FArrayBox > *a_crseVelPtr, const Real a_newTime, const Real a_dt) |
void | doSyncOperations (Vector< LevelData< FArrayBox > * > &a_velocity, Vector< LevelData< FArrayBox > * > &a_lambda, const Real a_newTime, const Real a_dtSync) |
void | initialLevelProject (LevelData< FArrayBox > &a_velocity, LevelData< FArrayBox > *a_crseVelPtr, const Real a_oldTime, const Real a_newTime) |
void | doInitialSyncOperations (Vector< LevelData< FArrayBox > * > &a_vel, Vector< LevelData< FArrayBox > * > &a_lambda, const Real a_newTime, const Real a_dtSync) |
void | initialVelocityProject (Vector< LevelData< FArrayBox > * > &a_velocity, bool a_homogeneousCFBC=true) |
void | initialVelocityProject (Vector< LevelData< FArrayBox > * > &a_velocity, AMRSolver &a_solver, bool a_homogeneousCFBC=true) |
void | doPostRegridOps (Vector< LevelData< FArrayBox > * > &a_velocity, Vector< LevelData< FArrayBox > * > &a_lambda, const Real a_dt, const Real a_time) |
int | getLevel () const |
| access functions
|
const ProblemDomain & | dProblem () const |
const DisjointBoxLayout & | getBoxes () const |
int | nRefCrse () const |
Real | dx () const |
Real | etaLambda () const |
| returns coefficient for volume-discrepancy solve.
|
CCProjector * | fineProjPtr () const |
CCProjector * | crseProjPtr () const |
LevelData< FArrayBox > & | phi () |
| returns MAC correction
|
const LevelData< FArrayBox > & | phi () const |
| const version of accessor
|
void | gradPhi (LevelData< FArrayBox > &a_gradPhi, int a_dir) const |
| returns edge-centered grad(phi) in direction dir
|
void | gradPhi (LevelData< FluxBox > &a_gradPhi) const |
| returns all components of grad(phi) (gradPhi should be correct size)
|
LevelData< FArrayBox > & | Pi () |
| returns level-projection pressure
|
void | gradPi (LevelData< FArrayBox > &a_gradPi, int a_dir) const |
| returns grad(pi) in direction dir
|
void | gradPi (LevelData< FArrayBox > &a_gradPi) const |
LevelData< FArrayBox > & | eSync () |
| returns synchronization correction
|
const LevelData< FArrayBox > & | eSync () const |
| returns synchronization correction (const version)
|
void | grad_eSync (LevelData< FArrayBox > &a_grad_eSync, int a_dir) const |
| returns cell-centered grad(eSync) (composite gradient)
|
void | grad_eSync (LevelData< FArrayBox > &a_grad_eSync) const |
| returns cell-centered G^{comp}(eSync)
|
LevelData< FArrayBox > & | eLambda () |
| returns volume-discrepancy correction
|
const LevelData< FArrayBox > & | eLambda () const |
| returns volume-discrepancy correction (const version)
|
void | grad_eLambda (LevelData< FArrayBox > &a_grad_eLambda, int a_dir) const |
| returns edge-centered grad(eLambda) in direction dir
|
LevelData< FluxBox > & | grad_eLambda () |
const LevelData< FluxBox > & | grad_eLambda () const |
bool | doSyncProjection () const |
| do sync projection?
|
bool | doMacSync () const |
| do volume discrepancy correction?
|
bool | isInitialized () const |
| has this object been completely initialized?
|
bool | doQuadInterp () const |
| use quadratic interpolation (instead of extrap) for c/f bc
|
QuadCFInterp & | quadCFInterpolator () |
| returns predefined quadratic coarse-fine interpolation object
|
bool | isFinestLevel () const |
| is this the finest level?
|
void | isFinestLevel (bool a_finest_level) |
| set whether this is the finest level
|
void | verbosity (int a_verbosity) |
| set verbosity
|
int | verbosity () const |
| returns verbosity
|
void | setPhysBC (const PhysBCUtil &a_bc) |
| sets physBCs
|
PhysBCUtil * | getPhysBCPtr () const |
Protected Methods |
void | applyMacCorrection (LevelData< FluxBox > &a_uEdge, Real CFscale) |
| returns uEdge - G(phi_mac); C/F BC is CFscale*Pi(crse)
|
void | correctCCVelocities (LevelData< FArrayBox > &a_velocity, const Real scale) const |
| vel := vel - scale*G_CC(pi)
|
void | doSyncProjection (Vector< LevelData< FArrayBox > * > &a_velocity, const Real a_newTime, const Real a_dtSync, AMRSolver &solver) |
void | initialSyncProjection (Vector< LevelData< FArrayBox > * > &a_velocity, const Real a_newTime, const Real a_dtSync, AMRSolver &a_solver) |
| perform initial sync projection
|
void | computeVDCorrection (Vector< LevelData< FArrayBox > * > &a_lambda, const Real a_newTime, const Real a_dtSync, AMRSolver &solver) |
void | applySyncCorrection (Vector< LevelData< FArrayBox > * > &a_velocity, const Real scale, LevelData< FArrayBox > *crseCorr) |
void | computeGrad_eLambda () |
| compute composite gradient of eLambda -- does this recursively
|
void | rescaleGrad_eLambda (Real a_dx_lbase) |
| rescales composite gradient of eLambda, recursively all finer levels
|
void | defineSolver (AMRSolver &a_solver, const Vector< LevelData< FArrayBox > * > &a_vel, bool a_freestreamSolver) |
void | postRestart () |
| takes care of setting ghost cell values after restarting
|
this class performs the various cell-centered projections required by the IAMR algorithm. These include the single-level operators levelMac and levelProject, as well as the multilevel sync projection and volume discrepancy solves.