[EPIC] PVT modeling
Open
@dkachuma is already working on this.
Since May 18, 2023.
EPIC
- Dominant language
- C++
- Stars
- 287
- Forks
- 109
- Avg merge
- 4d 41m
- Merged PRs (30d)
- 5
Description
Description
The goal of this issue is to keep track of all developments related to PVT modeling capabilities for CO2 in depleted reservoirs.
Work Scope
Basic first steps to port PVTPackage capabilities in GEOS:
- Create and (unit) test functions to solve Rachford-Rice equation (@francoishamon)
- Create and (unit) test functions to model cubic EOS (@francoishamon)
- Add initialization heuristics for K-values (@dkachuma)
- Add and (unit) test the negative two-phase flash loop (@dkachuma)
- Add density calculation for multiphase fluid (@dkachuma)
- Add immiscible water three phase model
Steps to test the new functions in PVTDriver
- Create a class derived from
MultiFluidBaseto read an input and call the new flash functions (@dkachuma) - Link
MultiFluidBaseclass to static calculation functions. - Allow the user to supply the viscosity values for the constant viscosity model
- Allow the user to select the mixing rule for the LBC viscosity calculation
- Allow the user to tune the flash calculation parameters
- Extend
BlasLapackLA::solveLinearSystemto GPU
Steps to make the new code usable for simulations of CO2 injection in depleted reservoirs:
- Add Soreide Whitson modification to the cubic EOS functions (for the water phase) (@francoishamon)
- Add binary interaction coefficients
- Add phase identification in the two-phase flash to identify the water phase
- Add property calculations for density (CO2 with impurities, etc) and viscosity (LBC and others) (@dkachuma)
-
Compute finite-difference derivatives
Steps to make the code efficient:
- Modify two-phase flash to do non-iterative K-value flash
- Compute analytical derivatives
- Explore Newton bisection in Rachford-Rice
Some tidying tasks
- Centralise code to convert compositions from mass fractions to mole fractions
- Simplify fluid model interface to have a single compute for both flow and initialisation
- Use variadic template parameter for phase types in compositional multiphase fluid model
- Refactor
CubicEOSPhaseModelwhich has become too large/complex.
Issues in this EPIC
- https://github.com/GEOS-DEV/GEOS/pull/1726
- https://github.com/GEOS-DEV/GEOS/pull/1814
- https://github.com/GEOS-DEV/GEOS/pull/2379
- https://github.com/GEOS-DEV/GEOS/pull/2441
- https://github.com/GEOS-DEV/GEOS/pull/2451
- https://github.com/GEOS-DEV/GEOS/pull/2484
- https://github.com/GEOS-DEV/GEOS/pull/2492
- https://github.com/GEOS-DEV/GEOS/pull/2520
- https://github.com/GEOS-DEV/GEOS/pull/2533
- https://github.com/GEOS-DEV/GEOS/pull/2769
- https://github.com/GEOS-DEV/GEOS/pull/2542
- https://github.com/GEOS-DEV/GEOS/pull/2661
- https://github.com/GEOS-DEV/GEOS/pull/2695
- https://github.com/GEOS-DEV/GEOS/pull/2772
- https://github.com/GEOS-DEV/GEOS/pull/2799
- https://github.com/GEOS-DEV/GEOS/pull/2802
- https://github.com/GEOS-DEV/GEOS/pull/2811
- https://github.com/GEOS-DEV/GEOS/pull/2812
- https://github.com/GEOS-DEV/GEOS/pull/2820
- https://github.com/GEOS-DEV/GEOS/pull/2854
- https://github.com/GEOS-DEV/GEOS/pull/2879
- https://github.com/GEOS-DEV/GEOS/pull/3121
- https://github.com/GEOS-DEV/GEOS/pull/3123
- https://github.com/GEOS-DEV/GEOS/pull/3136
- https://github.com/GEOS-DEV/GEOS/pull/3140
- https://github.com/GEOS-DEV/GEOS/pull/3157
- https://github.com/GEOS-DEV/GEOS/pull/3166
- https://github.com/GEOS-DEV/GEOS/pull/3173
- https://github.com/GEOS-DEV/GEOS/pull/3206
- https://github.com/GEOS-DEV/GEOS/pull/3213
- https://github.com/GEOS-DEV/GEOS/pull/3234
- https://github.com/GEOS-DEV/GEOS/pull/3236
- https://github.com/GEOS-DEV/GEOS/pull/3237
- https://github.com/GEOS-DEV/GEOS/pull/3299
- https://github.com/GEOS-DEV/GEOS/pull/3309
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.