|
HypreInterface.hpp
Go to the documentation of this file.
Unified interface for Hypre operations with both CPU and GPU data structures. Definition: hypreinterface/HypreCpuTransfers.hpp:36 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 void destroySolver(HYPRE_Solver solver) Destroy Hypre solver. Definition: hypreinterface/HypreSetup.hpp:214 void transferCpuVectorToHypre(const VectorType &cpu_vec, HYPRE_IJVector hypre_vec, linalg::HypreInterface::HostDataArrays &host_arrays, const linalg::HypreInterface::DeviceDataArrays &device_arrays, const linalg::HypreInterface::ParallelInfo &par_info, bool use_gpu_backend) Transfer CPU vector to Hypre vector. Definition: hypreinterface/HypreCpuTransfers.hpp:73 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 void updateMatrixValues(const MatrixType &matrix, HYPRE_IJMatrix hypre_matrix, const SparsityPattern &sparsity_pattern, const HostDataArrays &host_arrays, const DeviceDataArrays &device_arrays, bool use_gpu_backend) Update matrix values in Hypre. Definition: HypreInterface.hpp:206 void transferHypreToCpuVector(HYPRE_IJVector hypre_vec, VectorType &cpu_vec, linalg::HypreInterface::HostDataArrays &host_arrays, const linalg::HypreInterface::DeviceDataArrays &device_arrays, const linalg::HypreInterface::ParallelInfo &par_info, bool use_gpu_backend) Transfer Hypre vector to CPU vector. Definition: hypreinterface/HypreCpuTransfers.hpp:114 void transferVectorFromHypre(HYPRE_IJVector hypre_vec, VectorType &vec, HostDataArrays &host_arrays, const DeviceDataArrays &device_arrays, const ParallelInfo &par_info, bool use_gpu_backend) Transfer vector from Hypre to any vector type (CPU or GPU) Definition: HypreInterface.hpp:186 void updateMatrixFromCpuMatrix(const MatrixType &cpu_matrix, HYPRE_IJMatrix hypre_matrix, const linalg::HypreInterface::SparsityPattern &sparsity_pattern, const linalg::HypreInterface::HostDataArrays &host_arrays, const linalg::HypreInterface::DeviceDataArrays &device_arrays, bool use_gpu_backend) Update Hypre matrix from CPU matrix Uses HYPRE_IJMatrixSetValues2 with pre-computed row_indexes,... Definition: hypreinterface/HypreCpuTransfers.hpp:155 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 transferVectorToHypre(const VectorType &vec, HYPRE_IJVector hypre_vec, HostDataArrays &host_arrays, const DeviceDataArrays &device_arrays, const ParallelInfo &par_info, bool use_gpu_backend) Transfer vector to Hypre from any vector type (CPU or GPU) Definition: HypreInterface.hpp:166 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 GPU device memory arrays for HYPRE operations with GPU backend. Definition: HypreDataStructures.hpp:137 Host arrays for HYPRE matrix and vector data transfers. Definition: HypreDataStructures.hpp:106 Parallel domain decomposition information for HYPRE-Dune interface. Definition: HypreDataStructures.hpp:37 Compressed Sparse Row (CSR) sparsity pattern for HYPRE matrix assembly. Definition: HypreDataStructures.hpp:86 |