|
|
| 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< LevelData< BaseFab< bool > > > &a_validCells, 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 int &a_preCondSmooth, const Smoother &a_smoother, const Real &a_relaxFactor) |
| | Full constructor.
|
| |
|
virtual | ~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.
|
| |
Operator for solving multifluid Helmholtz on a grid level.
This operator should typically not be constructed directly by the user but used together with Chombo's AMRMultiGrid. In this case the user will want to constructor these operators through the factor.