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 std::size_t operator[](std::size_t i)
const override
85 explicit RealReorderer(
const std::vector<std::size_t>& ordering)
86 : ordering_(&ordering)
89 std::size_t operator[](std::size_t i)
const override
91 return (*ordering_)[i];
94 const std::vector<std::size_t>* ordering_;
99using FieldFunct = std::function<
typename M::field_type(
const typename M::field_type&)>;
102void milu0_decomposition(M& A, FieldFunct<M> absFunctor = signFunctor<typename M::field_type>,
103 FieldFunct<M> signFunctor = oneFunctor<typename M::field_type>,
104 std::vector<typename M::block_type>* diagonal =
nullptr);
107void milu0_decomposition(M& A, std::vector<typename M::block_type>* diagonal)
109 milu0_decomposition(A, identityFunctor<typename M::field_type>, oneFunctor<typename M::field_type>, diagonal);
115 Reorderer& ordering, Reorderer& inverseOrdering);
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilbioeffectsmodules.hh:45
MILU_VARIANT
Definition MILU.hpp:34
@ MILU_1
sum(dropped entries)
Definition MILU.hpp:38
@ MILU_2
sum(dropped entries)
Definition MILU.hpp:40
@ MILU_3
sum(|dropped entries|)
Definition MILU.hpp:42
@ MILU_4
sum(dropped entries)
Definition MILU.hpp:44
@ ILU
Do not perform modified ILU.
Definition MILU.hpp:36