20#ifndef OPM_MILU_HEADER_INCLUDED
21#define OPM_MILU_HEADER_INCLUDED
54T identityFunctor(
const T&);
57T oneFunctor(
const T&);
60T signFunctor(
const T&);
63T isPositiveFunctor(
const T&);
66T 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_;
97using FieldFunct = std::function<
typename M::field_type(
const typename M::field_type&)>;
100void 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);
105void 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);
112void 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.