diff --git a/dumux/common/boundarytypes.hh b/dumux/common/boundarytypes.hh index 3ac652e3a333edc55a12b9258e0bbdb4cb7c8d6b..6a3b9ce41653aa55625a76bec96df460f3a12da5 100644 --- a/dumux/common/boundarytypes.hh +++ b/dumux/common/boundarytypes.hh @@ -24,6 +24,9 @@ #ifndef DUMUX_BOUNDARY_TYPES_HH #define DUMUX_BOUNDARY_TYPES_HH +#include <algorithm> +#include <array> + namespace Dumux { diff --git a/dumux/common/entitymap.hh b/dumux/common/entitymap.hh index 365655aea24393d75b07636cfdcac352ffda95f8..ef777325b3a66e7e5ae03bc9c32d897abf5908e6 100644 --- a/dumux/common/entitymap.hh +++ b/dumux/common/entitymap.hh @@ -24,6 +24,10 @@ #ifndef DUMUX_ENTITY_INDEX_MAP_HH #define DUMUX_ENTITY_INDEX_MAP_HH +#include <vector> +#include <utility> +#include <dune/geometry/dimension.hh> + namespace Dumux { /*! diff --git a/dumux/common/geometry/boundingboxtree.hh b/dumux/common/geometry/boundingboxtree.hh index 5c5a0f6647b270cbfc1a746033ab24d35a817230..1b02e16d6b861beb5f222de2aae3d54c61812a67 100644 --- a/dumux/common/geometry/boundingboxtree.hh +++ b/dumux/common/geometry/boundingboxtree.hh @@ -32,8 +32,10 @@ #include <vector> #include <array> #include <algorithm> +#include <memory> #include <numeric> #include <type_traits> +#include <iostream> #include <dune/common/promotiontraits.hh> #include <dune/common/timer.hh> diff --git a/dumux/common/intersectionmapper.hh b/dumux/common/intersectionmapper.hh index 558b3101174362ef503e53d3c979793d1e735c23..73e87d3140800e3b94dd3d8287e5b2a61ac34bcc 100644 --- a/dumux/common/intersectionmapper.hh +++ b/dumux/common/intersectionmapper.hh @@ -30,7 +30,7 @@ #include <dune/grid/common/rangegenerators.hh> #include <dune/common/version.hh> - +#include <dumux/common/properties.hh> namespace Dumux { @@ -39,6 +39,7 @@ namespace Dumux * \ingroup Common * \brief defines a standard intersection mapper for mapping of global DOFs assigned * to faces. It only works for conforming grids, without hanging nodes. + * \todo This shouldn't depend on type tag but gridview only */ template<class TypeTag> class ConformingGridIntersectionMapper @@ -84,6 +85,7 @@ private: * \ingroup Common * \brief defines an intersection mapper for mapping of global DOFs assigned * to faces which also works for non-conforming grids and corner-point grids. + * \todo This shouldn't depend on type tag but gridview only */ template<class TypeTag> class NonConformingGridIntersectionMapper diff --git a/dumux/common/intrange.hh b/dumux/common/intrange.hh index ef9ad36f16a2d001c68d9e4d6c4117c1f166bc55..f9426a4c7cff9a8d5970a2a46340ef7a521470ad 100644 --- a/dumux/common/intrange.hh +++ b/dumux/common/intrange.hh @@ -24,6 +24,8 @@ #ifndef DUMUX_INTEGER_RANGE_HH #define DUMUX_INTEGER_RANGE_HH +#include <cassert> + namespace Dumux { /*! diff --git a/dumux/common/properties.hh b/dumux/common/properties.hh index 19d1a093dbac30b2be49ee4926ecc0fe91be7084..2e6b2c39e6112b9664974f16c537b3eefac39286 100644 --- a/dumux/common/properties.hh +++ b/dumux/common/properties.hh @@ -186,7 +186,9 @@ NEW_PROP_TAG(NumEqCellCenter); //!< The number of equations NEW_PROP_TAG(NumEqFace); //!< The number of equations for face dofs NEW_PROP_TAG(CellCenterSolutionVector); //!< The solution vector type for cell-centered dofs NEW_PROP_TAG(FaceSolutionVector); //!< The solution vector type for face dofs +NEW_PROP_TAG(StaggeredFaceSolution); //!< The solution on the face NEW_PROP_TAG(GlobalFaceVars); //!< Class containing face-related data +NEW_PROP_TAG(ElementFaceVariables); //!< Face data per element NEW_PROP_TAG(CellCenterPrimaryVariables); //!< The primary variables container type for cell-centered dofs NEW_PROP_TAG(FacePrimaryVariables); //!< The primary variables container type for face dofs NEW_PROP_TAG(IntersectionMapper); //!< Specifies the intersection mapper @@ -196,6 +198,7 @@ NEW_PROP_TAG(StaggeredPrimaryVariables); //!< The hybrid primary varia NEW_PROP_TAG(BaseEpsilon); //!< A base epsilon for numerical differentiation, can contain multiple values NEW_PROP_TAG(FaceVariables); //!< Class containing local face-related data NEW_PROP_TAG(BoundaryValues); //!< Class containing local boundary data +NEW_PROP_TAG(EnableGlobalFaceVariablesCache); //!< If the face variables are cached on the gridview ///////////////////////////////////////////////////////////// // Properties used by the mpnc model diff --git a/dumux/common/staggeredfvproblem.hh b/dumux/common/staggeredfvproblem.hh index 89d1e90fcd3348b395008a619f4ae38ba0d97382..04c569cbca82184163549d9cb10bdad2d2af230b 100644 --- a/dumux/common/staggeredfvproblem.hh +++ b/dumux/common/staggeredfvproblem.hh @@ -24,11 +24,16 @@ #ifndef DUMUX_STAGGERD_FV_PROBLEM_HH #define DUMUX_STAGGERD_FV_PROBLEM_HH +#include <dune/common/version.hh> +#if DUNE_VERSION_NEWER(DUNE_COMMON,2,6) +#include <dune/common/rangeutilities.hh> +#endif + #include <dumux/common/properties.hh> #include <dumux/common/fvproblem.hh> -namespace Dumux -{ +namespace Dumux { + /*! * \ingroup Problems * \ingroup Common diff --git a/dumux/common/timesteppingscheme.hh b/dumux/common/timesteppingscheme.hh deleted file mode 100644 index e6e033e4e37e9aff1fdbc93392414eedbf8d98d4..0000000000000000000000000000000000000000 --- a/dumux/common/timesteppingscheme.hh +++ /dev/null @@ -1,83 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// vi: set et ts=4 sw=4 sts=4: -/***************************************************************************** - * See the file COPYING for full copying permissions. * - * * - * This program 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 2 of the License, or * - * (at your option) any later version. * - * * - * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. * - *****************************************************************************/ -/*! - * \file - * \ingroup Common - * \brief Manages the handling of time dependent problems - */ -#ifndef DUMUX_TIME_STEPPING_SCHEME_HH -#define DUMUX_TIME_STEPPING_SCHEME_HH - -#include "parameters.hh" - -namespace Dumux -{ - -/*! - * \ingroup Common - * \brief The abstract time stepping parameter interface - */ -template <class Scalar> -class TimeSteppingParams -{ - -public: - //! Pure abstract base classes have virtual destructor - virtual ~TimeSteppingScheme () {} - - //! Returns if the time stepping scheme is implicit - virtual constexpr bool implicit() const = 0; - - //! The number of stages in the time stepping scheme - virtual std::size_t numStages() const = 0; - - //! The a parameters of the time stepping scheme - virtual Scalar a(int stage, int i) const = 0; - - //! The b parameters of the time stepping scheme - virtual Scalar b(int stage, int i) const = 0; - - //! The d parameters of the time stepping scheme - virtual Scalar d(int i) const = 0; - - //! The name of the time stepping scheme - virtual std::string name() const = 0; -}; - -/*! - * \ingroup Common - * \brief The time stepping scheme class - */ -template <class Scalar> -class TimeSteppingScheme -{ - -public: - TimeSteppingScheme(std::shared_ptr<TimeSteppingParams> method) - : method_(method) - {} - -private: - std::shared_ptr<TimeSteppingParams> method_; - -}; - -} // end namespace Dumux - -#endif