Commit 69cf5b85 authored by Thomas Fetzer's avatar Thomas Fetzer
Browse files

[multidomain]

introduced proporties and propertydefaults for the coupled stokes-darcy
models, that the model does not have to use runtime parameters.
properties from the test problem headers have been moved to the model
properties.

reviewed by gruenich



git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@14045 2fb0f335-1f38-0410-981e-8018bf24f1b0
parent 3805066f
// -*- 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 Properties
* \ingroup ImplicitProperties
* \ingroup MultidomainModel
*
* \brief Defines the properties required for the coupled 2cnistokes2p2cni model.
*/
#ifndef DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTIES_HH
#define DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTIES_HH
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh>
namespace Dumux
{
////////////////////////////////
// properties
////////////////////////////////
namespace Properties
{
//////////////////////////////////////////////////////////////////
// Type tags
//////////////////////////////////////////////////////////////////
//! The type tags for the coupled 2cnistokes2p2cni model
NEW_TYPE_TAG(TwoCNIStokesTwoPTwoCNI, INHERITS_FROM(TwoCStokesTwoPTwoC));
//////////////////////////////////////////////////////////////////
// Property tags
//////////////////////////////////////////////////////////////////
} // end namespace properties
} // end namespace Dumux
#endif
// -*- 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 Properties
* \ingroup ImplicitProperties
* \ingroup MultidomainModel
*
* \brief Defines default values for the properties required by the
* coupled 2cnistokes2p2cni model.
*/
#ifndef DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTY_DEFAULTS_HH
#define DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTY_DEFAULTS_HH
#include "2cnistokes2p2cniproperties.hh"
namespace Dumux
{
namespace Properties
{
//////////////////////////////////////////////////////////////////
// Property defaults
//////////////////////////////////////////////////////////////////
} // end namespace properties
} // end namespace Dumux
#endif
......@@ -33,6 +33,7 @@
#include <dune/pdelab/localoperator/idefault.hh>
#include <dumux/multidomain/common/multidomainproperties.hh>
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh>
#include <dumux/freeflow/stokesnc/stokesncmodel.hh>
#include <dumux/implicit/2p2c/2p2cmodel.hh>
......@@ -129,23 +130,13 @@ class TwoCStokesTwoPTwoCLocalOperator :
TwoCStokesTwoPTwoCLocalOperator(GlobalProblem& globalProblem)
: globalProblem_(globalProblem)
{
try
{
blModel_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, UseBoundaryLayerModel);
massTransferModel_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, MassTransferModel);
}
catch (...) {
blModel_ = 0;
massTransferModel_ = 1;
std::cout << "For using the mass transfer model, the following paremeters have to be set:\n";
std::cout << "FreeFlow.UseBoundaryLayerModel\n";
std::cout << "FreeFlow.MassTransferModel\n";
}
blModel_ = GET_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, BoundaryLayerModel);
massTransferModel_ = GET_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, MassTransferModel);
if (massTransferModel_ == 1)
std::cout << "Using power law for mass transfer coefficient\n";
else if (massTransferModel_ == 2)
std::cout << "Using Schluender model for mass transfer\n";
if (blModel_ > 0)
std::cout << "Using boundary layer model " << blModel_ << std::endl;
if (massTransferModel_ > 0)
std::cout << "Using mass transfer model " << massTransferModel_ << std::endl;
}
// multidomain flags
......
// -*- 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 Properties
* \ingroup ImplicitProperties
* \ingroup MultidomainModel
*
* \brief Defines the properties required for the coupled 2cstokes2p2c model.
*/
#ifndef DUMUX_TWOCSTOKESTWOPTWOC_PROPERTIES_HH
#define DUMUX_TWOCSTOKESTWOPTWOC_PROPERTIES_HH
#include <dumux/multidomain/common/multidomainpropertydefaults.hh>
namespace Dumux
{
////////////////////////////////
// properties
////////////////////////////////
namespace Properties
{
//////////////////////////////////////////////////////////////////
// Type tags
//////////////////////////////////////////////////////////////////
//! The type tags for the coupled 2cstokes2p2c model
NEW_TYPE_TAG(TwoCStokesTwoPTwoC, INHERITS_FROM(MultiDomain));
//////////////////////////////////////////////////////////////////
// Property tags
//////////////////////////////////////////////////////////////////
NEW_PROP_TAG(FreeFlowBoundaryLayerModel); //!< Type of the used boundary layer model
NEW_PROP_TAG(FreeFlowMassTransferModel); //!< Type of the used mass transfer model
} // end namespace properties
} // end namespace Dumux
#endif
// -*- 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 Properties
* \ingroup ImplicitProperties
* \ingroup MultidomainModel
*
* \brief Defines default values for the properties required by the
* coupled 2cstokes2p2c model.
*/
#ifndef DUMUX_TWOCSTOKESTWOPTWOC_PROPERTY_DEFAULTS_HH
#define DUMUX_TWOCSTOKESTWOPTWOC_PROPERTY_DEFAULTS_HH
#include "2cstokes2p2cproperties.hh"
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cnewtoncontroller.hh>
namespace Dumux
{
namespace Properties
{
//////////////////////////////////////////////////////////////////
// Property defaults
//////////////////////////////////////////////////////////////////
// Specify the multidomain gridview
SET_PROP(TwoCStokesTwoPTwoC, GridView)
{
typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGrid) MDGrid;
public:
typedef typename MDGrid::LeafGridView type;
};
// Specify the type of the used solution vector
SET_PROP(TwoCStokesTwoPTwoC, SolutionVector)
{
private:
typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGridOperator) MDGridOperator;
public:
typedef typename MDGridOperator::Traits::Domain type;
};
// Specify the type of the multidomain assembler
SET_TYPE_PROP(TwoCStokesTwoPTwoC, JacobianAssembler, Dumux::MultiDomainAssembler<TypeTag>);
// Specif the used Newton controller
SET_TYPE_PROP(TwoCStokesTwoPTwoC, NewtonController, Dumux::TwoCStokesTwoPTwoCNewtonController<TypeTag>);
// set this to one here (must fit to the structure of the coupled matrix which has block length 1)
SET_INT_PROP(TwoCStokesTwoPTwoC, NumEq, 1);
// Write the solutions of individual newton iterations?
SET_BOOL_PROP(TwoCStokesTwoPTwoC, NewtonWriteConvergence, false);
//! 0 = none, 1 = Blasius, 2 and 3 = turbulent BL, 9 = constant thickness
SET_INT_PROP(TwoCStokesTwoPTwoC, FreeFlowBoundaryLayerModel, 0);
//! 0 = none, 1 = power law, 2 = Schluender model mass transfer model
SET_INT_PROP(TwoCStokesTwoPTwoC, FreeFlowMassTransferModel, 0);
} // end namespace properties
} // end namespace Dumux
#endif
......@@ -38,8 +38,8 @@
#include <dumux/material/fluidsystems/h2oairfluidsystem.hh>
#include <dumux/multidomain/common/multidomainproblem.hh>
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cnewtoncontroller.hh>
#include <dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh>
#include <dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnipropertydefaults.hh>
//#include <dumux/linear/amgbackend.hh>
#include <dumux/linear/seqsolverbackend.hh>
#ifdef HAVE_PARDISO
......@@ -57,7 +57,7 @@ class TwoCNIStokesTwoPTwoCNIProblem;
namespace Properties
{
NEW_TYPE_TAG(TwoCNIStokesTwoPTwoCNIProblem, INHERITS_FROM(MultiDomain));
NEW_TYPE_TAG(TwoCNIStokesTwoPTwoCNIProblem, INHERITS_FROM(TwoCNIStokesTwoPTwoCNI));
// Set the grid type
SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, Grid)
......@@ -72,17 +72,13 @@ SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, Grid)
#endif
};
// Specify the multidomain gridview
SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, GridView)
{
typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGrid) MDGrid;
public:
typedef typename MDGrid::LeafGridView type;
};
// Set the global problem
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, Problem, TwoCNIStokesTwoPTwoCNIProblem<TypeTag>);
// Set the local coupling operator
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, MultiDomainCouplingLocalOperator,
Dumux::TwoCNIStokesTwoPTwoCNILocalOperator<TypeTag>);
// Set the two sub-problems of the global problem
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, SubDomain1TypeTag, TTAG(Stokes2cniSubProblem));
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, SubDomain2TypeTag, TTAG(TwoPTwoCNISubProblem));
......@@ -110,37 +106,11 @@ SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, FluidSystem)
/*useComplexrelations=*/true> type;
};
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, JacobianAssembler, Dumux::MultiDomainAssembler<TypeTag>);
// Set the local coupling operator
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, MultiDomainCouplingLocalOperator,
Dumux::TwoCNIStokesTwoPTwoCNILocalOperator<TypeTag>);
SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, SolutionVector)
{
private:
typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGridOperator) MDGridOperator;
public:
typedef typename MDGridOperator::Traits::Domain type;
};
// the newton controller from the TwoCStokesTwoPTwoC model is used
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, NewtonController, TwoCStokesTwoPTwoCNewtonController<TypeTag>);
//SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, LinearSolver, SSORRestartedGMResBackend<TypeTag>);
// if you do not have PARDISO, the SuperLU solver is used:
#ifdef HAVE_PARDISO
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, LinearSolver, PardisoBackend<TypeTag>);
#else
SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, LinearSolver, SuperLUBackend<TypeTag>);
#endif // HAVE_PARDISO
// set this to one here (must fit to the structure of the coupled matrix which has block length 1)
SET_INT_PROP(TwoCNIStokesTwoPTwoCNIProblem, NumEq, 1);
// Write the solutions of individual newton iterations?
SET_BOOL_PROP(TwoCNIStokesTwoPTwoCNIProblem, NewtonWriteConvergence, false);
}
/*!
......@@ -170,7 +140,6 @@ class TwoCNIStokesTwoPTwoCNIProblem : public MultiDomainProblem<TypeTag>
typedef MultiDomainProblem<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, Model) Model;
typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
typedef typename GET_PROP_TYPE(TypeTag, SubDomain1TypeTag) Stokes2cniTypeTag;
......
......@@ -259,9 +259,6 @@ public:
ParentType::init();
this->model().globalStorage(storageLastTimestep_);
const int blModel = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, UseBoundaryLayerModel);
std::cout << "Using boundary layer model " << blModel << std::endl;
}
// \}
......
......@@ -93,10 +93,8 @@ SinusTemperatureAmplitude = 0.0 # 0.5
SinusTemperaturePeriod = 3600 # in seconds
BeaversJosephSlipVel = 0.00134
ExponentMTC = 0.0 # 1./6., Mass transfer coefficient for S^MTC
UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
BoundaryLayerOffset = 0.0 # for BL model like Blasius, determines a virtual run-up distance for the flow
ConstThickness = 0.0016 # for a constant BL thickness, use BL model 9
MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
#############################################################
[PorousMedium]
......
......@@ -93,10 +93,10 @@ SinusTemperatureAmplitude = 0.0 # 0.5
SinusTemperaturePeriod = 3600 # in seconds
BeaversJosephSlipVel = 0.00134
ExponentMTC = 0.0 # 1./6., Mass transfer coefficient for S^MTC
UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
# UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
BoundaryLayerOffset = 0.0 # for BL model like Blasius, determines a virtual run-up distance for the flow
ConstThickness = 0.0016 # for a constant BL thickness, use BL model 9
MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
# MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
#############################################################
[PorousMedium]
......
......@@ -36,10 +36,10 @@
#include <dune/grid/multidomaingrid.hh>
#include <dune/grid/io/file/dgfparser.hh>
#include <dumux/material/fluidsystems/h2oairfluidsystem.hh>
#include <dumux/multidomain/common/multidomainproblem.hh>
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh>
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cnewtoncontroller.hh>
#include <dumux/material/fluidsystems/h2oairfluidsystem.hh>
#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh>
#ifdef HAVE_PARDISO
#include <dumux/linear/pardisobackend.hh>
#endif // HAVE_PARDISO
......@@ -55,7 +55,7 @@ class TwoCStokesTwoPTwoCProblem;
namespace Properties
{
NEW_TYPE_TAG(TwoCStokesTwoPTwoCProblem, INHERITS_FROM(MultiDomain));
NEW_TYPE_TAG(TwoCStokesTwoPTwoCProblem, INHERITS_FROM(TwoCStokesTwoPTwoC));
// Set the grid type
SET_PROP(TwoCStokesTwoPTwoCProblem, Grid)
......@@ -70,17 +70,13 @@ SET_PROP(TwoCStokesTwoPTwoCProblem, Grid)
#endif
};
// Specify the multidomain gridview
SET_PROP(TwoCStokesTwoPTwoCProblem, GridView)
{
typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGrid) MDGrid;
public:
typedef typename MDGrid::LeafGridView type;
};
// Set the global problem
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, Problem, Dumux::TwoCStokesTwoPTwoCProblem<TypeTag>);
// Set the local coupling operator
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, MultiDomainCouplingLocalOperator,
Dumux::TwoCStokesTwoPTwoCLocalOperator<TypeTag>);
// Set the two sub-problems of the global problem
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, SubDomain1TypeTag, TTAG(Stokes2cSubProblem));
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, SubDomain2TypeTag, TTAG(TwoPTwoCSubProblem));
......@@ -107,34 +103,12 @@ SET_PROP(TwoCStokesTwoPTwoCProblem, FluidSystem)
/*useComplexrelations=*/false> type;
};
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, JacobianAssembler, Dumux::MultiDomainAssembler<TypeTag>);
// Set the local coupling operator
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, MultiDomainCouplingLocalOperator, Dumux::TwoCStokesTwoPTwoCLocalOperator<TypeTag>);
SET_PROP(TwoCStokesTwoPTwoCProblem, SolutionVector)
{
private:
typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGridOperator) MDGridOperator;
public:
typedef typename MDGridOperator::Traits::Domain type;
};
// newton controller
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, NewtonController, Dumux::TwoCStokesTwoPTwoCNewtonController<TypeTag>);
// if you do not have PARDISO, the SuperLU solver is used:
#ifdef HAVE_PARDISO
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, LinearSolver, PardisoBackend<TypeTag>);
#else
SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, LinearSolver, SuperLUBackend<TypeTag>);
#endif // HAVE_PARDISO
// set this to one here (must fit to the structure of the coupled matrix which has block length 1)
SET_INT_PROP(TwoCStokesTwoPTwoCProblem, NumEq, 1);
// Write the solutions of individual newton iterations?
SET_BOOL_PROP(TwoCStokesTwoPTwoCProblem, NewtonWriteConvergence, false);
}
/*!
......@@ -164,7 +138,6 @@ class TwoCStokesTwoPTwoCProblem : public MultiDomainProblem<TypeTag>
typedef MultiDomainProblem<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, NewtonController) NewtonController;
typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
typedef typename GET_PROP_TYPE(TypeTag, SubDomain1TypeTag) Stokes2cTypeTag;
......
......@@ -224,9 +224,6 @@ public:
ParentType::init();
this->model().globalStorage(storageLastTimestep_);
const int blModel = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, UseBoundaryLayerModel);
std::cout << "Using boundary layer model " << blModel << std::endl;
}
/*!
......
......@@ -92,10 +92,10 @@ SinusTemperatureAmplitude = 0.0 # 0.5
SinusTemperaturePeriod = 3600 # in seconds
BeaversJosephSlipVel = 0.00134
ExponentMTC = 0.0 # 1./6., Mass transfer coefficient for S^MTC
UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
# UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
BoundaryLayerOffset = 0.0 # for BL model like Blasius, determines a virtual run-up distance for the flow
ConstThickness = 0.0016 # for a constant BL thickness, use BL model 9
MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
# MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
#############################################################
[PorousMedium]
......
......@@ -92,10 +92,10 @@ SinusTemperatureAmplitude = 0.0 # 0.5
SinusTemperaturePeriod = 3600 # in seconds
BeaversJosephSlipVel = 0.00134
ExponentMTC = 0.0 # 1./6., Mass transfer coefficient for S^MTC
UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
# UseBoundaryLayerModel = 0 # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
BoundaryLayerOffset = 0.0 # for BL model like Blasius, determines a virtual run-up distance for the flow
ConstThickness = 0.0016 # for a constant BL thickness, use BL model 9
MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
# MassTransferModel = 0 # 0 for none, 1 for power law, 2 for Schluender model
#############################################################
[PorousMedium]
......
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