Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dumux-repositories/dumux-course
1 result
Show changes
Showing
with 39 additions and 38 deletions
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh>
#include <dumux/freeflow/turbulencemodel.hh> #include <dumux/freeflow/turbulencemodel.hh>
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Include headers for turbulence problem (rans) here. // Include headers for turbulence problem (rans) here.
#include <dumux/freeflow/navierstokes/staggered/problem.hh> #include <dumux/freeflow/navierstokes/staggered/problem.hh>
#include <dumux/freeflow/navierstokes/boundarytypes.hh> #include <dumux/freeflow/navierstokes/boundarytypes.hh>
...@@ -28,7 +28,7 @@ namespace Dumux { ...@@ -28,7 +28,7 @@ namespace Dumux {
* \brief The free-flow sub problem * \brief The free-flow sub problem
*/ */
template <class TypeTag> template <class TypeTag>
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Adapt the inheritance of the problem class. // Adapt the inheritance of the problem class.
class FreeFlowSubProblem : public NavierStokesStaggeredProblem<TypeTag> class FreeFlowSubProblem : public NavierStokesStaggeredProblem<TypeTag>
{ {
...@@ -40,7 +40,7 @@ class FreeFlowSubProblem : public NavierStokesStaggeredProblem<TypeTag> ...@@ -40,7 +40,7 @@ class FreeFlowSubProblem : public NavierStokesStaggeredProblem<TypeTag>
using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>; using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Change the boundary types to Dumux::RANSBoundaryTypes<ModelTraits, ModelTraits::numEq()> // Change the boundary types to Dumux::RANSBoundaryTypes<ModelTraits, ModelTraits::numEq()>
using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
...@@ -109,7 +109,7 @@ public: ...@@ -109,7 +109,7 @@ public:
BoundaryTypes values; BoundaryTypes values;
const auto& globalPos = scvf.center(); const auto& globalPos = scvf.center();
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// set boundary conditions for the turbulence model primary variables k and \omega everywhere (outflow on right boundary, otherwise dirichlet) // set boundary conditions for the turbulence model primary variables k and \omega everywhere (outflow on right boundary, otherwise dirichlet)
if (onLeftBoundary_(globalPos)) if (onLeftBoundary_(globalPos))
...@@ -120,7 +120,7 @@ public: ...@@ -120,7 +120,7 @@ public:
values.setDirichlet(Indices::energyEqIdx); values.setDirichlet(Indices::energyEqIdx);
} }
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// set wall conditions for the turbulence model at the walls (values.setWall()) corresponding to the upper and lower boundary // set wall conditions for the turbulence model at the walls (values.setWall()) corresponding to the upper and lower boundary
if (onLowerBoundary_(globalPos)) if (onLowerBoundary_(globalPos))
{ {
...@@ -133,7 +133,7 @@ public: ...@@ -133,7 +133,7 @@ public:
if (onUpperBoundary_(globalPos)) if (onUpperBoundary_(globalPos))
{ {
// TODO: dumux-course-task 3.B // TODO: dumux-course-task 3.B:
// Replace all conditions here with symmetric BCs. // Replace all conditions here with symmetric BCs.
values.setDirichlet(Indices::velocityXIdx); values.setDirichlet(Indices::velocityXIdx);
values.setDirichlet(Indices::velocityYIdx); values.setDirichlet(Indices::velocityYIdx);
...@@ -172,9 +172,9 @@ public: ...@@ -172,9 +172,9 @@ public:
const auto globalPos = scvf.ipGlobal(); const auto globalPos = scvf.ipGlobal();
PrimaryVariables values(initialAtPos(globalPos)); PrimaryVariables values(initialAtPos(globalPos));
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Add dirichlet conditions setting TKE and Dissipation to zero on the upper and lower walls. // Add dirichlet conditions setting TKE and Dissipation to zero on the upper and lower walls.
// TODO: dumux-course-task 3.B // TODO: dumux-course-task 3.B:
// Remove the condition `onUpperBoundary_(globalPos)` here. // Remove the condition `onUpperBoundary_(globalPos)` here.
// if (onUpperBoundary_(globalPos) || onLowerBoundary_(globalPos)) // if (onUpperBoundary_(globalPos) || onLowerBoundary_(globalPos))
// { // {
...@@ -288,12 +288,12 @@ public: ...@@ -288,12 +288,12 @@ public:
values[Indices::velocityXIdx] = refVelocity(); values[Indices::velocityXIdx] = refVelocity();
values[Indices::temperatureIdx] = refTemperature(); values[Indices::temperatureIdx] = refTemperature();
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Set initial conditions for the TKE and the Dissipation. Values calculated in the constructor // Set initial conditions for the TKE and the Dissipation. Values calculated in the constructor
// values[Indices::turbulentKineticEnergyIdx] = TODO??; // values[Indices::turbulentKineticEnergyIdx] = TODO??;
// values[Indices::dissipationIdx] = TODO??; // values[Indices::dissipationIdx] = TODO??;
// TODO: dumux-course-task 3.B // TODO: dumux-course-task 3.B:
// Remove the condition `onUpperBoundary_(globalPos)` here. // Remove the condition `onUpperBoundary_(globalPos)` here.
if(onUpperBoundary_(globalPos) || onLowerBoundary_(globalPos)) if(onUpperBoundary_(globalPos) || onLowerBoundary_(globalPos))
values[Indices::velocityXIdx] = 0.0; values[Indices::velocityXIdx] = 0.0;
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
...@@ -122,10 +122,10 @@ int main(int argc, char** argv) ...@@ -122,10 +122,10 @@ int main(int argc, char** argv)
couplingManager->init(freeflowProblem, porousMediumProblem, sol); couplingManager->init(freeflowProblem, porousMediumProblem, sol);
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Update static wall properties // Update static wall properties
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Update dynamic wall properties // Update dynamic wall properties
// the grid variables // the grid variables
...@@ -180,7 +180,7 @@ int main(int argc, char** argv) ...@@ -180,7 +180,7 @@ int main(int argc, char** argv)
// make the new solution the old solution // make the new solution the old solution
solOld = sol; solOld = sol;
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Update dynamic wall properties // Update dynamic wall properties
// post time step treatment of PorousMedium problem // post time step treatment of PorousMedium problem
......
...@@ -5,13 +5,13 @@ TEnd = 864000 # [s] (6 days) ...@@ -5,13 +5,13 @@ TEnd = 864000 # [s] (6 days)
[Freeflow.Grid] [Freeflow.Grid]
Positions0 = 0.0 0.25 Positions0 = 0.0 0.25
# TODO: dumux-course-task 3.B - use only half of FF domain height # TODO: dumux-course-task 3.B: use only half of FF domain height
Positions1 = 0.25 0.5 Positions1 = 0.25 0.5
# TODO: dumux-course-task 3.C - refine towards interface # TODO: dumux-course-task 3.C: refine towards interface
Grading0 = 1.0 Grading0 = 1.0
Grading1 = 1.0 Grading1 = 1.0
Cells0 = 15 Cells0 = 15
# TODO: dumux-course-task 3.B - use only half of FF domain height and adapt cell number # TODO: dumux-course-task 3.B: use only half of FF domain height and adapt cell number
Cells1 = 20 Cells1 = 20
Verbosity = true Verbosity = true
...@@ -20,7 +20,7 @@ Positions0 = 0.0 0.25 ...@@ -20,7 +20,7 @@ Positions0 = 0.0 0.25
Positions1 = 0.0 0.25 Positions1 = 0.0 0.25
Cells0 = 15 Cells0 = 15
Cells1 = 10 Cells1 = 10
# TODO: dumux-course-task 3.C - refine towards interface # TODO: dumux-course-task 3.C: refine towards interface
Grading0 = 1.0 Grading0 = 1.0
Grading1 = 1.0 Grading1 = 1.0
Verbosity = true Verbosity = true
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
// Free-flow domain // Free-flow domain
#include <dumux/discretization/staggered/freeflow/properties.hh> #include <dumux/discretization/staggered/freeflow/properties.hh>
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Include headers for compositional k-\omega SST turbulence model here. // Include headers for compositional k-\omega SST turbulence model here.
#include <dumux/freeflow/compositional/navierstokesncmodel.hh> #include <dumux/freeflow/compositional/navierstokesncmodel.hh>
...@@ -39,7 +39,7 @@ namespace Dumux::Properties { ...@@ -39,7 +39,7 @@ namespace Dumux::Properties {
// Create new type tags // Create new type tags
namespace TTag { namespace TTag {
struct PorousMediumFlowModel { using InheritsFrom = std::tuple<TwoPTwoCNI, CCTpfaModel>; }; struct PorousMediumFlowModel { using InheritsFrom = std::tuple<TwoPTwoCNI, CCTpfaModel>; };
// TODO: dumux-course-task 3.A // TODO: dumux-course-task 3.A:
// Change the entry in the `FreeflowModel` definition accordingly. // Change the entry in the `FreeflowModel` definition accordingly.
struct FreeflowModel { using InheritsFrom = std::tuple<NavierStokesNCNI, StaggeredFreeFlowModel>; }; struct FreeflowModel { using InheritsFrom = std::tuple<NavierStokesNCNI, StaggeredFreeFlowModel>; };
} // end namespace TTag } // end namespace TTag
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# executables for exercise part a & b # executables for exercise part a & b
......
...@@ -20,4 +20,5 @@ UpperRight = 60 60 # x-/y-coordinates of the upper-right corner of the grid [m] ...@@ -20,4 +20,5 @@ UpperRight = 60 60 # x-/y-coordinates of the upper-right corner of the grid [m]
Cells = 60 60 # x-/y-resolution of the grid Cells = 60 60 # x-/y-resolution of the grid
[Output] [Output]
# TODO: dumux-course-task 2.2: set the plot density to true
PlotDensity = false # plot density over pressure for your component PlotDensity = false # plot density over pressure for your component
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
dumux_add_test(NAME exercise_fractures dumux_add_test(NAME exercise_fractures
......
...@@ -157,7 +157,7 @@ BoundaryTypes interiorBoundaryTypes(const Element& element, const SubControlVolu ...@@ -157,7 +157,7 @@ BoundaryTypes interiorBoundaryTypes(const Element& element, const SubControlVolu
// the interior boundary conditions to Dirichlet. // the interior boundary conditions to Dirichlet.
// IMPORTANT: Note that you will never be asked to set any values at the interior boundaries! // IMPORTANT: Note that you will never be asked to set any values at the interior boundaries!
// This simply chooses a different interface condition! // This simply chooses a different interface condition!
// TODO dumux-course-task C // TODO: dumux-course-task B:
// Change coupling conditions! // Change coupling conditions!
values.setAllDirichlet(); values.setAllDirichlet();
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4: // vi: set et ts=4 sw=4 sts=4:
// //
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder // SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
/*! /*!
...@@ -78,7 +78,7 @@ public: ...@@ -78,7 +78,7 @@ public:
// However, there is one fracture reaching the top boundary. For this // However, there is one fracture reaching the top boundary. For this
// fracture tip we set Dirichlet Bcs as in the matrix domain // fracture tip we set Dirichlet Bcs as in the matrix domain
// TODO dumux-course-task A // TODO: dumux-course-task A:
// Change boundary conditions // Change boundary conditions
if (globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6) if (globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6)
values.setAllDirichlet(); values.setAllDirichlet();
......