Alamo
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
Operator::Operator< Grid::Node > Class Referenceabstract
Inheritance diagram for Operator::Operator< Grid::Node >:
[legend]
Collaboration diagram for Operator::Operator< Grid::Node >:
[legend]

Public Member Functions

 Operator ()
 
 Operator (const amrex::Vector< amrex::Geometry > &a_geom, const amrex::Vector< amrex::BoxArray > &a_grids, const Vector< DistributionMapping > &a_dmap, const LPInfo &a_info=LPInfo(), const Vector< FabFactory< FArrayBox > const * > &a_factory={})
 
virtual ~Operator ()
 
 Operator (const Operator &)=delete
 
 Operator (Operator &&)=delete
 
Operatoroperator= (const Operator &)=delete
 
Operatoroperator= (Operator &&)=delete
 
void define (const Vector< Geometry > &a_geom, const Vector< BoxArray > &a_grids, const Vector< DistributionMapping > &a_dmap, const LPInfo &a_info=LPInfo(), const Vector< FabFactory< FArrayBox > const * > &a_factory={})
 
const Geometry & Geom (int amr_lev, int mglev=0) const noexcept
 
void Reflux (int crse_amrlev, MultiFab &res, const MultiFab &crse_sol, const MultiFab &crse_rhs, MultiFab &fine_res, MultiFab &fine_sol, const MultiFab &fine_rhs)
 
void Apply (int amrlev, int mglev, MultiFab &out, const MultiFab &in) const
 
void SetOmega (Set::Scalar a_omega)
 
virtual void SetAverageDownCoeffs (bool)
 
void SetNormalizeDDW (bool a_normalize_ddw)
 
void RegisterNewFab (amrex::Vector< amrex::MultiFab > &input)
 
void RegisterNewFab (amrex::Vector< std::unique_ptr< amrex::MultiFab > > &input)
 
const amrex::FArrayBox & GetFab (const int num, const int amrlev, const int mglev, const amrex::MFIter &mfi) const
 
virtual void SetHomogeneous (bool)
 
virtual int getNGrow (int=0, int=0) const override final
 
virtual void solutionResidual (int amrlev, MultiFab &resid, MultiFab &x, const MultiFab &b, const MultiFab *crse_bcdata=nullptr) override final
 
virtual void correctionResidual (int amrlev, int mglev, MultiFab &resid, MultiFab &x, const MultiFab &b, BCMode bc_mode, const MultiFab *crse_bcdata=nullptr) override final
 

Static Public Member Functions

static void realFillBoundary (MultiFab &phi, const Geometry &geom)
 

Protected Member Functions

virtual void Fapply (int amrlev, int mglev, MultiFab &out, const MultiFab &in) const override=0
 
virtual void averageDownCoeffs ()=0
 
virtual void Diagonal (bool recompute=false)
 
virtual void Diagonal (int amrlev, int mglev, amrex::MultiFab &diag)
 
virtual void Fsmooth (int amrlev, int mglev, MultiFab &x, const MultiFab &b) const override
 
virtual void normalize (int amrlev, int mglev, MultiFab &mf) const override
 
virtual void reflux (int crse_amrlev, MultiFab &res, const MultiFab &crse_sol, const MultiFab &crse_rhs, MultiFab &fine_res, MultiFab &fine_sol, const MultiFab &fine_rhs) const override
 
virtual void restriction (int amrlev, int cmglev, MultiFab &crse, MultiFab &fine) const final
 
virtual void interpolation (int amrlev, int fmglev, MultiFab &fine, const MultiFab &crse) const override final
 
virtual void averageDownSolutionRHS (int camrlev, MultiFab &crse_sol, MultiFab &crse_rhs, const MultiFab &fine_sol, const MultiFab &fine_rhs) final
 
virtual void prepareForSolve () override
 
virtual bool isSingular (int amrlev) const final
 
virtual bool isBottomSingular () const final
 
virtual void applyBC (int amrlev, int mglev, MultiFab &phi, BCMode bc_mode, amrex::MLLinOp::StateMode, bool skip_fillboundary=false) const final
 
virtual void fixUpResidualMask (int amrlev, iMultiFab &resmsk) final
 

Protected Attributes

int m_num_a_fabs = 0
 
bool m_diagonal_computed = false
 
amrex::Vector< amrex::Vector< amrex::Vector< amrex::MultiFab > > > m_a_coeffs
 
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > m_diag
 
Set::Scalar m_omega = 2./3.
 
bool m_normalize_ddw = false
 

Private Attributes

bool m_is_bottom_singular = false
 
bool m_masks_built = false
 

Detailed Description

Definition at line 28 of file Operator.H.

Constructor & Destructor Documentation

◆ Operator() [1/4]

Definition at line 34 of file Operator.H.

◆ Operator() [2/4]

Operator::Operator< Grid::Node >::Operator ( const amrex::Vector< amrex::Geometry > &  a_geom,
const amrex::Vector< amrex::BoxArray > &  a_grids,
const Vector< DistributionMapping > &  a_dmap,
const LPInfo &  a_info = LPInfo(),
const Vector< FabFactory< FArrayBox > const * > &  a_factory = {} 
)

◆ ~Operator()

Definition at line 209 of file Operator.cpp.

◆ Operator() [3/4]

◆ Operator() [4/4]

Member Function Documentation

◆ Apply()

void Operator::Operator< Grid::Node >::Apply ( int  amrlev,
int  mglev,
MultiFab &  out,
const MultiFab &  in 
) const
inline

Definition at line 55 of file Operator.H.

◆ applyBC()

void Operator::Operator< Grid::Node >::applyBC ( int  amrlev,
int  mglev,
MultiFab &  phi,
BCMode  bc_mode,
amrex::MLLinOp::StateMode  ,
bool  skip_fillboundary = false 
) const
finalprotectedvirtual

Definition at line 481 of file Operator.cpp.

◆ averageDownCoeffs()

virtual void Operator::Operator< Grid::Node >::averageDownCoeffs ( )
protectedpure virtual

◆ averageDownSolutionRHS()

void Operator::Operator< Grid::Node >::averageDownSolutionRHS ( int  camrlev,
MultiFab &  crse_sol,
MultiFab &  crse_rhs,
const MultiFab &  fine_sol,
const MultiFab &  fine_rhs 
)
finalprotectedvirtual

Definition at line 462 of file Operator.cpp.

Here is the call graph for this function:

◆ correctionResidual()

void Operator::Operator< Grid::Node >::correctionResidual ( int  amrlev,
int  mglev,
MultiFab &  resid,
MultiFab &  x,
const MultiFab &  b,
BCMode  bc_mode,
const MultiFab *  crse_bcdata = nullptr 
)
finaloverridevirtual

Definition at line 677 of file Operator.cpp.

◆ define()

void Operator::Operator< Grid::Node >::define ( const Vector< Geometry > &  a_geom,
const Vector< BoxArray > &  a_grids,
const Vector< DistributionMapping > &  a_dmap,
const LPInfo &  a_info = LPInfo(),
const Vector< FabFactory< FArrayBox > const * > &  a_factory = {} 
)

Definition at line 212 of file Operator.cpp.

Here is the call graph for this function:

◆ Diagonal() [1/2]

void Operator::Operator< Grid::Node >::Diagonal ( bool  recompute = false)
protectedvirtual

Definition at line 16 of file Operator.cpp.

◆ Diagonal() [2/2]

void Operator::Operator< Grid::Node >::Diagonal ( int  amrlev,
int  mglev,
amrex::MultiFab &  diag 
)
protectedvirtual

◆ Fapply()

virtual void Operator::Operator< Grid::Node >::Fapply ( int  amrlev,
int  mglev,
MultiFab &  out,
const MultiFab &  in 
) const
overrideprotectedpure virtual

◆ fixUpResidualMask()

void Operator::Operator< Grid::Node >::fixUpResidualMask ( int  amrlev,
iMultiFab &  resmsk 
)
finalprotectedvirtual

Definition at line 257 of file Operator.cpp.

◆ Fsmooth()

void Operator::Operator< Grid::Node >::Fsmooth ( int  amrlev,
int  mglev,
MultiFab &  x,
const MultiFab &  b 
) const
overrideprotectedvirtual

Reimplemented in Operator::Diagonal.

Definition at line 88 of file Operator.cpp.

Here is the call graph for this function:

◆ Geom()

const Geometry& Operator::Operator< Grid::Node >::Geom ( int  amr_lev,
int  mglev = 0 
) const
inlinenoexcept

Definition at line 49 of file Operator.H.

◆ GetFab()

const amrex::FArrayBox & Operator::Operator< Grid::Node >::GetFab ( const int  num,
const int  amrlev,
const int  mglev,
const amrex::MFIter &  mfi 
) const

Definition at line 495 of file Operator.cpp.

Here is the call graph for this function:

◆ getNGrow()

virtual int Operator::Operator< Grid::Node >::getNGrow ( int  = 0,
int  = 0 
) const
inlinefinaloverridevirtual

Definition at line 101 of file Operator.H.

◆ interpolation()

void Operator::Operator< Grid::Node >::interpolation ( int  amrlev,
int  fmglev,
MultiFab &  fine,
const MultiFab &  crse 
) const
finaloverrideprotectedvirtual

Definition at line 392 of file Operator.cpp.

◆ isBottomSingular()

virtual bool Operator::Operator< Grid::Node >::isBottomSingular ( ) const
inlinefinalprotectedvirtual

Definition at line 97 of file Operator.H.

◆ isSingular()

virtual bool Operator::Operator< Grid::Node >::isSingular ( int  amrlev) const
inlinefinalprotectedvirtual

Definition at line 96 of file Operator.H.

◆ normalize()

void Operator::Operator< Grid::Node >::normalize ( int  amrlev,
int  mglev,
MultiFab &  mf 
) const
overrideprotectedvirtual

Reimplemented in Operator::Diagonal.

Definition at line 161 of file Operator.cpp.

Here is the call graph for this function:

◆ operator=() [1/2]

Operator& Operator::Operator< Grid::Node >::operator= ( const Operator< Grid::Node > &  )
delete

◆ operator=() [2/2]

Operator& Operator::Operator< Grid::Node >::operator= ( Operator< Grid::Node > &&  )
delete

◆ prepareForSolve()

void Operator::Operator< Grid::Node >::prepareForSolve ( )
overrideprotectedvirtual

◆ realFillBoundary()

void Operator::Operator< Grid::Node >::realFillBoundary ( MultiFab &  phi,
const Geometry &  geom 
)
static

Definition at line 476 of file Operator.cpp.

Here is the call graph for this function:

◆ Reflux()

void Operator::Operator< Grid::Node >::Reflux ( int  crse_amrlev,
MultiFab &  res,
const MultiFab &  crse_sol,
const MultiFab &  crse_rhs,
MultiFab &  fine_res,
MultiFab &  fine_sol,
const MultiFab &  fine_rhs 
)
inline

Definition at line 51 of file Operator.H.

◆ reflux()

void Operator::Operator< Grid::Node >::reflux ( int  crse_amrlev,
MultiFab &  res,
const MultiFab &  crse_sol,
const MultiFab &  crse_rhs,
MultiFab &  fine_res,
MultiFab &  fine_sol,
const MultiFab &  fine_rhs 
) const
overrideprotectedvirtual

Reimplemented in Operator::Diagonal.

Definition at line 551 of file Operator.cpp.

◆ RegisterNewFab() [1/2]

void Operator::Operator< Grid::Node >::RegisterNewFab ( amrex::Vector< amrex::MultiFab > &  input)

Definition at line 502 of file Operator.cpp.

Here is the call graph for this function:

◆ RegisterNewFab() [2/2]

void Operator::Operator< Grid::Node >::RegisterNewFab ( amrex::Vector< std::unique_ptr< amrex::MultiFab > > &  input)

Definition at line 527 of file Operator.cpp.

Here is the call graph for this function:

◆ restriction()

void Operator::Operator< Grid::Node >::restriction ( int  amrlev,
int  cmglev,
MultiFab &  crse,
MultiFab &  fine 
) const
finalprotectedvirtual

Definition at line 289 of file Operator.cpp.

◆ SetAverageDownCoeffs()

virtual void Operator::Operator< Grid::Node >::SetAverageDownCoeffs ( bool  )
inlinevirtual

◆ SetHomogeneous()

virtual void Operator::Operator< Grid::Node >::SetHomogeneous ( bool  )
inlinevirtual

◆ SetNormalizeDDW()

void Operator::Operator< Grid::Node >::SetNormalizeDDW ( bool  a_normalize_ddw)
inline

Definition at line 59 of file Operator.H.

◆ SetOmega()

void Operator::Operator< Grid::Node >::SetOmega ( Set::Scalar  a_omega)
inline

Definition at line 57 of file Operator.H.

◆ solutionResidual()

void Operator::Operator< Grid::Node >::solutionResidual ( int  amrlev,
MultiFab &  resid,
MultiFab &  x,
const MultiFab &  b,
const MultiFab *  crse_bcdata = nullptr 
)
finaloverridevirtual

Definition at line 665 of file Operator.cpp.

Field Documentation

◆ m_a_coeffs

amrex::Vector<amrex::Vector<amrex::Vector<amrex::MultiFab> > > Operator::Operator< Grid::Node >::m_a_coeffs
protected

Definition at line 121 of file Operator.H.

◆ m_diag

amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab> > > Operator::Operator< Grid::Node >::m_diag
protected

Definition at line 122 of file Operator.H.

◆ m_diagonal_computed

bool Operator::Operator< Grid::Node >::m_diagonal_computed = false
protected

Definition at line 120 of file Operator.H.

◆ m_is_bottom_singular

bool Operator::Operator< Grid::Node >::m_is_bottom_singular = false
private

Definition at line 112 of file Operator.H.

◆ m_masks_built

bool Operator::Operator< Grid::Node >::m_masks_built = false
private

Definition at line 113 of file Operator.H.

◆ m_normalize_ddw

bool Operator::Operator< Grid::Node >::m_normalize_ddw = false
protected

Definition at line 124 of file Operator.H.

◆ m_num_a_fabs

int Operator::Operator< Grid::Node >::m_num_a_fabs = 0
protected

Definition at line 119 of file Operator.H.

◆ m_omega

Set::Scalar Operator::Operator< Grid::Node >::m_omega = 2./3.
protected

Definition at line 123 of file Operator.H.


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