diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake
index bc0f23a9..c829fd5a 100644
--- a/CMakeLists_files.cmake
+++ b/CMakeLists_files.cmake
@@ -34,17 +34,6 @@ list (APPEND MAIN_SOURCE_FILES
opm/core/flowdiagnostics/FlowDiagnostics.cpp
opm/core/flowdiagnostics/TofDiscGalReorder.cpp
opm/core/flowdiagnostics/TofReorder.cpp
- opm/core/grid/GridHelpers.cpp
- opm/core/grid/GridManager.cpp
- opm/core/grid/GridUtilities.cpp
- opm/core/grid/cart_grid.c
- opm/core/grid/cornerpoint_grid.c
- opm/core/grid/cpgpreprocess/facetopology.c
- opm/core/grid/cpgpreprocess/geometry.c
- opm/core/grid/cpgpreprocess/preprocess.c
- opm/core/grid/cpgpreprocess/uniquepoints.c
- opm/core/grid/grid.c
- opm/core/grid/grid_equal.cpp
opm/core/linalg/LinearSolverFactory.cpp
opm/core/linalg/LinearSolverInterface.cpp
opm/core/linalg/LinearSolverIstl.cpp
@@ -112,7 +101,6 @@ list (APPEND MAIN_SOURCE_FILES
opm/core/utility/Event.cpp
opm/core/utility/MonotCubicInterpolator.cpp
opm/core/utility/NullStream.cpp
- opm/core/utility/StopWatch.cpp
opm/core/utility/VelocityInterpolation.cpp
opm/core/utility/WachspressCoord.cpp
opm/core/utility/compressedToCartesian.cpp
@@ -150,7 +138,6 @@ list (APPEND TEST_SOURCE_FILES
tests/test_nonuniformtablelinear.cpp
tests/test_parallelistlinformation.cpp
tests/test_sparsevector.cpp
- tests/test_sparsetable.cpp
tests/test_velocityinterpolation.cpp
tests/test_quadratures.cpp
tests/test_uniformtablelinear.cpp
@@ -258,21 +245,6 @@ list (APPEND PUBLIC_HEADER_FILES
opm/core/flowdiagnostics/FlowDiagnostics.hpp
opm/core/flowdiagnostics/TofDiscGalReorder.hpp
opm/core/flowdiagnostics/TofReorder.hpp
- opm/core/grid.h
- opm/core/grid/CellQuadrature.hpp
- opm/core/grid/ColumnExtract.hpp
- opm/core/grid/FaceQuadrature.hpp
- opm/core/grid/GridHelpers.hpp
- opm/core/grid/GridManager.hpp
- opm/core/grid/GridUtilities.hpp
- opm/core/grid/MinpvProcessor.hpp
- opm/core/grid/PinchProcessor.hpp
- opm/core/grid/cart_grid.h
- opm/core/grid/cornerpoint_grid.h
- opm/core/grid/cpgpreprocess/facetopology.h
- opm/core/grid/cpgpreprocess/geometry.h
- opm/core/grid/cpgpreprocess/preprocess.h
- opm/core/grid/cpgpreprocess/uniquepoints.h
opm/core/linalg/LinearSolverFactory.hpp
opm/core/linalg/LinearSolverInterface.hpp
opm/core/linalg/LinearSolverIstl.hpp
@@ -383,9 +355,7 @@ list (APPEND PUBLIC_HEADER_FILES
opm/core/utility/NullStream.hpp
opm/core/utility/RegionMapping.hpp
opm/core/utility/RootFinders.hpp
- opm/core/utility/SparseTable.hpp
opm/core/utility/SparseVector.hpp
- opm/core/utility/StopWatch.hpp
opm/core/utility/UniformTableLinear.hpp
opm/core/utility/VelocityInterpolation.hpp
opm/core/utility/WachspressCoord.hpp
diff --git a/dune.module b/dune.module
index 71f8d96f..c711df2c 100644
--- a/dune.module
+++ b/dune.module
@@ -10,4 +10,4 @@ Label: 2017.04-pre
Maintainer: atgeirr@sintef.no
MaintainerName: Atgeirr F. Rasmussen
Url: http://opm-project.org
-Depends: dune-common (>= 2.2) dune-istl (>= 2.2) opm-common opm-parser opm-output opm-material
+Depends: dune-common (>= 2.2) dune-istl (>= 2.2) opm-common opm-parser opm-grid opm-output opm-material
diff --git a/opm/core/grid.h b/opm/core/grid.h
deleted file mode 100644
index c2f8a543..00000000
--- a/opm/core/grid.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- Copyright 2010, 2011, 2012 SINTEF ICT, Applied Mathematics.
-
- This file is part of the Open Porous Media project (OPM).
-
- OPM is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- OPM is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OPM. If not, see .
-*/
-
-#ifndef OPM_GRID_HEADER_INCLUDED
-#define OPM_GRID_HEADER_INCLUDED
-
-#include
-#include
-
-/**
- * \file
- *
- * Main OPM-Core grid data structure along with helper functions for
- * construction, destruction and reading a grid representation from disk.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
----- synopsis of grid.h ----
-
-struct UnstructuredGrid
-{
- int dimensions;
- int number_of_cells;
- int number_of_faces;
- int number_of_nodes;
- int *face_nodes;
- int *face_nodepos;
- int *face_cells;
- int *cell_faces;
- int *cell_facepos;
- double *node_coordinates;
- double *face_centroids;
- double *face_areas;
- double *face_normals;
- double *cell_centroids;
- double *cell_volumes;
- int *global_cell;
- int cartdims[3];
- int *cell_facetag;
-};
-
-void destroy_grid(struct UnstructuredGrid *g);
-
-struct UnstructuredGrid *
-create_grid_empty(void);
-
-struct UnstructuredGrid *
-allocate_grid(size_t ndims ,
- size_t ncells ,
- size_t nfaces ,
- size_t nfacenodes,
- size_t ncellfaces,
- size_t nnodes );
-
-struct UnstructuredGrid *
-read_grid(const char *fname);
-
- ---- end of synopsis of grid.h ----
-*/
-
-/**
- Data structure for an unstructured grid, unstructured meaning that
- any cell may have an arbitrary number of adjacent cells. The struct
- contains both topological and geometrical data.
-
- The grid consists of a set of cells, which are assumed to partion
- the grid domain. A face is defined as the nonempty intersection of
- (the closure of) two grid cells (the grid is a cell complex).
-
- The topology information is limited to some adjacency relations
- between cells, faces and nodes only. The data structure does not
- contain any information pertaining to edges (except in 2d, where
- edges are the same as faces).
-
- The geometry information is limited to centroids, areas/volumes and
- normals.
- */
-struct UnstructuredGrid
-{
- /**
- The topological and geometrical dimensionality of the
- grid. Note that we do not support grids that are embedded in
- higher-dimensional spaces, such as 2d grids embedded in 3d.
- This number must be 2 or 3.
- */
- int dimensions;
-
- /** The number of cells in the grid. */
- int number_of_cells;
- /** The number of faces in the grid. */
- int number_of_faces;
- /** The number of nodes in the grid. */
- int number_of_nodes;
-
- /**
- Contains for each face, the indices of its adjacent nodes.
- The size of the array is equal to the sum over all faces of
- each face's number of adjacent nodes, which also is equal to
- face_nodepos[number_of_faces].
- */
- int *face_nodes;
- /**
- For a face f, face_nodepos[f] contains the starting index
- for f's nodes in the face_nodes array.
- The size of the array is equal to (number_of_faces + 1).
- */
- int *face_nodepos;
- /**
- For a face f, face_cells[2*f] and face_cells[2*f + 1] contain
- the cell indices of the cells adjacent to f. The number -1
- indicates the outer boundary.
- The order is significant, as it gives the orientation: if
- face_cells[2*f] == a and face_cells[2*f + 1] == b, f is
- oriented from a to b. The inverse of this mapping is stored in
- cell_faces and cell_facepos.
- The size of the array is equal to (2*number_of_faces).
- */
- int *face_cells;
-
- /**
- Contains for each cell, the indices of its adjacent faces.
- The size of the array is equal to the sum over all cells of
- each cell's number of adjacent faces, which also is equal to
- cell_facepos[number_of_cells].
- */
- int *cell_faces;
- /**
- For a cell c, cell_facepos[c] contains the starting index
- for c's faces in the cell_faces array.
- The size of the array is equal to (number_of_cells + 1).
- */
- int *cell_facepos;
-
- /**
- Node coordinates, stored consecutively for each node. That is,
- for a node i, node_coordinates[dimensions*i + d] contains the
- d'th coordinate of node i.
- The size of the array is equal to (dimensions*number_of_nodes).
- */
- double *node_coordinates;
-
- /**
- Exact or approximate face centroids, stored consecutively for each face. That is,
- for a face f, face_centroids[dimensions*f + d] contains the
- d'th coordinate of f's centroid.
- The size of the array is equal to (dimensions*number_of_faces).
- */
- double *face_centroids;
- /**
- Exact or approximate face areas.
- The size of the array is equal to number_of_faces.
- */
- double *face_areas;
- /**
- Exact or approximate face normals, stored consecutively for
- each face. That is, for a face f, face_normals[dimensions*f + d]
- contains the d'th coordinate of f's normal.
- The size of the array is equal to (dimensions*number_of_faces).
-
- IMPORTANT: the normals are not normalized to have unit length!
- They are assumed to always have length equal to the
- corresponding face's area.
- */
- double *face_normals;
-
- /**
- Exact or approximate cell centroids, stored consecutively for each cell. That is,
- for a cell c, cell_centroids[dimensions*c + d] contains the
- d'th coordinate of c's centroid.
- The size of the array is equal to (dimensions*number_of_cells).
- */
- double *cell_centroids;
- /**
- Exact or approximate cell volumes.
- The size of the array is equal to number_of_cells.
- */
- double *cell_volumes;
-
-
- /**
- If non-null, this array contains the logical cartesian indices
- (in a lexicographic ordering) of each cell.
- In that case, the array size is equal to number_of_cells.
-
- This field is intended for grids that have a (possibly
- degenerate) logical cartesian structure, for example
- cornerpoint grids.
-
- If null, this indicates that the element indices coincide
- with the logical cartesian indices, _or_ that the grid has
- no inherent Cartesian structure. Due to this ambiguity, this
- field should not be used to check if the grid is Cartesian.
- */
- int *global_cell;
-
- /**
- Contains the size of the logical cartesian structure (if any) of the grid.
-
- This field is intended for grids that have a (possibly
- degenerate) logical cartesian structure, for example
- cornerpoint grids.
-
- If the grid is unstructured (non-Cartesian), then at least one
- of the items in the (sub-)array cartdims[0..dimensions-1]
- _could_ have the value 0 to signal this.
- */
- int cartdims[3];
- /**
- If non-null, this array contains a number for cell-face
- adjacency indicating the face's position with respect to the
- cell, in a logical cartesian sense. The tags are in [0, ..., 5]
- meaning [I-, I+, J-, J+, K-, K+], where I, J, K are the logical
- cartesian principal directions.
- The structure of this array is identical to cell_faces, and
- cell_facepos indices into cell_facetag as well.
-
- If non-null, the array size is equal to
- cell_facepos[number_of_cells].
-
- This field is intended for grids that have a (possibly
- degenerate) logical cartesian structure, for example
- cornerpoint grids.
- */
- int *cell_facetag;
-
-
- /*
- This vector is retained to be able to construct an
- EclipseGrid representation of the Grid. If the grid
- processor actually modifies the elements of the zcorn
- vector from the input the modified version is stored here;
- otherwise we just use the default.
- */
- double * zcorn;
-};
-
-/**
- Destroy and deallocate an UnstructuredGrid and all its data.
-
- This function assumes that all arrays of the UnstructuredGrid (if
- non-null) have been individually allocated by malloc(). They will
- be deallocated with free().
- */
-void destroy_grid(struct UnstructuredGrid *g);
-
-/**
- Allocate and initialise an empty UnstructuredGrid.
-
- This is the moral equivalent of a C++ default constructor.
-
- \return Fully formed UnstructuredGrid with all fields zero or
- NULL
as appropriate. NULL
in case of
- allocation failure.
- */
-struct UnstructuredGrid *
-create_grid_empty(void);
-
-/**
- Allocate and initialise an UnstructuredGrid where pointers are set
- to location with correct size.
-
- \param[in] ndims Number of physical dimensions.
- \param[in] ncells Number of cells.
- \param[in] nfaces Number of faces.
- \param[in] nfacenodes Size of mapping from faces to nodes.
- \param[in] ncellfaces Size of mapping from cells to faces.
- (i.e., the number of `half-faces')
- \param[in] nnodes Number of Nodes.
-
- \return Fully formed UnstructuredGrid with all fields except
- global_cell
allocated, but not filled with meaningful
- values. NULL
in case of allocation failure.
- */
-struct UnstructuredGrid *
-allocate_grid(size_t ndims ,
- size_t ncells ,
- size_t nfaces ,
- size_t nfacenodes,
- size_t ncellfaces,
- size_t nnodes );
-
-
-/**
- Will allocate storage internally in the grid object to hold a copy
- of the zcorn data supplied in the second argument.
-*/
-void
-attach_zcorn_copy(struct UnstructuredGrid* G ,
- const double * zcorn);
-
-
-/**
- * Import a grid from a character representation stored in file.
- *
- * @param[in] fname File name.
- * @return Fully formed UnstructuredGrid with all fields allocated and filled.
- * Returns @c NULL in case of allocation failure.
- */
-struct UnstructuredGrid *
-read_grid(const char *fname);
-
-
-
-
-bool
-grid_equal(const struct UnstructuredGrid * grid1 , const struct UnstructuredGrid * grid2);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* OPM_GRID_HEADER_INCLUDED */
diff --git a/opm/core/grid/CellQuadrature.hpp b/opm/core/grid/CellQuadrature.hpp
deleted file mode 100644
index ab0eb043..00000000
--- a/opm/core/grid/CellQuadrature.hpp
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- Copyright 2012 SINTEF ICT, Applied Mathematics.
-
- This file is part of the Open Porous Media project (OPM).
-
- OPM is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- OPM is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OPM. If not, see .
-*/
-
-#ifndef OPM_CELLQUADRATURE_HEADER_INCLUDED
-#define OPM_CELLQUADRATURE_HEADER_INCLUDED
-
-#include
-#include
-#include
-#include
-
-namespace Opm
-{
-
-
- namespace {
- /// Calculates the determinant of a 3 x 3 matrix, represented as
- /// three three-dimensional arrays.
- inline double determinantOf(const double* a0,
- const double* a1,
- const double* a2)
- {
- return
- a0[0] * (a1[1] * a2[2] - a2[1] * a1[2]) -
- a0[1] * (a1[0] * a2[2] - a2[0] * a1[2]) +
- a0[2] * (a1[0] * a2[1] - a2[0] * a1[1]);
- }
-
- /// Computes the volume of a tetrahedron consisting of 4 vertices
- /// with 3-dimensional coordinates
- inline double tetVolume(const double* p0,
- const double* p1,
- const double* p2,
- const double* p3)
- {
- double a[3] = { p1[0] - p0[0], p1[1] - p0[1], p1[2] - p0[2] };
- double b[3] = { p2[0] - p0[0], p2[1] - p0[1], p2[2] - p0[2] };
- double c[3] = { p3[0] - p0[0], p3[1] - p0[1], p3[2] - p0[2] };
- return std::fabs(determinantOf(a, b, c) / 6.0);
- }
-
- /// Calculates the area of a triangle consisting of 3 vertices
- /// with 2-dimensional coordinates
- inline double triangleArea2d(const double* p0,
- const double* p1,
- const double* p2)
- {
- double a[2] = { p1[0] - p0[0], p1[1] - p0[1] };
- double b[2] = { p2[0] - p0[0], p2[1] - p0[1] };
- double a_cross_b = a[0]*b[1] - a[1]*b[0];
- return 0.5*std::fabs(a_cross_b);
- }
- } // anonymous namespace
-
-
- /// A class providing numerical quadrature for cells.
- /// In general: \int_{cell} g(x) dx = \sum_{i=0}^{n-1} w_i g(x_i).
- /// Note that this class does multiply weights by cell volume,
- /// so weights always sum to cell volume.
- ///
- /// Degree 1 method:
- /// Midpoint (centroid) method.
- /// n = 1, w_0 = cell volume, x_0 = cell centroid
- ///
- /// Degree 2 method for 2d (but see the note):
- /// Based on subdivision of the cell into triangles,
- /// with the centroid as a common vertex, and the triangle
- /// edge midpoint rule.
- /// Triangle i consists of the centroid C, nodes N_i and N_{i+1}.
- /// Its area is A_i.
- /// n = 2 * nn (nn = num nodes in face)
- /// For i = 0..(nn-1):
- /// w_i = 1/3 A_i.
- /// w_{nn+i} = 1/3 A_{i-1} + 1/3 A_i
- /// x_i = (N_i + N_{i+1})/2
- /// x_{nn+i} = (C + N_i)/2
- /// All N and A indices are interpreted cyclic, modulus nn.
- /// Note: for simplicity of implementation, we currently use
- /// n = 3 * nn
- /// For i = 0..(nn-1):
- /// w_{3*i + {0,1,2}} = 1/3 A_i
- /// x_{3*i} = (N_i + N_{i+1})/2
- /// x_{3*i + {1,2}} = (C + N_{i,i+1})/2
- /// This is simpler, because we can implement it easily
- /// based on iteration over faces without requiring any
- /// particular (cyclic) ordering.
- ///
- /// Degree 2 method for 3d:
- /// Based on subdivision of each cell face into triangles
- /// with the face centroid as a common vertex, and then
- /// subdividing the cell into tetrahedra with the cell
- /// centroid as a common vertex. Then apply the tetrahedron
- /// rule with the following 4 nodes (uniform weights):
- /// a = 0.138196601125010515179541316563436
- /// x_i has all barycentric coordinates = a, except for
- /// the i'th coordinate which is = 1 - 3a.
- /// This rule is from http://nines.cs.kuleuven.be/ecf,
- /// it is the second degree 2 4-point rule for tets,
- /// referenced to Stroud(1971).
- /// The tetrahedra are numbered T_{i,j}, and are given by the
- /// cell centroid C, the face centroid FC_i, and two nodes
- /// of face i: FN_{i,j}, FN_{i,j+1}.
- class CellQuadrature
- {
- public:
- CellQuadrature(const UnstructuredGrid& grid,
- const int cell,
- const int degree)
- : grid_(grid), cell_(cell), degree_(degree)
- {
- if (grid.dimensions > 3) {
- OPM_THROW(std::runtime_error, "CellQuadrature only implemented for up to 3 dimensions.");
- }
- if (degree > 2) {
- OPM_THROW(std::runtime_error, "CellQuadrature exact for polynomial degrees > 1 not implemented.");
- }
- }
-
- int numQuadPts() const
- {
- if (degree_ < 2 || grid_.dimensions == 1) {
- return 1;
- }
- // Degree 2 case.
- if (grid_.dimensions == 2) {
- return 3*(grid_.cell_facepos[cell_ + 1] - grid_.cell_facepos[cell_]);
- }
- assert(grid_.dimensions == 3);
- int sumnodes = 0;
- for (int hf = grid_.cell_facepos[cell_]; hf < grid_.cell_facepos[cell_ + 1]; ++hf) {
- const int face = grid_.cell_faces[hf];
- sumnodes += grid_.face_nodepos[face + 1] - grid_.face_nodepos[face];
- }
- return 4*sumnodes;
- }
-
- void quadPtCoord(const int index, double* coord) const
- {
- const int dim = grid_.dimensions;
- const double* cc = grid_.cell_centroids + dim*cell_;
- if (degree_ < 2) {
- std::copy(cc, cc + dim, coord);
- return;
- }
- // Degree 2 case.
- if (dim == 2) {
- if (index % 3 == 0) {
- // Boundary midpoint. This is the face centroid.
- const int hface = grid_.cell_facepos[cell_] + index/3;
- const int face = grid_.cell_faces[hface];
- const double* fc = grid_.face_centroids + dim*face;
- std::copy(fc, fc + dim, coord);
- } else {
- // Interiour midpoint. This is the average of the
- // cell centroid and a face node (they should
- // always have two nodes in 2d).
- const int hface = grid_.cell_facepos[cell_] + index/3;
- const int face = grid_.cell_faces[hface];
- const int nodeoff = (index % 3) - 1; // == 0 or 1
- const int node = grid_.face_nodes[grid_.face_nodepos[face] + nodeoff];
- const double* nc = grid_.node_coordinates + dim*node;
- for (int dd = 0; dd < dim; ++dd) {
- coord[dd] = 0.5*(nc[dd] + cc[dd]);
- }
- }
- return;
- }
- assert(dim == 3);
- int tetindex = index / 4;
- const int subindex = index % 4;
- const double* nc = grid_.node_coordinates;
- for (int hf = grid_.cell_facepos[cell_]; hf < grid_.cell_facepos[cell_ + 1]; ++hf) {
- const int face = grid_.cell_faces[hf];
- const int nfn = grid_.face_nodepos[face + 1] - grid_.face_nodepos[face];
- if (nfn <= tetindex) {
- // Our tet is not associated with this face.
- tetindex -= nfn;
- continue;
- }
- const double* fc = grid_.face_centroids + dim*face;
- const int* fnodes = grid_.face_nodes + grid_.face_nodepos[face];
- const int node0 = fnodes[tetindex];
- const int node1 = fnodes[(tetindex + 1) % nfn];
- const double* n0c = nc + dim*node0;
- const double* n1c = nc + dim*node1;
- const double a = 0.138196601125010515179541316563436;
- // Barycentric coordinates of our point in the tet.
- double baryc[4] = { a, a, a, a };
- baryc[subindex] = 1.0 - 3.0*a;
- for (int dd = 0; dd < dim; ++dd) {
- coord[dd] = baryc[0]*cc[dd] + baryc[1]*fc[dd] + baryc[2]*n0c[dd] + baryc[3]*n1c[dd];
- }
- return;
- }
- OPM_THROW(std::runtime_error, "Should never reach this point.");
- }
-
- double quadPtWeight(const int index) const
- {
- if (degree_ < 2) {
- return grid_.cell_volumes[cell_];
- }
- // Degree 2 case.
- const int dim = grid_.dimensions;
- const double* cc = grid_.cell_centroids + dim*cell_;
- if (dim == 2) {
- const int hface = grid_.cell_facepos[cell_] + index/3;
- const int face = grid_.cell_faces[hface];
- const int* nptr = grid_.face_nodes + grid_.face_nodepos[face];
- const double* nc0 = grid_.node_coordinates + dim*nptr[0];
- const double* nc1 = grid_.node_coordinates + dim*nptr[1];
- return triangleArea2d(nc0, nc1, cc)/3.0;
- }
- assert(dim == 3);
- int tetindex = index / 4;
- const double* nc = grid_.node_coordinates;
- for (int hf = grid_.cell_facepos[cell_]; hf < grid_.cell_facepos[cell_ + 1]; ++hf) {
- const int face = grid_.cell_faces[hf];
- const int nfn = grid_.face_nodepos[face + 1] - grid_.face_nodepos[face];
- if (nfn <= tetindex) {
- // Our tet is not associated with this face.
- tetindex -= nfn;
- continue;
- }
- const double* fc = grid_.face_centroids + dim*face;
- const int* fnodes = grid_.face_nodes + grid_.face_nodepos[face];
- const int node0 = fnodes[tetindex];
- const int node1 = fnodes[(tetindex + 1) % nfn];
- const double* n0c = nc + dim*node0;
- const double* n1c = nc + dim*node1;
- return 0.25*tetVolume(cc, fc, n0c, n1c);
- }
- OPM_THROW(std::runtime_error, "Should never reach this point.");
- }
-
- private:
- const UnstructuredGrid& grid_;
- const int cell_;
- const int degree_;
- };
-
-} // namespace Opm
-
-#endif // OPM_CELLQUADRATURE_HEADER_INCLUDED
diff --git a/opm/core/grid/ColumnExtract.hpp b/opm/core/grid/ColumnExtract.hpp
deleted file mode 100644
index 9bb4b76a..00000000
--- a/opm/core/grid/ColumnExtract.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include
-#include
-#include