From 3652aaf535c56d7f9b526ae58e69e0fb00718a36 Mon Sep 17 00:00:00 2001
From: "Automatic Deployment (GitHub Action)"
Date: Mon, 22 Jan 2024 19:50:28 +0000
Subject: [PATCH] Documentation Update
---
...HypreSemiStructuredSolver_8hpp_source.html | 1653 +++++-----
...id__HypreStructuredSolver_8hpp_source.html | 2735 +++++++++--------
...id_1_1HypreSemiStructBiCGSTAB-members.html | 6 +-
...na_1_1Grid_1_1HypreSemiStructBiCGSTAB.html | 89 +-
...id_1_1HypreSemiStructDiagonal-members.html | 75 +-
...na_1_1Grid_1_1HypreSemiStructDiagonal.html | 89 +-
...1Grid_1_1HypreSemiStructGMRES-members.html | 6 +-
...abana_1_1Grid_1_1HypreSemiStructGMRES.html | 89 +-
...1_1Grid_1_1HypreSemiStructPCG-members.html | 6 +-
...sCabana_1_1Grid_1_1HypreSemiStructPCG.html | 89 +-
..._1_1HypreSemiStructuredSolver-members.html | 71 +-
..._1_1Grid_1_1HypreSemiStructuredSolver.html | 62 +-
..._1Grid_1_1HypreStructBiCGSTAB-members.html | 6 +-
...Cabana_1_1Grid_1_1HypreStructBiCGSTAB.html | 70 +-
..._1Grid_1_1HypreStructDiagonal-members.html | 69 +-
...Cabana_1_1Grid_1_1HypreStructDiagonal.html | 70 +-
...a_1_1Grid_1_1HypreStructGMRES-members.html | 6 +-
...assCabana_1_1Grid_1_1HypreStructGMRES.html | 70 +-
..._1_1Grid_1_1HypreStructJacobi-members.html | 6 +-
...ssCabana_1_1Grid_1_1HypreStructJacobi.html | 70 +-
...ana_1_1Grid_1_1HypreStructPCG-members.html | 6 +-
...classCabana_1_1Grid_1_1HypreStructPCG.html | 70 +-
...na_1_1Grid_1_1HypreStructPFMG-members.html | 6 +-
...lassCabana_1_1Grid_1_1HypreStructPFMG.html | 70 +-
...ana_1_1Grid_1_1HypreStructSMG-members.html | 6 +-
...classCabana_1_1Grid_1_1HypreStructSMG.html | 70 +-
...Grid_1_1HypreStructuredSolver-members.html | 65 +-
...bana_1_1Grid_1_1HypreStructuredSolver.html | 62 +-
doxygen/functions.html | 5 +-
doxygen/functions_a.html | 4 +-
doxygen/functions_b.html | 3 +-
doxygen/functions_func_b.html | 2 +-
doxygen/functions_func_s.html | 4 +-
doxygen/functions_s.html | 4 +-
doxygen/functions_type_b.html | 3 +-
doxygen/functions_vars.html | 5 +-
doxygen/search/all_0.js | 57 +-
doxygen/search/all_1.js | 39 +-
doxygen/search/all_13.js | 4 +-
doxygen/search/all_2.js | 74 +-
doxygen/search/all_7.js | 29 +-
doxygen/search/functions_0.js | 4 +-
doxygen/search/functions_1.js | 4 +-
doxygen/search/functions_12.js | 4 +-
doxygen/search/functions_6.js | 4 +-
doxygen/search/typedefs_1.js | 11 +-
doxygen/search/variables_0.js | 57 +-
47 files changed, 3037 insertions(+), 2972 deletions(-)
diff --git a/doxygen/Cabana__Grid__HypreSemiStructuredSolver_8hpp_source.html b/doxygen/Cabana__Grid__HypreSemiStructuredSolver_8hpp_source.html
index 677464e5f..d8f02f8ab 100644
--- a/doxygen/Cabana__Grid__HypreSemiStructuredSolver_8hpp_source.html
+++ b/doxygen/Cabana__Grid__HypreSemiStructuredSolver_8hpp_source.html
@@ -238,37 +238,37 @@
168 _stencil_index.resize( n_vars,
169 std::vector<unsigned>( n_vars + 1 ) );
- 171 error = HYPRE_SStructVectorCreate( _comm, _grid, &_b );
+ 171 error = HYPRE_SStructVectorCreate( _comm, _grid, &
_b );
- 173 error = HYPRE_SStructVectorSetObjectType( _b,
object_type );
+
- 175 error = HYPRE_SStructVectorInitialize( _b );
+ 175 error = HYPRE_SStructVectorInitialize(
_b );
177 for (
int i = 0; i < n_vars; ++i )
179 error = HYPRE_SStructVectorSetBoxValues(
- 180 _b, part, _lower.data(), _upper.data(), i,
+ 180 _b, part, _lower.data(), _upper.data(), i,
181 vector_values.data() );
- 184 error = HYPRE_SStructVectorAssemble( _b );
+ 184 error = HYPRE_SStructVectorAssemble(
_b );
- 187 error = HYPRE_SStructVectorCreate( _comm, _grid, &_x );
+ 187 error = HYPRE_SStructVectorCreate( _comm, _grid, &
_x );
- 189 error = HYPRE_SStructVectorSetObjectType( _x,
object_type );
+
- 191 error = HYPRE_SStructVectorInitialize( _x );
+ 191 error = HYPRE_SStructVectorInitialize(
_x );
193 for (
int i = 0; i < n_vars; ++i )
195 error = HYPRE_SStructVectorSetBoxValues(
- 196 _x, part, _lower.data(), _upper.data(), i,
+ 196 _x, part, _lower.data(), _upper.data(), i,
197 vector_values.data() );
- 201 error = HYPRE_SStructVectorAssemble( _x );
+ 201 error = HYPRE_SStructVectorAssemble(
_x );
@@ -280,9 +280,9 @@
210 if ( !_is_preconditioner )
- 212 HYPRE_SStructVectorDestroy( _x );
- 213 HYPRE_SStructVectorDestroy( _b );
- 214 HYPRE_SStructMatrixDestroy( _A );
+ 212 HYPRE_SStructVectorDestroy(
_x );
+ 213 HYPRE_SStructVectorDestroy(
_b );
+ 214 HYPRE_SStructMatrixDestroy(
_A );
215 for ( std::size_t i = 0; i < _stencils.size(); ++i )
217 HYPRE_SStructStencilDestroy( _stencils[i] );
@@ -380,15 +380,15 @@
- 332 error = HYPRE_SStructMatrixCreate( _comm, _graph, &_A );
+ 332 error = HYPRE_SStructMatrixCreate( _comm, _graph, &
_A );
- 336 error = HYPRE_SStructMatrixSetObjectType( _A,
object_type );
+
- 340 error = HYPRE_SStructMatrixInitialize( _A );
+ 340 error = HYPRE_SStructMatrixInitialize(
_A );
@@ -451,7 +451,7 @@
410 int start = _stencil_index[v_h][v_x];
411 std::iota( indices.begin(), indices.end(), start );
412 auto error = HYPRE_SStructMatrixSetBoxValues(
- 413 _A, part, _lower.data(), _upper.data(), v_h, indices.size(),
+ 413 _A, part, _lower.data(), _upper.data(), v_h, indices.size(),
414 indices.data(), a_values.data() );
@@ -460,21 +460,21 @@
-
424 HYPRE_SStructMatrixPrint( prefix, _A, 0 );
+
424 HYPRE_SStructMatrixPrint( prefix,
_A, 0 );
-
433 HYPRE_SStructVectorPrint( prefix, _x, 0 );
+
433 HYPRE_SStructVectorPrint( prefix,
_x, 0 );
-
442 HYPRE_SStructVectorPrint( prefix, _b, 0 );
+
442 HYPRE_SStructVectorPrint( prefix,
_b, 0 );
@@ -515,10 +515,10 @@
479 if ( _is_preconditioner )
480 throw std::logic_error(
"Cannot call setup() on preconditioners" );
- 482 auto error = HYPRE_SStructMatrixAssemble( _A );
+ 482 auto error = HYPRE_SStructMatrixAssemble(
_A );
-
+
@@ -580,15 +580,15 @@
549 Kokkos::deep_copy( b_values, b_subv );
550 error = HYPRE_SStructVectorSetBoxValues(
- 551 _b, part, _lower.data(), _upper.data(), var, b_values.data() );
+ 551 _b, part, _lower.data(), _upper.data(), var, b_values.data() );
- 555 error = HYPRE_SStructVectorAssemble( _b );
+ 555 error = HYPRE_SStructVectorAssemble(
_b );
-
+
562 for (
int var = 0; var < n_vars; ++var )
@@ -606,7 +606,7 @@
576 error = HYPRE_SStructVectorGetBoxValues(
- 577 _x, part, _lower.data(), _upper.data(), var, x_values.data() );
+ 577 _x, part, _lower.data(), _upper.data(), var, x_values.data() );
@@ -638,835 +638,838 @@
- 615 virtual void setupImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
- 616 HYPRE_SStructVector x ) = 0;
-
- 619 virtual void solveImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
- 620 HYPRE_SStructVector x ) = 0;
-
-
-
-
-
-
-
- 631 preconditioner ) = 0;
-
-
-
-
-
-
-
-
639 HYPRE_DescribeError( error, error_msg );
-
640 std::stringstream out;
-
641 out <<
"HYPRE semi-structured solver error: ";
-
642 out << error <<
" " << error_msg;
-
643 HYPRE_ClearError( error );
-
644 throw std::runtime_error( out.str() );
-
-
-
-
-
-
- 650 bool _is_preconditioner;
- 651 HYPRE_SStructGrid _grid;
- 652 std::vector<HYPRE_Int> _lower;
- 653 std::vector<HYPRE_Int> _upper;
- 654 std::vector<HYPRE_SStructStencil> _stencils;
- 655 HYPRE_SStructGraph _graph;
- 656 std::vector<unsigned> _stencil_size;
- 657 std::vector<std::vector<unsigned>> _stencil_index;
- 658 HYPRE_SStructMatrix _A;
- 659 HYPRE_SStructVector _b;
- 660 HYPRE_SStructVector _x;
- 661 std::shared_ptr<HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace>>
-
-
-
-
-
- 667template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
675 template <
class ArrayLayout_t>
-
-
-
677 const bool is_preconditioner =
false )
-
678 :
Base( layout, n_vars, is_preconditioner )
-
-
680 if ( is_preconditioner )
-
681 throw std::logic_error(
-
682 "HYPRE PCG cannot be used as a preconditioner" );
-
-
684 auto error = HYPRE_SStructPCGCreate(
-
685 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
688 HYPRE_SStructPCGSetTwoNorm( _solver, 1 );
-
-
+
+
+
+
+
+
+
+
+
+
+
629 preconditioner ) = 0;
+
+
+
+
+
+
+
+
637 HYPRE_DescribeError( error, error_msg );
+
638 std::stringstream out;
+
639 out <<
"HYPRE semi-structured solver error: ";
+
640 out << error <<
" " << error_msg;
+
641 HYPRE_ClearError( error );
+
642 throw std::runtime_error( out.str() );
+
+
+
+
+
647 HYPRE_SStructMatrix
_A;
+
649 HYPRE_SStructVector
_b;
+
651 HYPRE_SStructVector
_x;
+
+
+
+
655 bool _is_preconditioner;
+
656 HYPRE_SStructGrid _grid;
+
657 std::vector<HYPRE_Int> _lower;
+
658 std::vector<HYPRE_Int> _upper;
+
659 std::vector<HYPRE_SStructStencil> _stencils;
+
660 HYPRE_SStructGraph _graph;
+
661 std::vector<unsigned> _stencil_size;
+
662 std::vector<std::vector<unsigned>> _stencil_index;
+
663 std::shared_ptr<HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace>>
+
+
+
+
+
+ 669template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
+
678 template <
class ArrayLayout_t>
+
+
+
680 const bool is_preconditioner =
false )
+
681 :
base_type( layout, n_vars, is_preconditioner )
+
+
683 if ( is_preconditioner )
+
684 throw std::logic_error(
+
685 "HYPRE PCG cannot be used as a preconditioner" );
+
+
687 auto error = HYPRE_SStructPCGCreate(
+
688 layout.localGrid()->globalGrid().comm(), &_solver );
+
-
-
-
-
-
-
-
-
698 auto error = HYPRE_SStructPCGSetAbsoluteTol( _solver, tol );
-
-
-
-
-
-
-
-
706 auto error = HYPRE_SStructPCGSetRelChange( _solver, rel_change );
-
-
-
-
-
-
-
-
713 auto error = HYPRE_SStructPCGSetLogging( _solver, logging );
-
-
-
-
-
-
-
-
-
720 return HYPRE_SStructPCGSetup;
-
-
-
-
-
-
724 return HYPRE_SStructPCGSolve;
-
-
-
-
-
-
-
-
730 auto error = HYPRE_SStructPCGSetTol( _solver, tol );
-
-
-
-
-
-
-
-
736 auto error = HYPRE_SStructPCGSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
742 auto error = HYPRE_SStructPCGSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
746 void setupImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
-
747 HYPRE_SStructVector x )
override
-
-
749 auto error = HYPRE_SStructPCGSetup( _solver, A, b, x );
-
-
-
-
-
-
753 void solveImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
-
754 HYPRE_SStructVector x )
override
-
-
756 auto error = HYPRE_SStructPCGSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
763 auto error = HYPRE_SStructPCGGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
772 HYPRE_SStructPCGGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
779 preconditioner )
override
-
-
781 auto error = HYPRE_SStructPCGSetPrecond(
-
-
-
-
-
-
-
-
-
789 HYPRE_SStructSolver _solver;
-
-
-
-
-
794template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
802 template <
class ArrayLayout_t>
-
-
-
804 const bool is_preconditioner =
false )
-
805 :
Base( layout, n_vars, is_preconditioner )
-
-
807 if ( is_preconditioner )
-
808 throw std::logic_error(
-
809 "HYPRE GMRES cannot be used as a preconditioner" );
-
-
811 auto error = HYPRE_SStructGMRESCreate(
-
812 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
+
691 HYPRE_SStructPCGSetTwoNorm( _solver, 1 );
+
+
+
+
+
+
+
+
+
+
+
701 auto error = HYPRE_SStructPCGSetAbsoluteTol( _solver, tol );
+
+
+
+
+
+
+
+
709 auto error = HYPRE_SStructPCGSetRelChange( _solver, rel_change );
+
+
+
+
+
+
+
+
716 auto error = HYPRE_SStructPCGSetLogging( _solver, logging );
+
+
+
+
+
+
+
+
+
723 return HYPRE_SStructPCGSetup;
+
+
+
+
+
+
727 return HYPRE_SStructPCGSolve;
+
+
+
+
+
+
+
+
733 auto error = HYPRE_SStructPCGSetTol( _solver, tol );
+
+
+
+
+
+
+
+
739 auto error = HYPRE_SStructPCGSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
+
+
745 auto error = HYPRE_SStructPCGSetPrintLevel( _solver, print_level );
+
+
+
+
+
+
+
+
751 auto error = HYPRE_SStructPCGSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
757 auto error = HYPRE_SStructPCGSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
764 auto error = HYPRE_SStructPCGGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
773 HYPRE_SStructPCGGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
780 preconditioner )
override
+
+
782 auto error = HYPRE_SStructPCGSetPrecond(
+
+
+
+
+
+
+
+
+
790 HYPRE_SStructSolver _solver;
+
+
+
+
+
+
+
+ 798template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
+
807 template <
class ArrayLayout_t>
+
+
+
809 const bool is_preconditioner =
false )
+
810 :
base_type( layout, n_vars, is_preconditioner )
+
+
812 if ( is_preconditioner )
+
813 throw std::logic_error(
+
814 "HYPRE GMRES cannot be used as a preconditioner" );
-
-
-
-
-
-
-
-
823 auto error = HYPRE_SStructGMRESSetAbsoluteTol( _solver, tol );
-
-
-
-
-
-
-
-
830 auto error = HYPRE_SStructGMRESSetKDim( _solver, k_dim );
-
-
-
-
-
-
-
-
837 auto error = HYPRE_SStructGMRESSetLogging( _solver, logging );
-
-
-
-
-
-
-
-
-
844 return HYPRE_SStructGMRESSetup;
-
-
-
-
-
-
848 return HYPRE_SStructGMRESSolve;
-
-
-
-
-
-
-
-
854 auto error = HYPRE_SStructGMRESSetTol( _solver, tol );
-
-
-
-
-
-
-
-
860 auto error = HYPRE_SStructGMRESSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
866 auto error = HYPRE_SStructGMRESSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
870 void setupImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
-
871 HYPRE_SStructVector x )
override
-
-
873 auto error = HYPRE_SStructGMRESSetup( _solver, A, b, x );
-
-
-
-
-
-
877 void solveImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
-
878 HYPRE_SStructVector x )
override
-
-
880 auto error = HYPRE_SStructGMRESSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
887 auto error = HYPRE_SStructGMRESGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
896 HYPRE_SStructGMRESGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
903 preconditioner )
override
-
-
905 auto error = HYPRE_SStructGMRESSetPrecond(
-
-
-
-
-
-
-
-
-
913 HYPRE_SStructSolver _solver;
-
-
-
-
-
918template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
926 template <
class ArrayLayout_t>
-
-
-
928 const bool is_preconditioner =
false,
-
-
930 :
Base( layout, n_vars, is_preconditioner )
-
-
932 if ( is_preconditioner )
-
933 throw std::logic_error(
-
934 "HYPRE BiCGSTAB cannot be used as a preconditioner" );
-
-
936 auto error = HYPRE_SStructBiCGSTABCreate(
-
937 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
-
-
+
816 auto error = HYPRE_SStructGMRESCreate(
+
817 layout.localGrid()->globalGrid().comm(), &_solver );
+
+
+
+
+
+
+
+
+
+
+
+
828 auto error = HYPRE_SStructGMRESSetAbsoluteTol( _solver, tol );
+
+
+
+
+
+
+
+
835 auto error = HYPRE_SStructGMRESSetKDim( _solver, k_dim );
+
+
+
+
+
+
+
+
842 auto error = HYPRE_SStructGMRESSetLogging( _solver, logging );
+
+
+
+
+
+
+
+
+
849 return HYPRE_SStructGMRESSetup;
+
+
+
+
+
+
853 return HYPRE_SStructGMRESSolve;
+
+
+
+
+
+
+
+
859 auto error = HYPRE_SStructGMRESSetTol( _solver, tol );
+
+
+
+
+
+
+
+
865 auto error = HYPRE_SStructGMRESSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
+
+
871 auto error = HYPRE_SStructGMRESSetPrintLevel( _solver, print_level );
+
+
+
+
+
+
+
+
877 auto error = HYPRE_SStructGMRESSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
883 auto error = HYPRE_SStructGMRESSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
890 auto error = HYPRE_SStructGMRESGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
899 HYPRE_SStructGMRESGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
906 preconditioner )
override
+
+
908 auto error = HYPRE_SStructGMRESSetPrecond(
+
+
+
+
+
+
+
+
+
916 HYPRE_SStructSolver _solver;
+
+
+
+
+
+
+
+ 924template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
+
933 template <
class ArrayLayout_t>
+
+
+
935 const bool is_preconditioner =
false,
+
+
937 :
base_type( layout, n_vars, is_preconditioner )
+
+
939 if ( is_preconditioner )
+
940 throw std::logic_error(
+
941 "HYPRE BiCGSTAB cannot be used as a preconditioner" );
-
-
-
-
-
-
948 auto error = HYPRE_SStructBiCGSTABSetAbsoluteTol( _solver, tol );
-
-
-
+
943 auto error = HYPRE_SStructBiCGSTABCreate(
+
944 layout.localGrid()->globalGrid().comm(), &_solver );
+
+
+
+
+
+
+
-
+
-
955 auto error = HYPRE_SStructBiCGSTABSetLogging( _solver, logging );
+
955 auto error = HYPRE_SStructBiCGSTABSetAbsoluteTol( _solver, tol );
-
-
-
-
962 return HYPRE_SStructBiCGSTABSetup;
-
-
-
-
-
-
966 return HYPRE_SStructBiCGSTABSolve;
-
-
-
-
-
-
-
-
972 auto error = HYPRE_SStructBiCGSTABSetTol( _solver, tol );
-
+
+
+
962 auto error = HYPRE_SStructBiCGSTABSetLogging( _solver, logging );
+
+
+
+
+
+
+
+
+
969 return HYPRE_SStructBiCGSTABSetup;
+
+
+
+
+
+
973 return HYPRE_SStructBiCGSTABSolve;
-
-
-
-
978 auto error = HYPRE_SStructBiCGSTABSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
984 auto error = HYPRE_SStructBiCGSTABSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
988 void setupImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
-
989 HYPRE_SStructVector x )
override
+
+
+
+
+
979 auto error = HYPRE_SStructBiCGSTABSetTol( _solver, tol );
+
+
+
+
+
+
+
+
985 auto error = HYPRE_SStructBiCGSTABSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
-
991 auto error = HYPRE_SStructBiCGSTABSetup( _solver, A, b, x );
+
991 auto error = HYPRE_SStructBiCGSTABSetPrintLevel( _solver, print_level );
-
995 void solveImpl( HYPRE_SStructMatrix A, HYPRE_SStructVector b,
-
996 HYPRE_SStructVector x )
override
-
-
998 auto error = HYPRE_SStructBiCGSTABSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
-
1006 HYPRE_SStructBiCGSTABGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
1015 HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
1022 preconditioner )
override
-
-
1024 auto error = HYPRE_SStructBiCGSTABSetPrecond(
-
-
-
-
-
-
-
-
-
1032 HYPRE_SStructSolver _solver;
-
-
-
-
-
1037template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
1045 template <
class ArrayLayout_t>
-
-
-
1047 const bool is_preconditioner =
false,
-
-
1049 :
Base( layout, n_vars, is_preconditioner )
-
-
1051 if ( !is_preconditioner )
-
1052 throw std::logic_error(
-
1053 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
-
1059 return HYPRE_SStructDiagScaleSetup;
-
-
-
-
-
-
1063 return HYPRE_SStructDiagScale;
-
-
-
-
-
-
-
-
1069 throw std::logic_error(
-
1070 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1075 throw std::logic_error(
-
1076 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1081 throw std::logic_error(
-
1082 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
1086 HYPRE_SStructVector )
override
-
-
1088 throw std::logic_error(
-
1089 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
1093 HYPRE_SStructVector )
override
-
-
1095 throw std::logic_error(
-
1096 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1101 throw std::logic_error(
-
1102 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1107 throw std::logic_error(
-
1108 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
-
-
1115 throw std::logic_error(
-
1116 "Diagonal preconditioner does not support preconditioning." );
-
-
-
-
-
-
-
-
-
1124template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1125std::shared_ptr<HypreSemiStructPCG<Scalar,
typename ArrayLayout_t::entity_type,
-
-
-
-
1128 const bool is_preconditioner =
false,
int n_vars = 3 )
-
-
-
1131 "Must use an array layout" );
-
-
1133 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1134 layout, n_vars, is_preconditioner );
-
-
-
-
1138template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1139std::shared_ptr<HypreSemiStructGMRES<
-
1140 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1142 const bool is_preconditioner =
false,
-
-
-
-
1146 "Must use an array layout" );
-
-
1148 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1149 layout, n_vars, is_preconditioner );
-
-
-
-
1153template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1154std::shared_ptr<HypreSemiStructBiCGSTAB<
-
1155 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1157 const bool is_preconditioner =
false,
-
-
-
-
1161 "Must use an array layout" );
-
-
1163 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1164 layout, is_preconditioner, n_vars );
-
-
-
-
1168template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1169std::shared_ptr<HypreSemiStructDiagonal<
-
1170 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1172 const bool is_preconditioner =
false,
-
-
-
-
1176 "Must use an array layout" );
-
-
1178 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1179 layout, is_preconditioner, n_vars );
-
-
-
-
-
-
-
1193template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1194std::shared_ptr<HypreSemiStructuredSolver<
-
1195 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1197 const ArrayLayout_t& layout,
-
1198 const bool is_preconditioner =
false,
-
-
-
-
1202 "Must use an array layout" );
-
-
1204 if (
"PCG" == solver_type )
-
1205 return createHypreSemiStructPCG<Scalar, MemorySpace>(
-
1206 layout, is_preconditioner, n_vars );
-
1207 else if (
"GMRES" == solver_type )
-
1208 return createHypreSemiStructGMRES<Scalar, MemorySpace>(
-
1209 layout, is_preconditioner, n_vars );
-
1210 else if (
"BiCGSTAB" == solver_type )
-
1211 return createHypreSemiStructBiCGSTAB<Scalar, MemorySpace>(
-
1212 layout, is_preconditioner, n_vars );
-
1213 else if (
"Diagonal" == solver_type )
-
1214 return createHypreSemiStructDiagonal<Scalar, MemorySpace>(
-
1215 layout, is_preconditioner, n_vars );
-
-
1217 throw std::runtime_error(
"Invalid solver type" );
-
-
-
-
-
-
-
-
-
-
-
1228template <
class Scalar,
class EntityType,
class MemorySpace>
-
1229using HypreSemiStructuredSolver CAJITA_DEPRECATED =
-
+
+
+
997 auto error = HYPRE_SStructBiCGSTABSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
1003 auto error = HYPRE_SStructBiCGSTABSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
+
1011 HYPRE_SStructBiCGSTABGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
1020 HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
1027 preconditioner )
override
+
+
1029 auto error = HYPRE_SStructBiCGSTABSetPrecond(
+
+
+
+
+
+
+
+
+ 1037 HYPRE_SStructSolver _solver;
+
+
+
+
+
+
+
+ 1045template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
+
1054 template <
class ArrayLayout_t>
+
+
+
1056 const bool is_preconditioner =
false,
+
+
1058 :
base_type( layout, n_vars, is_preconditioner )
+
+
1060 if ( !is_preconditioner )
+
1061 throw std::logic_error(
+
1062 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
+
1068 return HYPRE_SStructDiagScaleSetup;
+
+
+
+
+
+
1072 return HYPRE_SStructDiagScale;
+
+
+
+
+
+
+
+
1078 throw std::logic_error(
+
1079 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1084 throw std::logic_error(
+
1085 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1090 throw std::logic_error(
+
1091 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1096 throw std::logic_error(
+
1097 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1102 throw std::logic_error(
+
1103 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1108 throw std::logic_error(
+
1109 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1114 throw std::logic_error(
+
1115 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
+
+
1122 throw std::logic_error(
+
1123 "Diagonal preconditioner does not support preconditioning." );
+
+
+
+
+
+
+
+
+ 1131template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+ 1132std::shared_ptr<HypreSemiStructPCG<Scalar,
typename ArrayLayout_t::entity_type,
+
+
+
+
1135 const bool is_preconditioner =
false,
int n_vars = 3 )
+
+
+
1138 "Must use an array layout" );
+
+
1140 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1141 layout, n_vars, is_preconditioner );
+
+
+
+ 1145template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+ 1146std::shared_ptr<HypreSemiStructGMRES<
+ 1147 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1149 const bool is_preconditioner =
false,
+
+
+
+
1153 "Must use an array layout" );
+
+
1155 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1156 layout, n_vars, is_preconditioner );
+
+
+
+ 1160template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+ 1161std::shared_ptr<HypreSemiStructBiCGSTAB<
+ 1162 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1164 const bool is_preconditioner =
false,
+
+
+
+
1168 "Must use an array layout" );
+
+
1170 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1171 layout, is_preconditioner, n_vars );
+
+
+
+ 1175template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+ 1176std::shared_ptr<HypreSemiStructDiagonal<
+ 1177 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1179 const bool is_preconditioner =
false,
+
+
+
+
1183 "Must use an array layout" );
+
+
1185 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1186 layout, is_preconditioner, n_vars );
+
+
+
+
+
+
+ 1200template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+ 1201std::shared_ptr<HypreSemiStructuredSolver<
+ 1202 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1204 const ArrayLayout_t& layout,
+
1205 const bool is_preconditioner =
false,
+
+
+
+
1209 "Must use an array layout" );
+
+
1211 if (
"PCG" == solver_type )
+
1212 return createHypreSemiStructPCG<Scalar, MemorySpace>(
+
1213 layout, is_preconditioner, n_vars );
+
1214 else if (
"GMRES" == solver_type )
+
1215 return createHypreSemiStructGMRES<Scalar, MemorySpace>(
+
1216 layout, is_preconditioner, n_vars );
+
1217 else if (
"BiCGSTAB" == solver_type )
+
1218 return createHypreSemiStructBiCGSTAB<Scalar, MemorySpace>(
+
1219 layout, is_preconditioner, n_vars );
+
1220 else if (
"Diagonal" == solver_type )
+
1221 return createHypreSemiStructDiagonal<Scalar, MemorySpace>(
+
1222 layout, is_preconditioner, n_vars );
+
+
1224 throw std::runtime_error(
"Invalid solver type" );
+
+
+
+
+
+
+
- 1232template <
class Scalar,
class EntityType,
class MemorySpace>
- 1233using HypreSemiStructPCG CAJITA_DEPRECATED =
-
-
- 1236template <
class Scalar,
class EntityType,
class MemorySpace>
- 1237using HypreSemiStructGMRES CAJITA_DEPRECATED =
-
-
- 1240template <
class Scalar,
class EntityType,
class MemorySpace>
- 1241using HypreSemiStructBiCGSTAB CAJITA_DEPRECATED =
-
-
- 1244template <
class Scalar,
class EntityType,
class MemorySpace>
- 1245using HypreSemiStructDiagonal CAJITA_DEPRECATED =
-
-
- 1248template <
class... Args>
-
-
-
- 1252 std::forward<Args>( args )... );
-
- 1254template <
class... Args>
-
-
-
- 1258 std::forward<Args>( args )... );
-
- 1260template <
class... Args>
-
-
-
- 1264 std::forward<Args>( args )... );
-
- 1266template <
class... Args>
-
-
-
- 1270 std::forward<Args>( args )... );
-
-
- 1273template <
class Scalar,
class MemorySpace,
class... Args>
-
+
+
+ 1235template <
class Scalar,
class EntityType,
class MemorySpace>
+ 1236using HypreSemiStructuredSolver CAJITA_DEPRECATED =
+
+
+ 1239template <
class Scalar,
class EntityType,
class MemorySpace>
+ 1240using HypreSemiStructPCG CAJITA_DEPRECATED =
+
+
+ 1243template <
class Scalar,
class EntityType,
class MemorySpace>
+ 1244using HypreSemiStructGMRES CAJITA_DEPRECATED =
+
+
+ 1247template <
class Scalar,
class EntityType,
class MemorySpace>
+ 1248using HypreSemiStructBiCGSTAB CAJITA_DEPRECATED =
+
+
+ 1251template <
class Scalar,
class EntityType,
class MemorySpace>
+ 1252using HypreSemiStructDiagonal CAJITA_DEPRECATED =
+
+
+ 1255template <
class... Args>
+
+
+
+ 1259 std::forward<Args>( args )... );
+
+ 1261template <
class... Args>
+
+
+
+ 1265 std::forward<Args>( args )... );
+
+ 1267template <
class... Args>
+
+
+
+ 1271 std::forward<Args>( args )... );
+
+ 1273template <
class... Args>
+
- 1276 return Cabana::Grid::createHypreSemiStructuredSolver<Scalar, MemorySpace>(
+
1277 std::forward<Args>( args )... );
-
-
-
+
+ 1280template <
class Scalar,
class MemorySpace,
class... Args>
+
+
+ 1283 return Cabana::Grid::createHypreSemiStructuredSolver<Scalar, MemorySpace>(
+ 1284 std::forward<Args>( args )... );
+
+
+
+
-std::shared_ptr< HypreSemiStructPCG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructPCG(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE PCG semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1127
-std::shared_ptr< HypreSemiStructuredSolver< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructuredSolver(const std::string &solver_type, const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1196
-std::shared_ptr< HypreSemiStructBiCGSTAB< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE BiCGSTAB semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1156
-std::shared_ptr< HypreSemiStructGMRES< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructGMRES(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE GMRES semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1141
-std::shared_ptr< HypreSemiStructDiagonal< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE Diagonal semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1171
+std::shared_ptr< HypreSemiStructPCG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructPCG(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE PCG semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1134
+std::shared_ptr< HypreSemiStructuredSolver< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructuredSolver(const std::string &solver_type, const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1203
+std::shared_ptr< HypreSemiStructBiCGSTAB< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE BiCGSTAB semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1163
+std::shared_ptr< HypreSemiStructGMRES< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructGMRES(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE GMRES semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1148
+std::shared_ptr< HypreSemiStructDiagonal< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreSemiStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Create a HYPRE Diagonal semi-structured solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1178
HYPRE memory space handling.
KOKKOS_INLINE_FUNCTION auto createSubview(const ViewType &view, const IndexSpace< 1 > &index_space) -> decltype(Kokkos::subview(view, index_space.range(0)))
Given a view create a subview over the given index space.
Definition Cabana_Grid_IndexSpace.hpp:369
-BiCGSTAB solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:921
-double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1011
-HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:960
-void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:953
-HypreSemiStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:927
-HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:959
-int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1002
-void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:982
-void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:976
-HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:964
-void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1020
-void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:946
-void solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:995
-void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:970
-void setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:988
-Diagonal preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1040
-void setMaxIterImpl(const int) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1073
-int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1099
-HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1061
-void solveImpl(HYPRE_SStructMatrix, HYPRE_SStructVector, HYPRE_SStructVector) override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1092
-void setPrintLevelImpl(const int) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1079
-void setToleranceImpl(const double) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1067
-void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1111
-void setupImpl(HYPRE_SStructMatrix, HYPRE_SStructVector, HYPRE_SStructVector) override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1085
-HypreSemiStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1046
-double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1105
-HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1056
-HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1057
-GMRES solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:797
-void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:864
-HypreSemiStructGMRES(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:803
-void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:858
-void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:852
-int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:884
-HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:846
-void solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:877
-double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:892
-void setKDim(const int k_dim)
Set the max size of the Krylov space.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:828
-HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:842
-HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:841
-void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:835
-void setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:870
-void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:901
-void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:821
-PCG solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:670
-HypreSemiStructPCG(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:676
-void setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:746
-HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:722
-void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:711
-double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:768
-HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:718
-void solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:753
-void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:777
-void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:740
-void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:704
-void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:734
-HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:717
-void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:696
-int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:760
-void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:728
+BiCGSTAB solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:927
+void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1001
+double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1016
+HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:967
+void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:995
+void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:960
+HypreSemiStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:934
+HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:966
+int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1007
+void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:989
+void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:983
+HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:971
+void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1025
+void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:953
+void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:977
+Diagonal preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1048
+void setMaxIterImpl(const int) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1082
+int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1106
+HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1070
+void setPrintLevelImpl(const int) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1088
+void setToleranceImpl(const double) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1076
+void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1100
+void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1118
+HypreSemiStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1055
+double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1112
+HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1065
+void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1094
+HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:1066
+GMRES solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:801
+void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:869
+HypreSemiStructGMRES(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:808
+void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:863
+void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:857
+int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:887
+HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:851
+double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:895
+void setKDim(const int k_dim)
Set the max size of the Krylov space.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:833
+void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:881
+void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:875
+HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:847
+HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:846
+void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:840
+void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:904
+void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:826
+PCG solver.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:672
+HypreSemiStructPCG(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:679
+HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:725
+void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:714
+double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:769
+HYPRE_PtrToSStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:721
+void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:778
+void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:755
+void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:743
+void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:707
+void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:737
+HYPRE_SStructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:720
+void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:749
+void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:699
+int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:761
+void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:731
Hypre semi-structured solver interface for scalar fields.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:52
virtual void setToleranceImpl(const double tol)=0
Set convergence tolerance implementation.
-virtual void setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x)=0
Setup implementation.
void setup()
Setup the problem.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:476
void printLHS(const char *prefix)
Print the hypre LHS to ouput file.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:431
const int object_type
Object Type for SStruct.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:61
@@ -1477,11 +1480,13 @@
void solve(const Array_t &b, Array_t &x, int n_vars=3)
Solve the problem Ax = b for x.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:495
void setMaxIter(const int max_iter)
Set maximum iteration implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:449
virtual int getNumIterImpl()=0
Get the number of iterations taken on the last solve.
+HYPRE_SStructMatrix _A
Matrix for the problem Ax = b.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:647
virtual double getFinalRelativeResidualNormImpl()=0
Get the relative residual norm achieved on the last solve.
virtual void setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner)=0
Set a preconditioner.
double getFinalRelativeResidualNorm()
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:592
void setMatrixValues(const Array_t &values, int v_x, int v_h)
Set the matrix values.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:357
void setTolerance(const double tol)
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:446
+virtual void solveImpl()=0
Solver implementation.
virtual void setMaxIterImpl(const int max_iter)=0
Set maximum iteration implementation.
HypreSemiStructuredSolver(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false)
Hypre memory space compatibility check.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:74
MemorySpace memory_space
Kokkos memory space..
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:57
@@ -1489,14 +1494,16 @@
void setSolverGraph(int n_vars)
Set the solver graph.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:301
void printRHS(const char *prefix)
Print the hypre RHS to ouput file.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:440
EntityType entity_type
Entity type.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:55
-void checkHypreError(const int error) const
Check a hypre error.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:634
+void checkHypreError(const int error) const
Check a hypre error.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:632
+virtual void setupImpl()=0
Setup implementation.
void createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 })
Create the operator stencil to be filled by setMatrixStencil.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:239
void setMatrixStencil(const std::vector< std::array< int, NumSpaceDim > > &stencil, int var=0, int dep=0)
Set the operator stencil.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:275
+HYPRE_SStructVector _x
Solution to the problem Ax = b.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:651
bool isPreconditioner() const
Return if this solver is a preconditioner.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:227
virtual HYPRE_PtrToSStructSolverFcn getHypreSolveFunction() const =0
Get the preconditioner solve function.
void printMatrix(const char *prefix)
Print the hypre matrix to ouput file.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:422
Scalar value_type
Scalar value type.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:59
-virtual void solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x)=0
Solver implementation.
+HYPRE_SStructVector _b
Forcing term for the problem Ax = b.
Definition Cabana_Grid_HypreSemiStructuredSolver.hpp:649
virtual HYPRE_SStructSolver getHypreSolver() const =0
Get the preconditioner.
Structured index space.
Definition Cabana_Grid_IndexSpace.hpp:37
Core: particle data structures and algorithms.
Definition Cabana_AoSoA.hpp:36
diff --git a/doxygen/Cabana__Grid__HypreStructuredSolver_8hpp_source.html b/doxygen/Cabana__Grid__HypreStructuredSolver_8hpp_source.html
index b8cd83c91..296f47e26 100644
--- a/doxygen/Cabana__Grid__HypreStructuredSolver_8hpp_source.html
+++ b/doxygen/Cabana__Grid__HypreStructuredSolver_8hpp_source.html
@@ -210,24 +210,24 @@
138 "vector_values", reorder_space );
139 Kokkos::deep_copy( vector_values, 0.0 );
- 141 error = HYPRE_StructVectorCreate( _comm, _grid, &_b );
+ 141 error = HYPRE_StructVectorCreate( _comm, _grid, &
_b );
- 143 error = HYPRE_StructVectorInitialize( _b );
+ 143 error = HYPRE_StructVectorInitialize(
_b );
145 error = HYPRE_StructVectorSetBoxValues(
- 146 _b, _lower.data(), _upper.data(), vector_values.data() );
+ 146 _b, _lower.data(), _upper.data(), vector_values.data() );
- 148 error = HYPRE_StructVectorAssemble( _b );
+ 148 error = HYPRE_StructVectorAssemble(
_b );
- 151 error = HYPRE_StructVectorCreate( _comm, _grid, &_x );
+ 151 error = HYPRE_StructVectorCreate( _comm, _grid, &
_x );
- 153 error = HYPRE_StructVectorInitialize( _x );
+ 153 error = HYPRE_StructVectorInitialize(
_x );
155 error = HYPRE_StructVectorSetBoxValues(
- 156 _x, _lower.data(), _upper.data(), vector_values.data() );
+ 156 _x, _lower.data(), _upper.data(), vector_values.data() );
- 158 error = HYPRE_StructVectorAssemble( _x );
+ 158 error = HYPRE_StructVectorAssemble(
_x );
@@ -239,9 +239,9 @@
167 if ( !_is_preconditioner )
- 169 HYPRE_StructVectorDestroy( _x );
- 170 HYPRE_StructVectorDestroy( _b );
- 171 HYPRE_StructMatrixDestroy( _A );
+ 169 HYPRE_StructVectorDestroy(
_x );
+ 170 HYPRE_StructVectorDestroy(
_b );
+ 171 HYPRE_StructMatrixDestroy(
_A );
172 HYPRE_StructStencilDestroy( _stencil );
173 HYPRE_StructGridDestroy( _grid );
@@ -275,11 +275,11 @@
- 213 error = HYPRE_StructMatrixCreate( _comm, _grid, _stencil, &_A );
+ 213 error = HYPRE_StructMatrixCreate( _comm, _grid, _stencil, &
_A );
- 215 error = HYPRE_StructMatrixSetSymmetric( _A, is_symmetric );
+ 215 error = HYPRE_StructMatrixSetSymmetric(
_A, is_symmetric );
- 217 error = HYPRE_StructMatrixInitialize( _A );
+ 217 error = HYPRE_StructMatrixInitialize(
_A );
@@ -333,10 +333,10 @@
274 std::vector<HYPRE_Int> indices( _stencil_size );
275 std::iota( indices.begin(), indices.end(), 0 );
276 auto error = HYPRE_StructMatrixSetBoxValues(
- 277 _A, _lower.data(), _upper.data(), indices.size(), indices.data(),
+ 277 _A, _lower.data(), _upper.data(), indices.size(), indices.data(),
- 280 error = HYPRE_StructMatrixAssemble( _A );
+ 280 error = HYPRE_StructMatrixAssemble(
_A );
@@ -344,21 +344,21 @@
-
290 HYPRE_StructMatrixPrint( prefix, _A, 0 );
+
290 HYPRE_StructMatrixPrint( prefix,
_A, 0 );
-
299 HYPRE_StructVectorPrint( prefix, _x, 0 );
+
299 HYPRE_StructVectorPrint( prefix,
_x, 0 );
-
308 HYPRE_StructVectorPrint( prefix, _b, 0 );
+
308 HYPRE_StructVectorPrint( prefix,
_b, 0 );
@@ -400,7 +400,7 @@
346 throw std::logic_error(
"Cannot call setup() on preconditioners" );
-
+
@@ -452,17 +452,17 @@
403 auto error = HYPRE_StructVectorSetBoxValues(
- 404 _b, _lower.data(), _upper.data(), vector_values.data() );
+ 404 _b, _lower.data(), _upper.data(), vector_values.data() );
- 406 error = HYPRE_StructVectorAssemble( _b );
+ 406 error = HYPRE_StructVectorAssemble(
_b );
-
+
413 error = HYPRE_StructVectorGetBoxValues(
- 414 _x, _lower.data(), _upper.data(), vector_values.data() );
+ 414 _x, _lower.data(), _upper.data(), vector_values.data() );
@@ -493,1430 +493,1436 @@
- 451 virtual void setupImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
- 452 HYPRE_StructVector x ) = 0;
-
- 455 virtual void solveImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
- 456 HYPRE_StructVector x ) = 0;
-
-
-
-
-
-
-
- 467 preconditioner ) = 0;
-
-
-
-
-
-
-
-
475 HYPRE_DescribeError( error, error_msg );
-
476 std::stringstream out;
-
477 out <<
"HYPRE structured solver error: ";
-
478 out << error <<
" " << error_msg;
-
479 HYPRE_ClearError( error );
-
480 throw std::runtime_error( out.str() );
-
-
-
-
-
-
- 486 bool _is_preconditioner;
- 487 HYPRE_StructGrid _grid;
- 488 std::vector<HYPRE_Int> _lower;
- 489 std::vector<HYPRE_Int> _upper;
- 490 HYPRE_StructStencil _stencil;
- 491 unsigned _stencil_size;
- 492 HYPRE_StructMatrix _A;
- 493 HYPRE_StructVector _b;
- 494 HYPRE_StructVector _x;
- 495 std::shared_ptr<HypreStructuredSolver<Scalar, EntityType, MemorySpace>>
-
-
-
-
-
- 501template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
509 template <
class ArrayLayout_t>
-
-
-
511 const bool is_preconditioner =
false )
-
512 :
Base( layout, is_preconditioner )
-
-
514 if ( is_preconditioner )
-
515 throw std::logic_error(
-
516 "HYPRE PCG cannot be used as a preconditioner" );
-
-
518 auto error = HYPRE_StructPCGCreate(
-
519 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
522 HYPRE_StructPCGSetTwoNorm( _solver, 1 );
-
-
+
+
+
+
+
+
+
+
+
+
+
465 preconditioner ) = 0;
+
+
+
+
+
+
+
+
473 HYPRE_DescribeError( error, error_msg );
+
474 std::stringstream out;
+
475 out <<
"HYPRE structured solver error: ";
+
476 out << error <<
" " << error_msg;
+
477 HYPRE_ClearError( error );
+
478 throw std::runtime_error( out.str() );
+
+
+
+
+
+
484 HYPRE_StructMatrix
_A;
+
486 HYPRE_StructVector
_b;
+
488 HYPRE_StructVector
_x;
+
+
+
+
492 bool _is_preconditioner;
+
493 HYPRE_StructGrid _grid;
+
494 std::vector<HYPRE_Int> _lower;
+
495 std::vector<HYPRE_Int> _upper;
+
496 HYPRE_StructStencil _stencil;
+
497 unsigned _stencil_size;
+
498 std::shared_ptr<HypreStructuredSolver<Scalar, EntityType, MemorySpace>>
+
+
+
+
+
+ 504template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
512 template <
class ArrayLayout_t>
+
+
+
514 const bool is_preconditioner =
false )
+
+
+
517 if ( is_preconditioner )
+
518 throw std::logic_error(
+
519 "HYPRE PCG cannot be used as a preconditioner" );
+
+
521 auto error = HYPRE_StructPCGCreate(
+
522 layout.localGrid()->globalGrid().comm(), &_solver );
+
-
-
-
-
-
-
-
-
532 auto error = HYPRE_StructPCGSetAbsoluteTol( _solver, tol );
-
-
-
-
-
-
-
-
540 auto error = HYPRE_StructPCGSetRelChange( _solver, rel_change );
-
-
-
-
-
-
-
-
547 auto error = HYPRE_StructPCGSetLogging( _solver, logging );
-
-
-
-
-
-
-
-
-
554 return HYPRE_StructPCGSetup;
-
-
-
-
-
-
558 return HYPRE_StructPCGSolve;
-
-
-
-
-
-
-
-
564 auto error = HYPRE_StructPCGSetTol( _solver, tol );
-
-
-
-
-
-
-
-
570 auto error = HYPRE_StructPCGSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
576 auto error = HYPRE_StructPCGSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
580 void setupImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
-
581 HYPRE_StructVector x )
override
-
-
583 auto error = HYPRE_StructPCGSetup( _solver, A, b, x );
-
-
-
-
-
-
587 void solveImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
-
588 HYPRE_StructVector x )
override
-
-
590 auto error = HYPRE_StructPCGSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
597 auto error = HYPRE_StructPCGGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
606 HYPRE_StructPCGGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
613 preconditioner )
override
-
-
615 auto error = HYPRE_StructPCGSetPrecond(
-
-
-
-
-
-
-
-
-
623 HYPRE_StructSolver _solver;
-
-
-
-
-
628template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
636 template <
class ArrayLayout_t>
-
-
-
638 const bool is_preconditioner =
false )
-
639 :
Base( layout, is_preconditioner )
-
-
641 if ( is_preconditioner )
-
642 throw std::logic_error(
-
643 "HYPRE GMRES cannot be used as a preconditioner" );
-
-
645 auto error = HYPRE_StructGMRESCreate(
-
646 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
-
-
-
-
-
-
-
-
-
657 auto error = HYPRE_StructGMRESSetAbsoluteTol( _solver, tol );
-
-
-
-
-
-
-
-
664 auto error = HYPRE_StructGMRESSetKDim( _solver, k_dim );
-
-
-
-
-
-
-
-
671 auto error = HYPRE_StructGMRESSetLogging( _solver, logging );
-
-
-
-
-
-
-
-
-
678 return HYPRE_StructGMRESSetup;
-
+
525 HYPRE_StructPCGSetTwoNorm( _solver, 1 );
+
+
+
+
+
+
+
+
+
+
+
535 auto error = HYPRE_StructPCGSetAbsoluteTol( _solver, tol );
+
+
+
+
+
+
+
+
543 auto error = HYPRE_StructPCGSetRelChange( _solver, rel_change );
+
+
+
+
+
+
+
+
550 auto error = HYPRE_StructPCGSetLogging( _solver, logging );
+
+
+
+
+
+
+
+
+
557 return HYPRE_StructPCGSetup;
+
+
+
+
+
+
561 return HYPRE_StructPCGSolve;
+
+
+
+
+
+
+
+
567 auto error = HYPRE_StructPCGSetTol( _solver, tol );
+
+
+
+
+
+
+
+
573 auto error = HYPRE_StructPCGSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
+
+
579 auto error = HYPRE_StructPCGSetPrintLevel( _solver, print_level );
+
+
+
+
+
+
+
+
585 auto error = HYPRE_StructPCGSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
591 auto error = HYPRE_StructPCGSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
598 auto error = HYPRE_StructPCGGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
607 HYPRE_StructPCGGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
614 preconditioner )
override
+
+
616 auto error = HYPRE_StructPCGSetPrecond(
+
+
+
+
+
+
+
+
+
624 HYPRE_StructSolver _solver;
+
+
+
+
+
+
+
+
632template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
640 template <
class ArrayLayout_t>
+
+
+
642 const bool is_preconditioner =
false )
+
+
+
645 if ( is_preconditioner )
+
646 throw std::logic_error(
+
647 "HYPRE GMRES cannot be used as a preconditioner" );
+
+
649 auto error = HYPRE_StructGMRESCreate(
+
650 layout.localGrid()->globalGrid().comm(), &_solver );
+
+
+
+
+
+
+
+
+
+
+
661 auto error = HYPRE_StructGMRESSetAbsoluteTol( _solver, tol );
+
+
+
+
+
+
+
+
668 auto error = HYPRE_StructGMRESSetKDim( _solver, k_dim );
+
+
+
+
+
+
+
+
675 auto error = HYPRE_StructGMRESSetLogging( _solver, logging );
+
+
+
+
+
-
+
-
682 return HYPRE_StructGMRESSolve;
+
682 return HYPRE_StructGMRESSetup;
-
-
-
-
-
-
688 auto error = HYPRE_StructGMRESSetTol( _solver, tol );
-
-
-
-
-
-
-
-
694 auto error = HYPRE_StructGMRESSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
700 auto error = HYPRE_StructGMRESSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
704 void setupImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
-
705 HYPRE_StructVector x )
override
-
-
707 auto error = HYPRE_StructGMRESSetup( _solver, A, b, x );
-
-
-
-
-
-
711 void solveImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
-
712 HYPRE_StructVector x )
override
-
-
714 auto error = HYPRE_StructGMRESSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
721 auto error = HYPRE_StructGMRESGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
730 HYPRE_StructGMRESGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
737 preconditioner )
override
-
-
739 auto error = HYPRE_StructGMRESSetPrecond(
-
-
-
-
-
-
-
-
-
747 HYPRE_StructSolver _solver;
-
-
-
-
-
752template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
760 template <
class ArrayLayout_t>
-
-
-
762 const bool is_preconditioner =
false )
-
763 :
Base( layout, is_preconditioner )
-
-
765 if ( is_preconditioner )
-
766 throw std::logic_error(
-
767 "HYPRE BiCGSTAB cannot be used as a preconditioner" );
-
-
769 auto error = HYPRE_StructBiCGSTABCreate(
-
770 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
+
+
+
+
686 return HYPRE_StructGMRESSolve;
+
+
+
+
+
+
+
+
692 auto error = HYPRE_StructGMRESSetTol( _solver, tol );
+
+
+
+
+
+
+
+
698 auto error = HYPRE_StructGMRESSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
+
+
704 auto error = HYPRE_StructGMRESSetPrintLevel( _solver, print_level );
+
+
+
+
+
+
+
+
710 auto error = HYPRE_StructGMRESSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
716 auto error = HYPRE_StructGMRESSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
723 auto error = HYPRE_StructGMRESGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
732 HYPRE_StructGMRESGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
739 preconditioner )
override
+
+
741 auto error = HYPRE_StructGMRESSetPrecond(
+
+
+
+
+
+
+
+
+
749 HYPRE_StructSolver _solver;
+
+
+
+
+
+
+
+
757template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
765 template <
class ArrayLayout_t>
+
+
+
767 const bool is_preconditioner =
false )
+
+
+
770 if ( is_preconditioner )
+
771 throw std::logic_error(
+
772 "HYPRE BiCGSTAB cannot be used as a preconditioner" );
-
-
-
-
-
-
-
-
781 auto error = HYPRE_StructBiCGSTABSetAbsoluteTol( _solver, tol );
-
-
-
-
-
-
-
-
788 auto error = HYPRE_StructBiCGSTABSetLogging( _solver, logging );
-
-
-
-
-
-
-
-
-
795 return HYPRE_StructBiCGSTABSetup;
-
-
-
-
-
-
799 return HYPRE_StructBiCGSTABSolve;
-
-
-
-
-
-
-
-
805 auto error = HYPRE_StructBiCGSTABSetTol( _solver, tol );
-
-
-
-
-
-
-
-
811 auto error = HYPRE_StructBiCGSTABSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
817 auto error = HYPRE_StructBiCGSTABSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
821 void setupImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
-
822 HYPRE_StructVector x )
override
-
-
824 auto error = HYPRE_StructBiCGSTABSetup( _solver, A, b, x );
-
-
-
-
-
-
828 void solveImpl( HYPRE_StructMatrix A, HYPRE_StructVector b,
-
829 HYPRE_StructVector x )
override
-
-
831 auto error = HYPRE_StructBiCGSTABSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
838 auto error = HYPRE_StructBiCGSTABGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
847 HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
854 preconditioner )
override
-
-
856 auto error = HYPRE_StructBiCGSTABSetPrecond(
-
-
-
-
-
-
-
-
-
864 HYPRE_StructSolver _solver;
-
-
-
-
-
869template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
877 template <
class ArrayLayout_t>
-
-
-
879 const bool is_preconditioner =
false )
-
880 :
Base( layout, is_preconditioner )
-
-
882 auto error = HYPRE_StructPFMGCreate(
-
883 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
886 if ( is_preconditioner )
-
-
888 error = HYPRE_StructPFMGSetZeroGuess( _solver );
-
-
-
-
-
-
-
-
-
-
-
-
-
900 auto error = HYPRE_StructPFMGSetMaxLevels( _solver, max_levels );
-
-
-
-
-
-
-
-
908 auto error = HYPRE_StructPFMGSetRelChange( _solver, rel_change );
-
-
-
-
-
-
-
-
923 auto error = HYPRE_StructPFMGSetRelaxType( _solver, relax_type );
-
-
-
-
-
-
-
-
930 auto error = HYPRE_StructPFMGSetJacobiWeight( _solver, weight );
-
-
-
-
-
-
-
-
946 auto error = HYPRE_StructPFMGSetRAPType( _solver, rap_type );
-
-
-
-
-
-
-
-
953 auto error = HYPRE_StructPFMGSetNumPreRelax( _solver, num_pre_relax );
-
-
-
-
-
-
-
-
960 auto error = HYPRE_StructPFMGSetNumPostRelax( _solver, num_post_relax );
-
-
-
-
-
-
-
-
969 auto error = HYPRE_StructPFMGSetSkipRelax( _solver, skip_relax );
-
-
-
-
-
-
-
-
976 auto error = HYPRE_StructPFMGSetLogging( _solver, logging );
-
-
-
-
-
-
-
-
-
983 return HYPRE_StructPFMGSetup;
+
774 auto error = HYPRE_StructBiCGSTABCreate(
+
775 layout.localGrid()->globalGrid().comm(), &_solver );
+
+
+
+
+
+
+
+
+
+
+
+
786 auto error = HYPRE_StructBiCGSTABSetAbsoluteTol( _solver, tol );
+
+
+
+
+
+
+
+
793 auto error = HYPRE_StructBiCGSTABSetLogging( _solver, logging );
+
+
+
+
+
+
+
+
+
800 return HYPRE_StructBiCGSTABSetup;
+
+
+
+
+
+
804 return HYPRE_StructBiCGSTABSolve;
+
+
+
+
+
+
+
+
810 auto error = HYPRE_StructBiCGSTABSetTol( _solver, tol );
+
+
+
+
+
+
+
+
816 auto error = HYPRE_StructBiCGSTABSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
+
+
822 auto error = HYPRE_StructBiCGSTABSetPrintLevel( _solver, print_level );
+
+
+
+
+
+
+
+
828 auto error = HYPRE_StructBiCGSTABSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
834 auto error = HYPRE_StructBiCGSTABSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
841 auto error = HYPRE_StructBiCGSTABGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
850 HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
857 preconditioner )
override
+
+
859 auto error = HYPRE_StructBiCGSTABSetPrecond(
+
+
+
+
+
+
+
+
+
867 HYPRE_StructSolver _solver;
+
+
+
+
+
+
+
+
875template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
883 template <
class ArrayLayout_t>
+
+
+
885 const bool is_preconditioner =
false )
+
+
+
888 auto error = HYPRE_StructPFMGCreate(
+
889 layout.localGrid()->globalGrid().comm(), &_solver );
+
+
+
892 if ( is_preconditioner )
+
+
894 error = HYPRE_StructPFMGSetZeroGuess( _solver );
+
+
+
+
+
+
+
+
+
+
+
+
+
906 auto error = HYPRE_StructPFMGSetMaxLevels( _solver, max_levels );
+
+
+
+
+
+
+
+
914 auto error = HYPRE_StructPFMGSetRelChange( _solver, rel_change );
+
+
+
+
+
+
+
+
929 auto error = HYPRE_StructPFMGSetRelaxType( _solver, relax_type );
+
+
+
+
+
+
+
+
936 auto error = HYPRE_StructPFMGSetJacobiWeight( _solver, weight );
+
+
+
+
+
+
+
+
952 auto error = HYPRE_StructPFMGSetRAPType( _solver, rap_type );
+
+
+
+
+
+
+
+
959 auto error = HYPRE_StructPFMGSetNumPreRelax( _solver, num_pre_relax );
+
+
+
+
+
+
+
+
966 auto error = HYPRE_StructPFMGSetNumPostRelax( _solver, num_post_relax );
+
+
+
+
+
+
+
+
975 auto error = HYPRE_StructPFMGSetSkipRelax( _solver, skip_relax );
+
+
+
+
+
+
+
+
982 auto error = HYPRE_StructPFMGSetLogging( _solver, logging );
+
-
-
-
-
987 return HYPRE_StructPFMGSolve;
-
+
+
+
+
+
+
989 return HYPRE_StructPFMGSetup;
+
-
-
-
+
-
993 auto error = HYPRE_StructPFMGSetTol( _solver, tol );
-
-
+
993 return HYPRE_StructPFMGSolve;
+
-
+
+
-
+
-
999 auto error = HYPRE_StructPFMGSetMaxIter( _solver, max_iter );
+
999 auto error = HYPRE_StructPFMGSetTol( _solver, tol );
-
+
-
1005 auto error = HYPRE_StructPFMGSetPrintLevel( _solver, print_level );
+
1005 auto error = HYPRE_StructPFMGSetMaxIter( _solver, max_iter );
-
-
1010 HYPRE_StructVector x )
override
-
-
1012 auto error = HYPRE_StructPFMGSetup( _solver, A, b, x );
-
-
-
-
-
-
-
1017 HYPRE_StructVector x )
override
-
-
1019 auto error = HYPRE_StructPFMGSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
1026 auto error = HYPRE_StructPFMGGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
1035 HYPRE_StructPFMGGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
-
1043 throw std::logic_error(
-
1044 "HYPRE PFMG solver does not support preconditioning." );
-
-
-
-
-
1048 HYPRE_StructSolver _solver;
-
+
+
+
1011 auto error = HYPRE_StructPFMGSetPrintLevel( _solver, print_level );
+
+
+
+
+
+
+
+
1017 auto error = HYPRE_StructPFMGSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
1023 auto error = HYPRE_StructPFMGSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
1030 auto error = HYPRE_StructPFMGGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
1039 HYPRE_StructPFMGGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
+
1047 throw std::logic_error(
+
1048 "HYPRE PFMG solver does not support preconditioning." );
+
-
-
1053template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
1061 template <
class ArrayLayout_t>
-
-
-
1063 const bool is_preconditioner =
false )
-
1064 :
Base( layout, is_preconditioner )
-
-
1066 auto error = HYPRE_StructSMGCreate(
-
1067 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
1070 if ( is_preconditioner )
-
-
1072 error = HYPRE_StructSMGSetZeroGuess( _solver );
-
-
-
-
+
+
1052 HYPRE_StructSolver _solver;
+
+
+
+
+
+
+
+
1060template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
1068 template <
class ArrayLayout_t>
+
+
+
1070 const bool is_preconditioner =
false )
+
1071 :
base_type( layout, is_preconditioner )
+
+
1073 auto error = HYPRE_StructSMGCreate(
+
1074 layout.localGrid()->globalGrid().comm(), &_solver );
+
-
-
-
-
-
-
-
-
1085 auto error = HYPRE_StructSMGSetRelChange( _solver, rel_change );
-
-
-
-
+
1077 if ( is_preconditioner )
+
+
1079 error = HYPRE_StructSMGSetZeroGuess( _solver );
+
+
+
+
+
+
+
+
+
-
+
-
1092 auto error = HYPRE_StructSMGSetNumPreRelax( _solver, num_pre_relax );
+
1092 auto error = HYPRE_StructSMGSetRelChange( _solver, rel_change );
-
+
-
1099 auto error = HYPRE_StructSMGSetNumPostRelax( _solver, num_post_relax );
+
1099 auto error = HYPRE_StructSMGSetNumPreRelax( _solver, num_pre_relax );
-
+
-
1106 auto error = HYPRE_StructSMGSetLogging( _solver, logging );
+
1106 auto error = HYPRE_StructSMGSetNumPostRelax( _solver, num_post_relax );
-
-
-
-
1113 return HYPRE_StructSMGSetup;
-
-
-
-
-
-
1117 return HYPRE_StructSMGSolve;
-
-
-
-
-
-
-
-
1123 auto error = HYPRE_StructSMGSetTol( _solver, tol );
-
+
+
+
1113 auto error = HYPRE_StructSMGSetLogging( _solver, logging );
+
+
+
+
+
+
+
+
+
1120 return HYPRE_StructSMGSetup;
+
+
+
+
+
+
1124 return HYPRE_StructSMGSolve;
-
-
-
-
1129 auto error = HYPRE_StructSMGSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
1135 auto error = HYPRE_StructSMGSetPrintLevel( _solver, print_level );
-
-
-
-
-
-
-
1140 HYPRE_StructVector x )
override
+
+
+
+
+
1130 auto error = HYPRE_StructSMGSetTol( _solver, tol );
+
+
+
+
+
+
+
+
1136 auto error = HYPRE_StructSMGSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
-
1142 auto error = HYPRE_StructSMGSetup( _solver, A, b, x );
+
1142 auto error = HYPRE_StructSMGSetPrintLevel( _solver, print_level );
-
-
1147 HYPRE_StructVector x )
override
-
-
1149 auto error = HYPRE_StructSMGSolve( _solver, A, b, x );
-
-
-
-
-
-
-
-
-
1156 auto error = HYPRE_StructSMGGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
1165 HYPRE_StructSMGGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
-
1173 throw std::logic_error(
-
1174 "HYPRE SMG solver does not support preconditioning." );
-
-
-
-
-
1178 HYPRE_StructSolver _solver;
-
-
-
-
-
1183template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
1191 template <
class ArrayLayout_t>
-
-
-
1193 const bool is_preconditioner =
false )
-
1194 :
Base( layout, is_preconditioner )
-
-
1196 auto error = HYPRE_StructJacobiCreate(
-
1197 layout.localGrid()->globalGrid().comm(), &_solver );
-
-
-
1200 if ( is_preconditioner )
-
-
1202 error = HYPRE_StructJacobiSetZeroGuess( _solver );
-
-
-
-
-
-
-
-
-
-
-
-
1212 return HYPRE_StructJacobiSetup;
+
+
+
1148 auto error = HYPRE_StructSMGSetup( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
1154 auto error = HYPRE_StructSMGSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
1161 auto error = HYPRE_StructSMGGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
1170 HYPRE_StructSMGGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
+
1178 throw std::logic_error(
+
1179 "HYPRE SMG solver does not support preconditioning." );
+
+
+
+
+
1183 HYPRE_StructSolver _solver;
+
+
+
+
+
+
+
+
1191template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
1199 template <
class ArrayLayout_t>
+
+
+
1201 const bool is_preconditioner =
false )
+
1202 :
base_type( layout, is_preconditioner )
+
+
1204 auto error = HYPRE_StructJacobiCreate(
+
1205 layout.localGrid()->globalGrid().comm(), &_solver );
+
+
+
1208 if ( is_preconditioner )
+
+
1210 error = HYPRE_StructJacobiSetZeroGuess( _solver );
+
+
-
-
-
-
1216 return HYPRE_StructJacobiSolve;
-
-
-
-
-
-
-
-
1222 auto error = HYPRE_StructJacobiSetTol( _solver, tol );
-
-
-
-
-
-
-
-
1228 auto error = HYPRE_StructJacobiSetMaxIter( _solver, max_iter );
-
-
-
-
-
-
-
-
-
1238 HYPRE_StructVector x )
override
-
-
1240 auto error = HYPRE_StructJacobiSetup( _solver, A, b, x );
-
-
-
-
-
-
-
1245 HYPRE_StructVector x )
override
+
+
+
+
+
+
+
+
1220 return HYPRE_StructJacobiSetup;
+
+
+
+
+
+
1224 return HYPRE_StructJacobiSolve;
+
+
+
+
+
+
+
+
1230 auto error = HYPRE_StructJacobiSetTol( _solver, tol );
+
+
+
+
+
+
+
+
1236 auto error = HYPRE_StructJacobiSetMaxIter( _solver, max_iter );
+
+
+
+
+
+
+
+
-
1247 auto error = HYPRE_StructJacobiSolve( _solver, A, b, x );
+
1247 auto error = HYPRE_StructJacobiSetup( _solver, _A, _b, _x );
-
+
-
-
1254 auto error = HYPRE_StructJacobiGetNumIterations( _solver, &num_iter );
-
-
-
-
-
-
-
-
-
-
-
1263 HYPRE_StructJacobiGetFinalRelativeResidualNorm( _solver, &norm );
-
-
-
-
-
-
-
-
-
-
1271 throw std::logic_error(
-
1272 "HYPRE Jacobi solver does not support preconditioning." );
-
-
-
-
-
1276 HYPRE_StructSolver _solver;
-
-
-
-
-
1281template <
class Scalar,
class EntityType,
class MemorySpace>
-
-
-
-
-
-
-
1289 template <
class ArrayLayout_t>
-
-
-
1291 const bool is_preconditioner =
false )
-
1292 :
Base( layout, is_preconditioner )
-
-
1294 if ( !is_preconditioner )
-
1295 throw std::logic_error(
-
1296 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
-
1302 return HYPRE_StructDiagScaleSetup;
-
-
-
-
-
-
1306 return HYPRE_StructDiagScale;
-
-
-
-
-
-
-
-
1312 throw std::logic_error(
-
1313 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1318 throw std::logic_error(
-
1319 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1324 throw std::logic_error(
-
1325 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
1329 HYPRE_StructVector )
override
-
-
1331 throw std::logic_error(
-
1332 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
1336 HYPRE_StructVector )
override
-
-
1338 throw std::logic_error(
-
1339 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1344 throw std::logic_error(
-
1345 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1350 throw std::logic_error(
-
1351 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
+
1253 auto error = HYPRE_StructJacobiSolve( _solver, _A, _b, _x );
+
+
+
+
+
+
+
+
+
1260 auto error = HYPRE_StructJacobiGetNumIterations( _solver, &num_iter );
+
+
+
+
+
+
+
+
+
+
+
1269 HYPRE_StructJacobiGetFinalRelativeResidualNorm( _solver, &norm );
+
+
+
+
+
+
+
+
+
+
1277 throw std::logic_error(
+
1278 "HYPRE Jacobi solver does not support preconditioning." );
+
+
+
+
+
1282 HYPRE_StructSolver _solver;
+
+
+
+
+
+
+
+
1290template <
class Scalar,
class EntityType,
class MemorySpace>
+
+
+
+
+
+
+
1298 template <
class ArrayLayout_t>
+
+
+
1300 const bool is_preconditioner =
false )
+
1301 :
base_type( layout, is_preconditioner )
+
+
1303 if ( !is_preconditioner )
+
1304 throw std::logic_error(
+
1305 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
+
1311 return HYPRE_StructDiagScaleSetup;
+
+
+
+
+
+
1315 return HYPRE_StructDiagScale;
+
+
+
+
+
+
+
+
1321 throw std::logic_error(
+
1322 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1327 throw std::logic_error(
+
1328 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1333 throw std::logic_error(
+
1334 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1339 throw std::logic_error(
+
1340 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1345 throw std::logic_error(
+
1346 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
+
+
1351 throw std::logic_error(
+
1352 "Diagonal preconditioner cannot be used as a solver" );
+
+
+
+
+
1357 throw std::logic_error(
-
1358 "Diagonal preconditioner does not support preconditioning." );
+
1358 "Diagonal preconditioner cannot be used as a solver" );
-
-
-
-
-
-
-
1367template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
-
1369 HypreStructPCG<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1371 const bool is_preconditioner =
false )
-
-
-
1374 "Must use an array layout" );
-
-
1376 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1377 layout, is_preconditioner );
-
-
-
-
1382template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
-
1384 HypreStructGMRES<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1386 const bool is_preconditioner =
false )
-
-
-
1389 "Must use an array layout" );
-
-
1391 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1392 layout, is_preconditioner );
-
-
-
-
1397template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1398std::shared_ptr<HypreStructBiCGSTAB<Scalar,
typename ArrayLayout_t::entity_type,
-
-
-
-
1401 const bool is_preconditioner =
false )
-
-
-
1404 "Must use an array layout" );
-
-
1406 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1407 layout, is_preconditioner );
-
-
-
-
1412template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
-
1414 HypreStructPFMG<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1416 const bool is_preconditioner =
false )
-
-
-
1419 "Must use an array layout" );
-
-
1421 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1422 layout, is_preconditioner );
-
-
-
-
1427template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
-
1429 HypreStructSMG<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1431 const bool is_preconditioner =
false )
-
-
-
1434 "Must use an array layout" );
-
-
1436 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1437 layout, is_preconditioner );
-
-
-
-
1442template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
-
1444 HypreStructJacobi<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1446 const bool is_preconditioner =
false )
-
-
-
1449 "Must use an array layout" );
-
-
1451 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1452 layout, is_preconditioner );
-
-
-
-
1457template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1458std::shared_ptr<HypreStructDiagonal<Scalar,
typename ArrayLayout_t::entity_type,
-
-
-
-
1461 const bool is_preconditioner =
false )
-
-
-
1464 "Must use an array layout" );
-
-
1466 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
-
1467 layout, is_preconditioner );
-
-
-
-
-
-
-
1481template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
-
1482std::shared_ptr<HypreStructuredSolver<
-
1483 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
-
-
-
1485 const ArrayLayout_t& layout,
-
1486 const bool is_preconditioner =
false )
-
-
-
1489 "Must use an array layout" );
-
-
1491 if (
"PCG" == solver_type )
-
1492 return createHypreStructPCG<Scalar, MemorySpace>( layout,
-
1493 is_preconditioner );
-
1494 else if (
"GMRES" == solver_type )
-
1495 return createHypreStructGMRES<Scalar, MemorySpace>( layout,
-
1496 is_preconditioner );
-
1497 else if (
"BiCGSTAB" == solver_type )
-
1498 return createHypreStructBiCGSTAB<Scalar, MemorySpace>(
-
1499 layout, is_preconditioner );
-
1500 else if (
"PFMG" == solver_type )
-
1501 return createHypreStructPFMG<Scalar, MemorySpace>( layout,
-
1502 is_preconditioner );
-
1503 else if (
"SMG" == solver_type )
-
1504 return createHypreStructSMG<Scalar, MemorySpace>( layout,
-
1505 is_preconditioner );
-
1506 else if (
"Jacobi" == solver_type )
-
1507 return createHypreStructJacobi<Scalar, MemorySpace>(
-
1508 layout, is_preconditioner );
-
1509 else if (
"Diagonal" == solver_type )
-
1510 return createHypreStructDiagonal<Scalar, MemorySpace>(
-
1511 layout, is_preconditioner );
-
-
1513 throw std::runtime_error(
"Invalid solver type" );
-
-
-
-
-
-
-
-
-
-
-
1524template <
class Scalar,
class EntityType,
class MemorySpace>
-
1525using HypreStructuredSolver CAJITA_DEPRECATED =
-
+
+
+
+
+
+
1364 throw std::logic_error(
+
1365 "Diagonal preconditioner does not support preconditioning." );
+
+
+
+
+
+
+
+
+
1374template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
+
1376 HypreStructPCG<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1378 const bool is_preconditioner =
false )
+
+
+
1381 "Must use an array layout" );
+
+
1383 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1384 layout, is_preconditioner );
+
+
+
+
1389template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
+
1391 HypreStructGMRES<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1393 const bool is_preconditioner =
false )
+
+
+
1396 "Must use an array layout" );
+
+
1398 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1399 layout, is_preconditioner );
+
+
+
+
1404template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
1405std::shared_ptr<HypreStructBiCGSTAB<Scalar,
typename ArrayLayout_t::entity_type,
+
+
+
+
1408 const bool is_preconditioner =
false )
+
+
+
1411 "Must use an array layout" );
+
+
1413 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1414 layout, is_preconditioner );
+
+
+
+
1419template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
+
1421 HypreStructPFMG<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1423 const bool is_preconditioner =
false )
+
+
+
1426 "Must use an array layout" );
+
+
1428 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1429 layout, is_preconditioner );
+
+
+
+
1434template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
+
1436 HypreStructSMG<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1438 const bool is_preconditioner =
false )
+
+
+
1441 "Must use an array layout" );
+
+
1443 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1444 layout, is_preconditioner );
+
+
+
+
1449template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
+
1451 HypreStructJacobi<Scalar, typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1453 const bool is_preconditioner =
false )
+
+
+
1456 "Must use an array layout" );
+
+
1458 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1459 layout, is_preconditioner );
+
+
+
+
1464template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
1465std::shared_ptr<HypreStructDiagonal<Scalar,
typename ArrayLayout_t::entity_type,
+
+
+
+
1468 const bool is_preconditioner =
false )
+
+
+
1471 "Must use an array layout" );
+
+
1473 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>(
+
1474 layout, is_preconditioner );
+
+
+
+
+
+
+
1488template <
class Scalar,
class MemorySpace,
class ArrayLayout_t>
+
1489std::shared_ptr<HypreStructuredSolver<
+
1490 Scalar,
typename ArrayLayout_t::entity_type, MemorySpace>>
+
+
+
1492 const ArrayLayout_t& layout,
+
1493 const bool is_preconditioner =
false )
+
+
+
1496 "Must use an array layout" );
+
+
1498 if (
"PCG" == solver_type )
+
1499 return createHypreStructPCG<Scalar, MemorySpace>( layout,
+
1500 is_preconditioner );
+
1501 else if (
"GMRES" == solver_type )
+
1502 return createHypreStructGMRES<Scalar, MemorySpace>( layout,
+
1503 is_preconditioner );
+
1504 else if (
"BiCGSTAB" == solver_type )
+
1505 return createHypreStructBiCGSTAB<Scalar, MemorySpace>(
+
1506 layout, is_preconditioner );
+
1507 else if (
"PFMG" == solver_type )
+
1508 return createHypreStructPFMG<Scalar, MemorySpace>( layout,
+
1509 is_preconditioner );
+
1510 else if (
"SMG" == solver_type )
+
1511 return createHypreStructSMG<Scalar, MemorySpace>( layout,
+
1512 is_preconditioner );
+
1513 else if (
"Jacobi" == solver_type )
+
1514 return createHypreStructJacobi<Scalar, MemorySpace>(
+
1515 layout, is_preconditioner );
+
1516 else if (
"Diagonal" == solver_type )
+
1517 return createHypreStructDiagonal<Scalar, MemorySpace>(
+
1518 layout, is_preconditioner );
+
+
1520 throw std::runtime_error(
"Invalid solver type" );
+
+
+
+
+
+
+
-
1528template <
class Scalar,
class EntityType,
class MemorySpace>
-
1529using HypreStructPCG CAJITA_DEPRECATED =
-
-
-
1532template <
class Scalar,
class EntityType,
class MemorySpace>
-
1533using HypreStructGMRES CAJITA_DEPRECATED =
-
-
-
1536template <
class Scalar,
class EntityType,
class MemorySpace>
-
1537using HypreStructBiCGSTAB CAJITA_DEPRECATED =
-
-
-
1540template <
class Scalar,
class EntityType,
class MemorySpace>
-
1541using HypreStructPFMG CAJITA_DEPRECATED =
-
-
-
1544template <
class Scalar,
class EntityType,
class MemorySpace>
-
1545using HypreStructSMG CAJITA_DEPRECATED =
-
-
-
1548template <
class Scalar,
class EntityType,
class MemorySpace>
-
1549using HypreStructJacobi CAJITA_DEPRECATED =
-
-
-
1552template <
class Scalar,
class EntityType,
class MemorySpace>
-
1553using HypreStructDiagonal CAJITA_DEPRECATED =
-
-
-
1556template <
class... Args>
-
-
-
-
-
1561template <
class... Args>
-
-
-
-
1565 std::forward<Args>( args )... );
-
-
1567template <
class... Args>
-
-
-
-
1571 std::forward<Args>( args )... );
-
-
1573template <
class... Args>
-
-
-
-
-
1578template <
class... Args>
-
-
-
-
-
1583template <
class... Args>
-
-
-
-
1587 std::forward<Args>( args )... );
-
-
1589template <
class... Args>
-
-
-
-
1593 std::forward<Args>( args )... );
-
-
-
1596template <
class Scalar,
class MemorySpace,
class... Args>
-
+
+
+
1531template <
class Scalar,
class EntityType,
class MemorySpace>
+
1532using HypreStructuredSolver CAJITA_DEPRECATED =
+
+
+
1535template <
class Scalar,
class EntityType,
class MemorySpace>
+
1536using HypreStructPCG CAJITA_DEPRECATED =
+
+
+
1539template <
class Scalar,
class EntityType,
class MemorySpace>
+
1540using HypreStructGMRES CAJITA_DEPRECATED =
+
+
+
1543template <
class Scalar,
class EntityType,
class MemorySpace>
+
1544using HypreStructBiCGSTAB CAJITA_DEPRECATED =
+
+
+
1547template <
class Scalar,
class EntityType,
class MemorySpace>
+
1548using HypreStructPFMG CAJITA_DEPRECATED =
+
+
+
1551template <
class Scalar,
class EntityType,
class MemorySpace>
+
1552using HypreStructSMG CAJITA_DEPRECATED =
+
+
+
1555template <
class Scalar,
class EntityType,
class MemorySpace>
+
1556using HypreStructJacobi CAJITA_DEPRECATED =
+
+
+
1559template <
class Scalar,
class EntityType,
class MemorySpace>
+
1560using HypreStructDiagonal CAJITA_DEPRECATED =
+
+
+
1563template <
class... Args>
+
+
+
+
+
1568template <
class... Args>
+
+
+
+
1572 std::forward<Args>( args )... );
+
+
1574template <
class... Args>
+
+
+
+
1578 std::forward<Args>( args )... );
+
+
1580template <
class... Args>
+
+
+
+
+
1585template <
class... Args>
+
+
+
+
+
1590template <
class... Args>
+
+
+
+
1594 std::forward<Args>( args )... );
+
+
1596template <
class... Args>
+
-
1599 return Cabana::Grid::createHypreStructuredSolver<Scalar, MemorySpace>(
+
1600 std::forward<Args>( args )... );
-
-
-
+
+
1603template <
class Scalar,
class MemorySpace,
class... Args>
+
+
+
1606 return Cabana::Grid::createHypreStructuredSolver<Scalar, MemorySpace>(
+
1607 std::forward<Args>( args )... );
+
+
+
+
-
std::shared_ptr< HypreStructGMRES< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructGMRES(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1385
-
std::shared_ptr< HypreStructJacobi< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructJacobi(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1445
-
std::shared_ptr< HypreStructBiCGSTAB< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1400
-
std::shared_ptr< HypreStructDiagonal< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1460
-
std::shared_ptr< HypreStructPCG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructPCG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1370
-
std::shared_ptr< HypreStructPFMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructPFMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1415
-
std::shared_ptr< HypreStructSMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructSMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1430
-
std::shared_ptr< HypreStructuredSolver< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructuredSolver(const std::string &solver_type, const ArrayLayout_t &layout, const bool is_preconditioner=false)
Create a HYPRE structured solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1484
+
std::shared_ptr< HypreStructGMRES< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructGMRES(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1392
+
std::shared_ptr< HypreStructJacobi< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructJacobi(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1452
+
std::shared_ptr< HypreStructBiCGSTAB< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1407
+
std::shared_ptr< HypreStructDiagonal< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1467
+
std::shared_ptr< HypreStructPCG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructPCG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1377
+
std::shared_ptr< HypreStructPFMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructPFMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1422
+
std::shared_ptr< HypreStructSMG< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructSMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1437
+
std::shared_ptr< HypreStructuredSolver< Scalar, typename ArrayLayout_t::entity_type, MemorySpace > > createHypreStructuredSolver(const std::string &solver_type, const ArrayLayout_t &layout, const bool is_preconditioner=false)
Create a HYPRE structured solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1491
HYPRE memory space handling.
KOKKOS_INLINE_FUNCTION auto createSubview(const ViewType &view, const IndexSpace< 1 > &index_space) -> decltype(Kokkos::subview(view, index_space.range(0)))
Given a view create a subview over the given index space.
Definition Cabana_Grid_IndexSpace.hpp:369
-
BiCGSTAB solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:755
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:843
-
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:786
-
void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreStructuredSolver.hpp:779
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:792
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:835
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:793
-
void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:821
-
void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:828
-
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:809
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:852
-
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:815
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:797
-
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:803
-
HypreStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:761
-
Diagonal preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1284
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1348
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1342
-
void setPrintLevelImpl(const int) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1322
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1300
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1299
-
void solveImpl(HYPRE_StructMatrix, HYPRE_StructVector, HYPRE_StructVector) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1335
-
void setToleranceImpl(const double) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1310
-
HypreStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1290
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1354
-
void setMaxIterImpl(const int) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1316
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1304
-
void setupImpl(HYPRE_StructMatrix, HYPRE_StructVector, HYPRE_StructVector) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1328
-
GMRES solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:631
-
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:686
-
void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:711
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:676
-
HypreStructGMRES(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:637
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:718
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:735
-
void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:704
-
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:692
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:680
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:675
-
void setKDim(const int k_dim)
Set the max size of the Krylov space.
Definition Cabana_Grid_HypreStructuredSolver.hpp:662
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:726
-
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:669
-
void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreStructuredSolver.hpp:655
-
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:698
-
Jacobi solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1186
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1268
-
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1220
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1259
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1214
-
void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1244
-
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1226
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1251
-
void setPrintLevelImpl(const int) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1232
-
void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1237
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1210
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1209
-
HypreStructJacobi(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1192
-
PCG solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:504
-
void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:587
-
void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreStructuredSolver.hpp:538
-
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:562
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:551
-
HypreStructPCG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:510
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:552
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:594
-
void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreStructuredSolver.hpp:530
-
void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:580
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:602
-
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:568
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:556
-
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:574
-
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:545
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:611
-
PFMG solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:872
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:985
-
void setRelaxType(const int relax_type)
Set relaxation type.
Definition Cabana_Grid_HypreStructuredSolver.hpp:921
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1040
-
void setSkipRelax(const int skip_relax)
Definition Cabana_Grid_HypreStructuredSolver.hpp:967
-
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1003
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1031
-
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:974
-
void setNumPreRelax(const int num_pre_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:951
-
void setJacobiWeight(const double weight)
Set the Jacobi weight.
Definition Cabana_Grid_HypreStructuredSolver.hpp:928
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:980
-
HypreStructPFMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:878
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:981
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1023
-
void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1016
-
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:997
-
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:991
-
void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreStructuredSolver.hpp:906
-
void setNumPostRelax(const int num_post_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:958
-
void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1009
-
void setMaxLevels(const int max_levels)
Set the maximum number of multigrid levels.
Definition Cabana_Grid_HypreStructuredSolver.hpp:898
-
void setRAPType(const int rap_type)
Set type of coarse-grid operator to use.
Definition Cabana_Grid_HypreStructuredSolver.hpp:944
-
SMG solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1056
-
HypreStructSMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1062
-
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1170
-
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1121
-
void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1083
-
void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1146
-
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1111
-
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1115
-
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1104
-
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1127
-
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1153
-
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1133
-
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1161
-
void setNumPostRelax(const int num_post_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1097
-
void setNumPreRelax(const int num_pre_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1090
-
void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x) override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1139
-
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1110
+
BiCGSTAB solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:760
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:846
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:832
+
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:791
+
void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreStructuredSolver.hpp:784
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:797
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:838
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:798
+
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:814
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:855
+
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:820
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:802
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:826
+
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:808
+
HypreStructBiCGSTAB(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:766
+
Diagonal preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1293
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1343
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1355
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1349
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1337
+
void setPrintLevelImpl(const int) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1331
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1309
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1308
+
void setToleranceImpl(const double) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1319
+
HypreStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1299
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1361
+
void setMaxIterImpl(const int) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1325
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1313
+
GMRES solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:635
+
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:690
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:714
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:680
+
HypreStructGMRES(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:641
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:720
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:737
+
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:696
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:684
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:679
+
void setKDim(const int k_dim)
Set the max size of the Krylov space.
Definition Cabana_Grid_HypreStructuredSolver.hpp:666
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:728
+
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:673
+
void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreStructuredSolver.hpp:659
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:708
+
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:702
+
Jacobi solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1194
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1274
+
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1228
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1265
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1222
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1245
+
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1234
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1257
+
void setPrintLevelImpl(const int) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1240
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1218
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1251
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1217
+
HypreStructJacobi(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1200
+
PCG solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:507
+
void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreStructuredSolver.hpp:541
+
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:565
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:583
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:554
+
HypreStructPCG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:513
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:555
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:589
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:595
+
void setAbsoluteTol(const double tol)
Set the absolute tolerance.
Definition Cabana_Grid_HypreStructuredSolver.hpp:533
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:603
+
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:571
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:559
+
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:577
+
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:548
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:612
+
PFMG solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:878
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:991
+
void setRelaxType(const int relax_type)
Set relaxation type.
Definition Cabana_Grid_HypreStructuredSolver.hpp:927
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1044
+
void setSkipRelax(const int skip_relax)
Definition Cabana_Grid_HypreStructuredSolver.hpp:973
+
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1009
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1035
+
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:980
+
void setNumPreRelax(const int num_pre_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:957
+
void setJacobiWeight(const double weight)
Set the Jacobi weight.
Definition Cabana_Grid_HypreStructuredSolver.hpp:934
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:986
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1021
+
HypreStructPFMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:884
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:987
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1015
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1027
+
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1003
+
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:997
+
void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreStructuredSolver.hpp:912
+
void setNumPostRelax(const int num_post_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:964
+
void setMaxLevels(const int max_levels)
Set the maximum number of multigrid levels.
Definition Cabana_Grid_HypreStructuredSolver.hpp:904
+
void setRAPType(const int rap_type)
Set type of coarse-grid operator to use.
Definition Cabana_Grid_HypreStructuredSolver.hpp:950
+
SMG solver.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1063
+
HypreStructSMG(const ArrayLayout_t &layout, const bool is_preconditioner=false)
Constructor.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1069
+
void solveImpl() override
Solver implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1152
+
void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &) override
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1175
+
void setToleranceImpl(const double tol) override
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1128
+
void setRelChange(const int rel_change)
Definition Cabana_Grid_HypreStructuredSolver.hpp:1090
+
HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const override
Get the preconditioner setup function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1118
+
HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const override
Get the preconditioner solve function.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1122
+
void setLogging(const int logging)
Set the amount of logging to do.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1111
+
void setMaxIterImpl(const int max_iter) override
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1134
+
int getNumIterImpl() override
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1158
+
void setPrintLevelImpl(const int print_level) override
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1140
+
void setupImpl() override
Setup implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1146
+
double getFinalRelativeResidualNormImpl() override
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1166
+
void setNumPostRelax(const int num_post_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1104
+
void setNumPreRelax(const int num_pre_relax)
Set number of relaxation sweeps before coarse-grid correction.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1097
+
HYPRE_StructSolver getHypreSolver() const override
Get the preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:1117
Hypre structured solver interface for scalar fields.
Definition Cabana_Grid_HypreStructuredSolver.hpp:49
bool isPreconditioner() const
Return if this solver is a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:178
Scalar value_type
Scalar value type.
Definition Cabana_Grid_HypreStructuredSolver.hpp:56
virtual HYPRE_PtrToStructSolverFcn getHypreSetupFunction() const =0
Get the preconditioner setup function.
void printMatrix(const char *prefix)
Print the hypre matrix to ouput file.
Definition Cabana_Grid_HypreStructuredSolver.hpp:288
+
HYPRE_StructMatrix _A
Matrix for the problem Ax = b.
Definition Cabana_Grid_HypreStructuredSolver.hpp:484
+
HYPRE_StructVector _b
Forcing term for the problem Ax = b.
Definition Cabana_Grid_HypreStructuredSolver.hpp:486
double getFinalRelativeResidualNorm()
Get the relative residual norm achieved on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:428
void setup()
Setup the problem.
Definition Cabana_Grid_HypreStructuredSolver.hpp:342
virtual void setMaxIterImpl(const int max_iter)=0
Set maximum iteration implementation.
@@ -1924,24 +1930,25 @@
virtual void setPreconditionerImpl(const HypreStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner)=0
Set a preconditioner.
virtual void setToleranceImpl(const double tol)=0
Set convergence tolerance implementation.
void setMatrixStencil(const std::vector< std::array< int, NumSpaceDim > > &stencil, const bool is_symmetric=false)
Set the operator stencil.
Definition Cabana_Grid_HypreStructuredSolver.hpp:190
-
virtual void setupImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x)=0
Setup implementation.
EntityType entity_type
Entity type.
Definition Cabana_Grid_HypreStructuredSolver.hpp:52
virtual double getFinalRelativeResidualNormImpl()=0
Get the relative residual norm achieved on the last solve.
void setPrintLevel(const int print_level)
Set the output level.
Definition Cabana_Grid_HypreStructuredSolver.hpp:318
+
virtual void solveImpl()=0
Solver implementation.
virtual int getNumIterImpl()=0
Get the number of iterations taken on the last solve.
MemorySpace memory_space
Kokkos memory space..
Definition Cabana_Grid_HypreStructuredSolver.hpp:54
virtual HYPRE_StructSolver getHypreSolver() const =0
Get the preconditioner.
void setMatrixValues(const Array_t &values)
Set the matrix values.
Definition Cabana_Grid_HypreStructuredSolver.hpp:230
void printLHS(const char *prefix)
Print the hypre LHS to ouput file.
Definition Cabana_Grid_HypreStructuredSolver.hpp:297
void printRHS(const char *prefix)
Print the hypre RHS to ouput file.
Definition Cabana_Grid_HypreStructuredSolver.hpp:306
-
void checkHypreError(const int error) const
Check a hypre error.
Definition Cabana_Grid_HypreStructuredSolver.hpp:470
+
void checkHypreError(const int error) const
Check a hypre error.
Definition Cabana_Grid_HypreStructuredSolver.hpp:468
int getNumIter()
Get the number of iterations taken on the last solve.
Definition Cabana_Grid_HypreStructuredSolver.hpp:425
virtual HYPRE_PtrToStructSolverFcn getHypreSolveFunction() const =0
Get the preconditioner solve function.
+
virtual void setupImpl()=0
Setup implementation.
+
HYPRE_StructVector _x
Solution to the problem Ax = b.
Definition Cabana_Grid_HypreStructuredSolver.hpp:488
void setMaxIter(const int max_iter)
Set maximum iteration implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:315
void solve(const Array_t &b, Array_t &x)
Solve the problem Ax = b for x.
Definition Cabana_Grid_HypreStructuredSolver.hpp:358
void setTolerance(const double tol)
Set convergence tolerance implementation.
Definition Cabana_Grid_HypreStructuredSolver.hpp:312
void setPreconditioner(const std::shared_ptr< HypreStructuredSolver< Scalar, EntityType, MemorySpace > > &preconditioner)
Set a preconditioner.
Definition Cabana_Grid_HypreStructuredSolver.hpp:325
-
virtual void solveImpl(HYPRE_StructMatrix A, HYPRE_StructVector b, HYPRE_StructVector x)=0
Solver implementation.
virtual void setPrintLevelImpl(const int print_level)=0
Set the output level.
Structured index space.
Definition Cabana_Grid_IndexSpace.hpp:37
Core: particle data structures and algorithms.
Definition Cabana_AoSoA.hpp:36
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB-members.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB-members.html
index f87e1516d..f1ef1b575 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB-members.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB-members.html
@@ -81,7 +81,7 @@
This is the complete list of members for Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace >, including all inherited members.
- Base typedef | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | |
+ base_type typedef | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | |
checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
@@ -114,9 +114,9 @@
setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
setToleranceImpl(const double tol) override | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setupImpl() override | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ solveImpl() override | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
~HypreSemiStructBiCGSTAB() (defined in Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace > | inline |
~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB.html
index 4c1118ebf..920cd92ab 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructBiCGSTAB.html
@@ -111,10 +111,9 @@
|
-
-using | Base = HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace> |
- | Base HYPRE semi-structured solver type.
|
- |
+using | base_type |
+ | Base HYPRE semi-structured solver type.
|
+ |
using | entity_type = EntityType |
@@ -229,12 +228,12 @@
void | setPrintLevelImpl (const int print_level) override |
| Set the output level.
|
|
-void | setupImpl (HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override |
- | Setup implementation.
|
- |
-void | solveImpl (HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override |
- | Solver implementation.
|
- |
+void | setupImpl () override |
+ | Setup implementation.
|
+ |
+void | solveImpl () override |
+ | Solver implementation.
|
+ |
int | getNumIterImpl () override |
| Get the number of iterations taken on the last solve.
|
|
@@ -257,11 +256,45 @@
const int object_type = HYPRE_SSTRUCT |
| Object Type for SStruct.
|
|
+
+
+HYPRE_SStructMatrix | _A |
+ | Matrix for the problem Ax = b.
|
+ |
+
+HYPRE_SStructVector | _b |
+ | Forcing term for the problem Ax = b.
|
+ |
+
+HYPRE_SStructVector | _x |
+ | Solution to the problem Ax = b.
|
+ |
template<class Scalar, class EntityType, class MemorySpace>
class Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace >
BiCGSTAB solver.
-
+
+
+◆ base_type
+
+
+
+
+template<class Scalar , class EntityType , class MemorySpace >
+
+
+
Initial value:
+
HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace>
+
+
Base HYPRE semi-structured solver type.
+
+
+
+
◆ getFinalRelativeResidualNormImpl()
@@ -541,8 +574,8 @@
-◆ setupImpl()
+
+◆ setupImpl()
@@ -555,17 +588,8 @@
void Cabana::Grid::HypreSemiStructBiCGSTAB< Scalar, EntityType, MemorySpace >::setupImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -577,12 +601,12 @@
-
-
◆ solveImpl()
+
+
◆ solveImpl()
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructDiagonal-members.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructDiagonal-members.html
index 3ecab6427..36b443d30 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructDiagonal-members.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructDiagonal-members.html
@@ -81,42 +81,45 @@
This is the complete list of members for Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace >, including all inherited members.
- Base typedef | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | |
- checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
- createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- getFinalRelativeResidualNorm() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- getFinalRelativeResidualNormImpl() override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- getHypreSetupFunction() const override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlinevirtual |
- getHypreSolveFunction() const override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlinevirtual |
- getHypreSolver() const override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlinevirtual |
- getNumIter() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- getNumIterImpl() override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- HypreSemiStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3) | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inline |
- HypreSemiStructuredSolver(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- isPreconditioner() const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- memory_space typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- object_type | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- printLHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- printMatrix(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- printRHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMatrixStencil(const std::vector< std::array< int, NumSpaceDim > > &stencil, int var=0, int dep=0) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMatrixValues(const Array_t &values, int v_x, int v_h) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMaxIter(const int max_iter) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMaxIterImpl(const int) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- setPreconditioner(const std::shared_ptr< HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > > &preconditioner) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- setPrintLevel(const int print_level) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setPrintLevelImpl(const int) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- setSolverGraph(int n_vars) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setToleranceImpl(const double) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setupImpl(HYPRE_SStructMatrix, HYPRE_SStructVector, HYPRE_SStructVector) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- solveImpl(HYPRE_SStructMatrix, HYPRE_SStructVector, HYPRE_SStructVector) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
- value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- ~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |
+ _A | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protected |
+ _b | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protected |
+ _x | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protected |
+ base_type typedef | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | |
+ checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
+ createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ getFinalRelativeResidualNorm() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ getFinalRelativeResidualNormImpl() override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ getHypreSetupFunction() const override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlinevirtual |
+ getHypreSolveFunction() const override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlinevirtual |
+ getHypreSolver() const override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlinevirtual |
+ getNumIter() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ getNumIterImpl() override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ HypreSemiStructDiagonal(const ArrayLayout_t &layout, const bool is_preconditioner=false, int n_vars=3) | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inline |
+ HypreSemiStructuredSolver(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ isPreconditioner() const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ memory_space typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ object_type | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ printLHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ printMatrix(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ printRHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMatrixStencil(const std::vector< std::array< int, NumSpaceDim > > &stencil, int var=0, int dep=0) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMatrixValues(const Array_t &values, int v_x, int v_h) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMaxIter(const int max_iter) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMaxIterImpl(const int) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setPreconditioner(const std::shared_ptr< HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > > &preconditioner) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setPrintLevel(const int print_level) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setPrintLevelImpl(const int) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setSolverGraph(int n_vars) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setToleranceImpl(const double) override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setupImpl() override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ solveImpl() override | Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ ~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |
+
+◆ base_type
+
+
+
+
+template<class Scalar , class EntityType , class MemorySpace >
+
+
+
Initial value:
+
HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace>
+
+
Base HYPRE semi-structured solver type.
+
+
+
+
◆ getFinalRelativeResidualNormImpl()
@@ -533,8 +566,8 @@
-◆ setupImpl()
+
+◆ setupImpl()
@@ -547,17 +580,8 @@
void Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace >::setupImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -569,12 +593,12 @@ Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
+Implements Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
-
-◆ solveImpl()
+
+◆ solveImpl()
@@ -587,17 +611,8 @@
void Cabana::Grid::HypreSemiStructDiagonal< Scalar, EntityType, MemorySpace >::solveImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -609,7 +624,7 @@ Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
+Implements Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES-members.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES-members.html
index 3f96f0a93..9ac22a403 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES-members.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES-members.html
@@ -81,7 +81,7 @@
This is the complete list of members for Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace >, including all inherited members.
- Base typedef | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | |
+ base_type typedef | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | |
checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
@@ -115,9 +115,9 @@
setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
setToleranceImpl(const double tol) override | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setupImpl() override | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ solveImpl() override | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
~HypreSemiStructGMRES() (defined in Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace > | inline |
~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES.html
index 0d0859e60..c778434e7 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructGMRES.html
@@ -111,10 +111,9 @@
|
-
-using | Base = HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace> |
- | Base HYPRE semi-structured solver type.
|
- |
+using | base_type |
+ | Base HYPRE semi-structured solver type.
|
+ |
using | entity_type = EntityType |
@@ -233,12 +232,12 @@
void | setPrintLevelImpl (const int print_level) override |
| Set the output level.
|
|
-void | setupImpl (HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override |
- | Setup implementation.
|
- |
-void | solveImpl (HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override |
- | Solver implementation.
|
- |
+void | setupImpl () override |
+ | Setup implementation.
|
+ |
+void | solveImpl () override |
+ | Solver implementation.
|
+ |
int | getNumIterImpl () override |
| Get the number of iterations taken on the last solve.
|
|
@@ -261,11 +260,45 @@
const int object_type = HYPRE_SSTRUCT |
| Object Type for SStruct.
|
|
+
+
+HYPRE_SStructMatrix | _A |
+ | Matrix for the problem Ax = b.
|
+ |
+
+HYPRE_SStructVector | _b |
+ | Forcing term for the problem Ax = b.
|
+ |
+
+HYPRE_SStructVector | _x |
+ | Solution to the problem Ax = b.
|
+ |
template<class Scalar, class EntityType, class MemorySpace>
class Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace >
GMRES solver.
-
+
+
+◆ base_type
+
+
+
+
+template<class Scalar , class EntityType , class MemorySpace >
+
+
+
Initial value:
+
HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace>
+
+
Base HYPRE semi-structured solver type.
+
+
+
+
◆ getFinalRelativeResidualNormImpl()
@@ -545,8 +578,8 @@
-◆ setupImpl()
+
+◆ setupImpl()
@@ -559,17 +592,8 @@
void Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace >::setupImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -581,12 +605,12 @@ Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
+Implements Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
-
-◆ solveImpl()
+
+◆ solveImpl()
@@ -599,17 +623,8 @@
void Cabana::Grid::HypreSemiStructGMRES< Scalar, EntityType, MemorySpace >::solveImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -621,7 +636,7 @@ Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
+Implements Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG-members.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG-members.html
index a27a50a0a..3f614cd9f 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG-members.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG-members.html
@@ -81,7 +81,7 @@
This is the complete list of members for Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace >, including all inherited members.
- Base typedef | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | |
+ base_type typedef | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | |
checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
@@ -115,9 +115,9 @@
setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
setToleranceImpl(const double tol) override | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ setupImpl() override | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
+ solveImpl() override | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | inlineprotectedvirtual |
value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
~HypreSemiStructPCG() (defined in Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace > | inline |
~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG.html
index 550cdefad..ff9e3d42a 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructPCG.html
@@ -111,10 +111,9 @@
|
-
-using | Base = HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace> |
- | Base HYPRE semi-structured solver type.
|
- |
+using | base_type |
+ | Base HYPRE semi-structured solver type.
|
+ |
using | entity_type = EntityType |
@@ -231,12 +230,12 @@
void | setPrintLevelImpl (const int print_level) override |
| Set the output level.
|
|
-void | setupImpl (HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override |
- | Setup implementation.
|
- |
-void | solveImpl (HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x) override |
- | Solver implementation.
|
- |
+void | setupImpl () override |
+ | Setup implementation.
|
+ |
+void | solveImpl () override |
+ | Solver implementation.
|
+ |
int | getNumIterImpl () override |
| Get the number of iterations taken on the last solve.
|
|
@@ -259,11 +258,45 @@
const int object_type = HYPRE_SSTRUCT |
| Object Type for SStruct.
|
|
+
+
+HYPRE_SStructMatrix | _A |
+ | Matrix for the problem Ax = b.
|
+ |
+
+HYPRE_SStructVector | _b |
+ | Forcing term for the problem Ax = b.
|
+ |
+
+HYPRE_SStructVector | _x |
+ | Solution to the problem Ax = b.
|
+ |
template<class Scalar, class EntityType, class MemorySpace>
class Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace >
PCG solver.
-
+
+
+◆ base_type
+
+
+
+
+template<class Scalar , class EntityType , class MemorySpace >
+
+
+
Initial value:
+
HypreSemiStructuredSolver<Scalar, EntityType, MemorySpace>
+
+
Base HYPRE semi-structured solver type.
+
+
+
+
◆ getFinalRelativeResidualNormImpl()
@@ -571,8 +604,8 @@
-◆ setupImpl()
+
+◆ setupImpl()
@@ -585,17 +618,8 @@
void Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace >::setupImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -607,12 +631,12 @@ Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
+Implements Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
-
-◆ solveImpl()
+
+◆ solveImpl()
@@ -625,17 +649,8 @@
void Cabana::Grid::HypreSemiStructPCG< Scalar, EntityType, MemorySpace >::solveImpl
( |
- HYPRE_SStructMatrix | A, |
-
-
- |
- |
- HYPRE_SStructVector | b, |
-
-
- |
+ | ) |
|
- HYPRE_SStructVector | x ) |
@@ -647,7 +662,7 @@ Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
+Implements Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >.
diff --git a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructuredSolver-members.html b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructuredSolver-members.html
index ba443cb9b..d2b40cddd 100644
--- a/doxygen/classCabana_1_1Grid_1_1HypreSemiStructuredSolver-members.html
+++ b/doxygen/classCabana_1_1Grid_1_1HypreSemiStructuredSolver-members.html
@@ -81,40 +81,43 @@
This is the complete list of members for Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >, including all inherited members.
- checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
- createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- getFinalRelativeResidualNorm() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- getFinalRelativeResidualNormImpl()=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- getHypreSetupFunction() const =0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | pure virtual |
- getHypreSolveFunction() const =0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | pure virtual |
- getHypreSolver() const =0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | pure virtual |
- getNumIter() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- getNumIterImpl()=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- HypreSemiStructuredSolver(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- isPreconditioner() const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- memory_space typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- object_type | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- printLHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- printMatrix(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- printRHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMatrixStencil(const std::vector< std::array< int, NumSpaceDim > > &stencil, int var=0, int dep=0) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMatrixValues(const Array_t &values, int v_x, int v_h) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMaxIter(const int max_iter) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setMaxIterImpl(const int max_iter)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- setPreconditioner(const std::shared_ptr< HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > > &preconditioner) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- setPrintLevel(const int print_level) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setPrintLevelImpl(const int print_level)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- setSolverGraph(int n_vars) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setToleranceImpl(const double tol)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- setupImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
- solveImpl(HYPRE_SStructMatrix A, HYPRE_SStructVector b, HYPRE_SStructVector x)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
- value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
- ~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |
+ _A | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protected |
+ _b | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protected |
+ _x | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protected |
+ checkHypreError(const int error) const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlineprotected |
+ createMatrixStencil(int NumSpaceDim, int var=0, int n_vars=3, std::vector< unsigned > stencil_length={ 7, 7, 7 }) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ entity_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ getFinalRelativeResidualNorm() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ getFinalRelativeResidualNormImpl()=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ getHypreSetupFunction() const =0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | pure virtual |
+ getHypreSolveFunction() const =0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | pure virtual |
+ getHypreSolver() const =0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | pure virtual |
+ getNumIter() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ getNumIterImpl()=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ HypreSemiStructuredSolver(const ArrayLayout_t &layout, int n_vars, const bool is_preconditioner=false) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ isPreconditioner() const | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ memory_space typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ object_type | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ printLHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ printMatrix(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ printRHS(const char *prefix) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMatrixStencil(const std::vector< std::array< int, NumSpaceDim > > &stencil, int var=0, int dep=0) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMatrixValues(const Array_t &values, int v_x, int v_h) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMaxIter(const int max_iter) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setMaxIterImpl(const int max_iter)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ setPreconditioner(const std::shared_ptr< HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > > &preconditioner) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setPreconditionerImpl(const HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > &preconditioner)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ setPrintLevel(const int print_level) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setPrintLevelImpl(const int print_level)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ setSolverGraph(int n_vars) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setTolerance(const double tol) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setToleranceImpl(const double tol)=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ setup() | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ setupImpl()=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ solve(const Array_t &b, Array_t &x, int n_vars=3) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inline |
+ solveImpl()=0 | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | protectedpure virtual |
+ value_type typedef | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | |
+ ~HypreSemiStructuredSolver() (defined in Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace >) | Cabana::Grid::HypreSemiStructuredSolver< Scalar, EntityType, MemorySpace > | inlinevirtual |