|
Opm::gpuistl::HypreInterface Namespace Reference
Function Documentation◆ computeRowIndexesWithMappingGpu()
template<typename T , bool ForceLegacy>
Compute row indexes for GPU matrix with ownership mapping. GPU-specialized version that uses CSR row pointers to create row_indexes pointing directly into the FULL GPU matrix data for zero-copy operation. Same principle as CPU version but leverages GPU matrix's CSR structure.
References Opm::gpuistl::GpuSparseMatrixWrapper< T, ForceLegacy >::getRowIndices(), and Opm::gpuistl::GpuSparseMatrixWrapper< T, ForceLegacy >::N(). Referenced by Opm::linalg::HypreInterface::computeRowIndexes(). ◆ setContinuousGpuVectorForHypre()
template<typename VectorType >
◆ setContinuousVectorForHypre()
template<typename VectorType >
Extract owned vector values in the order expected by HYPRE. Referenced by transferCpuVectorToHypre(). ◆ setDuneVectorFromContinuousVector()
template<typename VectorType >
Distribute HYPRE vector values back to original vector positions. Referenced by transferHypreToCpuVector(). ◆ setGpuVectorFromContinuousVector()
template<typename VectorType >
◆ setupSparsityPatternFromGpuMatrix()
template<typename T , bool ForceLegacy>
Setup sparsity pattern from GPU matrix (GpuSparseMatrix)
References Opm::linalg::HypreInterface::SparsityPattern::cols, Opm::gpuistl::GpuSparseMatrixWrapper< T, ForceLegacy >::getColumnIndices(), Opm::gpuistl::GpuSparseMatrixWrapper< T, ForceLegacy >::getRowIndices(), Opm::linalg::HypreInterface::ParallelInfo::local_dune_to_global_hypre, Opm::linalg::HypreInterface::ParallelInfo::local_dune_to_local_hypre, Opm::gpuistl::GpuSparseMatrixWrapper< T, ForceLegacy >::N(), Opm::linalg::HypreInterface::ParallelInfo::N_owned, Opm::linalg::HypreInterface::SparsityPattern::ncols, Opm::linalg::HypreInterface::SparsityPattern::nnz, Opm::gpuistl::GpuSparseMatrixWrapper< T, ForceLegacy >::nonzeroes(), and Opm::linalg::HypreInterface::SparsityPattern::rows. Referenced by Opm::linalg::HypreInterface::setupSparsityPattern(). ◆ transferCpuVectorToHypre()
template<typename VectorType >
Transfer CPU vector to Hypre vector. References Opm::linalg::HypreInterface::HostDataArrays::continuous_vector_values, Opm::linalg::HypreInterface::HostDataArrays::indices, Opm::linalg::HypreInterface::DeviceDataArrays::indices_device, Opm::linalg::HypreInterface::ParallelInfo::local_hypre_to_local_dune, OPM_HYPRE_SAFE_CALL, Opm::linalg::HypreInterface::ParallelInfo::owner_first, setContinuousVectorForHypre(), and Opm::linalg::HypreInterface::DeviceDataArrays::vector_buffer_device. Referenced by Opm::linalg::HypreInterface::transferCpuVectorToHypre(). ◆ transferHypreToCpuVector()
template<typename VectorType >
Transfer Hypre vector to CPU vector. References Opm::linalg::HypreInterface::HostDataArrays::continuous_vector_values, Opm::linalg::HypreInterface::HostDataArrays::indices, Opm::linalg::HypreInterface::DeviceDataArrays::indices_device, Opm::linalg::HypreInterface::ParallelInfo::local_hypre_to_local_dune, OPM_HYPRE_SAFE_CALL, Opm::linalg::HypreInterface::ParallelInfo::owner_first, setDuneVectorFromContinuousVector(), and Opm::linalg::HypreInterface::DeviceDataArrays::vector_buffer_device. Referenced by Opm::linalg::HypreInterface::transferHypreToCpuVector(). ◆ updateMatrixFromCpuMatrix()
template<typename MatrixType >
Update Hypre matrix from CPU matrix Uses HYPRE_IJMatrixSetValues2 with pre-computed row_indexes, which allows us to use the original CPU matrix data (with potential ghost values) directly. References Opm::linalg::HypreInterface::DeviceDataArrays::cols_device, Opm::linalg::HypreInterface::DeviceDataArrays::matrix_buffer_device, Opm::linalg::HypreInterface::DeviceDataArrays::ncols_device, OPM_HYPRE_SAFE_CALL, Opm::linalg::HypreInterface::DeviceDataArrays::row_indexes_device, Opm::linalg::HypreInterface::SparsityPattern::rows, and Opm::linalg::HypreInterface::DeviceDataArrays::rows_device. Referenced by Opm::linalg::HypreInterface::updateMatrixFromCpuMatrix(). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||