Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dumux-repositories
dumux-lecture
Commits
bf041ac6
Commit
bf041ac6
authored
Aug 25, 2021
by
Timo Koch
Browse files
Merge branch 'fix/upstream-sequential-remove' into 'master'
Fix/upstream sequential remove See merge request
!164
parents
ca80243e
e83ed623
Pipeline
#8253
passed with stage
Changes
2
Pipelines
35
Expand all
Hide whitespace changes
Inline
Side-by-side
dumux/porousmediumflow/sequential/cellcentered/velocity.hh
0 → 100644
View file @
bf041ac6
// -*- 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 3 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_FVVELOCITY_HH
#define DUMUX_FVVELOCITY_HH
// dumux environment
#include
<dumux/common/math.hh>
#include
<dumux/porousmediumflow/sequential/pressureproperties.hh>
#include
"velocitydefault.hh"
/**
* @file
* @brief Finite volume velocity reconstruction
*/
namespace
Dumux
{
/*! \ingroup IMPET
*
* \brief Base class for finite volume velocity reconstruction
*
* Provides a basic frame for calculating a global velocity field.
* The definition of the local velocity calculation as well as the storage or other postprocessing
* has to be provided by the local velocity implementation.
* This local implementation has to have the form of VelocityDefault.
*
* \tparam TypeTag The Type Tag
* \tparam Velocity The implementation of the local velocity calculation
*/
template
<
class
TypeTag
,
class
Velocity
>
class
FVVelocity
{
using
GridView
=
typename
GetPropType
<
TypeTag
,
Properties
::
GridGeometry
>::
GridView
;
using
Problem
=
GetPropType
<
TypeTag
,
Properties
::
Problem
>
;
using
CellData
=
GetPropType
<
TypeTag
,
Properties
::
CellData
>
;
public:
//!Initialize velocity implementation
void
initialize
()
{
velocity_
.
initialize
();
}
//function which iterates through the grid and calculates the global velocity field
void
calculateVelocity
();
/*! \brief Adds velocity output to the output file
*
* \tparam MultiWriter Class defining the output writer
* \param writer The output writer (usually a <tt>VTKMultiWriter</tt> object)
*
*/
template
<
class
MultiWriter
>
void
addOutputVtkFields
(
MultiWriter
&
writer
)
{
velocity_
.
addOutputVtkFields
(
writer
);
}
//! Constructs a FVVelocity object
/**
* \param problem A problem class object
*/
FVVelocity
(
Problem
&
problem
)
:
problem_
(
problem
),
velocity_
(
problem
)
{}
private:
Problem
&
problem_
;
Velocity
velocity_
;
};
/*! \brief Function which reconstructs a global velocity field
*
* Iterates through the grid and calls the local calculateVelocity(...) or calculateVelocityOnBoundary(...)
* functions which have to be provided by the local velocity implementation (see e.g. VelocityDefault )
*/
template
<
class
TypeTag
,
class
Velocity
>
void
FVVelocity
<
TypeTag
,
Velocity
>::
calculateVelocity
()
{
for
(
const
auto
&
element
:
elements
(
problem_
.
gridView
()))
{
// cell information
int
globalIdxI
=
problem_
.
variables
().
index
(
element
);
CellData
&
cellDataI
=
problem_
.
variables
().
cellData
(
globalIdxI
);
/***** flux term ***********/
// iterate over all faces of the cell
for
(
const
auto
&
intersection
:
intersections
(
problem_
.
gridView
(),
element
))
{
/************* handle interior face *****************/
if
(
intersection
.
neighbor
())
{
int
isIndex
=
intersection
.
indexInInside
();
if
(
!
cellDataI
.
fluxData
().
haveVelocity
(
isIndex
))
velocity_
.
calculateVelocity
(
intersection
,
cellDataI
);
}
// end neighbor
/************* boundary face ************************/
else
{
velocity_
.
calculateVelocityOnBoundary
(
intersection
,
cellDataI
);
}
}
//end interfaces loop
}
// end grid traversal
return
;
}
}
//end namespace Dumux
#endif
dumux/porousmediumflow/sequential/onemodelproblem.hh
0 → 100644
View file @
bf041ac6
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment