ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
erf_auxiliary::MappedFaceField< Tag > Class Template Reference

#include <ERF_AuxiliaryMappedTransport.H>

Inheritance diagram for erf_auxiliary::MappedFaceField< Tag >:
Collaboration diagram for erf_auxiliary::MappedFaceField< Tag >:

Public Member Functions

 MappedFaceField ()=default
 
 MappedFaceField (const MappedFaceField &)=delete
 
MappedFaceField & operator= (const MappedFaceField &)=delete
 
 MappedFaceField (MappedFaceField &&) noexcept=default
 
MappedFaceField & operator= (MappedFaceField &&) noexcept=default
 
void define (const amrex::BoxArray &cell_ba, const amrex::DistributionMapping &dm, const int ncomp, const int ngrow=0)
 
bool is_defined () const noexcept
 
int nComp () const noexcept
 
amrex::MultiFab & dir (const int direction)
 
const amrex::MultiFab & dir (const int direction) const
 
void setVal (const amrex::Real value)
 

Private Attributes

std::array< std::unique_ptr< amrex::MultiFab >, AMREX_SPACEDIM > m_faces {}
 
int m_ncomp {0}
 

Detailed Description

template<typename Tag>
class erf_auxiliary::MappedFaceField< Tag >

A directionally face-centered mapped-coordinate field with a semantic tag.

Constructor & Destructor Documentation

◆ MappedFaceField() [1/3]

template<typename Tag >
erf_auxiliary::MappedFaceField< Tag >::MappedFaceField ( )
default

◆ MappedFaceField() [2/3]

template<typename Tag >
erf_auxiliary::MappedFaceField< Tag >::MappedFaceField ( const MappedFaceField< Tag > &  )
delete

◆ MappedFaceField() [3/3]

template<typename Tag >
erf_auxiliary::MappedFaceField< Tag >::MappedFaceField ( MappedFaceField< Tag > &&  )
defaultnoexcept

Member Function Documentation

◆ define()

template<typename Tag >
void erf_auxiliary::MappedFaceField< Tag >::define ( const amrex::BoxArray &  cell_ba,
const amrex::DistributionMapping &  dm,
const int  ncomp,
const int  ngrow = 0 
)
inline
32  {
33  AMREX_ALWAYS_ASSERT(ncomp > 0);
34  AMREX_ALWAYS_ASSERT(ngrow >= 0);
35  m_ncomp = ncomp;
36  for (int dir = 0; dir < AMREX_SPACEDIM; ++dir) {
37  m_faces[static_cast<std::size_t>(dir)] = std::make_unique<amrex::MultiFab>(
38  amrex::convert(cell_ba, amrex::IntVect::TheDimensionVector(dir)),
39  dm, ncomp, ngrow);
40  }
41  }
AMREX_ALWAYS_ASSERT(bx.length()[2]==khi+1)
std::array< std::unique_ptr< amrex::MultiFab >, AMREX_SPACEDIM > m_faces
Definition: ERF_AuxiliaryMappedTransport.H:67
amrex::MultiFab & dir(const int direction)
Definition: ERF_AuxiliaryMappedTransport.H:46
int m_ncomp
Definition: ERF_AuxiliaryMappedTransport.H:68

Referenced by erf_auxiliary::CompletedStepFluxLedger::define(), and ERF::estTimeStep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dir() [1/2]

◆ dir() [2/2]

template<typename Tag >
const amrex::MultiFab& erf_auxiliary::MappedFaceField< Tag >::dir ( const int  direction) const
inline
54  {
55  AMREX_ALWAYS_ASSERT(direction >= 0 && direction < AMREX_SPACEDIM);
56  AMREX_ALWAYS_ASSERT(m_faces[static_cast<std::size_t>(direction)] != nullptr);
57  return *m_faces[static_cast<std::size_t>(direction)];
58  }
Here is the call graph for this function:

◆ is_defined()

◆ nComp()

◆ operator=() [1/2]

template<typename Tag >
MappedFaceField& erf_auxiliary::MappedFaceField< Tag >::operator= ( const MappedFaceField< Tag > &  )
delete

◆ operator=() [2/2]

template<typename Tag >
MappedFaceField& erf_auxiliary::MappedFaceField< Tag >::operator= ( MappedFaceField< Tag > &&  )
defaultnoexcept

◆ setVal()

template<typename Tag >
void erf_auxiliary::MappedFaceField< Tag >::setVal ( const amrex::Real  value)
inline
61  {
63  for (auto& face : m_faces) { face->setVal(value); }
64  }
bool is_defined() const noexcept
Definition: ERF_AuxiliaryMappedTransport.H:43

Referenced by erf_auxiliary::CompletedStepFluxLedger::begin_stage(), erf_auxiliary::CompletedStepFluxLedger::define(), and erf_auxiliary::CompletedStepFluxLedger::discard_step().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_faces

template<typename Tag >
std::array<std::unique_ptr<amrex::MultiFab>, AMREX_SPACEDIM> erf_auxiliary::MappedFaceField< Tag >::m_faces {}
private

◆ m_ncomp


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