|
| MFHelmholtzOp ()=delete |
| Constructor. Must subsequently call define(...)
|
|
| MFHelmholtzOp (const MFHelmholtzOp &a_op)=delete |
| No copy construction allowed.
|
|
| MFHelmholtzOp (const MFHelmholtzOp &&a_op)=delete |
| No move construction allowed.
|
|
| MFHelmholtzOp (const Location::Cell a_dataLocation, const MFLevelGrid &a_mflgFine, const MFLevelGrid &a_mflg, const MFLevelGrid &a_mflgCoFi, const MFLevelGrid &a_mflgCoar, const MFLevelGrid &a_mflgCoarMG, const MFMultigridInterpolator &a_interpolator, const MFReflux &a_fluxReg, const MFCoarAve &a_coarAve, const RefCountedPtr< MFHelmholtzDomainBCFactory > &a_domainBC, const RefCountedPtr< MFHelmholtzEBBCFactory > &a_ebBC, const RefCountedPtr< MFHelmholtzJumpBCFactory > &a_jumpBcFactory, const RealVect &a_probLo, const Real &a_dx, const int &a_refToFine, const int &a_refToCoar, const bool &a_hasFine, const bool &a_hasCoar, const bool &a_hasMGObjects, const bool &a_isMGOperator, const Real &a_alpha, const Real &a_beta, const RefCountedPtr< LevelData< MFCellFAB > > &a_Acoef, const RefCountedPtr< LevelData< MFFluxFAB > > &a_Bcoef, const RefCountedPtr< LevelData< MFBaseIVFAB > > &a_BcoefIrreg, const IntVect &a_ghostPhi, const IntVect &a_ghostRhs, const int &a_jumpOrder, const int &a_jumpWeight, const Smoother &a_smoother) |
| Full constructor.
|
|
| ~MFHelmholtzOp () |
| Destructor.
|
|
MFHelmholtzOp & | operator= (const MFHelmholtzOp &a_oper)=delete |
| No copy assigment allowed.
|
|
MFHelmholtzOp & | operator= (const MFHelmholtzOp &&a_oper)=delete |
| No move assigment allowed.
|
|
void | setAcoAndBco (const RefCountedPtr< LevelData< MFCellFAB > > &a_Acoef, const RefCountedPtr< LevelData< MFFluxFAB > > &a_Bcoef, const RefCountedPtr< LevelData< MFBaseIVFAB > > &a_BcoefIrreg) |
| Update operators with new coefficients.
|
|
const RefCountedPtr< LevelData< MFCellFAB > > & | getAcoef () |
| Get the Helmholtz A-coefficient on cell centers.
|
|
const RefCountedPtr< LevelData< MFFluxFAB > > & | getBcoef () |
| Get the Helmholtz B-coefficient on faces.
|
|
const RefCountedPtr< LevelData< MFBaseIVFAB > > & | getBcoefIrreg () |
| Get the Helmholtz B-coefficient on the EB.
|
|
void | setJump (RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_jump) |
| Set the jump boundary condition.
|
|
RefCountedPtr< EBHelmholtzOp > & | getHelmOp (const int a_phase) |
| Get Helmholtz operator.
|
|
int | refToCoarser () override final |
| Return coarsening factor to coarser level (1 if there is no coarser level);.
|
|
void | setAlphaAndBeta (const Real &a_alpha, const Real &a_beta) override final |
| Set alpha and beta.
|
|
void | divideByIdentityCoef (LevelData< MFCellFAB > &a_rhs) override final |
| Divide by the a-coefficient.
|
|
void | applyOpNoBoundary (LevelData< MFCellFAB > &a_ans, const LevelData< MFCellFAB > &a_phi) override final |
| Apply operator but turn off all BCs.
|
|
void | fillGrad (const LevelData< MFCellFAB > &a_phi) override final |
| Not called, I think.
|
|
void | getFlux (MFFluxFAB &a_flux, const LevelData< MFCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale) override final |
| Fill flux.
|
|
void | residual (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs, const bool a_homogeneousPhysBc) override final |
| Compute residual on this level.
|
|
void | preCond (LevelData< MFCellFAB > &a_corr, const LevelData< MFCellFAB > &a_residual) override final |
| Precondition system before bottom solve.
|
|
void | applyOp (LevelData< MFCellFAB > &a_Lphi, const LevelData< MFCellFAB > &a_phi, bool a_homogeneousPhysBc) override final |
| Apply operator.
|
|
template<typename Duration = std::chrono::microseconds> |
Vector< long long > | computeOperatorLoads (LevelData< MFCellFAB > &a_phi, const int a_numApply) noexcept |
| Time the applyOp routine. Template parameter is std::chrono duration. E.g. std::chrono::microseconds.
|
|
void | relax (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_residual, int a_iterations) override final |
| Relaxation method. This does smoothing for the system L(correction) = residual.
|
|
void | relaxPointJacobi (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_residual, const int a_iterations) |
| Jacobi relaxation.
|
|
void | relaxGSRedBlack (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_residual, const int a_iterations) |
| Jacobi relaxation.
|
|
void | relaxGSMultiColor (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_residual, const int a_iterations) |
| Multi-colored gauss-seidel relaxation.
|
|
void | create (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) override final |
| Create method.
|
|
void | createCoarser (LevelData< MFCellFAB > &a_coarse, const LevelData< MFCellFAB > &a_fine, bool a_ghosted) override final |
| Create coarsened data.
|
|
void | createCoarsened (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs, const int &a_refRat) override final |
| Create coarsening of data holder.
|
|
void | incr (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs, Real a_scale) override final |
| Increment function.
|
|
Real | dotProduct (const LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_2) override final |
| Dot product.
|
|
void | scale (LevelData< MFCellFAB > &a_lhs, const Real &a_scale) override final |
| Scale function.
|
|
void | setToZero (LevelData< MFCellFAB > &a_lhs) override final |
| Set to zero.
|
|
void | assign (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) override final |
| Assignment fucntion.
|
|
void | assignCopier (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs, const Copier &a_copier) override final |
| Assign lhs.
|
|
void | assignLocal (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) override final |
| Local assignment function.
|
|
void | buildCopier (Copier &a_copier, const LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) override |
| Build copier.
|
|
Real | norm (const LevelData< MFCellFAB > &a_lhs, int a_order) override final |
| Compute solution norm.
|
|
void | axby (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_x, const LevelData< MFCellFAB > &a_y, const Real a_a, const Real a_b) override final |
| Set a_lhs = a*x + b*y.
|
|
void | restrictResidual (LevelData< MFCellFAB > &a_resCoar, LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs) override final |
| Restrict residual onto coarse level.
|
|
void | prolongIncrement (LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_correctCoarse) override final |
| Prolongation method.
|
|
void | AMRUpdateResidual (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection) override final |
| Update AMR residual.
|
|
void | AMRRestrict (LevelData< MFCellFAB > &a_residualCoarse, const LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection, bool a_skip_res) override final |
| Restrict residual.
|
|
void | AMRProlong (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection) override final |
| Prolongation onto AMR level.
|
|
void | AMRResidual (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoar, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) override final |
| Compute residual on this level. AMR version.
|
|
void | AMRResidualNF (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoar, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneousPhysBC) override final |
| Compute AMR residual on finest AMR level.
|
|
void | AMRResidualNC (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) override final |
| Compute AMR residual on coarsest.
|
|
void | AMROperatorNF (LevelData< MFCellFAB > &a_Lphi, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoar, bool a_homogeneousPhysBC) override final |
| Apply the AMR operator, i.e. compute L(phi) in an AMR context, assuming no finer levels.
|
|
void | AMROperatorNC (LevelData< MFCellFAB > &a_Lphi, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoar, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) override final |
| Apply the AMR operator, i.e. compute L(phi) in an AMR context, assuming no coarser AMR levels.
|
|