Schnek
schnek::Field< T, rank, CheckingPolicy, StoragePolicy > Class Template Reference
Inheritance diagram for schnek::Field< T, rank, CheckingPolicy, StoragePolicy >:
Collaboration diagram for schnek::Field< T, rank, CheckingPolicy, StoragePolicy >:

Public Types

typedef T value_type
 
typedef Range< double, rank > DomainType
 
typedef Range< double, rank >::LimitType RangeLimit
 
typedef Array< bool, rank > Stagger
 
typedef Field< T, rank, CheckingPolicy, StoragePolicy > FieldType
 
typedef Grid< T, rank, CheckingPolicy, StoragePolicy > BaseType
 
typedef BaseType::IndexType IndexType
 
typedef BaseType::RangeType RangeType
 
- Public Types inherited from schnek::Grid< T, rank, CheckingPolicy, StoragePolicy >
enum  { Rank = rank }
 
typedef T value_type
 
typedef Array< int, rank > IndexType
 
typedef Range< int, rank > RangeType
 
typedef Grid< T, rank, CheckingPolicy, StoragePolicy > GridType
 
typedef internal::GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > BaseType
 
- Public Types inherited from schnek::internal::GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > >
enum  
 
typedef T value_type
 
typedef CheckingPolicy< rank > CheckingPolicyType
 
typedef StoragePolicy< T, rank > StoragePolicyType
 
typedef CheckingPolicy< rank > ::IndexType IndexType
 
typedef StoragePolicy< T, rank > ::RangeType RangeType
 
typedef GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > GridBaseType
 

Public Member Functions

 Field ()
 
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
 Field (const Array< int, rank, ArrayCheckingPolicy > &size, const Range< double, rank, RangeCheckingPolicy > &domain, const Array< bool, rank, StaggerCheckingPolicy > &stagger, int ghostCells)
 
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
 Field (const Array< int, rank, ArrayCheckingPolicy > &low, const Array< int, rank, ArrayCheckingPolicy > &high, const Range< double, rank, RangeCheckingPolicy > &domain, const Array< bool, rank, StaggerCheckingPolicy > &stagger, int ghostCells)
 
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
 Field (const Range< int, rank, ArrayCheckingPolicy > &range, const Range< double, rank, RangeCheckingPolicy > &domain, const Array< bool, rank, StaggerCheckingPolicy > &stagger, int ghostCells)
 
 Field (const FieldType &)
 
IndexType getInnerLo ()
 
IndexType getInnerHi ()
 
RangeType getInnerRange ()
 
void positionToIndex (int dim, double pos, int &index, double &offset)
 
int positionToIndex (int dim, double pos)
 
double indexToPosition (int dim, int index)
 Calculates the position of a grid point.
 
StaggergetStagger ()
 Get all three components of the grid stagger.
 
bool getStagger (int i)
 Get a single component of the grid stagger.
 
const DomainTypegetDomain ()
 Get the physical domain of the field.
 
FieldTypeoperator= (const FieldType &)=default
 Assignment operator.
 
FieldTypeoperator= (const T &val)
 
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
void resize (const Array< int, rank, ArrayCheckingPolicy > &size, const Range< double, rank, RangeCheckingPolicy > &domain, const Array< bool, rank, StaggerCheckingPolicy > &stagger, int ghostCells)
 
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
void resize (const Array< int, rank, ArrayCheckingPolicy > &low, const Array< int, rank, ArrayCheckingPolicy > &high, const Range< double, rank, RangeCheckingPolicy > &domain, const Array< bool, rank, StaggerCheckingPolicy > &stagger, int ghostCells)
 
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
void resize (const Range< int, rank, ArrayCheckingPolicy > &range, const Range< double, rank, RangeCheckingPolicy > &domain, const Array< bool, rank, StaggerCheckingPolicy > &stagger, int ghostCells)
 
- Public Member Functions inherited from schnek::Grid< T, rank, CheckingPolicy, StoragePolicy >
 Grid ()
 default constructor creates an empty grid
 
 Grid (const Grid &)=default
 copy constructor
 
 Grid (const IndexType &size)
 constructor, which builds Grid of size size[0] x ... x size[rank-1] More...
 
 Grid (const IndexType &low, const IndexType &high)
 
 Grid (const RangeType &range)
 
GridTypeoperator= (const T &val)
 
GridTypeoperator= (const GridType &grid)
 
template<typename T2 , class CheckingPolicy2 , class StoragePolicy2 >
GridTypeoperator= (const internal::GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &grid)
 
- Public Member Functions inherited from schnek::internal::GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > >
 GridBase ()
 Default constructor.
 
 GridBase (const GridBase &)=default
 Copy constructor.
 
 GridBase (const Array< int, rank, ArrayCheckingPolicy > &size)
 
 GridBase (const Array< int, rank, ArrayCheckingPolicy > &low, const Array< int, rank, ArrayCheckingPolicy > &high)
 
 GridBase (const Range< int, rank, ArrayCheckingPolicy > &range)
 
SCHNEK_INLINE T & operator[] (const Array< int, rank, ArrayCheckingPolicy > &pos)
 
SCHNEK_INLINE T operator[] (const Array< int, rank, ArrayCheckingPolicy > &pos) const
 
SCHNEK_INLINE T & operator[] (const ArrayExpression< Operator, Length > &pos)
 
SCHNEK_INLINE T operator[] (const ArrayExpression< Operator, Length > &pos) const
 
SCHNEK_INLINE T & operator[] (int i)
 
SCHNEK_INLINE T operator[] (int i) const
 
SCHNEK_INLINE T & operator() (int i)
 
SCHNEK_INLINE T operator() (int i) const
 
SCHNEK_INLINE T & operator() (int i, int j)
 
SCHNEK_INLINE T operator() (int i, int j) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k)
 
SCHNEK_INLINE T operator() (int i, int j, int k) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p, int q)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p, int q) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r, int s)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r, int s) const
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > & operator= (const T &val)
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > & operator= (const GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > &val)=default
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > & operator-= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy< T, rank > > &)
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > & operator-= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &)
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > & operator+= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy< T, rank > > &)
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy< rank >, StoragePolicy< T, rank > > & operator+= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &)
 
void resize (const IndexType &size)
 Resize to size[0] x ... x size[rank-1]. More...
 
void resize (const IndexType &low, const IndexType &high)
 Resize to lower indices low[0],...,low[rank-1] and upper indices high[0],...,high[rank-1]. More...
 
void resize (const RangeType &range)
 Resize to lower indices range.getLo(0),...,range.getLo(rank-1) and upper indices range.getHi(0),...,range.getHi(rank-1) More...
 
void resize (const GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &grid)
 

Constructor & Destructor Documentation

◆ Field() [1/3]

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::Field ( )

default constructor creates an empty grid

◆ Field() [2/3]

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::Field ( const Array< int, rank, ArrayCheckingPolicy > &  size,
const Range< double, rank, RangeCheckingPolicy > &  domain,
const Array< bool, rank, StaggerCheckingPolicy > &  stagger,
int  ghostCells 
)

Constructs a grid with a given number of cells in each direction

◆ Field() [3/3]

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::Field ( const FieldType )

copy constructor

Member Function Documentation

◆ getInnerHi()

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
IndexType schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::getInnerHi ( )
inline

Get the hi of the inner grid range

◆ getInnerLo()

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
IndexType schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::getInnerLo ( )
inline

Get the lo of the inner grid range

◆ getInnerRange()

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
RangeType schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::getInnerRange ( )
inline

Get the range the inner grid range

◆ operator=()

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
FieldType& schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::operator= ( const T &  val)
inline

assign a value to the field

◆ positionToIndex() [1/2]

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
void schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::positionToIndex ( int  dim,
double  pos,
int &  index,
double &  offset 
)

Calculates index and offset from a position on the field

The index returned is the index of the grid point left of the position.

◆ positionToIndex() [2/2]

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
int schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::positionToIndex ( int  dim,
double  pos 
)

Calculates index from a position on the field

The index returned is the index of the grid point left of the position.

◆ resize()

template<typename T, size_t rank, template< size_t > class CheckingPolicy = GridNoArgCheck, template< typename, size_t > class StoragePolicy = SingleArrayGridStorage>
template<template< size_t > class ArrayCheckingPolicy, template< size_t > class RangeCheckingPolicy, template< size_t > class StaggerCheckingPolicy>
void schnek::Field< T, rank, CheckingPolicy, StoragePolicy >::resize ( const Array< int, rank, ArrayCheckingPolicy > &  size,
const Range< double, rank, RangeCheckingPolicy > &  domain,
const Array< bool, rank, StaggerCheckingPolicy > &  stagger,
int  ghostCells 
)

Constructs a grid with a given number of cells in each direction


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