Alamo
Data Structures | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes | Friends
Operator::Operator< Grid::Cell > Class Referenceabstract
Inheritance diagram for Operator::Operator< Grid::Cell >:
[legend]
Collaboration diagram for Operator::Operator< Grid::Cell >:
[legend]

Data Structures

class  BndryCondLoc
 

Public Member Functions

 Operator ()
 
virtual ~Operator ()
 
 Operator (const Operator &)=delete
 
 Operator (Operator &&)=delete
 
Operatoroperator= (const Operator &)=delete
 
Operatoroperator= (Operator &&)=delete
 
void define (amrex::Vector< amrex::Geometry > a_geom, const amrex::Vector< amrex::BoxArray > &a_grids, const amrex::Vector< amrex::DistributionMapping > &a_dmap, BC::BC< Set::Scalar > &a_bc, const amrex::LPInfo &a_info=amrex::LPInfo(), const amrex::Vector< amrex::FabFactory< amrex::FArrayBox > const * > &a_factory={})
 

Protected Types

using RealTuple = std::array< amrex::Real, 2 *BL_SPACEDIM >
 
using BCTuple = std::array< amrex::BoundCond, 2 *BL_SPACEDIM >
 

Protected Member Functions

void updateSolBC (int amrlev, const amrex::MultiFab &crse_bcdata) const
 
void updateCorBC (int amrlev, const amrex::MultiFab &crse_bcdata) const
 
virtual void prepareForSolve () override
 
virtual void Fapply (int amrlev, int mglev, amrex::MultiFab &out, const amrex::MultiFab &in) const override=0
 
virtual void Fsmooth (int amrlev, int mglev, amrex::MultiFab &sol, const amrex::MultiFab &rsh, int redblack) const override=0
 
virtual void FFlux (int amrlev, const MFIter &mfi, const Array< FArrayBox *, AMREX_SPACEDIM > &flux, const FArrayBox &sol, Location loc, const int face_only=0) const override=0
 
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)
 
virtual bool isSingular (int) const final
 
virtual bool isBottomSingular () const final
 
virtual amrex::Real getAScalar () const final
 
virtual amrex::Real getBScalar () const final
 
virtual amrex::MultiFab const * getACoeffs (int, int) const final
 
virtual std::array< amrex::MultiFab const *, AMREX_SPACEDIM > getBCoeffs (int, int) const final
 
virtual std::unique_ptr< amrex::MLLinOp > makeNLinOp (int) const final
 
void averageDownCoeffs ()
 
void averageDownCoeffsSameAmrLevel (amrex::Vector< amrex::MultiFab > &)
 
const amrex::FArrayBox & GetFab (const int num, const int amrlev, const int mglev, const amrex::MFIter &mfi) const
 

Static Protected Member Functions

static constexpr amrex::IntVect AMREX_D_DECL (dx={AMREX_D_DECL(1, 0, 0)}, dy={AMREX_D_DECL(0, 1, 0)}, dz={AMREX_D_DECL(0, 0, 1)})
 

Protected Attributes

BC::BC< Set::Scalar > * m_bc
 
amrex::Vector< std::unique_ptr< amrex::MLMGBndry > > m_bndry_sol
 
amrex::Vector< std::unique_ptr< amrex::BndryRegister > > m_crse_sol_br
 
amrex::Vector< std::unique_ptr< amrex::MLMGBndry > > m_bndry_cor
 
amrex::Vector< std::unique_ptr< amrex::BndryRegister > > m_crse_cor_br
 
amrex::Vector< amrex::Vector< std::unique_ptr< BndryCondLoc > > > m_bcondloc
 
amrex::Vector< amrex::Vector< amrex::BndryRegister > > m_undrrelxr
 
amrex::Vector< amrex::Vector< std::array< amrex::MultiMask, 2 *AMREX_SPACEDIM > > > m_maskvals
 

Private Attributes

int m_num_a_fabs = 0
 
amrex::Vector< amrex::Vector< amrex::Vector< amrex::MultiFab > > > m_a_coeffs
 

Friends

class MLMG
 
class MLCGSolver
 

Detailed Description

Definition at line 137 of file Operator.H.

Member Typedef Documentation

◆ BCTuple

using Operator::Operator< Grid::Cell >::BCTuple = std::array<amrex::BoundCond,2*BL_SPACEDIM>
protected

Definition at line 175 of file Operator.H.

◆ RealTuple

using Operator::Operator< Grid::Cell >::RealTuple = std::array<amrex::Real,2*BL_SPACEDIM>
protected

Definition at line 174 of file Operator.H.

Constructor & Destructor Documentation

◆ Operator() [1/3]

Definition at line 691 of file Operator.cpp.

◆ ~Operator()

virtual Operator::Operator< Grid::Cell >::~Operator ( )
inlinevirtual

Definition at line 145 of file Operator.H.

◆ Operator() [2/3]

◆ Operator() [3/3]

Member Function Documentation

◆ AMREX_D_DECL()

static constexpr amrex::IntVect Operator::Operator< Grid::Cell >::AMREX_D_DECL ( dx  = {AMREX_D_DECL(1, 0, 0)},
dy  = {AMREX_D_DECL(0, 1, 0)},
dz  = {AMREX_D_DECL(0, 0, 1)} 
)
staticconstexprprotected

◆ averageDownCoeffs()

void Operator::Operator< Grid::Cell >::averageDownCoeffs ( )
protected

Definition at line 750 of file Operator.cpp.

◆ averageDownCoeffsSameAmrLevel()

void Operator::Operator< Grid::Cell >::averageDownCoeffsSameAmrLevel ( amrex::Vector< amrex::MultiFab > &  a)
protected

Definition at line 764 of file Operator.cpp.

◆ define()

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

Definition at line 697 of file Operator.cpp.

Here is the call graph for this function:

◆ Fapply()

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

◆ FFlux()

virtual void Operator::Operator< Grid::Cell >::FFlux ( int  amrlev,
const MFIter &  mfi,
const Array< FArrayBox *, AMREX_SPACEDIM > &  flux,
const FArrayBox &  sol,
Location  loc,
const int  face_only = 0 
) const
overrideprotectedpure virtual

◆ Fsmooth()

virtual void Operator::Operator< Grid::Cell >::Fsmooth ( int  amrlev,
int  mglev,
amrex::MultiFab &  sol,
const amrex::MultiFab &  rsh,
int  redblack 
) const
overrideprotectedpure virtual

◆ getACoeffs()

virtual amrex::MultiFab const* Operator::Operator< Grid::Cell >::getACoeffs ( int  ,
int   
) const
inlinefinalprotectedvirtual

Definition at line 230 of file Operator.H.

◆ getAScalar()

virtual amrex::Real Operator::Operator< Grid::Cell >::getAScalar ( ) const
inlinefinalprotectedvirtual

Definition at line 227 of file Operator.H.

◆ getBCoeffs()

virtual std::array<amrex::MultiFab const*,AMREX_SPACEDIM> Operator::Operator< Grid::Cell >::getBCoeffs ( int  ,
int   
) const
inlinefinalprotectedvirtual

Definition at line 231 of file Operator.H.

◆ getBScalar()

virtual amrex::Real Operator::Operator< Grid::Cell >::getBScalar ( ) const
inlinefinalprotectedvirtual

Definition at line 228 of file Operator.H.

◆ GetFab() [1/2]

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

◆ GetFab() [2/2]

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

Definition at line 776 of file Operator.cpp.

◆ isBottomSingular()

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

Definition at line 225 of file Operator.H.

◆ isSingular()

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

Definition at line 224 of file Operator.H.

◆ makeNLinOp()

virtual std::unique_ptr<amrex::MLLinOp> Operator::Operator< Grid::Cell >::makeNLinOp ( int  ) const
inlinefinalprotectedvirtual

Definition at line 236 of file Operator.H.

Here is the call graph for this function:

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ prepareForSolve()

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

Definition at line 728 of file Operator.cpp.

◆ RegisterNewFab() [1/2]

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

Definition at line 783 of file Operator.cpp.

◆ RegisterNewFab() [2/2]

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

Definition at line 807 of file Operator.cpp.

◆ updateCorBC()

void Operator::Operator< Grid::Cell >::updateCorBC ( int  amrlev,
const amrex::MultiFab &  crse_bcdata 
) const
protected

◆ updateSolBC()

void Operator::Operator< Grid::Cell >::updateSolBC ( int  amrlev,
const amrex::MultiFab &  crse_bcdata 
) const
protected

Friends And Related Function Documentation

◆ MLCGSolver

friend class MLCGSolver
friend

Definition at line 142 of file Operator.H.

◆ MLMG

friend class MLMG
friend

Definition at line 141 of file Operator.H.

Field Documentation

◆ m_a_coeffs

amrex::Vector<amrex::Vector<amrex::Vector<amrex::MultiFab> > > Operator::Operator< Grid::Cell >::m_a_coeffs
private

Definition at line 251 of file Operator.H.

◆ m_bc

Definition at line 163 of file Operator.H.

◆ m_bcondloc

amrex::Vector<amrex::Vector<std::unique_ptr<BndryCondLoc> > > Operator::Operator< Grid::Cell >::m_bcondloc
protected

Definition at line 194 of file Operator.H.

◆ m_bndry_cor

amrex::Vector<std::unique_ptr<amrex::MLMGBndry> > Operator::Operator< Grid::Cell >::m_bndry_cor
protected

Definition at line 168 of file Operator.H.

◆ m_bndry_sol

amrex::Vector<std::unique_ptr<amrex::MLMGBndry> > Operator::Operator< Grid::Cell >::m_bndry_sol
protected

Definition at line 165 of file Operator.H.

◆ m_crse_cor_br

amrex::Vector<std::unique_ptr<amrex::BndryRegister> > Operator::Operator< Grid::Cell >::m_crse_cor_br
protected

Definition at line 169 of file Operator.H.

◆ m_crse_sol_br

amrex::Vector<std::unique_ptr<amrex::BndryRegister> > Operator::Operator< Grid::Cell >::m_crse_sol_br
protected

Definition at line 166 of file Operator.H.

◆ m_maskvals

amrex::Vector<amrex::Vector<std::array<amrex::MultiMask,2*AMREX_SPACEDIM> > > Operator::Operator< Grid::Cell >::m_maskvals
protected

Definition at line 200 of file Operator.H.

◆ m_num_a_fabs

int Operator::Operator< Grid::Cell >::m_num_a_fabs = 0
private

Definition at line 250 of file Operator.H.

◆ m_undrrelxr

amrex::Vector<amrex::Vector<amrex::BndryRegister> > Operator::Operator< Grid::Cell >::m_undrrelxr
mutableprotected

Definition at line 197 of file Operator.H.


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