Proto  3.2
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
Proto::MBLevelOp< OPType, MAP, T, BCType, MEM > Class Template Reference

Level-Scope Operator. More...

#include <Proto_MBLevelOp.H>

Public Types

typedef OPType< T, MAP, MEM > OP
 
typedef BCType< T, OP::numState(), MAP, MEM, PR_CELLBC
 
typedef BoxData< T, OP::numState(), MEM > StateData
 
typedef BoxData< T, OP::numAux(), MEM > AuxData
 
typedef MBLevelBoxData< T, OP::numState(), MEM, PR_CELLLevelStateData
 
typedef MBLevelBoxData< T, OP::numAux(), MEM, PR_CELLLevelAuxData
 

Public Member Functions

spectralRadius () const
 Spectral Radius. More...
 
 MBLevelOp ()
 
 MBLevelOp (const MBLevelMap< MAP, MEM > &a_map)
 
 MBLevelOp (MBLevelOp< OPType, MAP, T, BCType, MEM > &&a_op)=default
 
MBLevelOp< OPType, MAP, T, BCType, MEM > & operator= (MBLevelOp< OPType, MAP, T, BCType, MEM > &&a_op)=default
 
void define (const MBLevelMap< MAP, MEM > &a_map)
 
void operator() (LevelStateData &a_output, const LevelStateData &a_state, T a_scale=1.0)
 
void operator() (LevelStateData &a_output, const LevelStateData &a_state, const LevelAuxData &a_aux, T a_scale=1.0)
 
OPoperator[] (MBIndex a_index)
 
const OPoperator[] (MBIndex a_index) const
 
void setDiagScale (T a_value)
 
void setFluxScale (T a_value)
 
void setTime (T a_time)
 
void setRKStage (unsigned int a_stage)
 
diagScale () const
 
fluxScale () const
 
time () const
 
unsigned int RKStage () const
 
const MBDisjointBoxLayoutlayout () const
 
const OPoperator[] (const LevelIndex &a_index) const
 
void matchFlux (LevelStateData &a_rhs, const LevelStateData &a_state)
 

Static Public Member Functions

static constexpr unsigned int numState ()
 
static constexpr unsigned int numAux ()
 
static Point ghost ()
 
static int order ()
 

Private Attributes

m_diagScale
 
m_fluxScale
 
m_time
 
unsigned int m_rkStage
 
const MBLevelMap< MAP, MEM > * m_map
 
std::vector< OPm_ops
 

Detailed Description

template<template< typename, typename, MemType > class OPType, typename MAP, typename T, template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
class Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >

Level-Scope Operator.

MBLevelOp contains the necessary tools to apply a user-defined descendent of MBBoxOp on a mapped multiblock level

Template Parameters
OpTypeA MBBoxOp class
MAPA MBMapOp class
TDatatype of the data holder (e.g. int, double, etc.)
BCTypeA LevelBC class
MEMProto::MemType of the data holder

Member Typedef Documentation

◆ OP

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
typedef OPType<T, MAP, MEM> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::OP

◆ BC

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
typedef BCType<T,OP::numState(), MAP, MEM, PR_CELL> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::BC

◆ StateData

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
typedef BoxData<T, OP::numState(), MEM> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::StateData

◆ AuxData

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
typedef BoxData<T, OP::numAux(), MEM> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::AuxData

◆ LevelStateData

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
typedef MBLevelBoxData<T, OP::numState(), MEM, PR_CELL> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::LevelStateData

◆ LevelAuxData

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
typedef MBLevelBoxData<T, OP::numAux(), MEM, PR_CELL> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::LevelAuxData

Constructor & Destructor Documentation

◆ MBLevelOp() [1/3]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::MBLevelOp ( )
inline

◆ MBLevelOp() [2/3]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::MBLevelOp ( const MBLevelMap< MAP, MEM > &  a_map)
inline

◆ MBLevelOp() [3/3]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::MBLevelOp ( MBLevelOp< OPType, MAP, T, BCType, MEM > &&  a_op)
inlinedefault

Member Function Documentation

◆ numState()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
static constexpr unsigned int Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::numState ( )
inlinestatic

◆ numAux()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
static constexpr unsigned int Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::numAux ( )
inlinestatic

◆ ghost()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
static Point Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::ghost ( )
inlinestatic

◆ order()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
static int Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::order ( )
inlinestatic

◆ spectralRadius()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::spectralRadius ( ) const
inline

◆ operator=()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
MBLevelOp<OPType, MAP, T, BCType, MEM>& Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::operator= ( MBLevelOp< OPType, MAP, T, BCType, MEM > &&  a_op)
inlinedefault

◆ define()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::define ( const MBLevelMap< MAP, MEM > &  a_map)
inline

◆ operator()() [1/2]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::operator() ( LevelStateData a_output,
const LevelStateData a_state,
a_scale = 1.0 
)
inline

◆ operator()() [2/2]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::operator() ( LevelStateData a_output,
const LevelStateData a_state,
const LevelAuxData a_aux,
a_scale = 1.0 
)
inline

◆ operator[]() [1/3]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
OPType< T, MAP, MEM > & Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::operator[] ( MBIndex  a_index)
inline

◆ operator[]() [2/3]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
const OPType< T, MAP, MEM > & Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::operator[] ( MBIndex  a_index) const
inline

◆ setDiagScale()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::setDiagScale ( a_value)
inline

◆ setFluxScale()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::setFluxScale ( a_value)
inline

◆ setTime()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::setTime ( a_time)
inline

◆ setRKStage()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType, MemType MEM>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::setRKStage ( unsigned int  a_stage)
inline

◆ diagScale()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::diagScale ( ) const
inline

◆ fluxScale()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::fluxScale ( ) const
inline

◆ time()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::time ( ) const
inline

◆ RKStage()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
unsigned int Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::RKStage ( ) const
inline

◆ layout()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
const MBDisjointBoxLayout& Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::layout ( ) const
inline

◆ operator[]() [3/3]

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
const OP& Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::operator[] ( const LevelIndex a_index) const
inline

◆ matchFlux()

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
void Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::matchFlux ( LevelStateData a_rhs,
const LevelStateData a_state 
)
inline

Member Data Documentation

◆ m_diagScale

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::m_diagScale
private

◆ m_fluxScale

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::m_fluxScale
private

◆ m_time

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
T Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::m_time
private

◆ m_rkStage

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
unsigned int Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::m_rkStage
private

◆ m_map

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
const MBLevelMap<MAP,MEM>* Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::m_map
private

◆ m_ops

template<template< typename, typename, MemType > class OPType, typename MAP , typename T , template< typename, unsigned int, typename, MemType, Centering > class BCType = NullBC, MemType MEM = MEMTYPE_DEFAULT>
std::vector<OP> Proto::MBLevelOp< OPType, MAP, T, BCType, MEM >::m_ops
private

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