EclEquil: use std::vector to store mappings.

This commit is contained in:
Robert Kloefkorn 2016-12-02 18:47:59 +01:00
parent e240cf8eae
commit e3286b3ec0
2 changed files with 8 additions and 2 deletions

View File

@ -200,6 +200,12 @@ public:
int cartesianSize() const
{ return asImp_().cartesianIndexMapper().cartesianSize(); }
/*!
* \brief Returns the overall number of cells of the logically EquilCartesian grid
*/
int equilCartesianSize() const
{ return asImp_().equilCartesianIndexMapper().cartesianSize(); }
/*!
* \brief Returns the Cartesian cell id for identifaction with ECL data
*/

View File

@ -107,7 +107,7 @@ public:
// create a separate instance of the material law manager just because opm-core
// only supports double as the type for scalars (but ebos may use float or quad)
std::vector<int> compressedToCartesianEquilElemIdx(numEquilElems);
std::map<int,int> equilCartesianToCompressed;
std::vector<int> equilCartesianToCompressed( gridManager.equilCartesianSize(), -1 );
for (unsigned equilElemIdx = 0; equilElemIdx < numEquilElems; ++equilElemIdx)
{
@ -149,7 +149,7 @@ public:
for( unsigned int elemIdx = 0; elemIdx < numElems; ++elemIdx )
{
const int cartesianIndex = gridManager.cartesianIndex( elemIdx );
assert( equilCartesianToCompressed.find( cartesianIndex ) != equilCartesianToCompressed.end() );
assert( equilCartesianToCompressed[ cartesianIndex ] >= 0 );
localToEquilIndex[ elemIdx ] = equilCartesianToCompressed[ cartesianIndex ];
}