also:
-- fixed but not checked for diffusion
-- bug for zero thermal diffusion (nan in derivatives)
-- added checking of consistency between input and taged phases
This commit adds a new member function,
EclTransmissibility<>::applyNncMultreg_()
which applies regional transmissibility multipliers such as those
entered in the MULTREGT keyword to the explicit input NNCs. We make
the application conditional on a new parameter, default value
'false', and pass 'true' as the argument from 'finishInit()'.
Along with TransMult::getRegionMultiplierNNC(), this implements all
known connection behaviours for inter-region connections.
Multipliers internal to a region in MULTREGT are not yet supported.
The return value from applyNncToGridTrans_() was never used and
the author confirms that this is intentional. Remove the entire
return value to signal this intention.
For 10 Million cell problems my compute server (with 128 GB Ram)
starts to swap, when I use debugging tools in parallel runs. I assume
that this might get an issue for others, too.
Now we consistently use unordered_map for the mapping.
- the diffusion one is basically done on runtime anyways
- the energy one gives some small code elimination gains
however, it complicates the writing of downstream templates.
- The edit manipulations from EDITNNC have already been applied to the NNC data
from opm-common
- The NNC data structures are guaranteed to be ordered, both with cell1 <= cell2
and the NNCs are in ascending order
- The NNC output to EGRID / INIT files is based on std::vector<NNCdata>
For PINCH(5)==ALL, we take the minimum of MULTZ+ and ignore MULTZ-.
We also prepare for PINCH(5)==TOP taking only the toplevel MULTZ+
value.
For non-vertical directions we use both MULTZ+ and MULTZ-
This will process the same faces in serial and parallel.
Hence it make the silent assumption that we only process faces
from low cartesian index to high cartesian index hold again.
This should fix PINCH MULTZ ALL in parallel.
Up to now We always assumed that cardDims[i]>1 holds. which it does for most
of the cases. But when e.g. simulating a vertical stack of 5 cells
flow would report the transmissibilities in the Z direction in TRANX
and output TRANZ as zero. Similar problems should be there for 2D grids.
With this commit we actually check whether there can be neighbours in
the X and Z direction to prevent this behavior.
`NEW_PROP_TAG` is now a definition and not just a declaration.
Eliminate superfluous declarations, include headers with definitions.
Make one necessary forward declaration explicit.
this was actually broken by an upstream change from return-by-reference
to return-by-value, but we were lucky, the return value was
kept in memory until end of block it seems.
They are attached to the cells as well and are now distributed
during CpGrid::loadBalance. Due to this change we also rename
FieldPropsDataHandle to PropsCentroidsDataHandle.