ThunderEgg  1.0.0
ThunderEgg Namespace Reference

The ThunderEgg namespace. More...

Namespaces

 GMG
 Geometric-Multigrid classes.
 
 Iterative
 Iterative Solvers.
 
 PETSc
 A collection of wrappers for operating with PETSc.
 
 Poisson
 Classes specific to the Poisson equation.
 
 Schur
 Implements a Schur compliment system using the interfaces between patches.
 
 VarPoisson
 Classes specific to a variable coefficient Poisson equation.
 

Classes

class  BiLinearGhostFiller
 Exchanges ghost cells on patches, uses a BiLinear interpolation scheme for refinement boundaries. More...
 
class  BiQuadraticGhostFiller
 Exchanges ghost cells on patches, handles refinement boundaries with a biquadratic interpolation scheme. More...
 
class  BufferReader
 Class that is used to help read serialized objects from a buffer. More...
 
class  BufferWriter
 Class that is used to help serialize objects into a buffer. More...
 
class  CoarseNbrInfo
 Represents a neighbor that is at a coarser refinement level. More...
 
class  Communicator
 wrapper arount MPI_Comm, provides proper copy operators. Classes that have a communicator are meant to store a Communicator object instead of a raw MPI_Comm More...
 
class  ComponentArray
 Array for acessing data of a patch. It supports variable striding. More...
 
class  ComponentView
 Array for acessing data of a patch. It supports variable striding. More...
 
class  DimensionalArray
 A dimensional array, used for storing templated with and integer. For example a dimensional array of length 3 holding type T will have three values T<0> at index 0, T<1> at index 1, and T<2> at index 2. More...
 
class  DimensionalArray< 1, T >
 Dimensional Array specialization for length of 1. More...
 
class  Domain
 Uses a collection of PatchInfo objects to represent the domain of the problem. More...
 
class  DomainGenerator
 Generates Domain objects. More...
 
class  DomainTools
 Various tools for filling in values in a domain. More...
 
class  Face
 Enum-style class for the faces of an n-dimensional cube. More...
 
class  FineNbrInfo
 Represents neighbors that are at a finer refinement level. More...
 
class  GhostFiller
 Fills ghost cells on patches. More...
 
class  Loop
 Dimension templated loops. More...
 
class  MPIGhostFiller
 Parallell ghostfiller implimented with MPI. More...
 
class  NbrInfo
 Represents information about a patch's neighbor. More...
 
class  NbrInfoBase
 Represents information about a patch's neighbor. More...
 
class  NormalNbrInfo
 Represents a neighbor that is at the same refinement level. More...
 
class  Operator
 Base class for operators. More...
 
class  Orthant
 An enum-style class that represents the octants of a cube. More...
 
class  P4estDomainGenerator
 Generates Domain objects form a given p4est object. More...
 
class  P8estDomainGenerator
 Generates Domain objects form a given p4est object. More...
 
class  PatchArray
 Array for acessing data of a patch. It supports variable striding. More...
 
class  PatchInfo
 Contains metadata for a patch. More...
 
class  PatchOperator
 This is an Operator where derived classes only have to implement the two virtual functions that operate on single patch. More...
 
class  PatchSolver
 Solves the problem on the patches using a specified interface value. More...
 
class  PatchView
 View for accessing data of a patch. It supports variable striding. More...
 
struct  RuntimeError
 ThunderEgg runtime exception. More...
 
class  Serializable
 Interface for serializing objects. More...
 
class  Timer
 Class for keeping track of parallel timings. More...
 
class  TriLinearGhostFiller
 Performs trilinear interpolation on coarse-fine boundaries of patches. More...
 
class  Vector
 Vector class for use in thunderegg. More...
 
class  View
 Array for acessing data of a patch. It supports variable striding. More...
 

Typedefs

template<int D>
using Side = Face< D, D - 1 >
 Side class. More...
 
using Edge = Face< 3, 1 >
 Edge class.
 
template<int D>
using Corner = Face< D, 0 >
 Corner class. More...
 

Enumerations

enum  GhostFillingType { GhostFillingType::Faces, GhostFillingType::Edges, GhostFillingType::Corners }
 type of ghost filling. More...
 
enum  NbrType { NbrType::Normal, NbrType::Coarse, NbrType::Fine }
 The type of neighbor. More...
 

Functions

template<int D>
void to_json (tpl::nlohmann::json &j, const CoarseNbrInfo< D > &n)
 
template<int D>
void from_json (const tpl::nlohmann::json &j, CoarseNbrInfo< D > &n)
 
template<int D>
void to_json (tpl::nlohmann::json &j, const Domain< D > &domain)
 
template void to_json< 2 > (tpl::nlohmann::json &j, const Domain< 2 > &domain)
 
template void to_json< 3 > (tpl::nlohmann::json &j, const Domain< 3 > &domain)
 
template<int D>
Side< D > HigherSideOnAxis (size_t axis)
 Get the higher side on a given axis. More...
 
template<int D>
Side< D > LowerSideOnAxis (size_t axis)
 Get the lower side on a given axis. More...
 
void to_json (tpl::nlohmann::json &j, const Side< 1 > &s)
 
void to_json (tpl::nlohmann::json &j, const Side< 2 > &s)
 
void to_json (tpl::nlohmann::json &j, const Side< 3 > &s)
 
void from_json (const tpl::nlohmann::json &j, Side< 1 > &s)
 
void from_json (const tpl::nlohmann::json &j, Side< 2 > &s)
 
void from_json (const tpl::nlohmann::json &j, Side< 3 > &s)
 
std::ostream & operator<< (std::ostream &os, const Side< 1 > &s)
 ostream operator that prints a string representation of side enum. More...
 
std::ostream & operator<< (std::ostream &os, const Side< 2 > &s)
 ostream operator that prints a string representation of side enum. More...
 
std::ostream & operator<< (std::ostream &os, const Side< 3 > &s)
 ostream operator that prints a string representation of side enum. More...
 
std::ostream & operator<< (std::ostream &os, const Edge &o)
 ostream operator that prints a string representation of edge enum. More...
 
void to_json (tpl::nlohmann::json &j, const Edge &o)
 
void from_json (const tpl::nlohmann::json &j, Edge &o)
 
std::ostream & operator<< (std::ostream &os, const Corner< 2 > &o)
 ostream operator that prints a string representation of quadrant enum. More...
 
std::ostream & operator<< (std::ostream &os, const Corner< 3 > &o)
 ostream operator that prints a string representation of corner enum. More...
 
void to_json (tpl::nlohmann::json &j, const Corner< 2 > &o)
 
void to_json (tpl::nlohmann::json &j, const Corner< 3 > &o)
 
void from_json (const tpl::nlohmann::json &j, Corner< 2 > &o)
 
void from_json (const tpl::nlohmann::json &j, Corner< 3 > &o)
 
template<int D>
void to_json (tpl::nlohmann::json &j, const FineNbrInfo< D > &n)
 
template<int D>
void from_json (const tpl::nlohmann::json &j, FineNbrInfo< D > &n)
 
std::ostream & operator<< (std::ostream &os, const NbrType &type)
 ostream operator that prints a string representation of NbrType enum.
 
 NLOHMANN_JSON_SERIALIZE_ENUM (NbrType, { { NbrType::Normal, "NORMAL" }, { NbrType::Coarse, "COARSE" }, { NbrType::Fine, "FINE" } })
 
template<int D>
void to_json (tpl::nlohmann::json &j, const NormalNbrInfo< D > &n)
 
template<int D>
void from_json (const tpl::nlohmann::json &j, NormalNbrInfo< D > &n)
 
std::ostream & operator<< (std::ostream &os, const Orthant< 0 > &o)
 ostream operator that prints a string representation of Orthant<0> enum. More...
 
std::ostream & operator<< (std::ostream &os, const Orthant< 1 > &o)
 ostream operator that prints a string representation of Orthant<1> enum. More...
 
std::ostream & operator<< (std::ostream &os, const Orthant< 2 > &o)
 ostream operator that prints a string representation of quadrant enum. More...
 
std::ostream & operator<< (std::ostream &os, const Orthant< 3 > &o)
 ostream operator that prints a string representation of orthant enum. More...
 
void to_json (tpl::nlohmann::json &j, const Orthant< 0 > &o)
 
void to_json (tpl::nlohmann::json &j, const Orthant< 1 > &o)
 
void to_json (tpl::nlohmann::json &j, const Orthant< 2 > &o)
 
void to_json (tpl::nlohmann::json &j, const Orthant< 3 > &o)
 
void from_json (const tpl::nlohmann::json &j, Orthant< 0 > &o)
 
void from_json (const tpl::nlohmann::json &j, Orthant< 1 > &o)
 
void from_json (const tpl::nlohmann::json &j, Orthant< 2 > &o)
 
void from_json (const tpl::nlohmann::json &j, Orthant< 3 > &o)
 
template<int D>
void to_json (tpl::nlohmann::json &j, const PatchInfo< D > &pinfo)
 
template<int D>
void from_json (const tpl::nlohmann::json &j, PatchInfo< D > &pinfo)
 

Variables

constexpr bool ENABLE_DEBUG = false
 
constexpr bool PETSC_ENABLED = true
 

Detailed Description

The ThunderEgg namespace.

Typedef Documentation

◆ Corner

template<int D>
using ThunderEgg::Corner = typedef Face<D, 0>

Corner class.

Template Parameters
Dthe number of Cartesian dimensions

◆ Side

template<int D>
using ThunderEgg::Side = typedef Face<D, D - 1>

Side class.

Template Parameters
Dthe number of Cartesian dimensions

Enumeration Type Documentation

◆ GhostFillingType

type of ghost filling.

Enumerator
Faces 

Fill only faces.

Edges 

Fill faces and edges.

Corners 

Fill faces, edges, and corners. (or faces and corners in the 2d case)

◆ NbrType

enum ThunderEgg::NbrType
strong

The type of neighbor.

Enumerator
Normal 

The neighbor is at the same refinement level.

Coarse 

The neighbor is at a coarser refinement level.

Fine 

The nighbor is at a finer refinement level.

Function Documentation

◆ HigherSideOnAxis()

template<int D>
Side<D> ThunderEgg::HigherSideOnAxis ( size_t  axis)

Get the higher side on a given axis.

Template Parameters
Dthe number of Cartesian dimensions
Parameters
axisthe axis
Returns
Side<D> the side

◆ LowerSideOnAxis()

template<int D>
Side<D> ThunderEgg::LowerSideOnAxis ( size_t  axis)

Get the lower side on a given axis.

Template Parameters
Dthe number of Cartesian dimensions
Parameters
axisthe axis
Returns
Side<D> the side

◆ operator<<() [1/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Corner< 2 > &  o 
)

ostream operator that prints a string representation of quadrant enum.

For example, Corner<2>::sw() will print out "Corner<2>::sw()".

Parameters
osthe ostream
othe corner
Returns
the ostream

◆ operator<<() [2/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Corner< 3 > &  o 
)

ostream operator that prints a string representation of corner enum.

For example, Corner<3>::bsw() will print out "Corner<3>::bsw()".

Parameters
osthe ostream
othe corner
Returns
the ostream

◆ operator<<() [3/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Edge o 
)

ostream operator that prints a string representation of edge enum.

For example, Edge::sw() will print out "Edge::sw()".

Parameters
osthe ostream
othe edge
Returns
the ostream

◆ operator<<() [4/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Orthant< 0 > &  o 
)
inline

ostream operator that prints a string representation of Orthant<0> enum.

For example, Orthant<0>::null() will print out "Orthant<0>::null()".

Parameters
osthe ostream
othe orthant
Returns
the ostream

◆ operator<<() [5/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Orthant< 1 > &  o 
)
inline

ostream operator that prints a string representation of Orthant<1> enum.

For example, Orthant<1>::lower() will print out "Orthant<1>::lower()".

Parameters
osthe ostream
othe orthant
Returns
the ostream

◆ operator<<() [6/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Orthant< 2 > &  o 
)
inline

ostream operator that prints a string representation of quadrant enum.

For example, Orthant<2>::sw() will print out "Orthant<2>::sw()".

Parameters
osthe ostream
othe orthant
Returns
the ostream

◆ operator<<() [7/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Orthant< 3 > &  o 
)
inline

ostream operator that prints a string representation of orthant enum.

For example, Orthant<3>::bsw() will print out "Orthant<3>::bsw()".

Parameters
osthe ostream
othe orthant
Returns
the ostream

◆ operator<<() [8/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Side< 1 > &  s 
)

ostream operator that prints a string representation of side enum.

For example, Side::west will print out "Side::west".

Parameters
osthe ostream
sthe side to print out.
Returns
the ostream

◆ operator<<() [9/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Side< 2 > &  s 
)

ostream operator that prints a string representation of side enum.

For example, Side::west will print out "Side::west".

Parameters
osthe ostream
sthe side to print out.
Returns
the ostream

◆ operator<<() [10/10]

std::ostream& ThunderEgg::operator<< ( std::ostream &  os,
const Side< 3 > &  s 
)

ostream operator that prints a string representation of side enum.

For example, Side::west will print out "Side::west".

Parameters
osthe ostream
sthe side to print out.
Returns
the ostream