spatialparams.hh 4.34 KB
 Natalie Schroeder committed Aug 03, 2015 1 2 3 4 5 6 7 ``````// -*- 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 * `````` Timo Koch committed Dec 17, 2018 8 `````` * the Free Software Foundation, either version 3 of the License, or * `````` Natalie Schroeder committed Aug 03, 2015 9 10 11 12 13 14 15 16 17 18 19 20 `````` * (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 `````` Johannes Hommel committed Dec 19, 2017 21 `````` * \ingroup RichardsTests `````` Sina Ackermann committed Dec 18, 2018 22 `````` * \brief Spatial parameters for the RichardsAnalyticalProblem. `````` Natalie Schroeder committed Aug 03, 2015 23 `````` */ `````` Sina Ackermann committed Dec 18, 2018 24 `````` `````` Natalie Schroeder committed Aug 03, 2015 25 26 27 ``````#ifndef DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH #define DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH `````` Timo Koch committed Dec 16, 2017 28 ``````#include `````` Natalie Schroeder committed Aug 03, 2015 29 30 31 32 33 34 ``````#include #include #include #include #include `````` Timo Koch committed Dec 15, 2017 35 ``````#include `````` Natalie Schroeder committed Aug 03, 2015 36 `````` `````` Timo Koch committed May 08, 2018 37 ``````namespace Dumux { `````` Natalie Schroeder committed Aug 03, 2015 38 39 40 41 `````` /*! * \ingroup RichardsModel * \ingroup ImplicitTestProblems `````` Sina Ackermann committed Dec 18, 2018 42 `````` * \brief The spatial parameters for the RichardsAnalyticalProblem. `````` Natalie Schroeder committed Aug 03, 2015 43 `````` */ `````` Bernd Flemisch committed Aug 28, 2018 44 ``````template `````` Timo Koch committed Apr 27, 2018 45 ``````class RichardsAnalyticalSpatialParams `````` Bernd Flemisch committed Aug 28, 2018 46 47 ``````: public FVSpatialParams> `````` Natalie Schroeder committed Aug 03, 2015 48 ``````{ `````` Timo Koch committed Apr 27, 2018 49 `````` using GridView = typename FVGridGeometry::GridView; `````` Bernd Flemisch committed Aug 28, 2018 50 51 `````` using ParentType = FVSpatialParams>; `````` Natalie Schroeder committed Aug 03, 2015 52 `````` `````` Bernd Flemisch committed Jan 10, 2018 53 `````` enum { dimWorld=GridView::dimensionworld }; `````` Melanie Lipp committed May 03, 2018 54 `````` using Element = typename GridView::template Codim<0>::Entity; `````` Natalie Schroeder committed Aug 03, 2015 55 `````` `````` Melanie Lipp committed May 03, 2018 56 `````` using GlobalPosition = typename Element::Geometry::GlobalCoordinate; `````` Natalie Schroeder committed Aug 03, 2015 57 `````` `````` Timo Koch committed Apr 27, 2018 58 59 `````` using EffectiveLaw = LinearMaterial; `````` Natalie Schroeder committed Aug 03, 2015 60 ``````public: `````` Katharina Heck committed Nov 30, 2017 61 `````` `````` Timo Koch committed Apr 27, 2018 62 `````` using MaterialLaw = EffToAbsLaw; `````` Dennis Gläser committed Apr 15, 2018 63 `````` using MaterialLawParams = typename MaterialLaw::Params; `````` Bernd Flemisch committed Jan 10, 2018 64 `````` // export permeability type `````` Katharina Heck committed Nov 30, 2017 65 66 `````` using PermeabilityType = Scalar; `````` Timo Koch committed Apr 27, 2018 67 68 `````` RichardsAnalyticalSpatialParams(std::shared_ptr fvGridGeometry) : ParentType(fvGridGeometry) `````` Natalie Schroeder committed Aug 03, 2015 69 70 71 72 73 74 75 76 77 78 79 `````` { K_ = 5e-12; materialParams_.setSwr(0.0); materialParams_.setSnr(0.0); materialParams_.setEntryPc(0); materialParams_.setMaxPc(1e10); } /*! * \brief Returns the intrinsic permeability tensor [m^2] at a given location * `````` Katharina Heck committed Nov 30, 2017 80 `````` * \param globalPos The global position where we evaluate `````` Natalie Schroeder committed Aug 03, 2015 81 `````` */ `````` Katharina Heck committed Nov 30, 2017 82 `````` PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const `````` Natalie Schroeder committed Aug 03, 2015 83 84 85 86 87 88 89 `````` { return K_; } /*! * \brief Returns the porosity [] at a given location * `````` Katharina Heck committed Nov 30, 2017 90 `````` * \param globalPos The global position where we evaluate `````` Natalie Schroeder committed Aug 03, 2015 91 `````` */ `````` Katharina Heck committed Nov 30, 2017 92 `````` Scalar porosityAtPos(const GlobalPosition& globalPos) const `````` Natalie Schroeder committed Aug 03, 2015 93 94 95 96 97 98 `````` { return 0.4; } /*! * \brief Returns the parameters for the material law at a given location * * This method is not actually required by the Richards model, but provided `````` Katharina Heck committed Nov 30, 2017 99 `````` * for the convenience of the RichardsLensProblem `````` Natalie Schroeder committed Aug 03, 2015 100 101 102 `````` * * \param globalPos A global coordinate vector */ `````` Katharina Heck committed Nov 30, 2017 103 `````` const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition &globalPos) const `````` Natalie Schroeder committed Aug 03, 2015 104 105 106 107 108 109 110 111 112 113 114 115 116 `````` { return materialParams_; } private: // intrinsic permeability Scalar K_; MaterialLawParams materialParams_; }; } // end namespace #endif``````