/home/runner/work/kynema/kynema/kynema/src/solver/linear_solver/dss_symbolic_umfpack.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/solver/linear_solver/dss_symbolic_umfpack.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
dss_symbolic_umfpack.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Kokkos_Core.hpp>
4#include <umfpack.h>
5
6#include "dss_algorithm.hpp"
8
9namespace kynema::dss {
10template <typename CrsMatrixType>
11struct SymbolicFunction<Handle<Algorithm::UMFPACK>, CrsMatrixType> {
12 static void symbolic(Handle<Algorithm::UMFPACK>& dss_handle, CrsMatrixType& A) {
13 const auto num_rows = A.numRows();
14 const auto num_cols = A.numCols();
15
16 auto row_ptrs = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), A.graph.row_map);
17 auto col_inds = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), A.graph.entries);
18
19 auto*& symbolic = dss_handle.get_symbolic();
20 auto* control = dss_handle.get_control();
21
22 umfpack_di_symbolic(
23 num_rows, num_cols, row_ptrs.data(), col_inds.data(), nullptr, &symbolic, control,
24 nullptr
25 );
26 }
27};
28} // namespace kynema::dss
Definition dss_handle.hpp:10
Definition dss_algorithm.hpp:4
Algorithm
Definition dss_algorithm.hpp:6
static void symbolic(Handle< Algorithm::UMFPACK > &dss_handle, CrsMatrixType &A)
Definition dss_symbolic_umfpack.hpp:12
Definition dss_symbolic.hpp:8