20#ifndef OPM_ANISOTROPICEIKONAL_HEADER_INCLUDED 
   21#define OPM_ANISOTROPICEIKONAL_HEADER_INCLUDED 
   23#include <opm/core/utility/SparseTable.hpp> 
   28#include <opm/common/utility/platform_dependent/disable_warnings.h> 
   30#include <boost/version.hpp> 
   32#define BOOST_HEAP_AVAILABLE ((BOOST_VERSION / 100 % 1000) >= 49) 
   34#if BOOST_HEAP_AVAILABLE 
   35#include <boost/heap/fibonacci_heap.hpp> 
   38#include <opm/common/utility/platform_dependent/reenable_warnings.h> 
   41struct UnstructuredGrid;
 
   61        void solve(
const double* metric,
 
   62                   const std::vector<int>& startcells,
 
   63                   std::vector<double>& solution);
 
   65#if BOOST_HEAP_AVAILABLE 
   67        const UnstructuredGrid& grid_;
 
   71        std::vector<char> is_accepted_;
 
   72        std::set<int> accepted_front_;
 
   75        std::vector<double> grid_radius_;
 
   76        std::vector<double> aniso_ratio_;
 
   77        const double safety_factor_;
 
   80        typedef std::pair<double, int> ValueAndCell;
 
   81        typedef boost::heap::compare<std::greater<ValueAndCell>> Comparator;
 
   82        typedef boost::heap::fibonacci_heap<ValueAndCell, Comparator> Heap;
 
   84        typedef Heap::handle_type HeapHandle;
 
   85        std::map<int, HeapHandle> considered_handles_;
 
   86        std::vector<char> is_considered_;
 
   88        bool isClose(
const int c1, 
const int c2) 
const;
 
   89        double computeValue(
const int cell, 
const double* metric, 
const double* solution) 
const;
 
   90        double computeValueUpdate(
const int cell, 
const double* metric, 
const double* solution, 
const int new_cell) 
const;
 
   91        double computeFromLine(
const int cell, 
const int from, 
const double* metric, 
const double* solution) 
const;
 
   92        double computeFromTri(
const int cell, 
const int n0, 
const int n1, 
const double* metric, 
const double* solution) 
const;
 
   94        const ValueAndCell& topConsidered() 
const;
 
   95        void pushConsidered(
const ValueAndCell& vc);
 
   98        void computeGridRadius();
 
   99        void computeAnisoRatio(
const double* metric);
 
Definition: AnisotropicEikonal.hpp:51
 
AnisotropicEikonal2d(const UnstructuredGrid &grid)
 
void solve(const double *metric, const std::vector< int > &startcells, std::vector< double > &solution)
 
Definition: TofDiscGalReorder.hpp:38
 
Definition: AnisotropicEikonal.hpp:44