diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake
index 87e1ace2..23805bc2 100644
--- a/CMakeLists_files.cmake
+++ b/CMakeLists_files.cmake
@@ -51,7 +51,6 @@ list (APPEND MAIN_SOURCE_FILES
opm/core/pressure/msmfem/partition.c
opm/core/pressure/tpfa/cfs_tpfa_residual.c
opm/core/pressure/tpfa/ifs_tpfa.c
- opm/core/pressure/tpfa/trans_tpfa.c
opm/core/props/BlackoilPropertiesBasic.cpp
opm/core/props/BlackoilPropertiesFromDeck.cpp
opm/core/props/IncompPropertiesBasic.cpp
@@ -74,10 +73,6 @@ list (APPEND MAIN_SOURCE_FILES
opm/core/transport/reorder/TransportSolverTwophaseReorder.cpp
opm/core/transport/reorder/reordersequence.cpp
opm/core/transport/reorder/tarjan.c
- opm/core/utility/VelocityInterpolation.cpp
- opm/core/utility/WachspressCoord.cpp
- opm/core/utility/compressedToCartesian.cpp
- opm/core/utility/extractPvtTableIndex.cpp
opm/core/utility/miscUtilities.cpp
opm/core/utility/miscUtilitiesBlackoil.cpp
opm/core/wells/InjectionSpecification.cpp
@@ -92,19 +87,15 @@ list (APPEND MAIN_SOURCE_FILES
# originally generated with the command:
# find tests -name '*.cpp' -a ! -wholename '*/not-unit/*' -printf '\t%p\n' | sort
list (APPEND TEST_SOURCE_FILES
- tests/test_compressedpropertyaccess.cpp
tests/test_dgbasis.cpp
tests/test_flowdiagnostics.cpp
tests/test_parallelistlinformation.cpp
- tests/test_velocityinterpolation.cpp
tests/test_wells.cpp
- tests/test_wachspresscoord.cpp
tests/test_linearsolver.cpp
tests/test_parallel_linearsolver.cpp
tests/test_satfunc.cpp
tests/test_shadow.cpp
tests/test_equil.cpp
- tests/test_regionmapping.cpp
tests/test_blackoilstate.cpp
tests/test_wellsmanager.cpp
tests/test_wellcontrols.cpp
@@ -124,7 +115,6 @@ list (APPEND TEST_DATA_FILES
tests/capillary.DATA
tests/capillary_overlap.DATA
tests/capillarySwatinit.DATA
- tests/compressed_gridproperty.data
tests/deadfluids.DATA
tests/equil_livegas.DATA
tests/equil_liveoil.DATA
@@ -198,13 +188,10 @@ list (APPEND PUBLIC_HEADER_FILES
opm/core/pressure/mimetic/mimetic.h
opm/core/pressure/msmfem/dfs.h
opm/core/pressure/msmfem/partition.h
- opm/core/pressure/tpfa/TransTpfa.hpp
- opm/core/pressure/tpfa/TransTpfa_impl.hpp
opm/core/pressure/tpfa/cfs_tpfa_residual.h
opm/core/pressure/tpfa/compr_quant_general.h
opm/core/pressure/tpfa/compr_source.h
opm/core/pressure/tpfa/ifs_tpfa.h
- opm/core/pressure/tpfa/trans_tpfa.h
opm/core/props/BlackoilPhases.hpp
opm/core/props/BlackoilPropertiesBasic.hpp
opm/core/props/BlackoilPropertiesFromDeck.hpp
@@ -247,13 +234,7 @@ list (APPEND PUBLIC_HEADER_FILES
opm/core/transport/reorder/TransportSolverTwophaseReorder.hpp
opm/core/transport/reorder/reordersequence.h
opm/core/transport/reorder/tarjan.h
- opm/core/utility/CompressedPropertyAccess.hpp
opm/core/utility/initHydroCarbonState.hpp
- opm/core/utility/RegionMapping.hpp
- opm/core/utility/VelocityInterpolation.hpp
- opm/core/utility/WachspressCoord.hpp
- opm/core/utility/compressedToCartesian.hpp
- opm/core/utility/extractPvtTableIndex.hpp
opm/core/utility/miscUtilities.hpp
opm/core/utility/miscUtilitiesBlackoil.hpp
opm/core/utility/miscUtilities_impl.hpp
diff --git a/opm/core/pressure/tpfa/TransTpfa.hpp b/opm/core/pressure/tpfa/TransTpfa.hpp
deleted file mode 100644
index 9169130f..00000000
--- a/opm/core/pressure/tpfa/TransTpfa.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- Copyright 2010 SINTEF ICT, Applied Mathematics.
- Copyright 2014 Dr. Blatt - HPC-Simulation-Software & Services
-
- 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_TRANSTPFA_HEADER_INCLUDED
-#define OPM_TRANSTPFA_HEADER_INCLUDED
-
-/**
- * \file
- * Routines to assist in the calculation of two-point transmissibilities.
- */
-
-/**
- * Calculate static, one-sided transmissibilities for use in the two-point flux
- * approximation method.
- *
- * The one-sided transmissibilities are defined by the formula
- * \f[
- * t_i = \frac{\vec{n}_f \mathsf{K}_c \vec{c}_c}{\lVert \vec{c}_c \rVert^2}
- * \f]
- * in which @c i is the half-face index corresponding to the cell-face index
- * pair (c,f)
and \f$\vec{c}_{cf} = \Bar{x}_f - \Bar{x}_c\f$ is the
- * centroid difference vector.
- *
- * @param[in] G Grid.
- * @param[in] perm Permeability. One symmetric, positive definite tensor
- * per grid cell.
- * @param[out] htrans One-sided transmissibilities. Array of size at least
- * G->cell_facepos[ G->number_of_cells ]
.
- */
-template
-void
-tpfa_htrans_compute(const Grid *G ,
- const double *perm ,
- double *htrans);
-
-/**
- * Compute two-point transmissibilities from one-sided transmissibilities.
- *
- * The two-point transmissibilities are given by the simple, near-harmonic
- * average (save a factor of two)
- * \f[
- * \mathsf{T}_f = \big(\frac{1}{t_1} + \frac{1}{t_2}\big)^{-1}
- * = \frac{t_1t_2}{t_1 + t_2}
- * \f]
- * in which \f$t_1\f$ and \f$t_2\f$ are the one-sided transmissibilities that
- * connect the neighbouring cells of face @c f.
- *
- * @param[in] G Grid.
- * @param[in] htrans One-sided transmissibilities as defined by function
- * tpfa_htrans_compute().
- * @param[out] trans Interface, two-point transmissibilities. Array of size
- * at least numFaces(G)
.
- */
-template
-void
-tpfa_trans_compute(const Grid *G ,
- const double *htrans,
- double *trans );
-
-/**
- * Calculate effective two-point transmissibilities from one-sided, total
- * mobility weighted, transmissibilities.
- *
- * Specifically, compute the following product
- * \f[
- * \mathsf{T}_f = \big(\frac{1}{\lambda_1t_1} + \frac{1}{\lambda_2t_2}\big)^{-1}
- * = \lambda_1\lambda_2 \frac{t_1t_2}{t_1 + t_2}
- * \f]
- * in which \f$t_1\f$ and \f$t_2\f$ are the one-sided, static transmissibility
- * values connecting the cells of face @c f and \f$\lambda_1\f$ and
- * \f$\lambda_2\f$ denote the total mobilities of the respective cells.
- *
- * @param[in] G Grid.
- * @param[in] totmob Total mobilities. One positive scalar value for each cell.
- * @param[in] htrans One-sided transmissibilities as defined by function
- * tpfa_htrans_compute().
- * @param[out] trans Effective, two-point transmissibilities. Array of size at
- * least numFaces(G)
.
- */
-template
-void
-tpfa_eff_trans_compute(const Grid *G ,
- const double *totmob,
- const double *htrans,
- double *trans );
-
-#include "TransTpfa_impl.hpp"
-#endif /* OPM_TRANS_TPFA_HEADER_INCLUDED */
diff --git a/opm/core/pressure/tpfa/TransTpfa_impl.hpp b/opm/core/pressure/tpfa/TransTpfa_impl.hpp
deleted file mode 100644
index 3a51e3ce..00000000
--- a/opm/core/pressure/tpfa/TransTpfa_impl.hpp
+++ /dev/null
@@ -1,177 +0,0 @@
-#include
-#include
-#include
-
-#include
-
-namespace Dune
-{
-class CpGrid;
-}
-
-namespace Opm
-{
-namespace UgGridHelpers
-{
-int dimensions(const Dune::CpGrid&);
-
-double faceArea(const Dune::CpGrid&, int);
-}
-}
-
-namespace
-{
-#ifdef HAVE_OPM_GRID
-inline const double* multiplyFaceNormalWithArea(const Dune::CpGrid& grid, int face_index, const double* in)
-{
- int d=Opm::UgGridHelpers::dimensions(grid);
- double* out=new double[d];
- double area=Opm::UgGridHelpers::faceArea(grid, face_index);
-
- for(int i=0;i
-void
-tpfa_htrans_compute(const Grid* G, const double *perm, double *htrans)
-/* ---------------------------------------------------------------------- */
-{
- using namespace Opm::UgGridHelpers;
- int d, j;
- double s, dist, denom;
-
- double Kn[3];
- typename CellCentroidTraits::IteratorType cc = beginCellCentroids(*G);
- typename Cell2FacesTraits::Type c2f = cell2Faces(*G);
- typename FaceCellTraits::Type face_cells = faceCells(*G);
-
- const double *n;
- const double *K;
-
- MAT_SIZE_T nrows, ncols, ldA, incx, incy;
- double a1, a2;
-
- d = dimensions(*G);
-
- nrows = ncols = ldA = d;
- incx = incy = 1 ;
- a1 = 1.0; a2 = 0.0 ;
-
- for (int c =0, i = 0; c < numCells(*G); c++) {
- K = perm + (c * d * d);
-
- typedef typename Cell2FacesTraits::Type::row_type FaceRow;
- FaceRow faces = c2f[c];
-
- for(typename FaceRow::const_iterator f=faces.begin(), end=faces.end();
- f!=end; ++f, ++i)
- {
- s = 2.0*(face_cells(*f, 0) == c) - 1.0;
- n = faceNormal(*G, *f);
- const double* nn=multiplyFaceNormalWithArea(*G, *f, n);
- const double* fc = &(faceCentroid(*G, *f)[0]);
- dgemv_("No Transpose", &nrows, &ncols,
- &a1, K, &ldA, nn, &incx, &a2, &Kn[0], &incy);
- maybeFreeFaceNormal(*G, nn);
-
- htrans[i] = denom = 0.0;
- for (j = 0; j < d; j++) {
- dist = fc[j] - getCoordinate(cc, j);
-
- htrans[i] += s * dist * Kn[j];
- denom += dist * dist;
- }
-
- assert (denom > 0);
- htrans[i] /= denom;
- htrans[i] = std::abs(htrans[i]);
- }
- // Move to next cell centroid.
- cc = increment(cc, 1, d);
- }
-}
-
-
-/* ---------------------------------------------------------------------- */
-template
-void
-tpfa_trans_compute(const Grid* G, const double *htrans, double *trans)
-/* ---------------------------------------------------------------------- */
-{
- using namespace Opm::UgGridHelpers;
-
- for (int f = 0; f < numFaces(*G); f++) {
- trans[f] = 0.0;
- }
-
- typename Cell2FacesTraits::Type c2f = cell2Faces(*G);
-
- for (int c = 0, i = 0; c < numCells(*G); c++) {
- typedef typename Cell2FacesTraits::Type::row_type FaceRow;
- FaceRow faces = c2f[c];
-
- for(typename FaceRow::const_iterator f=faces.begin(), end=faces.end();
- f!=end; ++f, ++i)
- {
- trans[*f] += 1.0 / htrans[i];
- }
- }
-
- for (int f = 0; f < numFaces(*G); f++) {
- trans[f] = 1.0 / trans[f];
- }
-}
-
-
-/* ---------------------------------------------------------------------- */
- template
-void
-tpfa_eff_trans_compute(const Grid* G,
- const double *totmob,
- const double *htrans,
- double *trans)
-/* ---------------------------------------------------------------------- */
-{
- using namespace Opm::UgGridHelpers;
-
- for (int f = 0; f < numFaces(*G); f++) {
- trans[f] = 0.0;
- }
-
- typename Cell2FacesTraits::Type c2f = cell2Faces(*G);
-
- for (int c = 0, i = 0; c < numCells(*G); c++) {
- typedef typename Cell2FacesTraits::Type::row_type FaceRow;
- FaceRow faces = c2f[c];
-
- for(typename FaceRow::const_iterator f=faces.begin(), end=faces.end();
- f!=end; ++f, ++i)
- {
- trans[*f] += 1.0 / (totmob[c] * htrans[i]);
- }
- }
-
- for (int f = 0; f < numFaces(*G); f++) {
- trans[f] = 1.0 / trans[f];
- }
-}
diff --git a/opm/core/pressure/tpfa/trans_tpfa.c b/opm/core/pressure/tpfa/trans_tpfa.c
deleted file mode 100644
index 7134be54..00000000
--- a/opm/core/pressure/tpfa/trans_tpfa.c
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "config.h"
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-
-#ifdef __cplusplus
-#include "TransTpfa.hpp"
-#endif
-
-/* ---------------------------------------------------------------------- */
-/* htrans <- sum(C(:,i) .* K(cellNo,:) .* N(:,j), 2) ./ sum(C.*C, 2) */
-/* ---------------------------------------------------------------------- */
-void
-tpfa_htrans_compute(struct UnstructuredGrid *G, const double *perm, double *htrans)
-/* ---------------------------------------------------------------------- */
-{
- #ifdef __cplusplus
- return tpfa_htrans_compute(G, totmob, htrans, trans);
- #endif
-
- int c, d, f, i, j;
- double s, dist, denom;
-
- double Kn[3];
- double *cc, *fc, *n;
- const double *K;
-
- MAT_SIZE_T nrows, ncols, ldA, incx, incy;
- double a1, a2;
-
- d = G->dimensions;
-
- nrows = ncols = ldA = d;
- incx = incy = 1 ;
- a1 = 1.0; a2 = 0.0 ;
-
- for (c = i = 0; c < G->number_of_cells; c++) {
- K = perm + (c * d * d);
- cc = G->cell_centroids + (c * d);
-
- for (; i < G->cell_facepos[c + 1]; i++) {
- f = G->cell_faces[i];
- s = 2.0*(G->face_cells[2*f + 0] == c) - 1.0;
-
- n = G->face_normals + (f * d);
- fc = G->face_centroids + (f * d);
-
- dgemv_("No Transpose", &nrows, &ncols,
- &a1, K, &ldA, n, &incx, &a2, &Kn[0], &incy);
-
- htrans[i] = denom = 0.0;
- for (j = 0; j < d; j++) {
- dist = fc[j] - cc[j];
-
- htrans[i] += s * dist * Kn[j];
- denom += dist * dist;
- }
-
- assert (denom > 0);
- htrans[i] /= denom;
- htrans[i] = fabs(htrans[i]);
- }
- }
-}
-
-
-/* ---------------------------------------------------------------------- */
-void
-tpfa_trans_compute(struct UnstructuredGrid *G, const double *htrans, double *trans)
-/* ---------------------------------------------------------------------- */
-{
- #ifdef __cplusplus
- return tpfa_trans_compute(G, totmob, htrans, trans);
- #endif
-
- int c, i, f;
-
- for (f = 0; f < G->number_of_faces; f++) {
- trans[f] = 0.0;
- }
-
- for (c = i = 0; c < G->number_of_cells; c++) {
- for (; i < G->cell_facepos[c + 1]; i++) {
- f = G->cell_faces[i];
-
- trans[f] += 1.0 / htrans[i];
- }
- }
-
- for (f = 0; f < G->number_of_faces; f++) {
- trans[f] = 1.0 / trans[f];
- }
-}
-
-
-/* ---------------------------------------------------------------------- */
-void
-tpfa_eff_trans_compute(struct UnstructuredGrid *G,
- const double *totmob,
- const double *htrans,
- double *trans)
-/* ---------------------------------------------------------------------- */
-{
- #ifdef __cplusplus
- return tpfa_eff_trans_compute(G, totmob, htrans, trans);
- #endif
-
- int c, i, f;
-
- for (f = 0; f < G->number_of_faces; f++) {
- trans[f] = 0.0;
- }
-
- for (c = i = 0; c < G->number_of_cells; c++) {
- for (; i < G->cell_facepos[c + 1]; i++) {
- f = G->cell_faces[i];
-
- trans[f] += 1.0 / (totmob[c] * htrans[i]);
- }
- }
-
- for (f = 0; f < G->number_of_faces; f++) {
- trans[f] = 1.0 / trans[f];
- }
-}
diff --git a/opm/core/pressure/tpfa/trans_tpfa.h b/opm/core/pressure/tpfa/trans_tpfa.h
deleted file mode 100644
index 5da1490f..00000000
--- a/opm/core/pressure/tpfa/trans_tpfa.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- Copyright 2010 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_TRANS_TPFA_HEADER_INCLUDED
-#define OPM_TRANS_TPFA_HEADER_INCLUDED
-
-/**
- * \file
- * Routines to assist in the calculation of two-point transmissibilities.
- */
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Calculate static, one-sided transmissibilities for use in the two-point flux
- * approximation method.
- *
- * The one-sided transmissibilities are defined by the formula
- * \f[
- * t_i = \frac{\vec{n}_f \mathsf{K}_c \vec{c}_c}{\lVert \vec{c}_c \rVert^2}
- * \f]
- * in which @c i is the half-face index corresponding to the cell-face index
- * pair (c,f)
and \f$\vec{c}_{cf} = \Bar{x}_f - \Bar{x}_c\f$ is the
- * centroid difference vector.
- *
- * @param[in] G Grid.
- * @param[in] perm Permeability. One symmetric, positive definite tensor
- * per grid cell.
- * @param[out] htrans One-sided transmissibilities. Array of size at least
- * G->cell_facepos[ G->number_of_cells ]
.
- */
-void
-tpfa_htrans_compute(struct UnstructuredGrid *G ,
- const double *perm ,
- double *htrans);
-
-/**
- * Compute two-point transmissibilities from one-sided transmissibilities.
- *
- * The two-point transmissibilities are given by the simple, near-harmonic
- * average (save a factor of two)
- * \f[
- * \mathsf{T}_f = \big(\frac{1}{t_1} + \frac{1}{t_2}\big)^{-1}
- * = \frac{t_1t_2}{t_1 + t_2}
- * \f]
- * in which \f$t_1\f$ and \f$t_2\f$ are the one-sided transmissibilities that
- * connect the neighbouring cells of face @c f.
- *
- * @param[in] G Grid.
- * @param[in] htrans One-sided transmissibilities as defined by function
- * tpfa_htrans_compute().
- * @param[out] trans Interface, two-point transmissibilities. Array of size
- * at least G->number_of_faces
.
- */
-void
-tpfa_trans_compute(struct UnstructuredGrid *G ,
- const double *htrans,
- double *trans );
-
-/**
- * Calculate effective two-point transmissibilities from one-sided, total
- * mobility weighted, transmissibilities.
- *
- * Specifically, compute the following product
- * \f[
- * \mathsf{T}_f = \big(\frac{1}{\lambda_1t_1} + \frac{1}{\lambda_2t_2}\big)^{-1}
- * = \lambda_1\lambda_2 \frac{t_1t_2}{t_1 + t_2}
- * \f]
- * in which \f$t_1\f$ and \f$t_2\f$ are the one-sided, static transmissibility
- * values connecting the cells of face @c f and \f$\lambda_1\f$ and
- * \f$\lambda_2\f$ denote the total mobilities of the respective cells.
- *
- * @param[in] G Grid.
- * @param[in] totmob Total mobilities. One positive scalar value for each cell.
- * @param[in] htrans One-sided transmissibilities as defined by function
- * tpfa_htrans_compute().
- * @param[out] trans Effective, two-point transmissibilities. Array of size at
- * least G->number_of_faces
.
- */
-void
-tpfa_eff_trans_compute(struct UnstructuredGrid *G ,
- const double *totmob,
- const double *htrans,
- double *trans );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* OPM_TRANS_TPFA_HEADER_INCLUDED */
diff --git a/opm/core/utility/CompressedPropertyAccess.hpp b/opm/core/utility/CompressedPropertyAccess.hpp
deleted file mode 100644
index 562557b8..00000000
--- a/opm/core/utility/CompressedPropertyAccess.hpp
+++ /dev/null
@@ -1,504 +0,0 @@
-/*
- Copyright 2014 SINTEF ICT, Applied Mathematics.
- Copyright 2014 Statoil ASA.
-
- 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_COMPRESSEDPROPERTYACCESS_HPP_HEADER
-#define OPM_COMPRESSEDPROPERTYACCESS_HPP_HEADER
-
-/**
- * \file
- *
- * Facility for accessing active subset of data arrays defined for all
- * global cells. The main component is class template \code
- * GridPropertyAccess::Compressed<> \endcode which encapsulates and
- * provides read-only access to a data array and while translating
- * active cell indices to "global" cell indices. The data array is a
- * policy parameter for which preexisting implementations "constant"
- * and "extract from ECLIPSE input" are defined in this module. Data
- * values in the array must be defined for all global cells.
- */
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-namespace Opm {
- /**
- * Nested name-space that serves no other purpose than to
- * contextualise \c Compressed class name.
- */
- namespace GridPropertyAccess {
- /**
- * Glue code for interacting with ECLIPSE input decks as
- * defined by module opm-parser.
- */
- namespace Details {
- /**
- * Implementation of property query and retrieval from an
- * ECLIPSE property container.
- */
- namespace EclPropImpl {
- /**
- * Property existence predicate.
- *
- * Supported for types \c int and \c double.
- *
- * \tparam T Property element type.
- */
- template
- struct HasProperty;
-
- /**
- * Property value retrieval.
- *
- * Supported for types \c int and \c double.
- *
- * \tparam T Property element type.
- */
- template
- struct GetProperty;
-
- /**
- * Specialization of property existence predicate for
- * type \c int.
- */
- template <>
- struct HasProperty {
- /**
- * Existence predicate implementation.
- *
- * \tparam PropertyContainer Pointer type
- * representing collection of (global) grid
- * properties. Must implement method \c
- * hasDeckIntGridProperty.
- *
- * \param[in] ecl Property container.
- *
- * \param[in] kw ECLIPSE property keyword.
- *
- * \return Whether or not property \c kw exists in
- * the container \c ecl.
- */
- template
- static bool
- p(PropertyContainer& ecl,
- const std::string& kw);
- };
-
- template
- bool
- HasProperty::p(PropertyContainer& ecl,
- const std::string& kw)
- {
- return ecl.get3DProperties().hasDeckIntGridProperty(kw);
- }
-
- /**
- * Specialization of property existence predicate for
- * type \c double.
- */
- template <>
- struct HasProperty {
- /**
- * Existence predicate implementation.
- *
- * \tparam PropertyContainer Pointer type
- * representing collection of (global) grid
- * properties. Must implement method \c
- * hasDeckDoubleGridProperty.
- *
- * \param[in] ecl Property container.
- *
- * \param[in] kw ECLIPSE property keyword.
- *
- * \return Whether or not property \c kw exists in
- * the container \c ecl.
- */
- template
- static bool
- p(PropertyContainer& ecl,
- const std::string& kw);
- };
-
- template
- bool
- HasProperty::p(PropertyContainer& ecl,
- const std::string& kw)
- {
- return ecl.get3DProperties().hasDeckDoubleGridProperty(kw);
- }
-
- /**
- * Specialization of property value retrieval for type
- * \c int.
- */
- template <>
- struct GetProperty {
- /**
- * Property value retrieval implementation.
- *
- * \tparam PropertyContainer Pointer type
- * representing collection of (global) grid
- * properties. Must implement method \c
- * getIntGridProperty.
- *
- * \param[in] ecl Property container.
- *
- * \param[in] kw ECLIPSE property keyword.
- *
- * \return Data values for property \c kw.
- */
- template
- static const GridProperty*
- value(PropertyContainer& ecl,
- const std::string& kw);
- };
-
- template
- const GridProperty*
- GetProperty::value(PropertyContainer& ecl,
- const std::string& kw)
- {
- assert (HasProperty::p(ecl, kw));
-
- return &ecl.get3DProperties().getIntGridProperty(kw);
- }
-
- /**
- * Specialization of property value retrieval for type
- * \c double.
- */
- template <>
- struct GetProperty {
- /**
- * Property value retrieval implementation.
- *
- * \tparam PropertyContainer Pointer type
- * representing collection of (global) grid
- * properties. Must implement method \c
- * getDoubleGridProperty.
- *
- * \param[in] ecl Property container.
- *
- * \param[in] kw ECLIPSE property keyword.
- *
- * \return Data values for property \c kw.
- */
- template
- static const GridProperty*
- value(PropertyContainer& ecl,
- const std::string& kw);
- };
-
- template
- const GridProperty*
- GetProperty::value(PropertyContainer& ecl,
- const std::string& kw)
- {
- assert (HasProperty::p(ecl, kw));
-
- return &ecl.get3DProperties().getDoubleGridProperty(kw);
- }
- } // namespace EclPropImpl
-
- /**
- * Conditional retrieval of property values from an
- * ECLIPSE input deck.
- *
- * Supported for types \c int and \c double.
- *
- * \tparam T Property element type.
- */
- template
- struct EclipsePropertyArray {
- /**
- * Retrieve property values if present in container.
- *
- * \tparam PropertyContainer Pointer type representing
- * collection of (global) grid properties.
- *
- * \param[in] ecl Property container.
- *
- * \param[in] kw ECLIPSE property keyword.
- *
- * \return Data values for property \c kw if present,
- * an empty \code shared_ptr<> \endcode if not.
- */
- template
- static const GridProperty*
- value(PropertyContainer& ecl,
- const std::string& kw);
- };
-
- template
- template
- const GridProperty*
- EclipsePropertyArray::value(PropertyContainer& ecl,
- const std::string& kw)
- {
- if (! EclPropImpl::HasProperty::p(ecl, kw)) {
- return nullptr;
- }
- return EclPropImpl::GetProperty::value(ecl, kw);
- }
- } // namespace Details
-
- /**
- * Predefined data array policies for use with class template
- * \code Compressed<> \endcode.
- */
- namespace ArrayPolicy {
- /**
- * Data array policy that extracts the array values from
- * an ECLIPSE input deck or returns a user specified
- * default value if the data vector is not present in a
- * particular input deck.
- *
- * Provides read-only access to the underlying data.
- *
- * \tparam T Array element type. Must be \c int or \c
- * double.
- */
- template
- class ExtractFromDeck {
- public:
- /**
- * Constructor.
- *
- * \tparam PropertyContainer Pointer type representing
- * collection of (global) grid properties. Typically
- * \c EclipseStatePtr or \c EclipseStateConstPtr.
- * Must implement methods \c hasDeckIntGridProperty and \c
- * getIntGridProperty if \c T is \c int, or \c
- * hasDeckDoubleGridProperty and \c getDoubleGridProperty
- * if \c T is \c double.
- *
- * \param[in] ecl Property container.
- *
- * \param[in] kw ECLIPSE keyword from which to extract
- * data array.
- *
- * \param[in] dlft Default/fall-back data array value
- * if \c kw is not defined.
- */
- template
- ExtractFromDeck(PropertyContainer& ecl,
- const std::string& kw,
- const T dflt)
- : x_ (Details::EclipsePropertyArray::value(ecl, kw))
- , dflt_(dflt)
- {}
-
- /**
- * Publicly accessible data array element type.
- */
- typedef T value_type;
-
- /**
- * Index type for accessing data array.
- */
- typedef std::size_t size_type;
-
- /**
- * Read-only data array access.
- *
- * \param[in] i Array index. Assumed to identify a
- * global (uncompressed) cell.
- *
- * \return Data array element at global index \c i if
- * present in input or user specified fall-back value
- * if not.
- */
- value_type
- operator[](const size_type i) const
- {
- if (x_) {
- return x_->iget(i);
- }
- else {
- return dflt_;
- }
- }
-
- private:
- /**
- * Grid property handle.
- *
- * Null if data not defined.
- */
- const GridProperty* x_ = nullptr;
-
- /**
- * Fall-back data element value if data not defined.
- */
- T dflt_;
- };
-
- /**
- * Data array policy that returns a single, constant user
- * specified value for every global cell.
- *
- * Provides read-only access to the underlying data.
- *
- * \tparam T Array element type.
- */
- template
- class Constant {
- public:
- /**
- * Constructor
- *
- * \param[in] c Constant property value used for all
- * global cells.
- */
- Constant(const T c)
- : c_(c)
- {}
-
- /**
- * Publicly accessible data array element type.
- */
- typedef T value_type;
-
- /**
- * Index type for accessing data array.
- */
- typedef std::size_t size_type;
-
- /**
- * Read-only data array access.
- *
- * \param[in] i Array index. Assumed to identify a
- * global (uncompressed) cell. Unused.
- *
- * \return User specified constant value for every
- * (global) cell.
- */
- value_type
- operator[](const size_type i) const
- {
- static_cast(i); // Suppress "unused parameter"
-
- return c_;
- }
-
- private:
- /**
- * Constant, user specified property value.
- */
- T c_;
- };
- } // namespace ArrayPolicy
-
- /**
- * Collection of tags to help enforce semantic type checks
- * when using class \code Compressed<> \endcode.
- */
- namespace Tag {
- /**
- * Default tag that implies no restriction.
- */
- struct Any {};
-
- /**
- * Tag that restricts usage to NTG (net-to-gross)
- * contexts.
- */
- struct NTG : public Any {};
- } // namespace Tag
-
- /**
- * Provide compressed (active cell) read-only access to
- * globally defined data array.
- *
- * \tparam DataArray Type representing an array of data
- * values, one value for each global (uncompressed) cell in a
- * model. Must implement value semantics. Typically one of
- * the array policies of name space \c ArrayPolicy. Must
- * provide public type \c value_type to infer the data element
- * type and \code operator[](i) \endcode to access the
- * property value of the \c i'th global cell.
- *
- * \tparam PropertyTag Type tag that can be used to restrict
- * applicability of the resulting \c Compressed array, e.g.,
- * to enforce net-to-gross ratios only. Default: No
- * restriction.
- */
- template
- class Compressed {
- public:
- /**
- * Constructor
- *
- * \param[in] x Preconfigured global property value array.
- * The \c Compressed array creates a private copy of this
- * object.
- *
- * \param[in] gc Compressed-to-global cell map. Typically
- * the \c global_cell field of an \c UnstructuredGrid or
- * something very similar. If null, interpreted as
- * identity mapping, i.e., as if all cells are active.
- */
- Compressed(const DataArray& x,
- const int* gc)
- : x_ (x)
- , gc_(gc)
- {}
-
- /**
- * Property value type.
- */
- typedef typename DataArray::value_type value_type;
-
- /**
- * Read-only data array access.
- *
- * \param[in] c Active cell index.
- *
- * \return Property value in active cell \c c.
- */
- value_type
- operator[](const int c) const
- {
- return x_[ (gc_ == 0) ? c : gc_[c] ];
- }
-
- private:
- /**
- * Global property value array.
- *
- * Value semantics to support putting \c Compressed arrays
- * into standard containers.
- */
- DataArray x_;
-
- /**
- * Compressed-to-global cell index map. \c Null if all
- * cells active.
- */
- const int* gc_;
- };
- } // namespace GridPropertyAccess
-} // namespace Opm
-
-#endif /* OPM_COMPRESSEDPROPERTYACCESS_HPP_HEADER */
diff --git a/opm/core/utility/RegionMapping.hpp b/opm/core/utility/RegionMapping.hpp
deleted file mode 100644
index 63d412b0..00000000
--- a/opm/core/utility/RegionMapping.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- Copyright 2014 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_REGIONMAPPING_HEADER_INCLUDED
-#define OPM_REGIONMAPPING_HEADER_INCLUDED
-
-#include
-
-#include
-#include
-
-namespace Opm
-{
-
- /**
- * Forward and reverse mappings between cells and
- * regions/partitions (e.g., the ECLIPSE-style 'SATNUM',
- * 'PVTNUM', or 'EQUILNUM' arrays).
- *
- * \tparam Region Type of a forward region mapping. Expected
- * to provide indexed access through
- * operator[]() as well as inner types
- * 'value_type', 'size_type', and
- * 'const_iterator'.
- */
- template < class Region = std::vector >
- class RegionMapping {
- public:
- /**
- * Constructor.
- *
- * \param[in] reg Forward region mapping, restricted to
- * active cells only.
- */
- explicit
- RegionMapping(const Region& reg)
- : reg_(reg)
- {
- rev_.init(reg_);
- }
-
- /**
- * Type of forward (cell-to-region) mapping result.
- * Expected to be an integer.
- */
- typedef typename Region::value_type RegionId;
-
- /**
- * Type of reverse (region-to-cell) mapping (element)
- * result.
- */
- typedef typename Region::size_type CellId;
-
- /**
- * Type of reverse region-to-cell range bounds and
- * iterators.
- */
- typedef typename std::vector::const_iterator CellIter;
-
- typedef boost::iterator_range Range;
-
- /**
- * Compute region number of given active cell.
- *
- * \param[in] c Active cell
- * \return Region to which @c c belongs.
- */
- RegionId
- region(const CellId c) const { return reg_[c]; }
-
- const std::vector&
- activeRegions() const
- {
- return rev_.active;
- }
-
- /**
- * Extract active cells in particular region.
- *
- * \param[in] r Region number
- *
- * \return Range of active cells in region @c r. Empty if @c r is
- * not an active region.
- */
- Range
- cells(const RegionId r) const {
- const auto id = rev_.binid.find(r);
-
- if (id == rev_.binid.end()) {
- // Region 'r' not an active region. Return empty.
- return Range(rev_.c.end(), rev_.c.end());
- }
-
- const auto i = id->second;
-
- return Range(rev_.c.begin() + rev_.p[i + 0],
- rev_.c.begin() + rev_.p[i + 1]);
- }
-
- private:
- /**
- * Copy of forward region mapping (cell-to-region).
- */
- Region reg_;
-
- /**
- * Reverse mapping (region-to-cell).
- */
- struct {
- typedef typename std::vector::size_type Pos;
-
- std::unordered_map binid;
- std::vector active;
-
- std::vector p; /**< Region start pointers */
- std::vector c; /**< Region cells */
-
- /**
- * Compute reverse mapping. Standard linear insertion
- * sort algorithm.
- */
- void
- init(const Region& reg)
- {
- binid.clear();
- for (const auto& r : reg) {
- ++binid[r];
- }
-
- p .clear(); p.emplace_back(0);
- active.clear();
- {
- Pos n = 0;
- for (auto& id : binid) {
- active.push_back(id.first);
- p .push_back(id.second);
-
- id.second = n++;
- }
- }
-
- for (decltype(p.size()) i = 1, sz = p.size(); i < sz; ++i) {
- p[0] += p[i];
- p[i] = p[0] - p[i];
- }
-
- assert (p[0] == static_cast(reg.size()));
-
- c.resize(reg.size());
- {
- CellId i = 0;
- for (const auto& r : reg) {
- auto& pos = p[ binid[r] + 1 ];
- c[ pos++ ] = i++;
- }
- }
-
- p[0] = 0;
- }
- } rev_; /**< Reverse mapping instance */
- };
-
-} // namespace Opm
-
-#endif // OPM_REGIONMAPPING_HEADER_INCLUDED
diff --git a/opm/core/utility/VelocityInterpolation.cpp b/opm/core/utility/VelocityInterpolation.cpp
deleted file mode 100644
index 48296584..00000000
--- a/opm/core/utility/VelocityInterpolation.cpp
+++ /dev/null
@@ -1,185 +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 .
-*/
-
-#include "config.h"
-#include
-#include
-#include
-
-#include
-
-namespace Opm
-{
-
- // -------- Methods of class VelocityInterpolationInterface --------
-
-
- VelocityInterpolationInterface::~VelocityInterpolationInterface()
- {
- }
-
-
-
- // -------- Methods of class VelocityInterpolationConstant --------
-
- /// Constructor.
- /// \param[in] grid A grid.
- VelocityInterpolationConstant::VelocityInterpolationConstant(const UnstructuredGrid& grid)
- : grid_(grid)
- {
- }
-
- /// Set up fluxes for interpolation.
- /// \param[in] flux One signed flux per face in the grid.
- void VelocityInterpolationConstant::setupFluxes(const double* flux)
- {
- flux_ = flux;
- }
-
- /// Interpolate velocity.
- /// \param[in] cell Cell in which to interpolate.
- /// \param[in] x Coordinates of point at which to interpolate.
- /// Must be array of length grid.dimensions.
- /// \param[out] v Interpolated velocity.
- /// Must be array of length grid.dimensions.
- void VelocityInterpolationConstant::interpolate(const int cell,
- const double* /*x*/,
- double* v) const
- {
- const int dim = grid_.dimensions;
- std::fill(v, v + dim, 0.0);
- const double* cc = grid_.cell_centroids + cell*dim;
- for (int hface = grid_.cell_facepos[cell]; hface < grid_.cell_facepos[cell+1]; ++hface) {
- const int face = grid_.cell_faces[hface];
- const double* fc = grid_.face_centroids + face*dim;
- double face_flux = 0.0;
- if (cell == grid_.face_cells[2*face]) {
- face_flux = flux_[face];
- } else {
- assert(cell == grid_.face_cells[2*face + 1]);
- face_flux = -flux_[face];
- }
- for (int dd = 0; dd < dim; ++dd) {
- v[dd] += face_flux * (fc[dd] - cc[dd]) / grid_.cell_volumes[cell];
- }
- }
- }
-
-
- // -------- Methods of class VelocityInterpolationECVI --------
-
-
-
- /// Constructor.
- /// \param[in] grid A grid.
- VelocityInterpolationECVI::VelocityInterpolationECVI(const UnstructuredGrid& grid)
- : bcmethod_(grid), grid_(grid)
- {
- }
-
- /// Set up fluxes for interpolation.
- /// Computes the corner velocities.
- /// \param[in] flux One signed flux per face in the grid.
- void VelocityInterpolationECVI::setupFluxes(const double* flux)
- {
- // We must now update the velocity member of the CornerInfo
- // for each corner.
- const int dim = grid_.dimensions;
- std::vector N(dim*dim); // Normals matrix. Fortran ordering!
- std::vector orig_N(dim*dim); // Normals matrix. Fortran ordering!
- std::vector f(dim); // Flux vector.
- std::vector orig_f(dim); // Flux vector.
- std::vector piv(dim); // For LAPACK solve
- const SparseTable& all_ci = bcmethod_.cornerInfo();
- const std::vector& adj_faces = bcmethod_.adjacentFaces();
- corner_velocity_.resize(dim*all_ci.dataSize());
- const int num_cells = grid_.number_of_cells;
- for (int cell = 0; cell < num_cells; ++cell) {
- const int num_cell_corners = bcmethod_.numCorners(cell);
- for (int cell_corner = 0; cell_corner < num_cell_corners; ++cell_corner) {
- const int cid = all_ci[cell][cell_corner].corner_id;
- for (int adj_ix = 0; adj_ix < dim; ++adj_ix) {
- const int face = adj_faces[dim*cid + adj_ix];
- const double* fn = grid_.face_normals + dim*face;
- for (int dd = 0; dd < dim; ++dd) {
- N[adj_ix + dd*dim] = fn[dd]; // Row adj_ix, column dd
- }
- f[adj_ix] = flux[face];
- }
- // Now we have built N and f. Solve Nv = f.
- // Note that the face orientations do not matter,
- // as changing an orientation would negate both a
- // row in N and the corresponding element of f.
- // Solving linear equation with LAPACK.
- MAT_SIZE_T n = dim;
- MAT_SIZE_T nrhs = 1;
- MAT_SIZE_T lda = n;
- MAT_SIZE_T ldb = n;
- MAT_SIZE_T info = 0;
- orig_N = N;
- orig_f = f;
- dgesv_(&n, &nrhs, &N[0], &lda, &piv[0], &f[0], &ldb, &info);
- if (info != 0) {
- // Print the local matrix and rhs.
- std::cerr << "Failed solving single-cell system Nv = f in cell " << cell
- << " with N = \n";
- for (int row = 0; row < n; ++row) {
- for (int col = 0; col < n; ++col) {
- std::cerr << " " << orig_N[row + n*col];
- }
- std::cerr << '\n';
- }
- std::cerr << "and f = \n";
- for (int row = 0; row < n; ++row) {
- std::cerr << " " << orig_f[row] << '\n';
- }
- OPM_THROW(std::runtime_error, "Lapack error: " << info << " encountered in cell " << cell);
- }
- // The solution ends up in f, so we must copy it.
- std::copy(f.begin(), f.end(), corner_velocity_.begin() + dim*cid);
- }
- }
- }
-
- /// Interpolate velocity.
- /// \param[in] cell Cell in which to interpolate.
- /// \param[in] x Coordinates of point at which to interpolate.
- /// Must be array of length grid.dimensions.
- /// \param[out] v Interpolated velocity.
- /// Must be array of length grid.dimensions.
- void VelocityInterpolationECVI::interpolate(const int cell,
- const double* x,
- double* v) const
- {
- const int n = bcmethod_.numCorners(cell);
- const int dim = grid_.dimensions;
- bary_coord_.resize(n);
- bcmethod_.cartToBary(cell, x, &bary_coord_[0]);
- std::fill(v, v + dim, 0.0);
- const SparseTable& all_ci = bcmethod_.cornerInfo();
- for (int i = 0; i < n; ++i) {
- const int cid = all_ci[cell][i].corner_id;
- for (int dd = 0; dd < dim; ++dd) {
- v[dd] += corner_velocity_[dim*cid + dd] * bary_coord_[i];
- }
- }
- }
-
-
-} // namespace Opm
diff --git a/opm/core/utility/VelocityInterpolation.hpp b/opm/core/utility/VelocityInterpolation.hpp
deleted file mode 100644
index 3b7a5bc4..00000000
--- a/opm/core/utility/VelocityInterpolation.hpp
+++ /dev/null
@@ -1,122 +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_VELOCITYINTERPOLATION_HEADER_INCLUDED
-#define OPM_VELOCITYINTERPOLATION_HEADER_INCLUDED
-
-#include
-#include
-
-struct UnstructuredGrid;
-
-namespace Opm
-{
-
- /// Abstract interface for velocity interpolation method classes.
- class VelocityInterpolationInterface
- {
- public:
- virtual ~VelocityInterpolationInterface();
-
- /// Set up fluxes for interpolation.
- /// \param[in] flux One signed flux per face in the grid.
- virtual void setupFluxes(const double* flux) = 0;
-
- /// Interpolate velocity.
- /// \param[in] cell Cell in which to interpolate.
- /// \param[in] x Coordinates of point at which to interpolate.
- /// Must be array of length grid.dimensions.
- /// \param[out] v Interpolated velocity.
- /// Must be array of length grid.dimensions.
- virtual void interpolate(const int cell,
- const double* x,
- double* v) const = 0;
- };
-
-
-
-
- /// A constant velocity approximation. Will not actually interpolate
- /// unless the fluxes are consistent with a constant velocity.
- class VelocityInterpolationConstant : public VelocityInterpolationInterface
- {
- public:
- /// Constructor.
- /// \param[in] grid A grid.
- explicit VelocityInterpolationConstant(const UnstructuredGrid& grid);
-
- /// Set up fluxes for interpolation.
- /// \param[in] flux One signed flux per face in the grid.
- virtual void setupFluxes(const double* flux);
-
- /// Interpolate velocity.
- /// \param[in] cell Cell in which to interpolate.
- /// \param[in] x Coordinates of point at which to interpolate.
- /// Must be array of length grid.dimensions.
- /// \param[out] v Interpolated velocity.
- /// Must be array of length grid.dimensions.
- virtual void interpolate(const int cell,
- const double* x,
- double* v) const;
- private:
- const UnstructuredGrid& grid_;
- const double* flux_;
- };
-
-
-
-
-
- /// Interpolate velocity using the extended CVI scheme:
- /// compute a corner velocity for each cell corner that
- /// is consistent with fluxes of adjacent faces, then
- /// interpolate with generalized barycentric coordinates.
- class VelocityInterpolationECVI : public VelocityInterpolationInterface
- {
- public:
- /// Constructor.
- /// \param[in] grid A grid.
- explicit VelocityInterpolationECVI(const UnstructuredGrid& grid);
-
- /// Set up fluxes for interpolation.
- /// \param[in] flux One signed flux per face in the grid.
- virtual void setupFluxes(const double* flux);
-
- /// Interpolate velocity.
- /// \param[in] cell Cell in which to interpolate.
- /// \param[in] x Coordinates of point at which to interpolate.
- /// Must be array of length grid.dimensions.
- /// \param[out] v Interpolated velocity.
- /// Must be array of length grid.dimensions.
- virtual void interpolate(const int cell,
- const double* x,
- double* v) const;
- private:
- WachspressCoord bcmethod_;
- const UnstructuredGrid& grid_;
- mutable std::vector bary_coord_;
- std::vector corner_velocity_; // size = dim * #corners
- };
-
-
-
-
-} // namespace Opm
-
-#endif // OPM_VELOCITYINTERPOLATION_HEADER_INCLUDED
diff --git a/opm/core/utility/WachspressCoord.cpp b/opm/core/utility/WachspressCoord.cpp
deleted file mode 100644
index 399bc9bf..00000000
--- a/opm/core/utility/WachspressCoord.cpp
+++ /dev/null
@@ -1,238 +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 .
-*/
-
-#include "config.h"
-#include
-#include
-#include
-#include