Extension: Matrix functions
#include "dg/matrix/matrix.h"
dg Namespace Reference

Classes for Krylov space approximations of a Matrix-Vector product. More...

Namespaces

namespace  blas1
 
namespace  blas2
 
namespace  create
 
namespace  mat
 
namespace  tensor
 
namespace  x
 

Classes

struct  ABS
 
struct  AbsMax
 
struct  AbsMin
 
struct  aCommunicator
 
struct  Adaptive
 
struct  AdaptiveTimeloop
 
struct  Advection
 
struct  AndersonAcceleration
 
struct  AnyMatrixTag
 
struct  AnyPolicyTag
 
struct  AnyScalarTag
 
struct  AnyVectorTag
 
struct  ArakawaX
 
struct  aRealGeometry2d
 
struct  aRealGeometry3d
 
struct  aRealGeometryX2d
 
struct  aRealGeometryX3d
 
struct  aRealMPIGeometry2d
 
struct  aRealMPIGeometry3d
 
struct  aRealMPITopology2d
 
struct  aRealMPITopology3d
 
struct  aRealProductGeometry3d
 
struct  aRealProductMPIGeometry3d
 
struct  aRealRefinement1d
 
struct  aRealRefinementX2d
 
struct  aRealTopology2d
 
struct  aRealTopology3d
 
struct  aRealTopologyX2d
 
struct  aRealTopologyX3d
 
struct  ARKStep
 
struct  ArrayScalarTag
 
struct  ArrayVectorTag
 
struct  aTimeloop
 
struct  Average
 
struct  Average< MPI_Vector< container > >
 
struct  Axpby
 
struct  Axpbypgz
 
struct  AxyPby
 
struct  BathRZ
 
class  BICGSTABl
 
struct  BijectiveComm
 
struct  Buffer
 
struct  ButcherTableau
 
struct  Cauchy
 
struct  CauchyX
 
class  ChebyshevIteration
 
struct  ChebyshevPreconditioner
 
struct  ClonePtr
 
struct  Composite
 
struct  CONSTANT
 
struct  ConvertsToButcherTableau
 
struct  ConvertsToMultistepTableau
 
struct  ConvertsToShuOsherTableau
 
struct  CooSparseBlockMat
 
struct  CosXCosY
 
struct  CosY
 
struct  CSRAverageFilter
 
struct  CSRMedianFilter
 
struct  CSRSlopeLimiter
 
struct  CSRSWMFilter
 
struct  CSRSymvFilter
 
struct  CudaTag
 
struct  CuspMatrixTag
 
struct  CuspVectorTag
 
struct  DefaultSolver
 
struct  DenseMatrixTag
 
struct  DIRKStep
 
struct  Distance
 
struct  divides
 
struct  divides_equals
 
class  DLT
 
struct  DPolynomialHeaviside
 
class  Elliptic1d
 
class  Elliptic2d
 
class  Elliptic3d
 
struct  EllSparseBlockMat
 
struct  EmbeddedPairSum
 
struct  EntireDomain
 
struct  equals
 
struct  ERKStep
 
class  Error
 
struct  Evaluate
 
class  EVE
 
struct  EXP
 
struct  ExplicitMultistep
 
struct  ExponentialFilter
 
struct  ExpProfX
 
struct  Extrapolation
 
struct  Fail
 
struct  FilteredERKStep
 
struct  FilteredExplicitMultistep
 
struct  Gaussian
 
struct  Gaussian3d
 
struct  GaussianDamping
 
struct  GaussianX
 
struct  GaussianY
 
struct  GaussianZ
 
struct  GeneralComm
 
struct  GeneralHelmholtz
 
struct  Heaviside
 
struct  Helmholtz2
 
struct  Histogram
 
struct  Histogram2D
 
struct  Horner2d
 
struct  IDENTITY
 
struct  IdentityFilter
 
struct  ImExMultistep
 
struct  ImplicitMultistep
 
struct  InvCoshXsq
 
struct  InverseKroneckerTriDiagonal2d
 
struct  InverseTensorMultiply2d
 
struct  InverseTensorMultiply3d
 
struct  InverseTriDiagonal
 
struct  INVERT
 
struct  InvSqrt
 
struct  IPolynomialHeaviside
 
struct  Iris
 
struct  IslandXY
 
struct  ISNFINITE
 
struct  ISNSANE
 
struct  KroneckerTriDiagonal2d
 
struct  Lamb
 
struct  LeastSquaresExtrapolation
 
struct  LeastSquaresPreconditioner
 
class  LGMRES
 
struct  Line
 
struct  LinearX
 
struct  LinearY
 
struct  LinearZ
 
struct  LN
 
class  Message
 
struct  MinMod
 
struct  minus_equals
 
struct  MOD
 
struct  ModifiedChebyshevPreconditioner
 
struct  MPI_Vector
 
struct  MPIDistMat
 
struct  MPIMatrixTag
 
struct  MPITag
 
struct  MPIVectorTag
 
struct  MultigridCG2d
 
struct  MultiMatrix
 
struct  MultistepTableau
 
struct  MultistepTimeloop
 
struct  NearestNeighborComm
 
struct  NestedGrids
 
struct  NoPolicyTag
 
class  NoRoot1d
 
struct  NotATensorTag
 
struct  OmpTag
 
struct  ONE
 
struct  OneDimensionalTag
 
class  Operator
 
struct  PairSum
 
class  PCG
 
struct  PLUS
 
struct  Plus
 
struct  plus_equals
 
struct  PointwiseDivide
 
struct  PointwiseDot
 
struct  Poisson
 
struct  PolynomialHeaviside
 
struct  PolynomialRectangle
 
struct  POSVALUE
 
struct  PsiPupil
 
struct  Pupil
 
struct  RealCartesianGrid2d
 
struct  RealCartesianGrid3d
 
struct  RealCartesianGridX2d
 
struct  RealCartesianGridX3d
 
struct  RealCartesianMPIGrid2d
 
struct  RealCartesianMPIGrid3d
 
struct  RealCartesianRefinedGrid2d
 
struct  RealCartesianRefinedGrid3d
 
struct  RealCartesianRefinedGridX2d
 
struct  RealCartesianRefinedGridX3d
 
struct  RealCylindricalGrid3d
 
struct  RealCylindricalMPIGrid3d
 
struct  RealEquidistRefinement
 
struct  RealEquidistXRefinement
 
struct  RealExponentialRefinement
 
struct  RealExponentialXRefinement
 
struct  RealFemRefinement
 
struct  RealGrid1d
 
struct  RealGrid2d
 
struct  RealGrid3d
 
struct  RealGridX1d
 
struct  RealGridX2d
 
struct  RealGridX3d
 
struct  RealIdentityRefinement
 
struct  RealIdentityXRefinement
 
struct  RealLinearRefinement
 
struct  RealMPIGrid2d
 
struct  RealMPIGrid3d
 
struct  RecursiveVectorTag
 
class  RefinedElliptic
 
struct  RowColDistMat
 
struct  Scal
 
struct  ScalarTag
 
struct  SelfMadeMatrixTag
 
struct  SerialTag
 
struct  SharedTag
 
struct  SharedVectorTag
 
struct  ShuOsher
 
struct  ShuOsherTableau
 
struct  Sign
 
struct  Simpsons
 
struct  SinglestepTimeloop
 
struct  SinProfX
 
struct  SinX
 
struct  SinXCosY
 
struct  SinXSinY
 
struct  SinY
 
struct  SlopeLimiter
 
struct  SlopeLimiterProduct
 
struct  SparseBlockMatrixTag
 
struct  SparseTensor
 
struct  SQRT
 
struct  Square
 
struct  StdMapTag
 
struct  Sum
 
struct  SurjectiveComm
 
struct  TanhProfX
 
struct  TensorDeterminant2d
 
struct  TensorDeterminant3d
 
struct  TensorDot2d
 
struct  TensorDot3d
 
struct  TensorMultiply2d
 
struct  TensorMultiply3d
 
struct  TensorTraits
 
struct  TensorTraits< CooSparseBlockMat< T > >
 
struct  TensorTraits< cusp::coo_matrix< I, V, M > >
 
struct  TensorTraits< cusp::csr_matrix< I, V, M > >
 
struct  TensorTraits< cusp::dia_matrix< I, V, M > >
 
struct  TensorTraits< cusp::ell_matrix< I, V, M > >
 
struct  TensorTraits< cusp::hyb_matrix< I, V, M > >
 
struct  TensorTraits< EllSparseBlockMat< T > >
 
struct  TensorTraits< mat::PolChargeN< G, M, V > >
 
struct  TensorTraits< MPI_Vector< container > >
 
struct  TensorTraits< MPIDistMat< L, C > >
 
struct  TensorTraits< RowColDistMat< LI, LO, C > >
 
struct  TensorTraits< std::array< T, N >, std::enable_if_t< !std::is_arithmetic< T >::value > >
 
struct  TensorTraits< std::array< T, N >, std::enable_if_t< std::is_arithmetic< T >::value > >
 
struct  TensorTraits< std::map< Key, T > >
 
struct  TensorTraits< std::vector< T >, std::enable_if_t< !std::is_arithmetic< T >::value > >
 
struct  TensorTraits< std::vector< T >, std::enable_if_t< std::is_arithmetic< T >::value > >
 
struct  TensorTraits< T, std::enable_if_t< std::is_arithmetic< T >::value > >
 
struct  TensorTraits< thrust::device_vector< T > >
 
struct  TensorTraits< thrust::host_vector< T > >
 
struct  TensorTraits< View< ThrustVector > >
 
struct  ThreeDimensionalTag
 
struct  ThrustVectorTag
 
struct  Timer
 
struct  times_equals
 
struct  TopologyTraits
 
struct  TriDiagonal
 
struct  TripletSum
 
struct  TwoDimensionalTag
 
struct  Upwind
 
struct  UpwindProduct
 
struct  VanLeer
 
struct  View
 
struct  Vortex
 
struct  WallDistance
 
struct  ZERO
 

Typedefs

typedef EllSparseBlockMat< value_type > EllSparseBlockMatDevice
 
typedef CooSparseBlockMat< value_type > CooSparseBlockMatDevice
 
typedef typename TensorTraits< std::decay_t< Vector > >::value_type get_value_type
 
typedef typename TensorTraits< std::decay_t< Vector > >::tensor_category get_tensor_category
 
typedef typename TensorTraits< std::decay_t< Vector > >::execution_policy get_execution_policy
 
typedef thrust::host_vector< T > HVec_t
 
typedef thrust::host_vector< double > HVec
 
typedef thrust::host_vector< int > iHVec
 
typedef thrust::host_vector< float > fHVec
 
typedef thrust::device_vector< double > DVec
 
typedef thrust::device_vector< int > iDVec
 
typedef thrust::device_vector< float > fDVec
 
typedef EllSparseBlockMat< T > HMatrix_t
 
typedef EllSparseBlockMat< double > HMatrix
 
typedef EllSparseBlockMat< float > fHMatrix
 
typedef EllSparseBlockMatDevice< double > DMatrix
 
typedef EllSparseBlockMatDevice< float > fDMatrix
 
typedef cusp::csr_matrix< int, real_type, cusp::host_memory > IHMatrix_t
 
typedef cusp::csr_matrix< int, real_type, cusp::device_memory > IDMatrix_t
 
typedef IHMatrix_t< double > IHMatrix
 
typedef IDMatrix_t< double > IDMatrix
 
typedef dg::MPI_Vector< dg::HVec_t< T > > MHVec_t
 
typedef dg::MPI_Vector< dg::HVecMHVec
 
typedef dg::MPI_Vector< dg::fHVecfMHVec
 
typedef dg::MPI_Vector< dg::DVecMDVec
 
typedef dg::MPI_Vector< dg::fDVecfMDVec
 
typedef dg::NearestNeighborComm< dg::iHVec, thrust::host_vector< const T * >, thrust::host_vector< T > > NNCH
 
typedef dg::NearestNeighborComm< dg::iDVec, thrust::device_vector< const T * >, thrust::device_vector< T > > NNCD
 
typedef dg::NNCH< double > dNNCH
 
typedef dg::NNCH< float > fNNCH
 
typedef dg::NNCD< double > dNNCD
 
typedef dg::NNCD< float > fNNCD
 
typedef dg::CooSparseBlockMat< T > CooMat_t
 
typedef dg::CooSparseBlockMat< double > CooMat
 
typedef dg::CooSparseBlockMat< float > fCooMat
 
typedef dg::CooSparseBlockMatDevice< double > DCooMat
 
typedef dg::CooSparseBlockMatDevice< float > fDCooMat
 
typedef dg::RowColDistMat< dg::HMatrix_t< T >, dg::CooMat_t< T >, dg::NNCH< T > > MHMatrix_t
 
typedef dg::RowColDistMat< dg::HMatrix, dg::CooMat, dg::dNNCHMHMatrix
 
typedef dg::RowColDistMat< dg::fHMatrix, dg::fCooMat, dg::fNNCHfMHMatrix
 
typedef dg::RowColDistMat< dg::DMatrix, dg::DCooMat, dg::dNNCDMDMatrix
 
typedef dg::RowColDistMat< dg::fDMatrix, dg::fDCooMat, dg::fNNCDfMDMatrix
 
typedef MPIDistMat< IHMatrix_t< real_type >, GeneralComm< dg::iHVec, thrust::host_vector< real_type > > > MIHMatrix_t
 
typedef MPIDistMat< IDMatrix_t< real_type >, GeneralComm< dg::iDVec, thrust::device_vector< real_type > > > MIDMatrix_t
 
typedef MIHMatrix_t< double > MIHMatrix
 
typedef MIDMatrix_t< double > MIDMatrix
 
typedef dg::aRealGeometry2d< double > aGeometry2d
 
typedef dg::aRealGeometry3d< double > aGeometry3d
 
typedef dg::aRealProductGeometry3d< double > aProductGeometry3d
 
typedef dg::RealCartesianGrid2d< double > CartesianGrid2d
 
typedef dg::RealCartesianGrid3d< double > CartesianGrid3d
 
typedef dg::RealCylindricalGrid3d< double > CylindricalGrid3d
 
typedef dg::RealCartesianGridX2d< double > CartesianGridX2d
 
typedef dg::RealCartesianGridX3d< double > CartesianGridX3d
 
typedef dg::aRealGeometryX2d< double > aGeometryX2d
 
typedef dg::aRealGeometryX3d< double > aGeometryX3d
 
typedef dg::RealGrid1d< double > Grid1d
 
typedef dg::RealGrid2d< double > Grid2d
 
typedef dg::RealGrid3d< double > Grid3d
 
typedef dg::aRealTopology2d< double > aTopology2d
 
typedef dg::aRealTopology3d< double > aTopology3d
 
typedef dg::RealGridX1d< double > GridX1d
 
typedef dg::RealGridX2d< double > GridX2d
 
typedef dg::RealGridX3d< double > GridX3d
 
typedef dg::aRealTopologyX2d< double > aTopologyX2d
 
typedef dg::aRealTopologyX3d< double > aTopologyX3d
 
typedef dg::aRealMPIGeometry2d< double > aMPIGeometry2d
 
typedef dg::aRealMPIGeometry3d< double > aMPIGeometry3d
 
typedef dg::aRealProductMPIGeometry3d< double > aProductMPIGeometry3d
 
typedef dg::RealCartesianMPIGrid2d< double > CartesianMPIGrid2d
 
typedef dg::RealCartesianMPIGrid3d< double > CartesianMPIGrid3d
 
typedef dg::RealCylindricalMPIGrid3d< double > CylindricalMPIGrid3d
 
typedef dg::RealMPIGrid2d< double > MPIGrid2d
 
typedef dg::RealMPIGrid3d< double > MPIGrid3d
 
typedef dg::aRealMPITopology2d< double > aMPITopology2d
 
typedef dg::aRealMPITopology3d< double > aMPITopology3d
 
typedef dg::aRealRefinement1d< double > aRefinement1d
 
typedef dg::RealIdentityRefinement< double > IdentityRefinement
 
typedef dg::RealFemRefinement< double > FemRefinement
 
typedef dg::RealLinearRefinement< double > LinearRefinement
 
typedef dg::RealEquidistRefinement< double > EquidistRefinement
 
typedef dg::RealExponentialRefinement< double > ExponentialRefinement
 
typedef dg::RealCartesianRefinedGrid2d< double > CartesianRefinedGrid2d
 
typedef dg::RealCartesianRefinedGrid3d< double > CartesianRefinedGrid3d
 
typedef dg::aRealRefinementX2d< double > aRefinementX2d
 
typedef dg::RealIdentityXRefinement< double > IdentityXRefinement
 
typedef dg::RealEquidistXRefinement< double > EquidistXRefinement
 
typedef dg::RealExponentialXRefinement< double > ExponentialXRefinement
 
typedef dg::RealCartesianRefinedGridX2d< double > CartesianRefinedGridX2d
 
typedef dg::RealCartesianRefinedGridX3d< double > CartesianRefinedGridX3d
 
typedef std::conditional_t< std::is_const< MPIContainer >::value, MPI_Vector< View< const typename MPIContainer::container_type > >, MPI_Vector< View< typename MPIContainer::container_type > > > get_mpi_view_type
 
typedef AndersonAcceleration< ContainerType > FixedPointIteration
 
typedef Elliptic2d< Geometry, Matrix, Container > Elliptic
 
typedef GeneralHelmholtz< dg::Elliptic2d< Geometry, Matrix, Container >, Container > Helmholtz
 
typedef GeneralHelmholtz< dg::Elliptic1d< Geometry, Matrix, Container >, Container > Helmholtz1d
 
typedef GeneralHelmholtz< dg::Elliptic2d< Geometry, Matrix, Container >, Container > Helmholtz2d
 
typedef GeneralHelmholtz< dg::Elliptic3d< Geometry, Matrix, Container >, Container > Helmholtz3d
 
typedef ERKStep< ContainerType > RungeKutta
 
typedef FilteredERKStep< ContainerType > FilteredRungeKutta
 
typedef DIRKStep< ContainerType > ImplicitRungeKutta
 

Enumerations

enum  dist_type
 
enum  bc
 
enum  direction
 
enum  space
 
enum  coo2d { x , y }
 
enum  coo3d {
  x , y , z , xy ,
  yz , xz
}
 
enum  multistep_identifier
 
enum  to { exact , at_least }
 
enum  tableau_identifier
 

Functions

void transpose (unsigned nx, unsigned ny, const ContainerType &in, ContainerType &out)
 
void extend_line (unsigned nx, unsigned ny, const ContainerType &in, ContainerType &out)
 
void extend_column (unsigned nx, unsigned ny, const ContainerType &in, ContainerType &out)
 
auto asDenseMatrix (const std::vector< const ContainerType * > &in)
 
auto asDenseMatrix (const std::vector< const ContainerType * > &in, unsigned size)
 
std::vector< const ContainerType * > asPointers (const std::vector< ContainerType > &in)
 
static void abort_program (int code=-1)
 
static void mpi_init (int argc, char *argv[])
 
static void mpi_init2d (dg::bc bcx, dg::bc bcy, MPI_Comm &comm, std::istream &is=std::cin, bool verbose=true)
 
static void mpi_init2d (unsigned &n, unsigned &Nx, unsigned &Ny, MPI_Comm comm, std::istream &is=std::cin, bool verbose=true)
 
static void mpi_init2d (dg::bc bcx, dg::bc bcy, unsigned &n, unsigned &Nx, unsigned &Ny, MPI_Comm &comm, std::istream &is=std::cin, bool verbose=true)
 
static void mpi_init3d (dg::bc bcx, dg::bc bcy, dg::bc bcz, MPI_Comm &comm, std::istream &is=std::cin, bool verbose=true)
 
static void mpi_init3d (unsigned &n, unsigned &Nx, unsigned &Ny, unsigned &Nz, MPI_Comm comm, std::istream &is=std::cin, bool verbose=true)
 
static void mpi_init3d (dg::bc bcx, dg::bc bcy, dg::bc bcz, unsigned &n, unsigned &Nx, unsigned &Ny, unsigned &Nz, MPI_Comm &comm, std::istream &is=std::cin, bool verbose=true)
 
Matrix transpose (const Matrix &src)
 
thrust::host_vector< real_type > pullback (const Functor &f, const aRealGeometryX2d< real_type > &g)
 
thrust::host_vector< real_type > pullback (const Functor &f, const aRealGeometryX3d< real_type > &g)
 
thrust::host_vector< real_type > evaluate (UnaryOp f, const RealGrid1d< real_type > &g)
 
thrust::host_vector< real_type > evaluate (const BinaryOp &f, const aRealTopology2d< real_type > &g)
 
thrust::host_vector< real_type > evaluate (const TernaryOp &f, const aRealTopology3d< real_type > &g)
 
thrust::host_vector< real_type > integrate (const thrust::host_vector< real_type > &in, const RealGrid1d< real_type > &g, dg::direction dir=dg::forward)
 
thrust::host_vector< real_type > integrate (UnaryOp f, const RealGrid1d< real_type > &g, dg::direction dir=dg::forward)
 
thrust::host_vector< real_type > evaluate (UnaryOp f, const RealGridX1d< real_type > &g)
 
thrust::host_vector< real_type > evaluate (const BinaryOp &f, const aRealTopologyX2d< real_type > &g)
 
thrust::host_vector< real_type > evaluate (const TernaryOp &f, const aRealTopologyX3d< real_type > &g)
 
thrust::host_vector< real_type > forward_transform (const thrust::host_vector< real_type > &in, const aRealTopology2d< real_type > &g)
 
static DG_DEVICE double one (double x)
 
static DG_DEVICE double one (double x, double y)
 
static DG_DEVICE double one (double x, double y, double z)
 
static DG_DEVICE double zero (double x)
 
static DG_DEVICE double zero (double x, double y)
 
static DG_DEVICE double zero (double x, double y, double z)
 
static DG_DEVICE double cooX1d (double x)
 
static DG_DEVICE double cooX2d (double x, double y)
 
static DG_DEVICE double cooX3d (double x, double y, double z)
 
static DG_DEVICE double cooY2d (double x, double y)
 
static DG_DEVICE double cooY3d (double x, double y, double z)
 
static DG_DEVICE double cooZ3d (double x, double y, double z)
 
static DG_DEVICE double cooRZP2X (double R, double Z, double P)
 
static DG_DEVICE double cooRZP2Y (double R, double Z, double P)
 
static DG_DEVICE double cooRZP2Z (double R, double Z, double P)
 
static DG_DEVICE float one (float x)
 
static DG_DEVICE float one (float x, float y)
 
static DG_DEVICE float one (float x, float y, float z)
 
static DG_DEVICE float zero (float x)
 
static DG_DEVICE float zero (float x, float y)
 
static DG_DEVICE float zero (float x, float y, float z)
 
real_type interpolate (dg::space sp, const thrust::host_vector< real_type > &v, real_type x, const RealGrid1d< real_type > &g, dg::bc bcx=dg::NEU)
 
real_type interpolate (dg::space sp, const thrust::host_vector< real_type > &v, real_type x, real_type y, const aRealTopology2d< real_type > &g, dg::bc bcx=dg::NEU, dg::bc bcy=dg::NEU)
 
real_type interpolate (dg::space sp, const thrust::host_vector< real_type > &v, real_type x, real_type y, const aRealTopologyX2d< real_type > &g, dg::bc bcx=dg::NEU, dg::bc bcy=dg::NEU)
 
MPI_Vector< thrust::host_vector< real_type > > evaluate (const BinaryOp &f, const aRealMPITopology2d< real_type > &g)
 
MPI_Vector< thrust::host_vector< real_type > > evaluate (const TernaryOp &f, const aRealMPITopology3d< real_type > &g)
 
MPI_Vector< thrust::host_vector< real_type > > global2local (const thrust::host_vector< real_type > &global, const aRealMPITopology3d< real_type > &g)
 
MPI_Vector< thrust::host_vector< real_type > > global2local (const thrust::host_vector< real_type > &global, const aRealMPITopology2d< real_type > &g)
 
dg::MIHMatrix_t< real_type > convert (const dg::IHMatrix_t< real_type > &global, const ConversionPolicy &policy)
 
dg::IHMatrix_t< real_type > convertGlobal2LocalRows (const dg::IHMatrix_t< real_type > &global, const ConversionPolicy &policy)
 
void convertLocal2GlobalCols (dg::IHMatrix_t< real_type > &local, const ConversionPolicy &policy)
 
dg::Operator< T > invert (const dg::Operator< T > &in)
 
Operator< T > tensorproduct (const Operator< T > &op1, const Operator< T > &op2)
 
cusp::coo_matrix< int, T, cusp::host_memory > tensorproduct (unsigned N, const Operator< T > &op)
 
cusp::coo_matrix< int, T, cusp::host_memory > sandwich (const Operator< T > &left, const cusp::coo_matrix< int, T, cusp::host_memory > &m, const Operator< T > &right)
 
gcd (T a, T b)
 
lcm (T a, T b)
 
void split (SharedContainer &in, std::vector< View< SharedContainer > > &out, const aRealTopology3d< real_type > &grid)
 
std::vector< View< SharedContainer > > split (SharedContainer &in, const aRealTopology3d< real_type > &grid)
 
void assign3dfrom2d (const thrust::host_vector< real_type > &in2d, Container &out, const aRealTopology3d< real_type > &grid)
 
void split (MPIContainer &in, std::vector< get_mpi_view_type< MPIContainer > > &out, const aRealMPITopology3d< real_type > &grid)
 
std::vector< get_mpi_view_type< MPIContainer > > split (MPIContainer &in, const aRealMPITopology3d< real_type > &grid)
 
void assign3dfrom2d (const MPI_Vector< thrust::host_vector< real_type > > &in2d, MPI_Vector< LocalContainer > &out, const aRealMPITopology3d< real_type > &grid)
 
thrust::host_vector< real_type > pullback (const Functor &f, const aRealGeometry2d< real_type > &g)
 
thrust::host_vector< real_type > pullback (const Functor &f, const aRealGeometry3d< real_type > &g)
 
MPI_Vector< thrust::host_vector< real_type > > pullback (const Functor &f, const aRealMPIGeometry2d< real_type > &g)
 
MPI_Vector< thrust::host_vector< real_type > > pullback (const Functor &f, const aRealMPIGeometry3d< real_type > &g)
 
void pushForwardPerp (const Functor1 &vR, const Functor2 &vZ, container &vx, container &vy, const Geometry &g)
 
void pushForward (const Functor1 &vR, const Functor2 &vZ, const Functor3 &vPhi, container &vx, container &vy, container &vz, const Geometry &g)
 
void pushForwardPerp (const FunctorRR &chiRR, const FunctorRZ &chiRZ, const FunctorZZ &chiZZ, SparseTensor< container > &chi, const Geometry &g)
 
cusp::csr_matrix< int, T, cusp::host_memory > tensorproduct (const cusp::csr_matrix< int, T, cusp::host_memory > &lhs, const cusp::csr_matrix< int, T, cusp::host_memory > &rhs)
 
void assign (const from_ContainerType &from, ContainerType &to, Params &&... ps)
 
ContainerType construct (const from_ContainerType &from, Params &&... ps)
 
void apply (get_value_type< ContainerType1 > alpha, MatrixType &&M, const ContainerType1 &x, get_value_type< ContainerType1 > beta, ContainerType2 &y)
 
void apply (MatrixType &&M, const ContainerType1 &x, ContainerType2 &y)
 
static std::string bc2str (bc bcx)
 
static bc str2bc (std::string s)
 
static bc inverse (bc bound)
 
static direction str2direction (std::string s)
 
static std::string direction2str (enum direction dir)
 
static direction inverse (direction dir)
 
std::vector< double > least_squares (const std::vector< ContainerType0 > &bs, const ContainerType1 &b)
 
void nested_iterations (std::vector< MatrixType0 > &ops, ContainerType0 &x, const ContainerType1 &b, std::vector< MatrixType1 > &inverse_ops, NestedGrids &nested_grids)
 
void multigrid_cycle (std::vector< MatrixType0 > &ops, std::vector< MatrixType1 > &inverse_ops_down, std::vector< MatrixType2 > &inverse_ops_up, NestedGrids &nested_grids, unsigned gamma, unsigned p)
 
void full_multigrid (std::vector< MatrixType0 > &ops, ContainerType0 &x, const ContainerType1 &b, std::vector< MatrixType1 > &inverse_ops_down, std::vector< MatrixType2 > &inverse_ops_up, NestedGrids &nested_grids, unsigned gamma, unsigned mu)
 
void fmg_solve (std::vector< MatrixType0 > &ops, ContainerType0 &x, const ContainerType1 &b, std::vector< MatrixType1 > &inverse_ops_down, std::vector< MatrixType2 > &inverse_ops_up, NestedGrids &nested_grids, const ContainerType2 &weights, double eps, unsigned gamma)
 
int bisection1d (UnaryOp &op, double &x_min, double &x_max, const double eps)
 
static std::string to2str (enum to mode)
 
bool is_same (double x, double y, double eps=1e-15)
 
bool is_same (float x, float y, float eps=1e-6)
 
bool is_divisable (double a, double b, double eps=1e-15)
 
bool is_divisable (float a, float b, float eps=1e-6)
 
auto compose (UnaryOp f, Functor g)
 
auto compose (UnaryOp f0, Functors... fs)
 

Variables

 row_dist
 
 col_dist
 
 PER
 
 DIR
 
 DIR_NEU
 
 NEU_DIR
 
 NEU
 
 forward
 
 backward
 
 centered
 
 lspace
 
 xspace
 
 IMEX_EULER_1_1
 
 IMEX_ADAMS_2_2
 
 IMEX_ADAMS_3_3
 
 IMEX_KOTO_2_2
 
 IMEX_BDF_2_2
 
 IMEX_BDF_3_3
 
 IMEX_BDF_4_4
 
 IMEX_BDF_5_5
 
 IMEX_BDF_6_6
 
 IMEX_TVB_3_3
 
 IMEX_TVB_4_4
 
 IMEX_TVB_5_5
 
 AB_1_1
 
 AB_2_2
 
 AB_3_3
 
 AB_4_4
 
 AB_5_5
 
 eBDF_1_1
 
 eBDF_2_2
 
 eBDF_3_3
 
 eBDF_4_4
 
 eBDF_5_5
 
 eBDF_6_6
 
 TVB_1_1
 
 TVB_2_2
 
 TVB_3_3
 
 TVB_4_4
 
 TVB_5_5
 
 TVB_6_6
 
 SSP_1_1
 
 SSP_2_2
 
 SSP_3_2
 
 SSP_4_2
 
 SSP_5_3
 
 SSP_6_3
 
 BDF_1_1
 
 BDF_2_2
 
 BDF_3_3
 
 BDF_4_4
 
 BDF_5_5
 
 BDF_6_6
 
 EXPLICIT_EULER_1_1
 
 MIDPOINT_2_2
 
 KUTTA_3_3
 
 CLASSIC_4_4
 
 HEUN_EULER_2_1_2
 
 CAVAGLIERI_3_1_2
 
 FEHLBERG_3_2_3
 
 FEHLBERG_4_2_3
 
 BOGACKI_SHAMPINE_4_2_3
 
 CAVAGLIERI_4_2_3
 
 ARK324L2SA_ERK_4_2_3
 
 ZONNEVELD_5_3_4
 
 ARK436L2SA_ERK_6_3_4
 
 SAYFY_ABURUB_6_3_4
 
 CASH_KARP_6_4_5
 
 FEHLBERG_6_4_5
 
 DORMAND_PRINCE_7_4_5
 
 TSITOURAS09_7_4_5
 
 TSITOURAS11_7_4_5
 
 ARK548L2SA_ERK_8_4_5
 
 VERNER_9_5_6
 
 VERNER_10_6_7
 
 FEHLBERG_13_7_8
 
 DORMAND_PRINCE_13_7_8
 
 FEAGIN_17_8_10
 
 IMPLICIT_EULER_1_1
 
 IMPLICIT_MIDPOINT_1_2
 
 TRAPEZOIDAL_2_2
 
 SDIRK_2_1_2
 
 CAVAGLIERI_IMPLICIT_3_1_2
 
 BILLINGTON_3_3_2
 
 TRBDF2_3_3_2
 
 SANCHEZ_3_3
 
 KVAERNO_4_2_3
 
 SDIRK_4_2_3
 
 CAVAGLIERI_IMPLICIT_4_2_3
 
 ARK324L2SA_DIRK_4_2_3
 
 SANCHEZ_3_4
 
 CASH_5_2_4
 
 CASH_5_3_4
 
 SDIRK_5_3_4
 
 KVAERNO_5_3_4
 
 ARK436L2SA_DIRK_6_3_4
 
 KVAERNO_7_4_5
 
 SANCHEZ_6_5
 
 ARK548L2SA_DIRK_8_4_5
 
 SANCHEZ_7_6
 
 SSPRK_2_2
 
 SSPRK_3_2
 
 SSPRK_3_3
 
 SSPRK_5_3
 
 SSPRK_5_4
 
static auto l2norm
 
static auto fast_l2norm
 
static auto i_control
 
static auto pi_control
 
static auto pid_control
 
static auto ex_control
 
static auto im_control
 
static auto imex_control
 

Detailed Description

Classes for Krylov space approximations of a Matrix-Vector product.

Classes for Matrix function-Vector product computation via the ODE method.

Classes for square root Matrix-Vector product computation via the Cauchy integral.