Cabana 0.8.0-dev
 
Loading...
Searching...
No Matches
Cabana_Grid_HypreStructuredSolver.hpp File Reference

HYPRE structured solver interface. More...

#include <Cabana_Grid_Array.hpp>
#include <Cabana_Grid_GlobalGrid.hpp>
#include <Cabana_Grid_Hypre.hpp>
#include <Cabana_Grid_IndexSpace.hpp>
#include <Cabana_Grid_LocalGrid.hpp>
#include <Cabana_Grid_Types.hpp>
#include <HYPRE_config.h>
#include <HYPRE_struct_ls.h>
#include <HYPRE_struct_mv.h>
#include <Kokkos_Core.hpp>
#include <Kokkos_Profiling_ScopedRegion.hpp>
#include <array>
#include <memory>
#include <numeric>
#include <sstream>
#include <string>
#include <type_traits>
#include <vector>
Include dependency graph for Cabana_Grid_HypreStructuredSolver.hpp:

Go to the source code of this file.

Classes

class  Cabana::Grid::HypreStructuredSolver< Scalar, EntityType, MemorySpace >
 Hypre structured solver interface for scalar fields. More...
 
class  Cabana::Grid::HypreStructPCG< Scalar, EntityType, MemorySpace >
 PCG solver. More...
 
class  Cabana::Grid::HypreStructGMRES< Scalar, EntityType, MemorySpace >
 GMRES solver. More...
 
class  Cabana::Grid::HypreStructBiCGSTAB< Scalar, EntityType, MemorySpace >
 BiCGSTAB solver. More...
 
class  Cabana::Grid::HypreStructPFMG< Scalar, EntityType, MemorySpace >
 PFMG solver. More...
 
class  Cabana::Grid::HypreStructSMG< Scalar, EntityType, MemorySpace >
 SMG solver. More...
 
class  Cabana::Grid::HypreStructJacobi< Scalar, EntityType, MemorySpace >
 Jacobi solver. More...
 
class  Cabana::Grid::HypreStructDiagonal< Scalar, EntityType, MemorySpace >
 Diagonal preconditioner. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructPCG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructPCG (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructGMRES< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructGMRES (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructBiCGSTAB< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructBiCGSTAB (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructPFMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructPFMG (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructSMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructSMG (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructJacobi< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructJacobi (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructDiagonal< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructDiagonal (const ArrayLayout_t &layout, const bool is_preconditioner=false)
 
template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructuredSolver< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructuredSolver (const std::string &solver_type, const ArrayLayout_t &layout, const bool is_preconditioner=false)
 Create a HYPRE structured solver.
 

Detailed Description

HYPRE structured solver interface.

Function Documentation

◆ createHypreStructBiCGSTAB()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructBiCGSTAB< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructBiCGSTAB ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE BiCGSTAB structured solver.

Returns
Shared pointer to HypreStructBiCGSTAB.

◆ createHypreStructDiagonal()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructDiagonal< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructDiagonal ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE Diagonal structured solver.

Returns
Shared pointer to HypreStructDiagonal.

◆ createHypreStructGMRES()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructGMRES< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructGMRES ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE GMRES structured solver.

Returns
Shared pointer to HypreStructGMRES.

◆ createHypreStructJacobi()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructJacobi< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructJacobi ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE Jacobi structured solver.

Returns
Shared pointer to HypreStructJacobi.

◆ createHypreStructPCG()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructPCG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructPCG ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE PCG structured solver.

Returns
Shared pointer to HypreStructPCG.

◆ createHypreStructPFMG()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructPFMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructPFMG ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE PFMG structured solver.

Returns
Shared pointer to HypreStructPFMG.

◆ createHypreStructSMG()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructSMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructSMG ( const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE SMG structured solver.

Returns
Shared pointer to HypreStructSMG.

◆ createHypreStructuredSolver()

template<class Scalar, class MemorySpace, class ArrayLayout_t>
std::shared_ptr< HypreStructuredSolver< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > Cabana::Grid::createHypreStructuredSolver ( const std::string & solver_type,
const ArrayLayout_t & layout,
const bool is_preconditioner = false )

Create a HYPRE structured solver.

Parameters
solver_typeSolver name.
layoutThe ArrayLayout defining the vector space of the solver.
is_preconditionerUse as a preconditioner.
Returns
Shared pointer to a HypreStructuredSolver.