|
hypreinterface/HypreSetup.hpp
Go to the documentation of this file.
133 HYPRE_SAFE_CALL(HYPRE_BoomerAMGSetStrongThreshold(solver, prm.get<double>("strong_threshold", 0.5)));
134 HYPRE_SAFE_CALL(HYPRE_BoomerAMGSetAggTruncFactor(solver, prm.get<double>("agg_trunc_factor", 0.3)));
175 HYPRE_IJMatrixCreate(mpi_comm, dof_offset, dof_offset + (N - 1), dof_offset, dof_offset + (N - 1), &matrix));
372 Dune::Amg::MatrixGraph<MatrixType> graph(const_cast<MatrixType&>(matrix)); // do not know why not const ref is sufficient
468 return gpuistl::HypreInterface::setupSparsityPatternFromGpuMatrix(matrix, par_info, owner_first);
574 return gpuistl::HypreInterface::computeRowIndexesWithMappingGpu(matrix, local_dune_to_local_hypre);
604computeRowIndexesWithMappingCpu(const MatrixType& matrix, const std::vector<int>& local_dune_to_local_hypre)
607 local_dune_to_local_hypre.begin(), local_dune_to_local_hypre.end(), [](int val) { return val >= 0; });
#define OPM_HYPRE_SAFE_CALL(expr) Macro to wrap Hypre function calls with error checking. Definition: HypreErrorHandling.hpp:96 #define HYPRE_SAFE_CALL(expr) Short form macro for Hypre function calls (for backward compatibility) Definition: HypreErrorHandling.hpp:102 T get(const std::string &key) const std::vector< HYPRE_Int > computeRowIndexesWithMappingGpu(const GpuSparseMatrixWrapper< T, ForceLegacy > &gpu_matrix, const std::vector< int > &local_dune_to_local_hypre) Compute row indexes for GPU matrix with ownership mapping. Definition: gpuistl/hypreinterface/HypreSetup.hpp:150 linalg::HypreInterface::SparsityPattern setupSparsityPatternFromGpuMatrix(const GpuSparseMatrixWrapper< T, ForceLegacy > &gpu_matrix, const linalg::HypreInterface::ParallelInfo &par_info, bool owner_first) Setup sparsity pattern from GPU matrix (GpuSparseMatrix) Definition: gpuistl/hypreinterface/HypreSetup.hpp:71 Unified interface for Hypre operations with both CPU and GPU data structures. Definition: hypreinterface/HypreCpuTransfers.hpp:36 SparsityPattern setupSparsityPatternFromCpuMatrix(const MatrixType &matrix, const ParallelInfo &par_info, bool owner_first) Setup sparsity pattern from CPU matrix (BCRSMatrix) Definition: hypreinterface/HypreSetup.hpp:486 void initialize(bool use_gpu_backend) Initialize the Hypre library and set memory/execution policy. Definition: hypreinterface/HypreSetup.hpp:84 HYPRE_IJVector createVector(HYPRE_Int N, HYPRE_Int dof_offset, const CommType &comm) Create Hypre vector. Definition: hypreinterface/HypreSetup.hpp:192 ParallelInfo setupHypreParallelInfoSerial(HYPRE_Int N) Setup parallel information for Hypre in serial case. Definition: hypreinterface/HypreSetup.hpp:274 ParallelInfo setupHypreParallelInfoParallel(const CommType &comm, const MatrixType &matrix) Create mappings between Dune and HYPRE indexing for parallel decomposition. Definition: hypreinterface/HypreSetup.hpp:358 void destroySolver(HYPRE_Solver solver) Destroy Hypre solver. Definition: hypreinterface/HypreSetup.hpp:214 SparsityPattern setupSparsityPattern(const MatrixType &matrix, const ParallelInfo &par_info, bool owner_first) Setup sparsity pattern from matrix (automatically detects CPU/GPU type) Definition: hypreinterface/HypreSetup.hpp:462 ParallelInfo setupHypreParallelInfo(const CommType &comm, const MatrixType &matrix) Setup parallel information for Hypre (automatically detects serial/parallel) Definition: hypreinterface/HypreSetup.hpp:258 void destroyMatrix(HYPRE_IJMatrix matrix) Destroy Hypre matrix. Definition: hypreinterface/HypreSetup.hpp:228 HYPRE_IJMatrix createMatrix(HYPRE_Int N, HYPRE_Int dof_offset, const CommType &comm) Create Hypre matrix. Definition: hypreinterface/HypreSetup.hpp:165 std::vector< HYPRE_Int > computeRowIndexesWithMappingCpu(const MatrixType &matrix, const std::vector< HYPRE_Int > &ncols, const std::vector< int > &local_dune_to_local_hypre, bool owner_first) void setSolverParameters(HYPRE_Solver solver, const PropertyTree &prm, bool use_gpu_backend) Set solver parameters from property tree. Definition: hypreinterface/HypreSetup.hpp:128 std::vector< HYPRE_Int > computeRowIndexes(const MatrixType &matrix, const std::vector< HYPRE_Int > &ncols, const std::vector< int > &local_dune_to_local_hypre, bool owner_first) Compute row indexes for HYPRE_IJMatrixSetValues2. Definition: hypreinterface/HypreSetup.hpp:557 void destroyVector(HYPRE_IJVector vector) Destroy Hypre vector. Definition: hypreinterface/HypreSetup.hpp:242 HYPRE_Solver createAMGSolver() Create Hypre solver (BoomerAMG) Definition: hypreinterface/HypreSetup.hpp:112 Type trait to detect if a type is a GPU type. Definition: gpu_type_detection.hpp:40 Parallel domain decomposition information for HYPRE-Dune interface. Definition: HypreDataStructures.hpp:37 std::vector< int > local_hypre_to_local_dune Mapping from local HYPRE indices to local Dune indices. Definition: HypreDataStructures.hpp:59 HYPRE_Int dof_offset Global index offset for this process's owned DOFs. Definition: HypreDataStructures.hpp:69 std::vector< int > local_dune_to_global_hypre Mapping from local Dune indices to global HYPRE indices. Definition: HypreDataStructures.hpp:51 std::vector< int > local_dune_to_local_hypre Mapping from local Dune indices to local HYPRE indices. Definition: HypreDataStructures.hpp:44 HYPRE_Int N_owned Number of DOFs owned by this MPI process. Definition: HypreDataStructures.hpp:62 bool owner_first Whether owned DOFs appear first in local Dune ordering. Definition: HypreDataStructures.hpp:77 Compressed Sparse Row (CSR) sparsity pattern for HYPRE matrix assembly. Definition: HypreDataStructures.hpp:86 HYPRE_Int nnz Number of non-zero entries in matrix. Definition: HypreDataStructures.hpp:97 std::vector< HYPRE_BigInt > cols Global column indices in CSR format (size: nnz) Definition: HypreDataStructures.hpp:94 std::vector< HYPRE_Int > ncols Non-zero entries per owned row (size: N_owned) Definition: HypreDataStructures.hpp:88 std::vector< HYPRE_BigInt > rows Global row indices for owned rows (size: N_owned) Definition: HypreDataStructures.hpp:91 |