1#ifndef __CACHE_HYDRO_STATE__
2#define __CACHE_HYDRO_STATE__
5# pragma GCC diagnostic push
6# pragma GCC diagnostic ignored "-Wunused-but-set-variable"
7# pragma GCC diagnostic ignored "-Wnan-infinity-disabled"
11#include <Eigen/Sparse>
13# pragma GCC diagnostic pop
16#include <common/common.hpp>
19template <
typename ExecSpace>
20using DiagonalView = Kokkos::View<
double*,
23 Kokkos::MemoryTraits<Kokkos::RandomAccess>>;
25template <
typename Space>
26using CumulativeProbabilityView =
27 Kokkos::View<
double**,
30 Kokkos::MemoryTraits<Kokkos::RandomAccess>>;
32using FlowMatrixType = Eigen::SparseMatrix<double>;
107 Eigen::Matrix<double, -1, -1, Eigen::RowMajor>
112 DiagonalView<ComputeSpace>
122 inline DiagonalView<ComputeSpace>
PreCalculatedHydroState(const PreCalculatedHydroState &other)=delete
Deleted copy assigment.
FlowMatrixType transition_matrix
Matrix representing flow transitions.
Definition cache_hydro_state.hpp:105
PreCalculatedHydroState & operator=(const PreCalculatedHydroState &rhs)=delete
Deleted copy constructor.
Eigen::Matrix< double, -1, -1, Eigen::RowMajor > cumulative_probability
Cumulative probability matrix.
Definition cache_hydro_state.hpp:108
std::vector< double > inverse_volume
Inverse of compartment volumes.
Definition cache_hydro_state.hpp:110
PreCalculatedHydroState()
Default constructor.
Definition cache_hydro_state.cpp:13
PreCalculatedHydroState(PreCalculatedHydroState &&other)=default
Default move assigment.
PreCalculatedHydroState & operator=(PreCalculatedHydroState &&rhs)=default
Default move constructor.
~PreCalculatedHydroState()=default
Default destructor.
std::vector< double > volume
Volumes of compartments.
Definition cache_hydro_state.hpp:111
friend class ProxyCalculatedHydroState
Definition cache_hydro_state.hpp:58
DiagonalView< ComputeSpace > diagonal_compute
Diagonal view for compute operations.
Definition cache_hydro_state.hpp:113
DiagonalView< ComputeSpace > get_kernel_diagonal() const
Get the kernel diagonal view.
Definition cache_hydro_state.hpp:123
const FlowMatrixType & get_transition() const
Get the transition matrix.
Definition cache_hydro_state.cpp:20
Proxy class for PreCalculatedHydroState used to fill this struct with data from an external library.
Definition proxy_cache.hpp:28
Namespace to handle algorithms and structures related to reading compartment mesh.
Definition host_specific.hpp:18