#include <EBCompositeCCProjector.H>
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 | |
EBCompositeMACProjector * | m_macProjector |
bool | m_externMAC |
bool | m_subtractOffMean |
Vector< LevelData< EBFluxFAB > * > | m_macVelo |
Vector< LevelData< EBFluxFAB > * > | m_macGrad |
Vector< EBLevelGrid > | m_eblg |
Vector< RefCountedPtr < EBQuadCFInterp > > | m_quadCFI |
Vector< RealVect > | m_dx |
Vector< int > | m_refRat |
int | m_numLevels |
Private Member Functions | |
EBCompositeCCProjector () | |
EBCompositeCCProjector (const EBCompositeCCProjector &a_input) | |
void | operator= (const EBCompositeCCProjector &a_input) |
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().
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
References m_macVelo.
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 | |||
) |
References EBCompositeMACProjector::getPhi(), and m_macProjector.
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().
Referenced by getPhi(), and setInitialPhi().
bool EBCompositeCCProjector::m_externMAC [protected] |
bool EBCompositeCCProjector::m_subtractOffMean [protected] |
Vector<LevelData<EBFluxFAB>* > EBCompositeCCProjector::m_macVelo [protected] |
Referenced by getMacVelocity().
Vector<LevelData<EBFluxFAB>* > EBCompositeCCProjector::m_macGrad [protected] |
Vector<EBLevelGrid> EBCompositeCCProjector::m_eblg [protected] |
Vector<RefCountedPtr<EBQuadCFInterp> > EBCompositeCCProjector::m_quadCFI [protected] |
Vector<RealVect> EBCompositeCCProjector::m_dx [protected] |
Vector<int> EBCompositeCCProjector::m_refRat [protected] |
int EBCompositeCCProjector::m_numLevels [protected] |