Core

namespace Cubism::Core

Namespace for Cubism core components.

Typedefs

using Index = std::ptrdiff_t
using MultiIndex = typename IndexRange<DIM>::PointType

Alias for a multi-dimensional index.

Template Parameters
  • DIM: Dimension of associated index space

Functions

template<typename T, size_t DIM>
void swap(Vector<T, DIM> &va, Vector<T, DIM> &vb) noexcept

Non-STL swap function for vectors.

template<typename T, size_t DIM>
std::istream &operator>>(std::istream &stream, Vector<T, DIM> &vec)

Input stream for Vector<T, DIM> types.

template<typename T, size_t DIM>
std::ostream &operator<<(std::ostream &stream, const Vector<T, DIM> &vec)

Output stream for Vector<T, DIM> types.

template<size_t DIM>
class EntityIterator : public Cubism::Core::MultiIndexIterator<DIM>
template<size_t DIM>
struct IndexConverter
#include <Index.h>

Converts indices from and to one dimensional and multi-dimensional, respectively.

Template Parameters
  • DIM: Dimension of the index space

template<>
struct IndexConverter<1>
template<>
struct IndexConverter<2>
template<>
struct IndexConverter<3>
template<size_t DIM>
class IndexRange : public Cubism::Core::Range<Index, DIM>
#include <Index.h>

Rectangular index range.

Defines a simple consecutive index space.

Template Parameters
  • DIM: Dimension of the index space

template<size_t DIM>
struct MIIForward
template<>
struct MIIForward<1>
template<>
struct MIIForward<2>
template<>
struct MIIForward<3>
template<size_t DIM>
class MultiIndexIterator

Subclassed by Cubism::Core::EntityIterator< DIM >

template<typename T, size_t DIM>
class Range
#include <Range.h>

Rectangular range.

Template Parameters
  • T: Data type that describes coordinates in the range

  • DIM: Dimension

template<size_t DIM>
class Stencil
#include <Stencil.h>

Describes a stencil.

Template Parameters
  • DIM: Stencil dimensionality

template<typename T, size_t DIM>
class Vector
#include <Vector.h>

Vector class with support for common operations.

Wraps around std::array. The data type T must follow the rules of aggregate initialization. The vector dimension DIM should be low-dimensional when used for automatic variables on the stack.

Template Parameters
  • T: Data type

  • DIM: Dimension