EBLevelCCProjector Class Reference

#include <EBLevelCCProjector.H>

Collaboration diagram for EBLevelCCProjector:

Collaboration graph
[legend]

List of all members.


Detailed Description

Class to project a face-centered. velocity field on a level. \ u -= G (DG^-1)(D u) This is done as interface to the level mac projector. Velocity is averaged to faces then a mac projection is executed. The gradient is then averaged back to cells and subtracted off the velocity. So it really looks more like \ u -= AveFtoC(G(DG^-1)(D(AveCToF(u)))) Ghost cells over the coarse-fine interface are filled by quadradic coarse-fine interpolation. This class does not assume that the boundary conditions at the embedded boundary are no-flow.

Public Member Functions

 ~EBLevelCCProjector ()
 EBLevelCCProjector (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsCoar, const EBISLayout &a_ebisl, const EBISLayout &a_ebislCoar, const ProblemDomain &a_domain, const RealVect &a_dx, const RealVect &a_origin, const int &a_refToCoar, const bool &a_hasCoarser, const LinearSolver< LevelData< EBCellFAB > > &a_bottomSolver, const RefCountedPtr< BaseEBBCFactory > &a_ebbcPhi, const RefCountedPtr< BaseDomainBCFactory > &a_domainbcPhi, const RefCountedPtr< BaseDomainBCFactory > &a_domainbcVel, const int &a_numSmooths, const int &a_mgCycle, const int &a_maxIterations, const Real &a_tolerance, const int &a_maxDepth, const Real &a_time, const bool &a_doEBCFCrossing, const IntVect &a_nghostPhi, const IntVect &a_nghostRhs)
void project (LevelData< EBCellFAB > &a_velocity, LevelData< EBCellFAB > &a_gradient, const LevelData< EBCellFAB > &a_velCoar, const LevelData< BaseIVFAB< Real > > *const a_boundaryVel=NULL)
void kappaDivergence (LevelData< EBCellFAB > &a_divergence, LevelData< EBCellFAB > &a_velocity, const LevelData< EBCellFAB > &a_velCoar, const LevelData< BaseIVFAB< Real > > *const a_boundaryVel=NULL)

Protected Attributes

DisjointBoxLayout m_grids
EBISLayout m_ebisl
DisjointBoxLayout m_gridsCoar
EBISLayout m_ebislCoar
ProblemDomain m_domain
RealVect m_dx
EBLevelMACProjectorm_macProjector
EBQuadCFInterp m_patcher
bool m_doEBCFCrossing
int m_refToCoar
bool m_hasCoarser
IntVect m_nghostPhi
IntVect m_nghostRhs
LayoutData< IntVectSetm_cfivs

Private Member Functions

 EBLevelCCProjector ()
 EBLevelCCProjector (const EBLevelCCProjector &a_input)
void operator= (const EBLevelCCProjector &a_input)

Constructor & Destructor Documentation

EBLevelCCProjector::~EBLevelCCProjector (  ) 

EBLevelCCProjector::EBLevelCCProjector ( const DisjointBoxLayout a_grids,
const DisjointBoxLayout a_gridsCoar,
const EBISLayout a_ebisl,
const EBISLayout a_ebislCoar,
const ProblemDomain a_domain,
const RealVect a_dx,
const RealVect a_origin,
const int &  a_refToCoar,
const bool &  a_hasCoarser,
const LinearSolver< LevelData< EBCellFAB > > &  a_bottomSolver,
const RefCountedPtr< BaseEBBCFactory > &  a_ebbcPhi,
const RefCountedPtr< BaseDomainBCFactory > &  a_domainbcPhi,
const RefCountedPtr< BaseDomainBCFactory > &  a_domainbcVel,
const int &  a_numSmooths,
const int &  a_mgCycle,
const int &  a_maxIterations,
const Real a_tolerance,
const int &  a_maxDepth,
const Real a_time,
const bool &  a_doEBCFCrossing,
const IntVect a_nghostPhi,
const IntVect a_nghostRhs 
)

a_grids: boxes on the level \ a_ebisl: ebislayout at this level \ a_domain: domain of compuation at this refinement \ a_dx: grid spacing \ a_origin: physical location of the lower corner of the domain \\ a_bottomSolver: bottom solver for multigrid \ a_ebbcPhi: boundary conditions for phi at embedded boundary \ a_refToCoar: refinement ratio to next coarser AMR level \ a_hasCoaser true if there is a coarser AMR level \ a_domainbcPhi: boundary conditons for phi at domain boundary \ a_domainbcVel: boundary conditons for velocity at domain boundary \ a_numSmooths: number of smoothings that multigrid uses \ a_mgCycle: 1 for v cycle, 2 for w cycle \ a_maxIterations: max number of multigrid iterations \ a_tolerance: factor to reduce residual by in solve \ a_maxDepth: maximum multigrid depth. -1 for all the way down. \ a_time: time for boundary conditions \ a_doEBCFCrossing: true to enable EB Coarse-Fine interface code. \

EBLevelCCProjector::EBLevelCCProjector (  )  [inline, private]

References MayDay::Error().

EBLevelCCProjector::EBLevelCCProjector ( const EBLevelCCProjector a_input  )  [inline, private]

References MayDay::Error().


Member Function Documentation

void EBLevelCCProjector::project ( LevelData< EBCellFAB > &  a_velocity,
LevelData< EBCellFAB > &  a_gradient,
const LevelData< EBCellFAB > &  a_velCoar,
const LevelData< BaseIVFAB< Real > > *const   a_boundaryVel = NULL 
)

velocity--input and output as divergence-free gradient--pure gradient component of input velocity. Coarse-Fine Boundary conditions for the velocity are interpolated from the coarser level. For no-flow through eb, leave boundaryvel = NULL.

void EBLevelCCProjector::kappaDivergence ( LevelData< EBCellFAB > &  a_divergence,
LevelData< EBCellFAB > &  a_velocity,
const LevelData< EBCellFAB > &  a_velCoar,
const LevelData< BaseIVFAB< Real > > *const   a_boundaryVel = NULL 
)

void EBLevelCCProjector::operator= ( const EBLevelCCProjector a_input  )  [inline, private]

References MayDay::Error().


Member Data Documentation


The documentation for this class was generated from the following file:

Generated on Tue Apr 14 14:23:21 2009 for Chombo + EB by  doxygen 1.5.5