diff --git a/dumux/freeflow/compositional/kepsilonncmodel.hh b/dumux/freeflow/compositional/kepsilonncmodel.hh index 7303d8d0936eb4df7879aec260639f4230ff182b..bcf03a5f723c9698cec266ac894e6fc0a4ac2035 100644 --- a/dumux/freeflow/compositional/kepsilonncmodel.hh +++ b/dumux/freeflow/compositional/kepsilonncmodel.hh @@ -71,7 +71,11 @@ struct KEpsilonNCModelTraits : NavierStokesNCModelTraits<dimension, nComp, useMo static constexpr bool usesTurbulenceModel() { return true; } //! the indices - using Indices = KEpsilonIndices<dimension, nComp>; + using Indices = RANSTwoEqIndices<dimension, nComp>; + + //! return the type of turbulence model used + static constexpr auto turbulenceModel() + { return TurbulenceModel::kepsilon; } }; //!< states some specifics of the isothermal multi-component low-Reynolds k-epsilon model @@ -141,7 +145,7 @@ struct IOFields<TypeTag, TTag::KEpsilonNC> { using type = FreeflowNCIOFields<KEp // Create new type tags namespace TTag { //! The type tags for the single-phase, multi-component non-isothermal k-epsilon models -struct KEpsilonNCNI { using InheritsFrom = std::tuple<NavierStokesNCNI>; }; +struct KEpsilonNCNI { using InheritsFrom = std::tuple<KEpsilonNC, NavierStokesNCNI>; }; } // end namespace TTag //! The model traits of the non-isothermal model diff --git a/dumux/freeflow/compositional/komegancmodel.hh b/dumux/freeflow/compositional/komegancmodel.hh index 28b5df3d5503aba370dad9012f33423015d7453c..4727b9493bf7cfcd20177a14cc0684ff632975e5 100644 --- a/dumux/freeflow/compositional/komegancmodel.hh +++ b/dumux/freeflow/compositional/komegancmodel.hh @@ -58,7 +58,7 @@ struct KOmegaNC { using InheritsFrom = std::tuple<NavierStokesNC>; }; /*! * \ingroup FreeflowNCModel - * \brief Traits for the low-Reynolds k-epsilon multi-component model + * \brief Traits for the k-omega multi-component model * * \tparam dimension The dimension of the problem * \tparam nComp The number of components to be considered @@ -75,11 +75,15 @@ struct KOmegaNCModelTraits : NavierStokesNCModelTraits<dimension, nComp, useMole //! The model does include a turbulence model static constexpr bool usesTurbulenceModel() { return true; } + //! return the type of turbulence model used + static constexpr auto turbulenceModel() + { return TurbulenceModel::komega; } + //! the indices - using Indices = KOmegaIndices<dimension, nComp>; + using Indices = RANSTwoEqIndices<dimension, nComp>; }; -//!< states some specifics of the isothermal multi-component low-Reynolds k-epsilon model +//!< states some specifics of the isothermal multi-component k-omega model template<class TypeTag> struct ModelTraits<TypeTag, TTag::KOmegaNC> { @@ -146,7 +150,7 @@ struct IOFields<TypeTag, TTag::KOmegaNC> { using type = FreeflowNCIOFields<KOmeg // Create new type tags namespace TTag { //! The type tags for the single-phase, multi-component non-isothermal k-omega models -struct KOmegaNCNI { using InheritsFrom = std::tuple<NavierStokesNCNI>; }; +struct KOmegaNCNI { using InheritsFrom = std::tuple<KOmegaNC, NavierStokesNCNI>; }; } // end namespace TTag //! The model traits of the non-isothermal model @@ -161,6 +165,7 @@ private: static constexpr bool useMoles = getPropValue<TypeTag, Properties::UseMoles>(); static constexpr int replaceCompEqIdx = getPropValue<TypeTag, Properties::ReplaceCompEqIdx>(); using IsothermalModelTraits = KOmegaNCModelTraits<dim, numComponents, useMoles, replaceCompEqIdx>; + public: using type = FreeflowNIModelTraits<IsothermalModelTraits>; }; diff --git a/dumux/freeflow/compositional/lowrekepsilonncmodel.hh b/dumux/freeflow/compositional/lowrekepsilonncmodel.hh index f515f651ea04e1789fc3db155309a7b616e0ca1e..52305bc45314d59ac2fb2f1b7412d29e1230b95e 100644 --- a/dumux/freeflow/compositional/lowrekepsilonncmodel.hh +++ b/dumux/freeflow/compositional/lowrekepsilonncmodel.hh @@ -75,8 +75,12 @@ struct LowReKEpsilonNCModelTraits : NavierStokesNCModelTraits<dimension, nComp, //! The model does include a turbulence model static constexpr bool usesTurbulenceModel() { return true; } + //! return the type of turbulence model used + static constexpr auto turbulenceModel() + { return TurbulenceModel::lowrekepsilon; } + //! the indices - using Indices = LowReKEpsilonIndices<dimension, nComp>; + using Indices = RANSTwoEqIndices<dimension, nComp>; }; //!< states some specifics of the isothermal multi-component low-Reynolds k-epsilon model @@ -146,7 +150,7 @@ struct IOFields<TypeTag, TTag::LowReKEpsilonNC> { using type = FreeflowNCIOField // Create new type tags namespace TTag { //! The type tags for the single-phase, multi-component non-isothermal low-Re k-epsilon models -struct LowReKEpsilonNCNI { using InheritsFrom = std::tuple<NavierStokesNCNI>; }; +struct LowReKEpsilonNCNI { using InheritsFrom = std::tuple<LowReKEpsilonNC, NavierStokesNCNI>; }; } // end namespace TTag //! The model traits of the non-isothermal model diff --git a/dumux/freeflow/compositional/navierstokesncmodel.hh b/dumux/freeflow/compositional/navierstokesncmodel.hh index d4b49818aa557a125acab8642fa0bd214bf5577d..5f025a63685457af2e49db2cd442be59acd230f9 100644 --- a/dumux/freeflow/compositional/navierstokesncmodel.hh +++ b/dumux/freeflow/compositional/navierstokesncmodel.hh @@ -100,6 +100,13 @@ struct NavierStokesNCModelTraits : NavierStokesModelTraits<dimension> //! Index of of a component balance eq. to be replaced by a total mass/mole balance static constexpr int replaceCompEqIdx() { return repCompEqIdx; } + //! The model does not include a turbulence model + static constexpr bool usesTurbulenceModel() { return false; } + + //! return the type of turbulence model used + static constexpr auto turbulenceModel() + { return TurbulenceModel::none; } + //! the indices using Indices = NavierStokesIndices<dimension>; }; diff --git a/dumux/freeflow/compositional/oneeqncmodel.hh b/dumux/freeflow/compositional/oneeqncmodel.hh index d2688412ab10fbb037e1fadc91c46eded138bfb9..862b69e1594fef30f713bcf243cc6c0487809780 100644 --- a/dumux/freeflow/compositional/oneeqncmodel.hh +++ b/dumux/freeflow/compositional/oneeqncmodel.hh @@ -75,6 +75,10 @@ struct OneEqNCModelTraits : NavierStokesNCModelTraits<dimension, nComp, useMoles //! The model does include a turbulence model static constexpr bool usesTurbulenceModel() { return true; } + //! return the type of turbulence model used + static constexpr auto turbulenceModel() + { return TurbulenceModel::oneeq; } + //! the indices using Indices = OneEqIndices<dimension, nComp>; }; @@ -146,7 +150,7 @@ struct IOFields<TypeTag, TTag::OneEqNC> { using type = FreeflowNCIOFields<OneEqI // Create new type tags namespace TTag { //! The type tags for the single-phase, multi-component non-isothermal one-equation models -struct OneEqNCNI { using InheritsFrom = std::tuple<NavierStokesNCNI>; }; +struct OneEqNCNI { using InheritsFrom = std::tuple<OneEqNC, NavierStokesNCNI>; }; } // end namespace TTag //! The model traits of the non-isothermal model diff --git a/dumux/freeflow/compositional/zeroeqncmodel.hh b/dumux/freeflow/compositional/zeroeqncmodel.hh index 54b19280523ab7edad0eafc078a77b5df7c701b5..a2c0b5f7006efd4b886738b272a32e5918a2edf1 100644 --- a/dumux/freeflow/compositional/zeroeqncmodel.hh +++ b/dumux/freeflow/compositional/zeroeqncmodel.hh @@ -32,7 +32,7 @@ #include <dumux/freeflow/compositional/navierstokesncmodel.hh> #include <dumux/freeflow/nonisothermal/iofields.hh> #include <dumux/freeflow/rans/zeroeq/model.hh> - +#include "volumevariables.hh" #include "iofields.hh" namespace Dumux { @@ -65,6 +65,10 @@ struct ZeroEqNCModelTraits : NavierStokesNCModelTraits<dimension, nComp, useM, r { //! The model does include a turbulence model static constexpr bool usesTurbulenceModel() { return true; } + + //! return the type of turbulence model used + static constexpr auto turbulenceModel() + { return TurbulenceModel::zeroeq; } }; //! The model traits of the isothermal model @@ -114,7 +118,7 @@ struct IOFields<TypeTag, TTag::ZeroEqNC> { using type = FreeflowNCIOFields<RANSI // Create new type tags namespace TTag { //! The type tags for the single-phase, multi-component non-isothermal ZeroEq models -struct ZeroEqNCNI { using InheritsFrom = std::tuple<NavierStokesNCNI>; }; +struct ZeroEqNCNI { using InheritsFrom = std::tuple<ZeroEqNC, NavierStokesNCNI>; }; } // end namespace TTag //! The model traits of the non-isothermal model