Discontinuous Galerkin Library
#include "dg/algorithm.h"
|
►Ndg | This is the namespace for all functions and classes defined and used by the discontinuous Galerkin library |
Nblas1 | BLAS Level 1 routines |
Nblas2 | BLAS Level 2 routines |
Ncreate | Contains functions used for matrix creation |
Nexblas | |
Ngeo | |
Nmat | |
Ntensor | Utility functions used in connection with the SparseTensor class |
Nx | |
CABS | \( f(x) = |x|\) |
CAbsMax | \( f(x,y) = \max(|x|,|y|)\) |
CAbsMin | \( f(x,y) = \min(|x|,|y|)\) |
CaCommunicator | Struct that performs collective scatter and gather operations across processes on distributed vectors using MPI |
CAdaptive | Driver class for adaptive timestep ODE integration |
CAdaptiveTimeloop | Integrate using a while loop |
CAdvection | Upwind discretization of advection operator \( \vec v\cdot\nabla f\) |
CAndersonAcceleration | Anderson Acceleration of Fixed Point/Richardson Iteration for the nonlinear equation \( f(x) = b\) |
CAnyMatrixTag | Tensor_category base class |
CAnyPolicyTag | Execution Policy base class |
CAnyScalarTag | Scalar Tag base class, indicates the basic Scalar Tensor concept |
CAnyVectorTag | Vector Tag base class, indicates the basic Vector/container concept |
CArakawaX | Arakawa's scheme for Poisson bracket \( \{ f,g\} \) |
CaRealGeometry2d | This is the abstract interface class for a two-dimensional Geometry |
CaRealGeometry3d | This is the abstract interface class for a three-dimensional Geometry |
CaRealGeometryX2d | This is the abstract interface class for a two-dimensional RealGeometryX |
CaRealGeometryX3d | This is the abstract interface class for a three-dimensional RealGeometryX |
CaRealMPIGeometry2d | This is the abstract interface class for a two-dimensional Geometry |
CaRealMPIGeometry3d | This is the abstract interface class for a three-dimensional MPIGeometry |
CaRealMPITopology2d | 2D MPI abstract grid class |
CaRealMPITopology3d | 3D MPI Grid class |
CaRealProductGeometry3d | A 3d product space Geometry \( g_{2d} \otimes g_{1d}\) |
CaRealProductMPIGeometry3d | A 3d product space Geometry \( g_{2d} \otimes g_{1d}\). |
CaRealRefinement1d | Abstract base class for 1d grid refinement that increases the number of grid cells of a fixed basis grid |
CaRealRefinementX2d | Abstract base class for 2d grid refinement that increases the number of grid cells of a fixed basis grid |
CaRealTopology2d | An abstract base class for two-dimensional grids |
CaRealTopology3d | An abstract base class for three-dimensional grids |
CaRealTopologyX2d | A 2D grid class with X-point topology |
CaRealTopologyX3d | A 3D grid class with X-point topology |
CARKStep | Additive Runge Kutta (semi-implicit) time-step with error estimate following The ARKode library |
CArrayScalarTag | |
CArrayVectorTag | |
CaTimeloop | Abstract timeloop independent of stepper and ODE |
CAverage | Topological average computations in a Cartesian topology |
CAverage< MPI_Vector< container > > | MPI specialized class for average computations |
CAxpby | \( y\leftarrow ax+by \) |
CAxpbypgz | \( z\leftarrow ax+by+gz \) |
CAxyPby | \( y\leftarrow axy+by \) |
CBathRZ | \(f(R,Z) = A B \sum_\vec{k} \sqrt{E_k} \alpha_k \cos{\left(k \kappa_k + \theta_k \right)} \) |
CBICGSTABl | Preconditioned BICGSTAB(l) method to solve \( Ax=b\) |
CBijectiveComm | Perform bijective gather and its transpose (scatter) operation across processes on distributed vectors using mpi |
CBuffer | Manager class that invokes the copy constructor on the managed ptr when copied (deep copy) |
CButcherTableau | Manage coefficients of a (extended) Butcher tableau |
CCauchy | \( f(x,y) = \begin{cases} Ae^{1 + \left(\frac{(x-x_0)^2}{\sigma_x^2} + \frac{(y-y_0)^2}{\sigma_y^2} - 1\right)^{-1}} \text{ if } \frac{(x-x_0)^2}{\sigma_x^2} + \frac{(y-y_0)^2}{\sigma_y^2} < 1\\ 0 \text{ else} \end{cases} \) |
CCauchyX | \( f(x,y) = \begin{cases} Ae^{1 + \left(\frac{(x-x_0)^2}{\sigma_x^2} - 1\right)^{-1}} \text{ if } \frac{(x-x_0)^2}{\sigma_x^2} < 1\\ 0 \text{ else} \end{cases} \) |
CChebyshevIteration | Preconditioned Chebyshev iteration for solving \( PAx=Pb\) |
CChebyshevPreconditioner | Chebyshev Polynomial Preconditioner \( C( A)\) |
CClonePtr | Manager class that invokes the clone() method on the managed ptr when copied |
CComposite | |
CCONSTANT | \( f(x) = f(x,y) = f(x,y,z) = c\) |
CConvertsToButcherTableau | Convert identifiers to their corresponding dg::ButcherTableau |
CConvertsToMultistepTableau | Convert identifiers to their corresponding dg::MultistepTableau |
CConvertsToShuOsherTableau | Convert identifiers to their corresponding dg::ShuOsherTableau |
CCooSparseBlockMat | Coo Sparse Block Matrix format |
CCosXCosY | \( f(x,y) =B+ A \cos(k_x x) \cos(k_y y) \) |
CCosY | \( f(x,y) =B+ A \cos(k_y y) \) |
CCSRAverageFilter | Average filter that computes the average of all points in the stencil |
CCSRMedianFilter | Compute (lower) Median of input numbers |
CCSRSlopeLimiter | Generalized slope limiter for dG methods |
CCSRSWMFilter | Switching median filter |
CCSRSymvFilter | Test filter that computes the symv csr matrix-vector product if used |
CCudaTag | CUDA implementation |
CCuspMatrixTag | One of cusp's matrices, for these only the blas2 transfer and the symv( m,x,y) are implemented |
CCuspVectorTag | Special tag for cusp arrays |
CDefaultSolver | PCG Solver class for solving \( (y-\alpha\hat I(t,y)) = \rho\) |
CDenseMatrixTag | Indicate our dense matrix format |
CDIRKStep | Embedded diagonally implicit Runge Kutta time-step with error estimate \( \begin{align} k_i = f\left( t^n + c_i \Delta t, u^n + \Delta t \sum_{j=1}^{i} a_{ij} k_j\right) \\ u^{n+1} = u^{n} + \Delta t\sum_{j=1}^s b_j k_j \\ \tilde u^{n+1} = u^{n} + \Delta t\sum_{j=1}^s \tilde b_j k_j \\ \delta^{n+1} = u^{n+1} - \tilde u^{n+1} = \Delta t\sum_{j=1}^s (b_j-\tilde b_j) k_j \end{align} \) |
CDistance | \( f(x,y) = \sqrt{ (x-x_0)^2 + (y-y_0)^2} \) |
Cdivides | \( y = x_1/x_2 \) |
Cdivides_equals | \( y = y/x\) |
CDLT | Struct holding coefficients for Discrete Legendre Transformation (DLT) related operations |
CDPolynomialHeaviside | \( f(x) = \begin{cases} 0 \text{ if } x < x_b-a || x > x_b+a \\ (35 (a + x - x_b)^3 (a - x + x_b)^3)/(32 a^7) \text{ if } |x-x_b| < a \end{cases}\) The derivative of PolynomialHeaviside approximates delta(x) |
CElliptic1d | A 1d negative elliptic differential operator \( -\partial_x ( \chi \partial_x ) \) |
CElliptic2d | A 2d negative elliptic differential operator \( -\nabla \cdot ( \mathbf{\chi}\cdot \nabla ) \) |
CElliptic3d | A 3d negative elliptic differential operator \( -\nabla \cdot ( \mathbf{\chi}\cdot \nabla ) \) |
CEllSparseBlockMat | Ell Sparse Block Matrix format |
CEmbeddedPairSum | \( y = \sum_i a_i x_i + b y,\quad \tilde y = \sum_i \tilde a_i x_i + \tilde b y \) |
CEntireDomain | The domain that contains all points |
Cequals | \( y=x\) |
CERKStep | Embedded Runge Kutta explicit time-step with error estimate \( \begin{align} k_i = f\left( t^n + c_i \Delta t, u^n + \Delta t \sum_{j=1}^{i-1} a_{ij} k_j\right) \\ u^{n+1} = u^{n} + \Delta t\sum_{j=1}^s b_j k_j \\ \tilde u^{n+1} = u^{n} + \Delta t\sum_{j=1}^s \tilde b_j k_j \\ \delta^{n+1} = u^{n+1} - \tilde u^{n+1} = \Delta t\sum_{j=1}^s (b_j - \tilde b_j) k_j \end{align} \) |
CError | Class intended for the use in throw statements |
CEvaluate | \( f( y, g(x_0, ..., x_s)) \) |
CEVE | The Eigen-Value-Estimator (EVE) finds largest Eigenvalue of \( M^{-1}Ax = \lambda_\max x\) |
CEXP | \( f(x) = \exp( x)\) |
CExplicitMultistep | General explicit linear multistep ODE integrator \( \begin{align} v^{n+1} = \sum_{j=0}^{s-1} a_j v^{n-j} + \Delta t\left(\sum_{j=0}^{s-1}b_j \hat f\left(t^{n}-j\Delta t, v^{n-j}\right)\right) \end{align} \) |
CExponentialFilter | \( f(i) = \begin{cases} 1 \text{ if } \eta < \eta_c \\ \exp\left( -\alpha \left(\frac{\eta-\eta_c}{1-\eta_c} \right)^{2s}\right) \text { if } \eta \geq \eta_c \\ 0 \text{ else} \\ \eta=\frac{i}{1-n} \end{cases}\) |
CExpProfX | \( f(x) = f(x,y) = f(x,y,z) = A\exp(-x/L_n) + B \) |
CExtrapolation | Extrapolate a polynomial passing through up to three points |
CFail | Indicate failure to converge |
CFilteredERKStep | EXPERIMENTAL: Filtered Embedded Runge Kutta explicit time-step with error estimate \( \begin{align} k_i = f\left( t^n + c_i \Delta t, \Lambda\Pi \left[u^n + \Delta t \sum_{j=1}^{i-1} a_{ij} k_j\right]\right) \\ u^{n+1} = \Lambda\Pi\left[u^{n} + \Delta t\sum_{j=1}^s b_j k_j\right] \\ \delta^{n+1} = \Delta t\sum_{j=1}^s (\tilde b_j - b_j) k_j \end{align} \) |
CFilteredExplicitMultistep | EXPERIMENTAL: General explicit linear multistep ODE integrator with Limiter / Filter \( \begin{align} \tilde v &= \sum_{j=0}^{s-1} a_j v^{n-j} + \Delta t\left(\sum_{j=0}^{s-1}b_j \hat f\left(t^{n}-j\Delta t, v^{n-j}\right)\right) \\ v^{n+1} &= \Lambda\Pi \left( \tilde v\right) \end{align} \) |
CGaussian | \( f(x,y) = Ae^{-\left(\frac{(x-x_0)^2}{2\sigma_x^2} + \frac{(y-y_0)^2}{2\sigma_y^2}\right)} \) |
CGaussian3d | \( f(x,y,z) = Ae^{-\left(\frac{(x-x_0)^2}{2\sigma_x^2} + \frac{(y-y_0)^2}{2\sigma_y^2} + \frac{(z-z_0)^2}{2\sigma_z^2}\right)} \) |
CGaussianDamping | \( f(\psi) = \begin{cases} 1 \text{ if } \psi < \psi_{\max}\\ 0 \text{ if } \psi > (\psi_{\max} + 4\alpha) \\ \exp\left( - \frac{(\psi - \psi_{\max})^2}{2\alpha^2}\right), \text{ else} \end{cases} \) |
CGaussianX | \( f(x,y) = Ae^{-\frac{(x-x_0)^2}{2\sigma_x^2} } \) |
CGaussianY | \( f(x,y) = Ae^{-\frac{(y-y_0)^2}{2\sigma_y^2}} \) |
CGaussianZ | \( f(x,y,z) = Ae^{-\frac{(z-z_0)^2}{2\sigma_z^2}} \) |
CGeneralComm | Perform general gather and its transpose (scatter) operation across processes on distributed vectors using mpi |
CGeneralHelmholtz | A general Helmholtz-type operator \( (\chi-\alpha F) \) |
CHeaviside | \( f(x) = \begin{cases} 0 \text{ if } x < x_b \\ 1 \text{ else} \end{cases}\) |
CHelmholtz2 | DEPRECATED, Matrix class that represents a more general Helmholtz-type operator |
CHistogram | Compute a histogram on a 1D grid |
CHistogram2D | Compute a histogram on a 2D grid |
CHorner2d | \( f(x,y) = \sum_{i=0}^{M-1} \sum_{j=0}^{N-1} c_{iN+j} x^i y^j \) |
CIDENTITY | \( f(x) = x\) |
CIdentityFilter | A filter that does nothing |
CImExMultistep | Semi-implicit multistep ODE integrator \( \begin{align} v^{n+1} = \sum_{q=0}^{s-1} a_q v^{n-q} + \Delta t\left[\left(\sum_{q=0}^{s-1}b_q \hat E(t^{n}-q\Delta t, v^{n-q}) + \sum_{q=1}^{s} c_q \hat I( t^n - q\Delta t, v^{n-q})\right) + c_0\hat I(t^{n}+\Delta t, v^{n+1})\right] \end{align} \) |
CImplicitMultistep | Implicit multistep ODE integrator \( \begin{align} v^{n+1} &= \sum_{i=0}^{s-1} a_i v^{n-i} + \Delta t \sum_{i=1}^{s} c_i\hat I(t^{n+1-i}, v^{n+1-i}) + \Delta t c_{0} \hat I (t + \Delta t, v^{n+1}) \\ \end{align} \) |
CInvCoshXsq | \( f(x,y) =A/\cosh^2(k_x x) \) |
CInverseKroneckerTriDiagonal2d | Fast inverse tridiagonal sparse matrix in 2d \( T_y^{-1}\otimes T_x^{-1}\) |
CInverseTensorMultiply2d | \( y_i \leftarrow \lambda T^{-1}_{ij} x_i + \mu y_i\) |
CInverseTensorMultiply3d | \( y_i \leftarrow \lambda T^{-1}_{ij} x_i + \mu y_i\) |
CInverseTriDiagonal | Fast inverse tridiagonal sparse matrix |
CINVERT | \( f(x) = 1/x \) |
CInvSqrt | \( f(x) = \frac{1}{\sqrt{x}}\) |
CIPolynomialHeaviside | \( f(x) = \begin{cases} x_b \text{ if } x < x_b-a \\ x_b + ((35 a^3 - 47 a^2 (x - x_b) + 25 a (x - x_b)^2 - 5 (x - x_b)^3) (a + x - x_b)^5)/(256 a^7) \text{ if } |x-x_b| < a \\ x \text{ if } x > x_b + a \end{cases}\) The integral of PolynomialHeaviside approximates xH(x) |
CIris | \( f(\psi) = \begin{cases} 1 \text{ if } \psi_{\min} < \psi < \psi_{\max}\\ 0 \text{ else} \end{cases}\) |
CIslandXY | \( f(x,y) = \lambda \ln{(\cosh{(x/\lambda) } +\epsilon \cos(y/\lambda)) } \) |
CISNFINITE | \( f(x) = \mathrm{!std::isfinite(x)}\) |
CISNSANE | \( f(x) =\begin{cases} \mathrm{true\ if}\ |x| > 10^{100}\\ \mathrm{false\ else} \end{cases}\) |
CKroneckerTriDiagonal2d | Fast tridiagonal sparse matrix in 2d \( T_y\otimes T_x\) |
CLamb | \( f(x,y) = \begin{cases} 2\lambda U J_1(\lambda r) / J_0(\gamma)\cos(\theta) \text{ for } r<R \\ 0 \text{ else} \end{cases} \) |
CLeastSquaresExtrapolation | Evaluate a least squares fit |
CLeastSquaresPreconditioner | Least Squares Polynomial Preconditioner \( M^{-1} s( AM^{-1})\) |
CLGMRES | Functor class for the right preconditioned LGMRES method to solve \( Ax=b\) |
CLine | \( f(x) = y_1\frac{x-x_0}{x_1-x_0} + y_0\frac{x-x_1}{x_0-x_1}\) |
CLinearX | \( f(x) = f(x,y) = f(x,y,z) = ax+b \) |
CLinearY | \( f(x,y) = f(x,y,z) = ay+b \) |
CLinearZ | \( f(x,y,z) = az+b \) |
CLN | \( f(x) = \ln(x)\) |
CMessage | Small class holding a stringstream |
CMinMod | \( f(x_1, x_2, ...) = \begin{cases} \min(x_1, x_2, ...) &\text{ for } x_1, x_2, ... >0 \\ \max(x_1, x_2, ...) &\text{ for } x_1, x_2, ... <0 \\ 0 &\text{ else} \end{cases} \) |
Cminus_equals | \( y=y-x\) |
CMOD | \( f(x) = \) x mod m > 0 ? x mod m : x mod m + m |
CModifiedChebyshevPreconditioner | Approximate inverse Chebyshev Polynomial Preconditioner \( A^{-1} = \frac{c_0}{2} I + \sum_{k=1}^{r}c_kT_k( Z)\) |
CMPI_Vector | Mpi Vector class |
CMPIDistMat | Distributed memory matrix class |
CMPIMatrixTag | Indicate one of our mpi matrices |
CMPITag | Distributed memory system |
CMPIVectorTag | A distributed vector contains a data container and a MPI communicator |
CMultigridCG2d | Solve |
CMultiMatrix | Struct that applies given matrices one after the other |
CMultistepTableau | Manage coefficients of Multistep methods |
CMultistepTimeloop | Integrate using a for loop and a fixed non-changeable time-step |
CNearestNeighborComm | Communicator for asynchronous nearest neighbor communication |
CNestedGrids | Hold nested grids and provide dg fast interpolation and projection matrices |
CNoPolicyTag | Indicate that a type does not have an execution policy |
CNoRoot1d | Exception class, that stores boundaries for 1D root finding |
CNotATensorTag | Indicate that a type is not a tensor |
COmpTag | OpenMP parallel execution |
CONE | \( f(x) = f(x,y) = f(x,y,z) = 1\) |
COneDimensionalTag | 1d |
COperator | A square nxn matrix |
CPairSum | \( y = \sum_i a_i x_i \) |
CPCG | Preconditioned conjugate gradient method to solve \( Ax=b\) |
CPlus | \( y\leftarrow y+a \) |
CPLUS | \( f(x) = x + c\) |
Cplus_equals | \( y=y+x\) |
CPointwiseDivide | \( z\leftarrow ax/y + bz \) |
CPointwiseDot | \( z\leftarrow ax_1y_1+bx_2y_2+gz \) |
CPoisson | Direct discretization of Poisson bracket \( \{ f,g\} \) |
CPolynomialHeaviside | \( f(x) = \begin{cases} 0 \text{ if } x < x_b-a \\ ((16 a^3 - 29 a^2 (x - x_b) + 20 a (x - x_b)^2 - 5 (x - x_b)^3) (a + x - x_b)^4)/(32 a^7) \text{ if } |x-x_b| < a \\ 1 \text{ if } x > x_b + a \end{cases}\) |
CPolynomialRectangle | \( f(x) = \begin{cases} 0 \text{ if } x < x_l-a_l \\ ((16 a_l^3 - 29 a_l^2 (x - x_l) + 20 a_l (x - x_l)^2 - 5 (x - x_l)^3) (a_l + x - x_l)^4)/(32 a_l^7) \text{ if } |x-x_l| < a_l \\ 1 \text{ if } x_l + a_l < x < x_r-a_r \\ ((16 a_r^3 - 29 a_r^2 (x - x_r) + 20 a_r (x - x_r)^2 - 5 (x - x_r)^3) (a_r + x - x_l)^4)/(32 a_r^7) \text{ if } |x-x_r| < a_r \\ 0 \text{ if } x > x_r + a_r \end{cases}\) |
CPOSVALUE | \( f(x) = \begin{cases} x \text{ for } x>0 \\ 0 \text{ else} \end{cases} \) |
CPsiPupil | \( f(\psi) = \begin{cases} \psi_{\max} \text{ if } \psi > \psi_{\max} \\ \psi \text{ else} \end{cases}\) |
CPupil | \( f(\psi) = \begin{cases} 0 \text{ if } \psi > \psi_{\max} \\ 1 \text{ else} \end{cases}\) |
CRealCartesianGrid2d | Two-dimensional Grid with Cartesian metric |
CRealCartesianGrid3d | Three-dimensional Grid with Cartesian metric |
CRealCartesianGridX2d | Two-dimensional GridX with RealCartesian metric |
CRealCartesianGridX3d | Three-dimensional GridX with RealCartesian metric |
CRealCartesianMPIGrid2d | The mpi version of RealCartesianGrid2d |
CRealCartesianMPIGrid3d | The mpi version of RealCartesianGrid3d |
CRealCartesianRefinedGrid2d | Refined RealCartesian grid |
CRealCartesianRefinedGrid3d | Refined RealCartesian grid |
CRealCartesianRefinedGridX2d | Refined X-point grid |
CRealCartesianRefinedGridX3d | Refined X-point grid |
CRealCylindricalGrid3d | Three-dimensional Grid with Cylindrical metric |
CRealCylindricalMPIGrid3d | Mpi version of RealCylindricalGrid3d |
CRealEquidistRefinement | Cell refinement around a given node |
CRealEquidistXRefinement | RealEquidistant cell refinement around the X-point |
CRealExponentialRefinement | The exponential refinement around a node |
CRealExponentialXRefinement | The exponential refinement around the X-point |
CRealFemRefinement | Insert equidistant points in between dG nodes |
CRealGrid1d | 1D grid |
CRealGrid2d | The simplest implementation of aRealTopology2d |
CRealGrid3d | The simplest implementation of aRealTopology3d |
CRealGridX1d | 1D grid for X-point topology |
CRealGridX2d | The simplest implementation of aRealTopologyX2d |
CRealGridX3d | The simplest implementation of aRealTopologyX3d |
CRealIdentityRefinement | No refinement |
CRealIdentityXRefinement | No refinement |
CRealLinearRefinement | Multiply every cell in the grid by a factor |
CRealMPIGrid2d | The simplest implementation of aRealMPITopology2d |
CRealMPIGrid3d | The simplest implementation of aRealMPITopology3d |
CRecursiveVectorTag | This tag indicates composition/recursion |
CRefinedElliptic | The refined version of Elliptic |
CRowColDistMat | Distributed memory matrix class, asynchronous communication |
CScal | \( y\leftarrow ay \) |
CScalarTag | |
CSelfMadeMatrixTag | Indicates that the type has a member function with the same name and interface (up to the matrix itself of course) as the corresponding blas2 member function, for example void symv( const ContainerType1&, ContainerType2& ); |
CSerialTag | Indicate sequential execution |
CSharedTag | Shared memory system |
CSharedVectorTag | Indicate a contiguous chunk of shared memory |
CShuOsher | Shu-Osher fixed-step explicit ODE integrator with Slope Limiter / Filter \( \begin{align} u_0 &= u_n \\ u_i &= \Lambda\Pi \left(\sum_{j=0}^{i-1}\left[ \alpha_{ij} u_j + \Delta t \beta_{ij} f( t_j, u_j)\right]\right)\\ u^{n+1} &= u_s \end{align} \) |
CShuOsherTableau | Manage coefficients in Shu-Osher form |
CSign | \( f(x) = \text{sgn}(x) = \begin{cases} -1 \text{ for } x < 0 \\ 0 \text{ for } x = 0 \\ +1 \text{ for } x > 0 \end{cases}\) |
CSimpsons | Time integration based on Simpson's rule |
CSinglestepTimeloop | Integrate using a for loop and a fixed time-step |
CSinProfX | \( f(x) = f(x,y) = f(x,y,z) = B + A(1 - \sin(k_xx )) \) |
CSinX | \( f(x) = f(x,y) = f(x,y,z) =B+ A \sin(k_x x) \) |
CSinXCosY | \( f(x,y) =B+ A \sin(k_x x) \cos(k_y y) \) |
CSinXSinY | \( f(x,y) =B+ A \sin(k_x x) \sin(k_y y) \) |
CSinY | \( f(x,y) =B+ A \sin(k_y y) \) |
CSlopeLimiter | \( \text{up}(v, g_m, g_0, g_p, h_m, h_p ) = \begin{cases} +h_m \Lambda( g_0, g_m) &\text{ if } v \geq 0 \\ -h_p \Lambda( g_p, g_0) &\text{ else} \end{cases} \) |
CSlopeLimiterProduct | \( \text{up}(v, g_m, g_0, g_p, h_m, h_p ) = v \begin{cases} +h_m \Lambda( g_0, g_m) &\text{ if } v \geq 0 \\ -h_p \Lambda( g_p, g_0) &\text{ else} \end{cases} \) |
CSparseBlockMatrixTag | Indicate our sparse block matrix format |
CSparseTensor | Class for 2x2 and 3x3 matrices sharing elements |
CSQRT | \( f(x) = \sqrt{x}\) |
CSquare | \( f(x) = x^2\) |
CStdMapTag | |
CSum | \( y = \sum_i x_i \) |
CSurjectiveComm | Perform surjective gather and its transpose (scatter) operation across processes on distributed vectors using mpi |
CTanhProfX | \( f(x) = B + 0.5 A(1+ \text{sign} \tanh((x-x_b)/\alpha ) ) \) |
CTensorDeterminant2d | \( y = t_{00} t_{11} - t_{10}t_{01} \) |
CTensorDeterminant3d | \( y = t_{00} t_{11}t_{22} + t_{01}t_{12}t_{20} + t_{02}t_{10}t_{21} - t_{02}t_{11}t_{20} - t_{01}t_{10}t_{22} - t_{00}t_{12}t_{21} \) |
CTensorDot2d | \( y = \lambda\mu v_i T_{ij} w_j \) |
CTensorDot3d | \( y = \lambda \mu v_i T_{ij} w_j \) |
CTensorMultiply2d | \( y_i \leftarrow \lambda T_{ij} x_i + \mu y_i\) |
CTensorMultiply3d | \( y_i \leftarrow \lambda T_{ij} x_i + \mu y_i\) |
CTensorTraits | The vector traits |
CTensorTraits< CooSparseBlockMat< T > > | |
CTensorTraits< cusp::coo_matrix< I, V, M > > | |
CTensorTraits< cusp::csr_matrix< I, V, M > > | |
CTensorTraits< cusp::dia_matrix< I, V, M > > | |
CTensorTraits< cusp::ell_matrix< I, V, M > > | |
CTensorTraits< cusp::hyb_matrix< I, V, M > > | |
CTensorTraits< EllSparseBlockMat< T > > | |
CTensorTraits< MPI_Vector< container > > | Prototypical MPI vector |
CTensorTraits< MPIDistMat< L, C > > | |
CTensorTraits< RowColDistMat< LI, LO, C > > | |
CTensorTraits< std::array< T, N >, std::enable_if_t< !std::is_arithmetic< T >::value > > | |
CTensorTraits< std::array< T, N >, std::enable_if_t< std::is_arithmetic< T >::value > > | |
CTensorTraits< std::map< Key, T > > | Behaves like a RecursiveVector |
CTensorTraits< std::vector< T >, std::enable_if_t< !std::is_arithmetic< T >::value > > | Prototypical Recursive Vector |
CTensorTraits< std::vector< T >, std::enable_if_t< std::is_arithmetic< T >::value > > | |
CTensorTraits< T, std::enable_if_t< std::is_arithmetic< T >::value > > | Recognize arithmetic types as scalars |
CTensorTraits< thrust::device_vector< T > > | Prototypical Shared Vector with Cuda or Omp Tag |
CTensorTraits< thrust::host_vector< T > > | Prototypical Shared Vector with Serial Tag |
CTensorTraits< View< ThrustVector > > | A View has identical value_type and execution_policy as the underlying container |
CThreeDimensionalTag | 3d |
CThrustVectorTag | Indicate thrust/std - like behaviour |
CTimer | Simple tool for performance measuring |
Ctimes_equals | \( y=xy\) |
CTopologyTraits | |
CTriDiagonal | Fast (shared memory) tridiagonal sparse matrix |
CTripletSum | \( y = \sum_i a_i x_i y_i \) |
CTwoDimensionalTag | 2d |
CUpwind | \( \text{up}(v, b, f ) = \begin{cases} b &\text{ if } v \geq 0 \\ f &\text{ else} \end{cases} \) |
CUpwindProduct | \( \text{up}(v, b, f ) = v \begin{cases} b &\text{ if } v \geq 0 \\ f &\text{ else} \end{cases} \) |
CVanLeer | \( f(x_1,x_2) = 2\begin{cases} \frac{x_1x_2}{x_1+x_2} &\text{ if } x_1x_2 > 0 \\ 0 & \text { else } \end{cases} \) |
CView | A vector view class, usable in dg functions |
CVortex | \(f(x,y) =\begin{cases} \frac{u_d}{1.2965125} \left( r\left(1+\frac{\beta_i^2}{g_i^2}\right) - R \frac{\beta_i^2}{g_i^2} \frac{J_1(g_ir/R)}{J_1(g_i)}\right)\cos(\theta) \text{ if } r < R \\ \frac{u_d}{1.2965125} R \frac{K_1(\beta_i {r}/{R})}{K_1(\beta)} \cos(\theta) \text{ else } \end{cases} \) |
CWallDistance | Shortest Distance to a collection of vertical and horizontal lines |
CZERO | \( f(x) = f(x,y) = f(x,y,z) = 0\) |