// -*- 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 . * *****************************************************************************/ /*! * \file * * \brief Definition of the spatial parameters for the 1p2cni problems. */ #ifndef DUMUX_1P2CNI_OUTFLOW_SPATIAL_PARAMS_HH #define DUMUX_1P2CNI_OUTFLOW_SPATIAL_PARAMS_HH #include namespace Dumux { /*! * \ingroup OnePTwoCNIModel * \ingroup ImplicitTestProblems * * \brief Definition of the spatial parameters for the 1p2cni problems. */ template class OnePTwoCNISpatialParams : public ImplicitSpatialParamsOneP { typedef ImplicitSpatialParamsOneP ParentType; typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid; typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector; typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; typedef typename GridView::template Codim<0>::Entity Element; public: OnePTwoCNISpatialParams(const GridView &gridView) : ParentType(gridView) { permeability_ = 1e-10; porosity_ = 0.4; // heat conductivity of granite lambdaSolid_ = 2.8; } ~OnePTwoCNISpatialParams() {} /*! * \brief Update the spatial parameters with the flow solution * after a timestep. * * \param globalSolution the global solution vector */ void update(const SolutionVector &globalSolution) { } /*! * \brief Define the intrinsic permeability \f$\mathrm{[m^2]}\f$. * * \param element The current finite element * \param fvGeometry The current finite volume geometry of the element * \param scvIdx The index of the sub-control volume */ const Scalar intrinsicPermeability(const Element &element, const FVElementGeometry &fvGeometry, const int scvIdx) const { return permeability_; } /*! * \brief Define the porosity \f$\mathrm{[-]}\f$. * * \param element The finite element * \param fvGeometry The finite volume geometry * \param scvIdx The local index of the sub-control volume where */ double porosity(const Element &element, const FVElementGeometry &fvGeometry, const int scvIdx) const { return porosity_; } /*! * \brief Define the dispersivity. * * \param element The finite element * \param fvGeometry The finite volume geometry * \param scvIdx The local index of the sub-control volume where */ double dispersivity(const Element &element, const FVElementGeometry &fvGeometry, const int scvIdx) const { return 0; } /*! * \brief Returns the heat capacity \f$[J / (kg K)]\f$ of the rock matrix. * * This is only required for non-isothermal models. * * \param element The finite element * \param fvGeometry The finite volume geometry * \param scvIdx The local index of the sub-control volume */ Scalar solidHeatCapacity(const Element &element, const FVElementGeometry &fvGeometry, const int scvIdx) const { return 790; // specific heat capacity of granite [J / (kg K)] } /*! * \brief Returns the mass density \f$[kg / m^3]\f$ of the rock matrix. * * This is only required for non-isothermal models. * * \param element The finite element * \param fvGeometry The finite volume geometry * \param scvIdx The local index of the sub-control volume */ Scalar solidDensity(const Element &element, const FVElementGeometry &fvGeometry, const int scvIdx) const { return 2700; // density of granite [kg/m^3] } /*! * \brief Returns the thermal conductivity \f$\mathrm{[W/(m K)]}\f$ of the porous material. * * \param element The finite element * \param fvGeometry The finite volume geometry * \param scvIdx The local index of the sub-control volume where * the heat capacity needs to be defined */ Scalar solidThermalConductivity(const Element &element, const FVElementGeometry &fvGeometry, const int scvIdx) const { return lambdaSolid_; } private: Scalar permeability_; Scalar porosity_; Scalar lambdaSolid_; }; } #endif // DUMUX_1P2CNI_OUTFLOW_SPATIAL_PARAMS_HH