From b0b04119e22d81606755ce222d236d82f8b6e7fa Mon Sep 17 00:00:00 2001 From: Hamza Oukili <hamza.oukili@iws.uni-stuttgart.de> Date: Wed, 15 Mar 2023 20:41:27 +0000 Subject: [PATCH] Delete darcyslaw.hh deprecated file --- dumux/flux/box/darcyslaw.hh | 171 ------------------------------------ 1 file changed, 171 deletions(-) delete mode 100644 dumux/flux/box/darcyslaw.hh diff --git a/dumux/flux/box/darcyslaw.hh b/dumux/flux/box/darcyslaw.hh deleted file mode 100644 index ceb511b949..0000000000 --- a/dumux/flux/box/darcyslaw.hh +++ /dev/null @@ -1,171 +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 3 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 BoxFlux - * \brief Specialization of Darcy's Law for the box method. - * - * This file contains the data which is required to calculate - * volume and mass fluxes of fluid phases over a face of a finite volume by means - * of the Darcy approximation. - */ -#ifndef DUMUX_DISCRETIZATION_BOX_DARCYS_LAW_HH -#define DUMUX_DISCRETIZATION_BOX_DARCYS_LAW_HH - -#warning "This header is deprecated and will be removed after release 3.6. Use flux/cvfe/darcyslaw.hh" - -#include <dumux/common/math.hh> -#include <dumux/common/parameters.hh> -#include <dumux/common/properties.hh> -#include <dumux/discretization/method.hh> -#include <dumux/discretization/extrusion.hh> -#include <dumux/flux/facetensoraverage.hh> - -namespace Dumux { - -// forward declaration -template<class TypeTag, class DiscretizationMethod> -class DarcysLawImplementation; - -// forward declaration -template<class Scalar, class GridGeometry> -class BoxDarcysLaw; - -/*! - * \ingroup BoxFlux - * \brief Specialization of Darcy's Law for the box method. - */ -template<class TypeTag> -class DarcysLawImplementation<TypeTag, DiscretizationMethods::Box> -: public BoxDarcysLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>> -{ }; - -/*! - * \ingroup BoxFlux - * \brief Darcy's law for the box scheme - * \tparam Scalar the scalar type for scalar physical quantities - * \tparam GridGeometry the grid geometry - */ -template<class Scalar, class GridGeometry> -class BoxDarcysLaw -{ - using FVElementGeometry = typename GridGeometry::LocalView; - using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; - using Extrusion = Extrusion_t<GridGeometry>; - using GridView = typename GridGeometry::GridView; - using Element = typename GridView::template Codim<0>::Entity; - - enum { dim = GridView::dimension}; - enum { dimWorld = GridView::dimensionworld}; - -public: - - /*! - * \brief Returns the advective flux of a fluid phase - * across the given sub-control volume face. - * \note This assembles the term - * \f$-|\sigma| \mathbf{n}^T \mathbf{K} \left( \nabla p - \rho \mathbf{g} \right)\f$, - * where \f$|\sigma|\f$ is the area of the face and \f$\mathbf{n}\f$ is the outer - * normal vector. Thus, the flux is given in N*m, and can be converted - * into a volume flux (m^3/s) or mass flux (kg/s) by applying an upwind scheme - * for the mobility or the product of density and mobility, respectively. - */ - template<class Problem, class ElementVolumeVariables, class ElementFluxVarsCache> - static Scalar flux(const Problem& problem, - const Element& element, - const FVElementGeometry& fvGeometry, - const ElementVolumeVariables& elemVolVars, - const SubControlVolumeFace& scvf, - const int phaseIdx, - const ElementFluxVarsCache& elemFluxVarCache) - { - const auto& fluxVarCache = elemFluxVarCache[scvf]; - const auto& insideScv = fvGeometry.scv(scvf.insideScvIdx()); - const auto& outsideScv = fvGeometry.scv(scvf.outsideScvIdx()); - const auto& insideVolVars = elemVolVars[insideScv]; - const auto& outsideVolVars = elemVolVars[outsideScv]; - - auto insideK = insideVolVars.permeability(); - auto outsideK = outsideVolVars.permeability(); - - // scale with correct extrusion factor - insideK *= insideVolVars.extrusionFactor(); - outsideK *= outsideVolVars.extrusionFactor(); - - const auto K = faceTensorAverage(insideK, outsideK, scvf.unitOuterNormal()); - static const bool enableGravity = getParamFromGroup<bool>(problem.paramGroup(), "Problem.EnableGravity"); - - const auto& shapeValues = fluxVarCache.shapeValues(); - - // evaluate gradP - rho*g at integration point - Dune::FieldVector<Scalar, dimWorld> gradP(0.0); - Scalar rho(0.0); - for (auto&& scv : scvs(fvGeometry)) - { - const auto& volVars = elemVolVars[scv]; - - if (enableGravity) - rho += volVars.density(phaseIdx)*shapeValues[scv.indexInElement()][0]; - - // the global shape function gradient - gradP.axpy(volVars.pressure(phaseIdx), fluxVarCache.gradN(scv.indexInElement())); - } - - if (enableGravity) - gradP.axpy(-rho, problem.spatialParams().gravity(scvf.center())); - - // apply the permeability and return the flux - return -1.0*vtmv(scvf.unitOuterNormal(), K, gradP)*Extrusion::area(fvGeometry, scvf); - } - - // compute transmissibilities ti for analytical jacobians - template<class Problem, class ElementVolumeVariables, class FluxVarCache> - static std::vector<Scalar> calculateTransmissibilities(const Problem& problem, - const Element& element, - const FVElementGeometry& fvGeometry, - const ElementVolumeVariables& elemVolVars, - const SubControlVolumeFace& scvf, - const FluxVarCache& fluxVarCache) - { - const auto& insideScv = fvGeometry.scv(scvf.insideScvIdx()); - const auto& outsideScv = fvGeometry.scv(scvf.outsideScvIdx()); - const auto& insideVolVars = elemVolVars[insideScv]; - const auto& outsideVolVars = elemVolVars[outsideScv]; - - auto insideK = insideVolVars.permeability(); - auto outsideK = outsideVolVars.permeability(); - - // scale with correct extrusion factor - insideK *= insideVolVars.extrusionFactor(); - outsideK *= outsideVolVars.extrusionFactor(); - - const auto K = faceTensorAverage(insideK, outsideK, scvf.unitOuterNormal()); - - std::vector<Scalar> ti(fvGeometry.numScv()); - for (const auto& scv : scvs(fvGeometry)) - ti[scv.indexInElement()] = - -1.0*Extrusion::area(fvGeometry, scvf)*vtmv(scvf.unitOuterNormal(), K, fluxVarCache.gradN(scv.indexInElement())); - - return ti; - } -}; - -} // end namespace Dumux - -#endif -- GitLab