test if apple clang likes this better

This commit is contained in:
Arne Morten Kvarving 2020-12-08 15:27:50 +01:00
parent e58a660235
commit 75b2609336
2 changed files with 34 additions and 41 deletions

View File

@ -62,6 +62,17 @@ public:
resize(minX, maxX, m, minY, maxY, n);
}
UniformTabulated2DFunction(Scalar minX, Scalar maxX, unsigned m,
Scalar minY, Scalar maxY, unsigned n,
const std::vector<std::vector<Scalar>>& vals)
{
resize(minX, maxX, m, minY, maxY, n);
for (unsigned i = 0; i < m; ++i)
for (unsigned j = 0; j < n; ++j)
this->setSamplePoint(i, j, vals[i][j]);
}
/*!
* \brief Resize the tabulation to a new range.
*/

View File

@ -23,7 +23,7 @@ struct TabulatedDensityTraits {
static const Scalar yMin;
static const Scalar yMax;
static const Scalar vals[numX][numY];
static const std::vector<std::vector<Scalar>> vals;
};
inline const double TabulatedDensityTraits::xMin = 2.800000000000000e+02;
@ -32,7 +32,7 @@ inline const double TabulatedDensityTraits::yMin = 1.000000000000000e+05;
inline const double TabulatedDensityTraits::yMax = 1.000000000000000e+08;
inline const char *TabulatedDensityTraits::name = "density";
inline const double TabulatedDensityTraits::vals[200][500] =
inline const std::vector<std::vector<double>> TabulatedDensityTraits::vals =
{
{
1.902062465274410e+00, 5.782408947482105e+00, 9.764909779046345e+00, 1.385694970929571e+01, 1.806682704790397e+01,
@ -20445,7 +20445,7 @@ struct TabulatedEnthalpyTraits {
static const int numY = 500;
static const Scalar yMin;
static const Scalar yMax;
static const Scalar vals[numX][numY];
static const std::vector<std::vector<Scalar>> vals;
};
inline const double TabulatedEnthalpyTraits::xMin = 2.800000000000000e+02;
@ -20454,7 +20454,7 @@ inline const double TabulatedEnthalpyTraits::yMin = 1.000000000000000e+05;
inline const double TabulatedEnthalpyTraits::yMax = 1.000000000000000e+08;
inline const char *TabulatedEnthalpyTraits::name = "enthalpy";
inline const double TabulatedEnthalpyTraits::vals[200][500] =
inline const std::vector<std::vector<double>> TabulatedEnthalpyTraits::vals =
{
{
5.700580815972213e+03, 3.531328941638982e+03, 1.311308233079838e+03, -9.631993272332195e+02, -3.296365473729317e+03,
@ -40862,46 +40862,28 @@ typedef Opm::UniformTabulated2DFunction< double > TabulatedFunction;
// this class collects all the tabulated quantities in one convenient place
struct CO2Tables {
static TabulatedFunction tabulatedEnthalpy;
static TabulatedFunction tabulatedDensity;
static const double brineSalinity;
static const TabulatedFunction tabulatedEnthalpy;
static const TabulatedFunction tabulatedDensity;
static constexpr double brineSalinity = 1.000000000000000e-01;
};
inline TabulatedFunction CO2Tables::tabulatedEnthalpy;
inline TabulatedFunction CO2Tables::tabulatedDensity;
inline const double CO2Tables::brineSalinity = 1.000000000000000e-01;
inline const TabulatedFunction CO2Tables::tabulatedEnthalpy
{TabulatedEnthalpyTraits::xMin,
TabulatedEnthalpyTraits::xMax,
TabulatedEnthalpyTraits::numX,
TabulatedEnthalpyTraits::yMin,
TabulatedEnthalpyTraits::yMax,
TabulatedEnthalpyTraits::numY,
TabulatedEnthalpyTraits::vals};
// initialize the static tables once. this is a bit hacky in so far as it uses some
// advanced C++ features (static initializer functions)
inline int initCO2Tables_();
int initCO2Tables_()
{
CO2Tables::tabulatedEnthalpy.resize(TabulatedEnthalpyTraits::xMin,
TabulatedEnthalpyTraits::xMax,
TabulatedEnthalpyTraits::numX,
TabulatedEnthalpyTraits::yMin,
TabulatedEnthalpyTraits::yMax,
TabulatedEnthalpyTraits::numY);
inline const TabulatedFunction CO2Tables::tabulatedDensity
{TabulatedDensityTraits::xMin,
TabulatedDensityTraits::xMax,
TabulatedDensityTraits::numX,
TabulatedDensityTraits::yMin,
TabulatedDensityTraits::yMax,
TabulatedDensityTraits::numY,
TabulatedDensityTraits::vals};
for (unsigned i = 0; i < TabulatedEnthalpyTraits::numX; ++i)
for (unsigned j = 0; j < TabulatedEnthalpyTraits::numY; ++j)
CO2Tables::tabulatedEnthalpy.setSamplePoint(i, j, TabulatedEnthalpyTraits::vals[i][j]);
CO2Tables::tabulatedDensity.resize(TabulatedDensityTraits::xMin,
TabulatedDensityTraits::xMax,
TabulatedDensityTraits::numX,
TabulatedDensityTraits::yMin,
TabulatedDensityTraits::yMax,
TabulatedDensityTraits::numY);
for (unsigned i = 0; i < TabulatedDensityTraits::numX; ++i)
for (unsigned j = 0; j < TabulatedDensityTraits::numY; ++j)
CO2Tables::tabulatedDensity.setSamplePoint(i, j, TabulatedDensityTraits::vals[i][j]);
return 0;
}
extern int co2TablesInitDummy__;
inline int co2TablesInitDummy__ = initCO2Tables_();
#endif /* CO2TABLES_INC */