PMEAL / OpenPNM

A Python package for performing pore network modeling of porous media
http://openpnm.org
MIT License
444 stars 174 forks source link

`Statoil` import should add reservoir pores instead of deleting reservoir throats #1839

Open jgostick opened 3 years ago

jgostick commented 3 years ago

The Statoil format has throats pointing to pores 0 and -1, which are non-existent, since the pore index starts at 1. We chose to delete these throats in the original importer function. However, now that I'm coding an export function, I realize it might be better if the import function added two nodes for the reservoirs and point the throats to them (instead of 0 and -1). The main problem now is that I don't know what values to put back into the reservoir throats upon export. Adding them is easy enough, but the properties are all lost.

jgostick commented 2 years ago

The solution to this requires finding the x,y,z locations for the fictitous pores. Maybe these could be calculated by triangulation knowing the throat lenghts and positions of other end?

On the other hand, if we do this, then we can't export regular openpnm networks to statoil since these never had fictitous reservoir pores to start with.

jgostick commented 2 years ago

After some thought:

  1. We should continue to delete these reservoir pores upon importing, so that things work with openpnm
  2. We should keep the add_reservoir_pore method (maybe move it to the io folder) so that it can be applied to any network (i.e. snow) before exporting to statoil
  3. We should add a label during the add_reservoir_pore method that clearly indicates which pore is the inlet and outlet, rather than assuming the 'last two' pores in the list, which is clearly prone to error. If the labels are not found then a sensible error can be issued.
jgostick commented 2 years ago

If we are going to continue deleting the reservoir pores, then we can keep network_from_statoil as it is now and remove the network_to_statoil function for now, then add this functionality later in V3.1+