mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-27 17:50:59 -06:00
Make compilation of class depend on Boost.Heap availablility.
If boost version is too old, the API is still the same and the class will build, but throws upon construction.
This commit is contained in:
parent
1e39010ba4
commit
dfebd46acf
@ -22,6 +22,8 @@
|
|||||||
#include <opm/core/grid.h>
|
#include <opm/core/grid.h>
|
||||||
#include <opm/core/utility/RootFinders.hpp>
|
#include <opm/core/utility/RootFinders.hpp>
|
||||||
|
|
||||||
|
#if BOOST_HEAP_AVAILABLE
|
||||||
|
|
||||||
namespace Opm
|
namespace Opm
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -425,3 +427,30 @@ namespace Opm
|
|||||||
|
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
|
||||||
|
|
||||||
|
#else // BOOST_HEAP_AVAILABLE is false
|
||||||
|
|
||||||
|
namespace Opm
|
||||||
|
{
|
||||||
|
const char* AnisotropicEikonal2derrmsg =
|
||||||
|
"This library has not been compiled with support for the"
|
||||||
|
"AnisotropicEikonal2d class, due to too old version of the boost libraries. "
|
||||||
|
"Boost.Heap from boost version 1.49 or newer is required. "
|
||||||
|
"To use this class you must recompile opm-core on a system with sufficiently "
|
||||||
|
"new version of boost.";
|
||||||
|
|
||||||
|
AnisotropicEikonal2d::AnisotropicEikonal2d(const UnstructuredGrid&)
|
||||||
|
{
|
||||||
|
OPM_THROW(std::logic_error, AnisotropicEikonal2derrmsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AnisotropicEikonal2d::solve(const double*,
|
||||||
|
const std::vector<int>&,
|
||||||
|
std::vector<double>&)
|
||||||
|
{
|
||||||
|
OPM_THROW(std::logic_error, AnisotropicEikonal2derrmsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // BOOST_HEAP_AVAILABLE
|
||||||
|
@ -22,7 +22,16 @@
|
|||||||
|
|
||||||
#include <opm/core/utility/SparseTable.hpp>
|
#include <opm/core/utility/SparseTable.hpp>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <set>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
#include <boost/version.hpp>
|
||||||
|
|
||||||
|
#define BOOST_HEAP_AVAILABLE ((BOOST_VERSION / 100 % 1000) >= 49)
|
||||||
|
|
||||||
|
#if BOOST_HEAP_AVAILABLE
|
||||||
#include <boost/heap/fibonacci_heap.hpp>
|
#include <boost/heap/fibonacci_heap.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
struct UnstructuredGrid;
|
struct UnstructuredGrid;
|
||||||
|
|
||||||
@ -48,6 +57,7 @@ namespace Opm
|
|||||||
const std::vector<int>& startcells,
|
const std::vector<int>& startcells,
|
||||||
std::vector<double>& solution);
|
std::vector<double>& solution);
|
||||||
private:
|
private:
|
||||||
|
#if BOOST_HEAP_AVAILABLE
|
||||||
// Grid and topology.
|
// Grid and topology.
|
||||||
const UnstructuredGrid& grid_;
|
const UnstructuredGrid& grid_;
|
||||||
SparseTable<int> cell_neighbours_;
|
SparseTable<int> cell_neighbours_;
|
||||||
@ -82,6 +92,7 @@ namespace Opm
|
|||||||
|
|
||||||
void computeGridRadius();
|
void computeGridRadius();
|
||||||
void computeAnisoRatio(const double* metric);
|
void computeAnisoRatio(const double* metric);
|
||||||
|
#endif // BOOST_HEAP_AVAILABLE
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
Loading…
Reference in New Issue
Block a user