Skip to content
Snippets Groups Projects
Commit 70f71281 authored by Sina Ackermann's avatar Sina Ackermann Committed by Kilian Weishaupt
Browse files

[staggeredGrid][freeflow] Set up structure for nonisothermal Navier-Stokes model

* Not working yet
* add and adapt files for staggeredni problem
parent f70b2df9
No related branches found
No related tags found
2 merge requests!617[WIP] Next,!483Feature/staggered energy
add_subdirectory("staggered")
add_subdirectory("staggerednc")
add_subdirectory("staggeredni")
add_subdirectory("stokes")
add_subdirectory("stokesnc")
add_subdirectory("stokesncni")
......
#install headers
install(FILES
indices.hh
localresidual.hh
model.hh
properties.hh
propertydefaults.hh
volumevariables.hh
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/porousmediumflow/1p/implicit)
\ No newline at end of file
// -*- 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
* \brief Base class for the flux variables
*/
#ifndef DUMUX_FREELOW_IMPLICIT_NI_FLUXVARIABLES_HH
#define DUMUX_FREELOW_IMPLICIT_NI_FLUXVARIABLES_HH
#include <dumux/implicit/properties.hh>
#include <dumux/discretization/fluxvariablesbase.hh>
#include "../staggered/fluxvariables.hh"
namespace Dumux
{
namespace Properties
{
// forward declaration
NEW_PROP_TAG(EnableComponentTransport);
NEW_PROP_TAG(EnableEnergyBalance);
NEW_PROP_TAG(EnableInertiaTerms);
}
// // forward declaration
// template<class TypeTag, bool enableComponentTransport, bool enableEnergyBalance>
// class FreeFlowFluxVariablesImpl;
/*!
* \ingroup ImplicitModel
* \brief The flux variables class
* specializations are provided for combinations of physical processes
* \note Not all specializations are currently implemented
*/
// template<class TypeTag>
// using FreeFlowFluxVariables = FreeFlowFluxVariablesImpl<TypeTag, GET_PROP_VALUE(TypeTag, EnableComponentTransport),
// GET_PROP_VALUE(TypeTag, EnableEnergyBalance)>;
// specialization for immiscible, non-isothermal flow
template<class TypeTag>
class FreeFlowFluxVariablesImpl<TypeTag, false, true> : public FreeFlowFluxVariablesImpl<TypeTag, false, false>
{
using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
using Element = typename GridView::template Codim<0>::Entity;
using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
using GlobalFaceVars = typename GET_PROP_TYPE(TypeTag, GlobalFaceVars);
using SubControlVolumeFace = typename GET_PROP_TYPE(TypeTag, SubControlVolumeFace);
using FluxVariablesCache = typename GET_PROP_TYPE(TypeTag, FluxVariablesCache);
using CellCenterPrimaryVariables = typename GET_PROP_TYPE(TypeTag, CellCenterPrimaryVariables);
using FacePrimaryVariables = typename GET_PROP_TYPE(TypeTag, FacePrimaryVariables);
using IndexType = typename GridView::IndexSet::IndexType;
using Stencil = std::vector<IndexType>;
using MolecularDiffusionType = typename GET_PROP_TYPE(TypeTag, MolecularDiffusionType);
static constexpr bool navierStokes = GET_PROP_VALUE(TypeTag, EnableInertiaTerms);
// static constexpr auto numComponents = GET_PROP_VALUE(TypeTag, NumComponents);
static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles);
// //! The index of the component balance equation that gets replaced with the total mass balance
// static const int replaceCompEqIdx = GET_PROP_VALUE(TypeTag, ReplaceCompEqIdx);
using ParentType = FreeFlowFluxVariablesImpl<TypeTag, false, false>;
enum {
// grid and world dimension
dim = GridView::dimension,
dimWorld = GridView::dimensionworld,
pressureIdx = Indices::pressureIdx,
velocityIdx = Indices::velocityIdx,
temperatureIdx = Indices::temperatureIdx, // TODO necessary?
massBalanceIdx = Indices::massBalanceIdx,
momentumBalanceIdx = Indices::momentumBalanceIdx,
energyBalanceIdx = Indices::energyBalanceIdx,
conti0EqIdx = Indices::conti0EqIdx,
phaseIdx = Indices::phaseIdx
};
public:
CellCenterPrimaryVariables computeFluxForCellCenter(const Problem& problem,
const Element &element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars,
const GlobalFaceVars& globalFaceVars,
const SubControlVolumeFace &scvf,
const FluxVariablesCache& fluxVarsCache)
{
// CellCenterPrimaryVariables flux(0.0);
//
// flux += advectiveFluxForCellCenter_(problem, fvGeometry, elemVolVars, globalFaceVars, scvf);
// flux += MolecularDiffusionType::diffusiveFluxForCellCenter(problem, fvGeometry, elemVolVars, scvf);
// return flux;
}
private:
CellCenterPrimaryVariables advectiveFluxForCellCenter_(const Problem& problem,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars,
const GlobalFaceVars& globalFaceVars,
const SubControlVolumeFace &scvf)
{
// CellCenterPrimaryVariables flux(0.0);
//
// const auto& insideScv = fvGeometry.scv(scvf.insideScvIdx());
// const auto& insideVolVars = elemVolVars[insideScv];
//
// // if we are on an inflow/outflow boundary, use the volVars of the element itself
// // TODO: catch neumann and outflow in localResidual's evalBoundary_()
// bool isOutflow = false;
// if(scvf.boundary())
// {
// const auto bcTypes = problem.boundaryTypesAtPos(scvf.center());
// if(bcTypes.isOutflow(momentumBalanceIdx))
// isOutflow = true;
// }
//
// const auto& outsideVolVars = isOutflow ? insideVolVars : elemVolVars[scvf.outsideScvIdx()];
//
// const Scalar velocity = globalFaceVars.faceVars(scvf.dofIndex()).velocity();
//
// const bool insideIsUpstream = sign(scvf.outerNormalScalar()) == sign(velocity);
// const auto& upstreamVolVars = insideIsUpstream ? insideVolVars : outsideVolVars;
// const auto& downstreamVolVars = insideIsUpstream ? insideVolVars : outsideVolVars;
//
// const Scalar upWindWeight = GET_PROP_VALUE(TypeTag, ImplicitUpwindWeight);
// const Scalar upstreamDensity = useMoles ? upstreamVolVars.molarDensity() : upstreamVolVars.density();
// const Scalar downstreamDensity = useMoles ? downstreamVolVars.molarDensity() : downstreamVolVars.density();
//
// for (int compIdx = 0; compIdx < numComponents; ++compIdx)
// {
// // get equation index
// const auto eqIdx = conti0EqIdx + compIdx;
// if (eqIdx == replaceCompEqIdx)
// continue;
//
// const Scalar upstreamFraction = useMoles ? upstreamVolVars.moleFraction(phaseIdx, compIdx) : upstreamVolVars.massFraction(phaseIdx, compIdx);
// const Scalar downstreamFraction = useMoles ? downstreamVolVars.moleFraction(phaseIdx, compIdx) : downstreamVolVars.massFraction(phaseIdx, compIdx);
//
// flux[eqIdx] = (upWindWeight * upstreamDensity * upstreamFraction +
// (1.0 - upWindWeight) * downstreamDensity * downstreamFraction)
// * velocity;
// }
// // in case one balance is substituted by the total mass balance
// if (replaceCompEqIdx < numComponents)
// flux[replaceCompEqIdx] = (upWindWeight * upstreamDensity + (1.0 - upWindWeight) * downstreamDensity) * velocity;
//
// flux *= scvf.area() * sign(scvf.outerNormalScalar());
// return flux;
}
};
} // end namespace
#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
* \brief Defines the indices for the staggered Navier-Stokes NC model.
*/
#ifndef DUMUX_STAGGERED_NAVIERSTOKES_NI_INDICES_HH
#define DUMUX_STAGGERED_NAVIERSTOKES_NI_INDICES_HH
#include <dumux/freeflow/staggered/indices.hh>
namespace Dumux
{
// \{
/*!
* \ingroup NavierStokesNCModel
* \ingroup ImplicitIndices
* \brief Indices for the staggered Navier-Stokes NI model model.
*
* \tparam PVOffset The first index in a primary variable vector.
*/
template <class TypeTag, int PVOffset = 0>
struct NavierStokesNIIndices : public NavierStokesCommonIndices<TypeTag, PVOffset>
{
private:
using ParentType = NavierStokesCommonIndices<TypeTag, PVOffset>;
public:
static constexpr int energyBalanceIdx = PVOffset + 1; // TODO
static constexpr int temperatureIdx = energyBalanceIdx;
};
// \}
} // end namespace
#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
*
* \brief Base class for all models which use the one-phase,
* fully implicit model.
* Adaption of the fully implicit scheme to the one-phase flow model.
*/
#ifndef DUMUX_NAVIERSTOKES_NI_MODEL_HH
#define DUMUX_NAVIERSTOKES_NI_MODEL_HH
// #include <dumux/porousmediumflow/implicit/velocityoutput.hh>
#include "properties.hh"
#include "../staggered/model.hh"
namespace Dumux
{
/*!
* \ingroup NavierStokesModel
* \brief A single-phase, non-isothermal flow model using the fully implicit scheme.
*
* Single-phase, non-isothermal flow model, which uses a standard Darcy approach as the
* equation for the conservation of momentum:
* \f[
v = - \frac{\textbf K}{\mu}
\left(\textbf{grad}\, p - \varrho {\textbf g} \right)
* \f]
*
* and solves the mass continuity equation:
* \f[
\phi \frac{\partial \varrho}{\partial t} + \text{div} \left\lbrace
- \varrho \frac{\textbf K}{\mu} \left( \textbf{grad}\, p -\varrho {\textbf g} \right) \right\rbrace = q,
* \f]
* All equations are discretized using a vertex-centered finite volume (box)
* or cell-centered finite volume scheme as spatial
* and the implicit Euler method as time discretization.
* The model supports compressible as well as incompressible fluids.
*/
template<class TypeTag >
class NavierStokesNIModel : public NavierStokesModel<TypeTag>
{
using ParentType = NavierStokesModel<TypeTag>;
typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, GlobalFVGeometry) GlobalFVGeometry;
typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
typedef typename GET_PROP_TYPE(TypeTag, JacobianAssembler) JacobianAssembler;
using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
enum { dim = GridView::dimension };
enum { dimWorld = GridView::dimensionworld };
enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
enum { dofCodim = isBox ? dim : 0 };
using Element = typename GridView::template Codim<0>::Entity;
using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
using DofTypeIndices = typename GET_PROP(TypeTag, DofTypeIndices);
typename DofTypeIndices::CellCenterIdx cellCenterIdx;
typename DofTypeIndices::FaceIdx faceIdx;
enum { phaseIdx = Indices::phaseIdx };
public:
void init(Problem& problem)
{
ParentType::init(problem);
// register standardized vtk output fields
auto& vtkOutputModule = problem.vtkOutputModule();
// vtkOutputModule.addSecondaryVariable("rhoMolar",[](const VolumeVariables& v){ return v.molarDensity(); });
// vtkOutputModule.addSecondaryVariable("rho",[](const VolumeVariables& v){ return v.density(); });
// for (int j = 0; j < numComponents; ++j)
// {
// vtkOutputModule.addSecondaryVariable("X^" + FluidSystem::componentName(j) + "_" + FluidSystem::phaseName(phaseIdx),
// [j](const VolumeVariables& v){ return v.massFraction(phaseIdx,j); });
//
// vtkOutputModule.addSecondaryVariable("x^" + FluidSystem::componentName(j) + "_" + FluidSystem::phaseName(phaseIdx),
// [j](const VolumeVariables& v){ return v.moleFraction(phaseIdx,j); });
// }
// NonIsothermalModel::maybeAddTemperature(vtkOutputModule);
}
};
}
#include "propertydefaults.hh"
#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/>. *
*****************************************************************************/
/*!
* \ingroup Properties
* \ingroup ImplicitProperties
* \ingroup NavierStokesModel
* \file
*
* \brief Defines the properties required for the one-phase fully implicit model.
*/
#ifndef DUMUX_NAVIERSTOKES_NI_PROPERTIES_HH
#define DUMUX_NAVIERSTOKES_NI_PROPERTIES_HH
// #include <dumux/porousmediumflow/nonisothermal/implicit/properties.hh>
#include <dumux/freeflow/staggered/properties.hh>
namespace Dumux
{
// \{
///////////////////////////////////////////////////////////////////////////
// properties for the isothermal Navier-Stokes model
///////////////////////////////////////////////////////////////////////////
namespace Properties {
//////////////////////////////////////////////////////////////////
// Type tags
//////////////////////////////////////////////////////////////////
//! The type tags for the implicit single-phase problems
NEW_TYPE_TAG(NavierStokesNI, INHERITS_FROM(NavierStokes));
//! The type tags for the corresponding non-isothermal problems
// NEW_TYPE_TAG(NavierStokesNI, INHERITS_FROM(NavierStokes, NonIsothermal));
//////////////////////////////////////////////////////////////////
// Property tags
//////////////////////////////////////////////////////////////////
//NEW_PROP_TAG(NumPhases); //!< Number of fluid phases in the system
//NEW_PROP_TAG(Indices); //!< Enumerations for the model
//NEW_PROP_TAG(FluidSystem); //!< The type of the fluid system to use
//NEW_PROP_TAG(Fluid); //!< The fluid used for the default fluid system
//NEW_PROP_TAG(FluidState); //!< The type of the fluid state to use
//NEW_PROP_TAG(ProblemEnableGravity); //!< Returns whether gravity is considered in the problem
//NEW_PROP_TAG(ImplicitMassUpwindWeight); //!< Returns weight of the upwind cell when calculating fluxes
//NEW_PROP_TAG(ImplicitMobilityUpwindWeight); //!< Weight for the upwind mobility in the velocity calculation
//NEW_PROP_TAG(VtkAddVelocity); //!< Returns whether velocity vectors are written into the vtk output
//NEW_PROP_TAG(EnableInertiaTerms); //!< Returns whether to include inertia terms in the momentum balance eq or not (Stokes / Navier-Stokes)
//NEW_PROP_TAG(BoundaryValues); //!< Type to set values on the boundary
//NEW_PROP_TAG(EnableComponentTransport); //!< Returns whether to consider component transport or not
//NEW_PROP_TAG(EnableEnergyTransport); //!< Returns whether to consider energy transport or not
//NEW_PROP_TAG(FaceVariables); //!< Returns whether to consider energy transport or not
//NEW_PROP_TAG(UseMoles); //!< Defines whether molar (true) or mass (false) density is used
// \}
}
} // end namespace
#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/>. *
*****************************************************************************/
/*!
* \ingroup Properties
* \ingroup ImplicitProperties
* \ingroup OnePModel
* \file
*
* \brief Defines the properties required for the one-phase fully implicit model.
*/
#ifndef DUMUX_NAVIER_STOKES_NI_PROPERTY_DEFAULTS_HH
#define DUMUX_NAVIER_STOKES_NI_PROPERTY_DEFAULTS_HH
#include "properties.hh"
#include "model.hh"
#include "volumevariables.hh"
#include "indices.hh"
#include "localresidual.hh"
#include "../staggered/problem.hh"
// #include "../staggered/model.hh"
#include "../staggered/propertydefaults.hh"
#include <dumux/implicit/staggered/localresidual.hh>
#include <dumux/material/fluidsystems/gasphase.hh>
#include <dumux/material/fluidsystems/liquidphase.hh>
#include <dumux/material/components/nullcomponent.hh>
#include <dumux/material/fluidsystems/1p.hh>
#include <dumux/material/fluidstates/compositional.hh>
namespace Dumux
{
namespace Properties
{
// forward declaration
NEW_PROP_TAG(FluxVariables);
NEW_PROP_TAG(FluxVariablesCache);
}
// \{
///////////////////////////////////////////////////////////////////////////
// default property values for the isothermal single phase model
///////////////////////////////////////////////////////////////////////////
namespace Properties {
SET_INT_PROP(NavierStokesNI, NumEqCellCenter, 2);
//! the VolumeVariables property
SET_TYPE_PROP(NavierStokesNI, VolumeVariables, NavierStokesNIVolumeVariables<TypeTag>);
SET_TYPE_PROP(NavierStokesNI, Model, NavierStokesNIModel<TypeTag>);
/*!
* \brief The fluid state which is used by the volume variables to
* store the thermodynamic state. This should be chosen
* appropriately for the model ((non-)isothermal, equilibrium, ...).
* This can be done in the problem.
*/
SET_PROP(NavierStokesNI, FluidState)
{
private:
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
public:
typedef CompositionalFluidState<Scalar, FluidSystem> type; // TODO necessary?
};
// //! Enable advection
// SET_BOOL_PROP(NavierStokes, EnableAdvection, true);
//
// //! The one-phase model has no molecular diffusion
// SET_BOOL_PROP(NavierStokes, EnableMolecularDiffusion, false);
//
//! Non-Isothermal model by default
SET_BOOL_PROP(NavierStokes, EnableEnergyBalance, true);
//
// //! The indices required by the isothermal single-phase model
// SET_TYPE_PROP(NavierStokes, Indices, NavierStokesCommonIndices<TypeTag>);
//
// //! The weight of the upwind control volume when calculating
// //! fluxes. Use central differences by default.
// SET_SCALAR_PROP(NavierStokes, ImplicitMassUpwindWeight, 0.5);
//
// //! weight for the upwind mobility in the velocity calculation
// //! fluxes. Use central differences by default.
// SET_SCALAR_PROP(NavierStokes, ImplicitMobilityUpwindWeight, 0.5);
//
// //! The fluid system to use by default
// SET_TYPE_PROP(NavierStokes, FluidSystem, Dumux::FluidSystems::OneP<typename GET_PROP_TYPE(TypeTag, Scalar), typename GET_PROP_TYPE(TypeTag, Fluid)>);
//
// SET_PROP(NavierStokes, Fluid)
// { private:
// typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
// public:
// typedef FluidSystems::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type;
// };
//
// /*!
// * \brief The fluid state which is used by the volume variables to
// * store the thermodynamic state. This should be chosen
// * appropriately for the model ((non-)isothermal, equilibrium, ...).
// * This can be done in the problem.
// */
// SET_PROP(NavierStokes, FluidState){
// private:
// typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
// typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
// public:
// typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> type;
// };
//
// // disable velocity output by default
// SET_BOOL_PROP(NavierStokes, VtkAddVelocity, true);
//
// // enable gravity by default
// SET_BOOL_PROP(NavierStokes, ProblemEnableGravity, true);
//
// SET_BOOL_PROP(NavierStokes, EnableInertiaTerms, true);
//
// SET_BOOL_PROP(NavierStokes, EnableEnergyTransport, false);
//
//! average is used as default model to compute the effective thermal heat conductivity
// SET_PROP(NavierStokesNI, ThermalConductivityModel)
// { private :
// typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
// public:
// typedef ThermalConductivityAverage<Scalar> type;
// };
//////////////////////////////////////////////////////////////////
// Property values for isothermal model required for the general non-isothermal model
//////////////////////////////////////////////////////////////////
// set isothermal Model
// SET_TYPE_PROP(NavierStokesNI, IsothermalModel, NavierStokesModel<TypeTag>);
//set isothermal VolumeVariables
// SET_TYPE_PROP(NavierStokesNI, IsothermalVolumeVariables, NavierStokesVolumeVariables<TypeTag>);
//set isothermal LocalResidual
// SET_TYPE_PROP(NavierStokesNI, IsothermalLocalResidual, ImmiscibleLocalResidual<TypeTag>);
//set isothermal Indices
// SET_TYPE_PROP(NavierStokesNI, IsothermalIndices, NavierStokesCommonIndices<TypeTag>);
//set isothermal NumEq
// SET_INT_PROP(NavierStokesNI, IsothermalNumEq, 1);
// \}
} // end namespace Properties
} // end namespace Dumux
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment