Common components for OPM, in particular build system (cmake).
after #278, the generic version of getInvB_() was always used because no argument for fluidState.invB() was specified when invoking the GENERATE_HAS_MEMBER() macro, so has_invB<FluidState>() returned false for any fluid state. since the getInvB_() function is not used by the master version of `flow` yet, it was unaffected by this issue and this is also the reason why neither Jenkins complained nor any performance regression could be seen after #278. That said, for implementing non-trivial boundary conditions, it is very helpful to have a unified code path for the case where boundary conditions are specified using generic fluid states and black-oil model specific ones as well as with the flux computations in the interior of the domain. Note that I only found this issue due to the fact that on my current WIP branch linearization got 10% slower for Norne. This means that the generic version of this function must be correct and, considering the fact that the massFraction() method is quite elaborate for BlackOilFluidState, this is also a very strong indication that on modern processors the performance of even the linearization part of the simulation is more limited by memory latency than by the execution speed of the ALUs. |
||
---|---|---|
bin | ||
opm/material | ||
tests |