20 #ifndef OPM_MILU_HEADER_INCLUDED
21 #define OPM_MILU_HEADER_INCLUDED
47 MILU_VARIANT convertString2Milu(
const std::string& milu);
54 T identityFunctor(
const T&);
57 T oneFunctor(
const T&);
60 T signFunctor(
const T&);
63 T isPositiveFunctor(
const T&);
66 T absFunctor(
const T&);
71 virtual std::size_t operator[](std::size_t i)
const = 0;
77 virtual std::size_t operator[](std::size_t i)
const
86 : ordering_(&ordering)
88 virtual std::size_t operator[](std::size_t i)
const
90 return (*ordering_)[i];
92 const std::vector<std::size_t>* ordering_;
97 using FieldFunct = std::function<
typename M::field_type(
const typename M::field_type&)>;
100 void milu0_decomposition(M& A, FieldFunct<M> absFunctor = signFunctor<typename M::field_type>,
101 FieldFunct<M> signFunctor = oneFunctor<typename M::field_type>,
102 std::vector<typename M::block_type>* diagonal =
nullptr);
105 void milu0_decomposition(M& A, std::vector<typename M::block_type>* diagonal)
107 milu0_decomposition(A, identityFunctor<typename M::field_type>, oneFunctor<typename M::field_type>, diagonal);
112 void milun_decomposition(
const M& A,
int n,
MILU_VARIANT milu, M& ILU,
113 Reorderer& ordering, Reorderer& inverseOrdering);
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27
MILU_VARIANT
Definition: MILU.hpp:34
@ MILU_1
sum(dropped entries)
@ MILU_2
sum(dropped entries)
@ MILU_3
sum(|dropped entries|)
@ MILU_4
sum(dropped entries)
@ ILU
Do not perform modified ILU.