[Opm] Solving a linear eigenvalue problem with OPM

Atgeirr Rasmussen Atgeirr.Rasmussen at sintef.no
Fri Oct 27 11:07:29 UTC 2017


Hi Rodrigo,

Thanks for your kind words!

The problem you describe looks interesting, and I hope that we can help you towards a solution.
First I must admit that I have very limited experience with solving eigenvalue problems numerically
(I have not done that in 20 years…) which limits how useful tips I can give.

I think that some sort of eigenvalue solver exists in dune-istl (on which we base our linear algebra),
but I have no idea if it would be fit for your purpose, I think Markus Blatt would be a better person to
answer that.

Finally, I agree that you could probably reuse the matrix created in the upscaling code for your purpose.
You can find it in the IncompFlowSolverHybrid class (opm-upscaling module, at opm/porsol/mimetic/IncompFlowSolverHybrid.hpp),
the matrix is stored in the class after it's built:

(lines 936-937)

        Dune::BCRSMatrix <MatrixBlockType>      S_;    // System matrix
        Dune::BlockVector<VectorBlockType>      rhs_;  // System RHS

Hope that helps you along!

Atgeirr



26. okt. 2017 kl. 17.54 skrev Rodrigo Piccinini <rbpiccinini at gmail.com<mailto:rbpiccinini at gmail.com>>:


Hello

First, thanks for sharing OPM. I've compiled it in Debian Stretch and I'm running some of the tutorials.
It is a great tool!

I'm writing to ask for guidance through OPM code as I'm interested in studying the application of diffusion equation eigenvalues to the characterization of heterogeneous reservoirs.
The basic idea is to compare eigenvalues of 3D reservoir models with eigenvalues obtained from extended well tests.

The problem I'd like to solve with OPM (possibly by modifying some of the code) is the linear eigenvalue problem that results after applying separation of variables to the linear diffusion equation. In latex code, that would be:

\nabla k(x) / \mu \cdot \nabla \Psi = \lambda w(x) \Psi ,

where k(x) is the permeability tensor, \mu is the fluid viscosity and w(x) is a weight scalar function (e.g., porosity times compressibility). At boundaries, Neumann boundary conditions apply and
\lambda and \Psi are the eigenvalues and the eigenfunctions, respectively. I'm  considering single phase flow only.

I believe some suitable code may exist in opm-upscaling module.

If I'm successful at this task, I'd like to compare the computed eigenvalues with ones extracted from an extended well test performed at Petrobras. Maybe that can help integrate the well test data into the reservoir model. The eigenvalues from the well test are being extracted with a method introduced by two Shell engineers ("A New Method for Estimating Average Reservoir Pressure: The Muskat Plot Revisited"<https://www.onepetro.org/journal-paper/SPE-102730-PA>). I expect to make it a phd project for myself, but I'd like to make some tries before looking for a university.

Sorry for the long message and thanks in advance.

--
Rodrigo
_______________________________________________
Opm mailing list
Opm at opm-project.org<mailto:Opm at opm-project.org>
http://opm-project.org/cgi-bin/mailman/listinfo/opm

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <//opm-project.org/pipermail/opm/attachments/20171027/cacad1c4/attachment.html>


More information about the Opm mailing list