Mushy Layer  1.0
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
DarcyBrinkmanOp Class Reference

Operator for solving the Darcy-Brinkman equation. More...

#include <DarcyBrinkmanOp.H>

Inheritance diagram for DarcyBrinkmanOp:
AMRPoissonOp LevelTGAHelmOp< LevelData< FArrayBox >, FluxBox > TGAHelmOp< T > AMRLevelOp< T > MGLevelOp< T > MGLevelOp< T > LinearOp< T > MGLevelOpObserver< T > LinearOp< T > MGLevelOpObserver< T >

Public Member Functions

void finerOperatorChanged (const MGLevelOp< LevelData< FArrayBox > > &a_operator, int a_coarseningFactor)
 
LevelData< FArrayBox > & identityCoef ()
 Returns identity coefficient data.
 
virtual void diagonalScale (LevelData< FArrayBox > &a_rhs, bool a_kappaWeighted)
 For tga stuff.
 
virtual void divideByIdentityCoef (LevelData< FArrayBox > &a_rhs)
 For tga stuff.
 
void setBCoefInterpolator (RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > &a_bCoefInterpolator)
 
LevelData< FluxBox > & BCoef ()
 Returns the B coefficient.
 
RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > BCoefInterpolator ()
 Allows access to the B coefficient interpolator.
 
void setTime (Real a_time)
 
virtual void getFlux (FluxBox &a_flux, const LevelData< FArrayBox > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
 getFlux function which matches interface to AMRPoissonOp More...
 
virtual void getFlux (FluxBox &a_flux, const LevelData< FArrayBox > &a_data, const FArrayBox &a_cCoef, const FluxBox &a_bCoef, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
 get diffusive flux
 
DarcyBrinkmanOp functions
 DarcyBrinkmanOp ()
 
virtual ~DarcyBrinkmanOp ()
 
virtual void residualI (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false)
 
virtual void preCond (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_residual)
 
virtual void applyOpI (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, bool a_homogeneous=false)
 
virtual void applyOpNoBoundary (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi)
 
virtual void setAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 For tga stuff.
 
virtual void setCoefs (const RefCountedPtr< LevelData< FArrayBox > > &a_aCoef, const RefCountedPtr< LevelData< FluxBox > > &a_bCoef, const Real &a_alpha, const Real &a_beta, const RefCountedPtr< LevelData< FArrayBox > > &a_cCoef)
 Also calls reset lambda.
 
virtual void resetLambda ()
 Should be called before the relaxation parameter is needed.
 
virtual void computeLambda ()
 Compute lambda once alpha, aCoef, beta, bCoef are defined.
 
virtual void reflux (const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_residual, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
MGLevelOp functions
virtual void restrictResidual (LevelData< FArrayBox > &a_resCoarse, LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_rhsFine)
 
- Public Member Functions inherited from AMRPoissonOp
virtual Real dx () const
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsFiner, const DisjointBoxLayout &a_gridsCoarser, const Real &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion, const int a_nComp=1)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsFiner, const Real &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion, const int a_nComp=1)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_baseBAPtr, const Real &a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion, int a_numComp=1)
 
void define (const DisjointBoxLayout &a_grids, const Real &a_dx, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion)
 
void define (const DisjointBoxLayout &a_grids, const Real &a_dx, const ProblemDomain &a_domain, BCHolder a_bc)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseBAPtr, Real a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, BCHolder a_bc)
 
virtual void residual (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false)
 
virtual void residualNF (LevelData< FArrayBox > &a_lhs, LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false)
 
virtual void applyOp (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, bool a_homogeneous=false)
 
virtual void applyOpI4 (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, bool a_homogeneous=false)
 
virtual void create (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void createCoarsened (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs, const int &a_refRat)
 
virtual void assign (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void assignLocal (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void buildCopier (Copier &a_copier, const LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void assignCopier (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs, const Copier &a_copier)
 
virtual void zeroCovered (LevelData< FArrayBox > &a_lhs, LevelData< FArrayBox > &a_rhs, const Copier &a_copier)
 
virtual Real dotProduct (const LevelData< FArrayBox > &a_1, const LevelData< FArrayBox > &a_2)
 
virtual void mDotProduct (const LevelData< FArrayBox > &a_1, const int a_sz, const LevelData< FArrayBox > a_2[], Real a_mdots[])
 
virtual void incr (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_x, Real a_scale)
 
virtual void axby (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_x, const LevelData< FArrayBox > &a_y, Real a_a, Real a_b)
 
virtual void scale (LevelData< FArrayBox > &a_lhs, const Real &a_scale)
 
virtual Real norm (const LevelData< FArrayBox > &a_x, int a_ord)
 
virtual Real localMaxNorm (const LevelData< FArrayBox > &a_x)
 
virtual void setToZero (LevelData< FArrayBox > &a_x)
 
virtual void relax (LevelData< FArrayBox > &a_e, const LevelData< FArrayBox > &a_residual, int a_iterations)
 
virtual void relaxNF (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, const LevelData< FArrayBox > &a_rhs, int a_iterations)
 
virtual void createCoarser (LevelData< FArrayBox > &a_coarse, const LevelData< FArrayBox > &a_fine, bool a_ghosted)
 
virtual void prolongIncrement (LevelData< FArrayBox > &a_phiThisLevel, const LevelData< FArrayBox > &a_correctCoarse)
 
virtual int refToCoarser ()
 
virtual void AMRResidual (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, const LevelData< FArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMRResidualNC (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMRResidualNF (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, const LevelData< FArrayBox > &a_rhs, bool a_homogeneousPhysBC)
 
virtual void AMROperator (LevelData< FArrayBox > &a_LofPhi, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, bool a_homogeneousDomBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMROperatorNC (LevelData< FArrayBox > &a_LofPhi, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMROperatorNF (LevelData< FArrayBox > &a_LofPhi, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, bool a_homogeneousBC)
 
virtual void AMRRestrict (LevelData< FArrayBox > &a_resCoarse, const LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, bool a_skip_res=false)
 
virtual void AMRRestrictS (LevelData< FArrayBox > &a_resCoarse, const LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, LevelData< FArrayBox > &a_scratch, bool a_skip_res=false)
 
virtual void AMRProlong (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection)
 
virtual void AMRProlongS (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, LevelData< FArrayBox > &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, LevelData< FArrayBox > &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRUpdateResidual (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection)
 
virtual Real AMRNorm (const LevelData< FArrayBox > &a_coarseResid, const LevelData< FArrayBox > &a_fineResid, const int &a_refRat, const int &a_ord)
 
virtual void setBC (const BCHolder &a_bc)
 
virtual void fillGrad (const LevelData< FArrayBox > &a_phi)
 
virtual void write (const LevelData< FArrayBox > *a_data, const char *a_filename)
 
 LevelTGAHelmOp ()
 
 LevelTGAHelmOp (bool a_isTimeIndependent)
 
 TGAHelmOp ()
 
 TGAHelmOp (bool a_isTimeDependent)
 
virtual void diagonalScale (LevelData< FArrayBox > &a_rhs)
 
virtual void kappaScale (LevelData< FArrayBox > &a_rhs)
 
virtual void setTime (Real a_oldTime, Real a_mu, Real a_dt)
 
bool isTimeDependent () const
 
virtual void dumpAMR (Vector< LevelData< FArrayBox > *> &a_data, string name)
 
virtual void dumpAMR (Vector< LevelData< FArrayBox > *> &a_data, string name)
 
virtual void dumpLevel (LevelData< FArrayBox > &a_data, string name)
 
virtual void dumpLevel (LevelData< FArrayBox > &a_data, string name)
 
 AMRLevelOp ()
 
 AMRLevelOp ()
 
virtual void dumpStuff (Vector< LevelData< FArrayBox > *> data, string filename)
 
virtual void dumpStuff (Vector< LevelData< FArrayBox > *> data, string filename)
 
virtual void outputLevel (LevelData< FArrayBox > &a_rhs, string &a_name)
 
virtual void outputLevel (LevelData< FArrayBox > &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< LevelData< FArrayBox > *> &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< LevelData< FArrayBox > *> &a_rhs, string &a_name)
 
virtual unsigned int orderOfAccuracy (void) const
 
virtual unsigned int orderOfAccuracy (void) const
 
virtual void enforceCFConsistency (LevelData< FArrayBox > &a_coarseCorrection, const LevelData< FArrayBox > &a_correction)
 
virtual void enforceCFConsistency (LevelData< FArrayBox > &a_coarseCorrection, const LevelData< FArrayBox > &a_correction)
 
 MGLevelOp ()
 
virtual void restrictResidual (LevelData< FArrayBox > &a_resCoarse, LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > *a_phiCoarse, const LevelData< FArrayBox > &a_rhsFine, bool homogeneous)
 
virtual void restrictR (LevelData< FArrayBox > &a_phiCoarse, const LevelData< FArrayBox > &a_phiFine)
 
void addObserver (MGLevelOpObserver< LevelData< FArrayBox > > *a_observer)
 
virtual void applyOpMg (LevelData< FArrayBox > &a_lhs, LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > *a_phiCoarse, bool a_homogeneous)
 
void removeObserver (MGLevelOpObserver< LevelData< FArrayBox > > *a_observer)
 
void addCoarserObserver (MGLevelOp< LevelData< FArrayBox > > *a_operator, int a_coarseningFactor)
 
void notifyObserversOfChange ()
 
int numObservers () const
 
virtual void clear (LevelData< FArrayBox > &a_lhs)
 
 MGLevelOpObserver ()
 
virtual void operatorChanged (const MGLevelOp< LevelData< FArrayBox > > &a_operator)
 
void setObservee (MGLevelOp< LevelData< FArrayBox > > *a_observee)
 
void clearObservee ()
 
- Public Member Functions inherited from LevelTGAHelmOp< LevelData< FArrayBox >, FluxBox >
 LevelTGAHelmOp (bool a_isTimeIndependent)
 
 TGAHelmOp ()
 
 TGAHelmOp (bool a_isTimeDependent)
 
bool isTimeDependent () const
 
- Public Member Functions inherited from AMRLevelOp< T >
virtual void dumpAMR (Vector< T *> &a_data, string name)
 
virtual void dumpLevel (T &a_data, string name)
 
virtual void dumpStuff (Vector< T *> data, string filename)
 
virtual Real AMRNorm (const T &a_coarResid, const T &a_fineResid, const int &a_refRat, const int &a_ord)
 
virtual void outputLevel (T &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< T *> &a_rhs, string &a_name)
 
virtual void AMRResidual (T &a_residual, const T &a_phiFine, const T &a_phi, const T &a_phiCoarse, const T &a_rhs, bool a_homogeneousDomBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMRResidualNF (T &a_residual, const T &a_phi, const T &a_phiCoarse, const T &a_rhs, bool a_homogeneousBC)=0
 
virtual void AMRResidualNC (T &a_residual, const T &a_phiFine, const T &a_phi, const T &a_rhs, bool a_homogeneousBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMROperator (T &a_LofPhi, const T &a_phiFine, const T &a_phi, const T &a_phiCoarse, bool a_homogeneousDomBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMROperatorNF (T &a_LofPhi, const T &a_phi, const T &a_phiCoarse, bool a_homogeneousBC)=0
 
virtual void AMROperatorNC (T &a_LofPhi, const T &a_phiFine, const T &a_phi, bool a_homogeneousBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMRRestrict (T &a_resCoarse, const T &a_residual, const T &a_correction, const T &a_coarseCorrection, bool a_skip_res)=0
 
virtual void AMRProlong (T &a_correction, const T &a_coarseCorrection)=0
 
virtual void AMRUpdateResidual (T &a_residual, const T &a_correction, const T &a_coarseCorrection)=0
 
virtual void createCoarsened (T &a_lhs, const T &a_rhs, const int &a_refRat)=0
 
virtual void buildCopier (Copier &a_copier, const T &a_lhs, const T &a_rhs)
 
virtual void assignCopier (T &a_lhs, const T &a_rhs, const Copier &a_copier)
 
virtual void zeroCovered (T &a_lhs, T &a_rhs, const Copier &a_copier)
 
virtual Real localMaxNorm (const T &a_phi)
 
virtual void AMRProlongS (T &a_correction, const T &a_coarseCorrection, T &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (T &a_correction, const T &a_coarseCorrection, T &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRRestrictS (T &a_resCoarse, const T &a_residual, const T &a_correction, const T &a_coarseCorrection, T &scratch, bool a_skip_res=false)
 
virtual void enforceCFConsistency (T &a_coarseCorrection, const T &a_correction)
 
virtual void dumpAMR (Vector< T *> &a_data, string name)
 
virtual void dumpLevel (T &a_data, string name)
 
virtual void dumpStuff (Vector< T *> data, string filename)
 
virtual Real AMRNorm (const T &a_coarResid, const T &a_fineResid, const int &a_refRat, const int &a_ord)
 
virtual void outputLevel (T &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< T *> &a_rhs, string &a_name)
 
virtual void AMRResidual (T &a_residual, const T &a_phiFine, const T &a_phi, const T &a_phiCoarse, const T &a_rhs, bool a_homogeneousDomBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMRResidualNF (T &a_residual, const T &a_phi, const T &a_phiCoarse, const T &a_rhs, bool a_homogeneousBC)=0
 
virtual void AMRResidualNC (T &a_residual, const T &a_phiFine, const T &a_phi, const T &a_rhs, bool a_homogeneousBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMROperator (T &a_LofPhi, const T &a_phiFine, const T &a_phi, const T &a_phiCoarse, bool a_homogeneousDomBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMROperatorNF (T &a_LofPhi, const T &a_phi, const T &a_phiCoarse, bool a_homogeneousBC)=0
 
virtual void AMROperatorNC (T &a_LofPhi, const T &a_phiFine, const T &a_phi, bool a_homogeneousBC, AMRLevelOp< T > *a_finerOp)=0
 
virtual void AMRRestrict (T &a_resCoarse, const T &a_residual, const T &a_correction, const T &a_coarseCorrection, bool a_skip_res)=0
 
virtual void AMRProlong (T &a_correction, const T &a_coarseCorrection)=0
 
virtual void AMRUpdateResidual (T &a_residual, const T &a_correction, const T &a_coarseCorrection)=0
 
virtual void createCoarsened (T &a_lhs, const T &a_rhs, const int &a_refRat)=0
 
virtual void buildCopier (Copier &a_copier, const T &a_lhs, const T &a_rhs)
 
virtual void assignCopier (T &a_lhs, const T &a_rhs, const Copier &a_copier)
 
virtual void zeroCovered (T &a_lhs, T &a_rhs, const Copier &a_copier)
 
virtual Real localMaxNorm (const T &a_phi)
 
virtual void AMRProlongS (T &a_correction, const T &a_coarseCorrection, T &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (T &a_correction, const T &a_coarseCorrection, T &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRRestrictS (T &a_resCoarse, const T &a_residual, const T &a_correction, const T &a_coarseCorrection, T &scratch, bool a_skip_res=false)
 
virtual void enforceCFConsistency (T &a_coarseCorrection, const T &a_correction)
 
 MGLevelOp ()
 
virtual void createCoarser (T &a_coarse, const T &a_fine, bool ghosted)=0
 
virtual void relax (T &a_correction, const T &a_residual, int a_iterations)=0
 
virtual void relaxNF (T &a_phi, const T *a_phiCoarse, const T &a_rhs, int a_iterations)
 
virtual void restrictResidual (T &a_resCoarse, T &a_phiFine, const T &a_rhsFine)=0
 
virtual void restrictResidual (T &a_resCoarse, T &a_phiFine, const T *a_phiCoarse, const T &a_rhsFine, bool homogeneous)
 
virtual void restrictR (T &a_phiCoarse, const T &a_phiFine)
 
virtual void prolongIncrement (T &a_phiThisLevel, const T &a_correctCoarse)=0
 
void addObserver (MGLevelOpObserver< T > *a_observer)
 
virtual void applyOpMg (T &a_lhs, T &a_phi, T *a_phiCoarse, bool a_homogeneous)
 
virtual void residualNF (T &a_lhs, T &a_phi, const T *a_phiCoarse, const T &a_rhs, bool a_homogeneous=false)
 
void removeObserver (MGLevelOpObserver< T > *a_observer)
 
void addCoarserObserver (MGLevelOp< T > *a_operator, int a_coarseningFactor)
 
void notifyObserversOfChange ()
 
virtual void finerOperatorChanged (const MGLevelOp< T > &a_operator, int a_coarseningFactor)
 
int numObservers () const
 
virtual void residual (T &a_lhs, const T &a_phi, const T &a_rhs, bool a_homogeneous=false)=0
 
virtual void preCond (T &a_cor, const T &a_residual)=0
 
virtual void applyOp (T &a_lhs, const T &a_phi, bool a_homogeneous=false)=0
 
virtual void create (T &a_lhs, const T &a_rhs)=0
 
virtual void clear (T &a_lhs)
 
virtual void assign (T &a_lhs, const T &a_rhs)=0
 
virtual void assignLocal (T &a_lhs, const T &a_rhs)
 
virtual Real dotProduct (const T &a_1, const T &a_2)=0
 
virtual void mDotProduct (const T &a_1, const int a_sz, const T a_2[], Real a_mdots[])
 
virtual void incr (T &a_lhs, const T &a_x, Real a_scale)=0
 
virtual void axby (T &a_lhs, const T &a_x, const T &a_y, Real a_a, Real a_b)=0
 
virtual void scale (T &a_lhs, const Real &a_scale)=0
 
virtual Real norm (const T &a_rhs, int a_ord)=0
 
virtual void setToZero (T &a_lhs)=0
 
virtual void write (const T *a, const char *filename)
 
 MGLevelOpObserver ()
 
virtual void operatorChanged (const MGLevelOp< T > &a_operator)
 
void setObservee (MGLevelOp< T > *a_observee)
 
void clearObservee ()
 

Public Attributes

RefCountedPtr< LevelData< FArrayBox > > m_aCoef
 Identity operator spatially varying coefficient storage (cell-centered) — if you change this call resetLambda()
 
RefCountedPtr< LevelData< FArrayBox > > m_cCoef
 Darcy coefficient.
 
RefCountedPtr< LevelData< FluxBox > > m_bCoef
 Laplacian operator spatially varying coefficient storage (face-centered) — if you change this call resetLambda()
 
LevelData< FArrayBoxm_lambda
 Reciprocal of the diagonal entry of the operator matrix.
 
- Public Attributes inherited from AMRPoissonOp
Real m_alpha
 
Real m_beta
 
Real m_aCoef
 
Real m_bCoef
 
Real m_dxCrse
 
Vector< IntVectm_colors
 

Protected Member Functions

virtual void levelGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 Gauss-Seidel relaxation.
 
virtual void levelMultiColor (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 Multicolor relaxation.
 
virtual void looseGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 Gauss-Seidel relaxation.
 
virtual void overlapGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 Gauss-Seidel relaxation.
 
virtual void levelGSRBLazy (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 Gauss-Seidel relaxation.
 
virtual void levelJacobi (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 jacobi relaxation
 
virtual void getFlux (FArrayBox &a_flux, const FArrayBox &a_data, const FArrayBox &a_cCoef, const FluxBox &a_bCoef, const Box &a_facebox, int a_dir, int a_ref=1) const
 computes flux over face-centered a_facebox.
 
- Protected Member Functions inherited from AMRPoissonOp
virtual void homogeneousCFInterp (LevelData< FArrayBox > &a_phif)
 
virtual void homogeneousCFInterp (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
 
virtual void singleBoxCFInterp (FArrayBox &a_phi)
 
virtual void interpOnIVSHomo (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, const int a_idir, const Side::LoHiSide a_hiorlo, const IntVectSet &a_interpIVS)
 
virtual void getFlux (FArrayBox &a_flux, const FArrayBox &a_data, const Box &a_edgebox, int a_dir, int a_ref=1) const
 
virtual void getFlux (FArrayBox &a_flux, const FArrayBox &a_data, int a_dir, int a_ref=1) const
 

Protected Attributes

LayoutData< CFIVSm_loCFIVS [SpaceDim]
 Coarse fine intvect sets.
 
LayoutData< CFIVSm_hiCFIVS [SpaceDim]
 Coarse fine intvect sets.
 
RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > m_bCoefInterpolator
 Interpolator for b coefficient data.
 
Real m_time
 Current time.
 
bool m_lambdaNeedsResetting
 Does the relaxation coefficient need to be reset?
 
- Protected Attributes inherited from AMRPoissonOp
Real m_dx
 
ProblemDomain m_domain
 
LevelDataOps< FArrayBoxm_levelOps
 
BCHolder m_bc
 
CFRegion m_cfregion
 
Copier m_exchangeCopier
 
QuadCFInterp m_interpWithCoarser
 
LevelFluxRegister m_levfluxreg
 
DisjointBoxLayout m_coarsenedMGrids
 
int m_refToCoarser
 
int m_refToFiner
 

Additional Inherited Members

- Static Public Attributes inherited from AMRPoissonOp
static int s_exchangeMode
 
static int s_relaxMode
 
static int s_maxCoarse
 
static int s_prolongType
 

Detailed Description

Operator for solving the Darcy-Brinkman equation.

Operator for solving one component of

\[ (alpha * aCoef(x) * I - beta * (cCoef(x) + Lap) ) phi = rho \]

over an AMR hierarchy.

Member Function Documentation

◆ finerOperatorChanged()

void DarcyBrinkmanOp::finerOperatorChanged ( const MGLevelOp< LevelData< FArrayBox > > &  a_operator,
int  a_coarseningFactor 
)
virtual

This is called on multigrid operators when their AMR operators are altered.

Reimplemented from AMRPoissonOp.

◆ getFlux()

virtual void DarcyBrinkmanOp::getFlux ( FluxBox a_flux,
const LevelData< FArrayBox > &  a_data,
const Box a_grid,
const DataIndex a_dit,
Real  a_scale 
)
inlinevirtual

getFlux function which matches interface to AMRPoissonOp

assumes we want to use member-data bCoef, then calls second getFlux function

Reimplemented from AMRPoissonOp.

◆ restrictResidual()

void DarcyBrinkmanOp::restrictResidual ( LevelData< FArrayBox > &  a_resCoarse,
LevelData< FArrayBox > &  a_phiFine,
const LevelData< FArrayBox > &  a_rhsFine 
)
virtual

1.6

calculate restricted residual a_resCoarse[2h] = I[h->2h] (rhsFine[h] - L[h](phiFine[h])

Reimplemented from AMRPoissonOp.

◆ setBCoefInterpolator()

void DarcyBrinkmanOp::setBCoefInterpolator ( RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > &  a_bCoefInterpolator)
inline

Sets up a model that modifies b coefficient data when the operator's time is set.

Parameters
a_bCoefInterpolatorA CoefficientInterpolator that will be used to compute the b coefficient at specific times.

◆ setTime()

void DarcyBrinkmanOp::setTime ( Real  a_time)
virtual

Sets the time centering of the operator. This interpolates b coefficient data at the given time if an interpolator is set.

Reimplemented from AMRPoissonOp.


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