EBCompositeCCProjector Class Reference

#include <EBCompositeCCProjector.H>

Collaboration diagram for EBCompositeCCProjector:

Collaboration graph
[legend]

List of all members.


Detailed Description

Projection to take out pure gradient component of a face-centered vector field u which lives on an AMR Hierarchy. \ u-= Grad(Lapl^-1 (Div(u))) This is done as interface to the composite 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))))

Public Member Functions

 ~EBCompositeCCProjector ()
 EBCompositeCCProjector (const Vector< EBLevelGrid > &a_dbl, const Vector< int > &a_refRat, const Vector< RefCountedPtr< EBQuadCFInterp > > &a_quadCFI, const RealVect &a_coarsestDx, const RealVect &a_origin, const RefCountedPtr< BaseDomainBCFactory > &a_baseDomainBCVel, const RefCountedPtr< BaseDomainBCFactory > &a_baseDomainBCPhi, const RefCountedPtr< BaseEBBCFactory > &a_ebbcPhi, const bool &a_subtractOffMean, const int &a_numLevels, const int &a_verbosity, const int &a_numPreCondIters, const Real &a_time, const int &a_relaxType, const int &a_bottomSolverType, EBCompositeMACProjector *a_inputMAC=NULL)
int project (Vector< LevelData< EBCellFAB > * > &a_velocity, Vector< LevelData< EBCellFAB > * > &a_gradient, const Real &a_gradCoef=1.0, const Real &a_divuCoef=1.0, const Vector< LevelData< BaseIVFAB< Real > > * > *a_boundaryVelo=NULL)
Vector< LevelData< EBFluxFAB > * > & getMacVelocity ()
const Vector< LevelData
< EBFluxFAB > * > & 
getMacVelocity () const
void setSolverParams (int a_numSmooth, int a_itermax, int a_mgcycle, Real a_hang, Real a_tolerance, int a_verbosity=3, Real a_normThresh=1.e-12)
void gradient (Vector< LevelData< EBCellFAB > * > &a_gradient, Vector< LevelData< EBCellFAB > * > &a_phi)
void kappaDivergence (Vector< LevelData< EBCellFAB > * > &a_divu, Vector< LevelData< EBCellFAB > * > &a_velo, const Vector< LevelData< BaseIVFAB< Real > > * > *a_boundaryVelo=NULL)
 boundary velo = NULL means boundary velocity set to zero for divergence
void averageVelocityToFaces (Vector< LevelData< EBFluxFAB > * > &a_macVelo, Vector< LevelData< EBCellFAB > * > &a_velocity)
void averageFaceToCells (Vector< LevelData< EBCellFAB > * > &a_cellData, const Vector< LevelData< EBFluxFAB > * > &a_faceData)
Vector< LevelData< EBCellFAB > * > & getPhi ()
void setInitialPhi (Vector< LevelData< EBCellFAB > * > &a_phi)

Protected Attributes

EBCompositeMACProjectorm_macProjector
bool m_externMAC
bool m_subtractOffMean
Vector< LevelData< EBFluxFAB > * > m_macVelo
Vector< LevelData< EBFluxFAB > * > m_macGrad
Vector< EBLevelGridm_eblg
Vector< RefCountedPtr
< EBQuadCFInterp > > 
m_quadCFI
Vector< RealVectm_dx
Vector< int > m_refRat
int m_numLevels

Private Member Functions

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

Constructor & Destructor Documentation

EBCompositeCCProjector::~EBCompositeCCProjector (  ) 

EBCompositeCCProjector::EBCompositeCCProjector ( const Vector< EBLevelGrid > &  a_dbl,
const Vector< int > &  a_refRat,
const Vector< RefCountedPtr< EBQuadCFInterp > > &  a_quadCFI,
const RealVect a_coarsestDx,
const RealVect a_origin,
const RefCountedPtr< BaseDomainBCFactory > &  a_baseDomainBCVel,
const RefCountedPtr< BaseDomainBCFactory > &  a_baseDomainBCPhi,
const RefCountedPtr< BaseEBBCFactory > &  a_ebbcPhi,
const bool &  a_subtractOffMean,
const int &  a_numLevels,
const int &  a_verbosity,
const int &  a_numPreCondIters,
const Real a_time,
const int &  a_relaxType,
const int &  a_bottomSolverType,
EBCompositeMACProjector a_inputMAC = NULL 
)

a_dbl: AMR hierarchy of grids \ a_ebisl: Hierarchy of EBISLayouts \ a_refRat: Refinement ratios between levels. a_refRat[i] is between levels i and i+1 \ a_coarsestDomain: Computational domain at level 0\ a_coarsestDx: Grid spacing at level 0 \ a_origin: Physical location of the lower corner of the domain \ a_baseDomainBCVel : Boundary conditions for velocity \ a_baseDomainBCPhi : Boundary conditions of phi (for Lapl(phi) = div(u) solve \ a_subtractOffMean : Set this to be true if you want the mean of m_phi = zero \ a_numLevels : If data is defined on a set of levels less than the vector lengths, this is the number of defined levels. This must be less than or equal to vector length. Set to -1 if you want numlevels = vector length.***\ a_verbosity : 3 is the normal amount of verbosity. Salt to taste. \ a_preCondIters : number of iterations to do for pre-conditioning \ a_time : time for boundary conditions \ a_relaxType : 0 means point Jacobi, 1 is Gauss-Seidel. \ a_bottomSolverType: 0 for BiCGStab, 1 for EBSimpleSolver \ The embedded boundary's boundary conditions are always no-flow. \ Will define a new mac projector if you do not send in one.

EBCompositeCCProjector::EBCompositeCCProjector (  )  [inline, private]

References MayDay::Error().

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

References MayDay::Error().


Member Function Documentation

int EBCompositeCCProjector::project ( Vector< LevelData< EBCellFAB > * > &  a_velocity,
Vector< LevelData< EBCellFAB > * > &  a_gradient,
const Real a_gradCoef = 1.0,
const Real a_divuCoef = 1.0,
const Vector< LevelData< BaseIVFAB< Real > > * > *  a_boundaryVelo = NULL 
)

velocity--input and output as divergence-free gradient--output-pure gradient component of input velocity. velocity-= Grad(Lapl^-1 (Div(velocity))) gradient = Grad(Lapl^-1 (Div(velocity))). Velocity must be have spacedim components. returns m_exitStatus of AMRMultiGrid.H

Vector<LevelData<EBFluxFAB>* >& EBCompositeCCProjector::getMacVelocity (  )  [inline]

References m_macVelo.

const Vector<LevelData<EBFluxFAB>* >& EBCompositeCCProjector::getMacVelocity (  )  const [inline]

References m_macVelo.

void EBCompositeCCProjector::setSolverParams ( int  a_numSmooth,
int  a_itermax,
int  a_mgcycle,
Real  a_hang,
Real  a_tolerance,
int  a_verbosity = 3,
Real  a_normThresh = 1.e-12 
)

void EBCompositeCCProjector::gradient ( Vector< LevelData< EBCellFAB > * > &  a_gradient,
Vector< LevelData< EBCellFAB > * > &  a_phi 
)

void EBCompositeCCProjector::kappaDivergence ( Vector< LevelData< EBCellFAB > * > &  a_divu,
Vector< LevelData< EBCellFAB > * > &  a_velo,
const Vector< LevelData< BaseIVFAB< Real > > * > *  a_boundaryVelo = NULL 
)

boundary velo = NULL means boundary velocity set to zero for divergence

void EBCompositeCCProjector::averageVelocityToFaces ( Vector< LevelData< EBFluxFAB > * > &  a_macVelo,
Vector< LevelData< EBCellFAB > * > &  a_velocity 
)

void EBCompositeCCProjector::averageFaceToCells ( Vector< LevelData< EBCellFAB > * > &  a_cellData,
const Vector< LevelData< EBFluxFAB > * > &  a_faceData 
)

Vector<LevelData<EBCellFAB>* >& EBCompositeCCProjector::getPhi (  )  [inline]

void EBCompositeCCProjector::setInitialPhi ( Vector< LevelData< EBCellFAB > * > &  a_phi  )  [inline]

Provide an initial guess for phi with this function, otherwise phi=0 for init.

References m_macProjector, and EBCompositeMACProjector::setInitialPhi().

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

References MayDay::Error().


Member Data Documentation

Referenced by getPhi(), and setInitialPhi().

Referenced by getMacVelocity().


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

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