Commit 30b80902 authored by Theresa Schollenberger's avatar Theresa Schollenberger Committed by Timo Koch
Browse files

[mm][properties] add properties header for mcwhorter

parent 75adaaf1
......@@ -22,7 +22,7 @@
* \brief DOC ME!
*/
#include "config.h"
#include "mcwhorterproblem.hh"
#include "mcwhorterproperties.hh"
#include <dumux/common/start.hh>
#include <dumux/common/properties.hh>
......
......@@ -19,65 +19,17 @@
#ifndef DUMUX_MCWHORTERPROBLEM_HH
#define DUMUX_MCWHORTERPROBLEM_HH
#include <dune/grid/yaspgrid.hh>
#include <dumux/common/properties.hh>
#include <dumux/material/fluidsystems/1pliquid.hh>
#include <dumux/material/fluidsystems/2pimmiscible.hh>
#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureproperties.hh>
#include <dumux/porousmediumflow/2p/sequential/transport/cellcentered/properties.hh>
#include <dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxcoats.hh>
#include <dumux/common/parameters.hh>
#include <dumux/porousmediumflow/2p/sequential/impes/problem.hh>
//pseudo-oil and h2o have to be used to make viscosity and density input parameters
#include "../buckleyleverett/pseudooil.hh"
#include "../buckleyleverett/pseudoh2o.hh"
#include "../buckleyleverett/buckleyleverettspatialparams.hh"
#include "mcwhorteranalyticsolution.hh"
#include <lecture/common/viplaboutput.hh>
namespace Dumux {
template<typename TypeTag>
class McWhorterProblem;
//////////
// Specify the properties
//////////
namespace Properties {
// Create new type tags
namespace TTag {
struct McWhorterProblemTypeTag { using InheritsFrom = std::tuple<BuckleyLeverettSpatialParamsTypeTag, IMPESTwoP, FVTransportTwoP, FVPressureTwoP>; };
} // end namespace TTag
// Set the grid type
template<class TypeTag>
struct Grid<TypeTag, TTag::McWhorterProblemTypeTag> { using type = Dune::YaspGrid<2>; };
// Set the problem property
template<class TypeTag>
struct Problem<TypeTag, TTag::McWhorterProblemTypeTag> { using type = McWhorterProblem<TypeTag>; };
template<class TypeTag>
struct Formulation<TypeTag, TTag::McWhorterProblemTypeTag> { static constexpr int value = SequentialTwoPCommonIndices::pnsw; };
// Set the wetting phase
template<class TypeTag>
struct FluidSystem<TypeTag, TTag::McWhorterProblemTypeTag>
{
using Scalar = GetPropType<TypeTag, Properties::Scalar>;
using WettingPhase = FluidSystems::OnePLiquid<Scalar, PseudoOil<Scalar> >;
using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, PseudoH2O<Scalar> >;
using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
};
template<class TypeTag>
struct EvalCflFluxFunction<TypeTag, TTag::McWhorterProblemTypeTag> { using type = Dumux::EvalCflFluxCoats<TypeTag>; };
} // end namespace Properties
/*!
* \brief McWhorter diffusion problem
*/
......
// -*- 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/>. *
*****************************************************************************/
#ifndef DUMUX_MCWHORTERPROPERTIES_HH
#define DUMUX_MCWHORTERPROPERTIES_HH
#include <dune/grid/yaspgrid.hh>
#include <dumux/common/properties.hh>
#include <dumux/material/fluidsystems/1pliquid.hh>
#include <dumux/material/fluidsystems/2pimmiscible.hh>
#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureproperties.hh>
#include <dumux/porousmediumflow/2p/sequential/transport/cellcentered/properties.hh>
#include <dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxcoats.hh>
//pseudo-oil and h2o have to be used to make viscosity and density input parameters
#include "../buckleyleverett/pseudooil.hh"
#include "../buckleyleverett/pseudoh2o.hh"
#include "../buckleyleverett/buckleyleverettspatialparams.hh"
#include "mcwhorterproblem.hh"
namespace Dumux::Properties {
// Create new type tags
namespace TTag {
struct McWhorterProblemTypeTag { using InheritsFrom = std::tuple<BuckleyLeverettSpatialParamsTypeTag, IMPESTwoP, FVTransportTwoP, FVPressureTwoP>; };
} // end namespace TTag
// Set the grid type
template<class TypeTag>
struct Grid<TypeTag, TTag::McWhorterProblemTypeTag> { using type = Dune::YaspGrid<2>; };
// Set the problem property
template<class TypeTag>
struct Problem<TypeTag, TTag::McWhorterProblemTypeTag> { using type = McWhorterProblem<TypeTag>; };
template<class TypeTag>
struct Formulation<TypeTag, TTag::McWhorterProblemTypeTag> { static constexpr int value = SequentialTwoPCommonIndices::pnsw; };
// Set the wetting phase
template<class TypeTag>
struct FluidSystem<TypeTag, TTag::McWhorterProblemTypeTag>
{
using Scalar = GetPropType<TypeTag, Properties::Scalar>;
using WettingPhase = FluidSystems::OnePLiquid<Scalar, PseudoOil<Scalar> >;
using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, PseudoH2O<Scalar> >;
using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
};
template<class TypeTag>
struct EvalCflFluxFunction<TypeTag, TTag::McWhorterProblemTypeTag> { using type = Dumux::EvalCflFluxCoats<TypeTag>; };
} // end namespace Dumux::Properties
#endif // DUMUX_MCWHORTERPROPERTIES_HH
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment