opm-simulators
Loading...
Searching...
No Matches
mixed Directory Reference

Files

 
bslv.h
 
bsr.h
 
prec.h
 
vec.h
 
wrapper.hpp

Detailed Description

Mixed-precision linear solvers

This folder contains mixed-precision building blocks for Krylov subspace methods and a highly optimized mixed-precision implementation of ILU0 and DILU preconditioned bicgstab. Hopefully, this will inspire the exploration of mixed-precision algorithms in OPM.

The initial implementation is specialized for 3x3 block-sparse matrices due to their importance in reservoir simulation and restricted to serial runs. Extending the work to parallel runs is a matter of extending OPM's parallel infrastructure and should be relatively straight-forward.

The mixed-precision solver is selected by the command-line options --linear-solver=mixed-ilu0 or --linear-solver=mixed-dilu. The command-line option --matrix-add-well-contributions=true must also be set as the mixed-precision solver operates directly on block-sparse matrices, not on linear operators as other OPM solvers do. For convenience, a wrapper similar to the one below can be used.