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
Commits
57faf61d
Commit
57faf61d
authored
Dec 17, 2018
by
Sina Ackermann
Committed by
Simon Scholz
Dec 18, 2018
Browse files
[doxygen] Adapt documentation for compositional, immiscible models and general
parent
a06acdf4
Changes
10
Hide whitespace changes
Inline
Side-by-side
dumux/porousmediumflow/compositional/localresidual.hh
View file @
57faf61d
...
...
@@ -18,10 +18,11 @@
*****************************************************************************/
/*!
* \file
* \ingroup Porousmedium
Compositional
* \ingroup Porousmedium
flowModels
* \brief Element-wise calculation of the local residual for problems
* using compositional fully implicit model.
*/
#ifndef DUMUX_COMPOSITIONAL_LOCAL_RESIDUAL_HH
#define DUMUX_COMPOSITIONAL_LOCAL_RESIDUAL_HH
...
...
@@ -31,7 +32,7 @@
namespace
Dumux
{
/*!
* \ingroup Porousmedium
Compositional
* \ingroup Porousmedium
flowModels
* \brief Element-wise calculation of the local residual for problems
* using compositional fully implicit model.
*/
...
...
@@ -71,7 +72,7 @@ public:
using
ParentType
::
ParentType
;
/*!
* \brief Evaluate the amount of all conservation quantities
* \brief Evaluate
s
the amount of all conservation quantities
* (e.g. phase mass) within a sub-control volume.
*
* The result should be averaged over the volume (e.g. phase mass
...
...
dumux/porousmediumflow/compositional/primaryvariableswitch.hh
View file @
57faf61d
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
* \ingroup Porousmedium
Compositional
* \brief The primary variable switch base class for compositional models
* \ingroup Porousmedium
flowModels
* \brief The primary variable switch base class for compositional models
.
*/
#ifndef DUMUX_PRIMARY_VARIABLE_SWITCH_HH
#define DUMUX_PRIMARY_VARIABLE_SWITCH_HH
...
...
@@ -34,8 +35,8 @@
namespace
Dumux
{
/*!
* \ingroup
Implicit
Model
* \brief Empty class for models without pri var switch
* \ingroup
Porousmediumflow
Model
s
* \brief Empty class for models without pri var switch
.
*/
class
NoPrimaryVariableSwitch
{
...
...
@@ -51,8 +52,8 @@ public:
};
/*!
* \ingroup Porousmedium
Compositional
* \brief The primary variable switch controlling the phase presence state variable
* \ingroup Porousmedium
flowModels
* \brief The primary variable switch controlling the phase presence state variable
.
*/
template
<
class
Implementation
>
class
PrimaryVariableSwitch
...
...
@@ -75,7 +76,7 @@ public:
}
/*!
* \brief Update the variable switch / phase presence
* \brief Update
s
the variable switch / phase presence
.
*
* \param curSol The current solution to be updated / modified
* \param gridVariables The secondary variables on the grid
...
...
@@ -136,8 +137,10 @@ public:
}
/*!
* \brief Update the volume variables whose primary variables were
switched. Required when volume variables are cached globally.
* \brief Updates the volume variables whose primary variables were
* switched.
*
* Required when volume variables are cached globally.
*/
template
<
class
Problem
,
class
GridVariables
,
class
SolutionVector
,
std
::
enable_if_t
<
GridVariables
::
GridVolumeVariables
::
cachingEnabled
,
int
>
=
0
>
...
...
@@ -165,8 +168,10 @@ public:
}
/*!
* \brief Update the fluxVars cache for dof whose primary variables were
switched. Required when flux variables are cached globally (not for box method).
* \brief Updates the fluxVars cache for dof whose primary variables were
* switched.
*
* Required when flux variables are cached globally (not for box method).
*/
template
<
class
Problem
,
class
GridVariables
,
class
SolutionVector
,
std
::
enable_if_t
<
(
GridVariables
::
GridFluxVariablesCache
::
cachingEnabled
&&
...
...
@@ -192,8 +197,9 @@ public:
}
/*!
* \brief Update the the primary variables state at the boundary.
* Required when a Dirichlet BC differes from the initial conditon (only for box method).
* \brief Updates the the primary variables state at the boundary.
*
* Required when a Dirichlet BC differes from the initial conditon (only for box method).
*/
template
<
class
Problem
,
class
GridVariables
,
class
SolutionVector
,
std
::
enable_if_t
<
(
GridVariables
::
GridGeometry
::
discMethod
==
DiscretizationMethod
::
box
),
int
>
=
0
>
...
...
@@ -275,7 +281,7 @@ public:
<<
fvGridGeometry
.
gridView
().
comm
().
rank
()
<<
"."
<<
std
::
endl
;
}
//!
brief
Do nothing when volume variables are not cached globally.
//! Do nothing when volume variables are not cached globally.
template
<
class
Problem
,
class
GridVariables
,
class
SolutionVector
,
std
::
enable_if_t
<!
GridVariables
::
GridVolumeVariables
::
cachingEnabled
,
int
>
=
0
>
void
updateSwitchedVolVars
(
const
Problem
&
problem
,
...
...
@@ -284,7 +290,7 @@ public:
GridVariables
&
gridVariables
,
const
SolutionVector
&
uCurrentIter
)
const
{}
//!
brief
Do nothing when flux variables are not cached globally or the box method is used.
//! Do nothing when flux variables are not cached globally or the box method is used.
template
<
class
Problem
,
class
GridVariables
,
class
SolutionVector
,
std
::
enable_if_t
<
(
!
GridVariables
::
GridFluxVariablesCache
::
cachingEnabled
||
GridVariables
::
GridGeometry
::
discMethod
==
DiscretizationMethod
::
box
),
int
>
=
0
>
...
...
@@ -294,7 +300,7 @@ public:
GridVariables
&
gridVariables
,
const
SolutionVector
&
sol
)
const
{}
//!
brief
Do nothing when the box method is not used.
//! Do nothing when the box method is not used.
template
<
class
Problem
,
class
GridVariables
,
class
SolutionVector
,
std
::
enable_if_t
<
(
GridVariables
::
GridGeometry
::
discMethod
!=
DiscretizationMethod
::
box
),
int
>
=
0
>
void
updateBoundary
(
const
Problem
&
problem
,
...
...
@@ -308,15 +314,15 @@ public:
protected:
//!
r
eturn actual implementation (static polymorphism)
//!
R
eturn actual implementation (static polymorphism)
Implementation
&
asImp_
()
{
return
*
static_cast
<
Implementation
*>
(
this
);
}
//!
r
eturn actual implementation (static polymorphism)
//!
R
eturn actual implementation (static polymorphism)
const
Implementation
&
asImp_
()
const
{
return
*
static_cast
<
const
Implementation
*>
(
this
);
}
//
p
erform variable switch at a degree of freedom location
//
P
erform variable switch at a degree of freedom location
template
<
class
VolumeVariables
,
class
GlobalPosition
>
bool
update_
(
typename
VolumeVariables
::
PrimaryVariables
&
priVars
,
const
VolumeVariables
&
volVars
,
...
...
dumux/porousmediumflow/compositional/switchableprimaryvariables.hh
View file @
57faf61d
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
* \ingroup Porousmedium
Compositional
* \brief A primary variable vector with a state to allow variable switches
* \ingroup Porousmedium
flowModels
* \brief A primary variable vector with a state to allow variable switches
.
*/
#ifndef DUMUX_SWITCHABLE_PRIMARY_VARIABLES_HH
#define DUMUX_SWITCHABLE_PRIMARY_VARIABLES_HH
...
...
@@ -29,17 +30,17 @@
namespace
Dumux
{
/*!
* \ingroup Porousmedium
Compositional
* \brief A primary variable vector with a state to allow variable switches
* \ingroup Porousmedium
flowModels
* \brief A primary variable vector with a state to allow variable switches
.
*/
template
<
class
PrimaryVariables
,
class
StateType
>
class
SwitchablePrimaryVariables
:
public
PrimaryVariables
{
using
ParentType
=
PrimaryVariables
;
public:
//!
i
nherit the constructors
//!
I
nherit the constructors
using
ParentType
::
ParentType
;
//!
u
se the assignment operators from the field vector
//!
U
se the assignment operators from the field vector
using
ParentType
::
operator
=
;
//! Ask for the state of this primary variable object, e.g. the phase presence
...
...
dumux/porousmediumflow/fluxvariables.hh
View file @
57faf61d
...
...
@@ -18,8 +18,10 @@
*****************************************************************************/
/*!
* \file
* \ingroup PorousmediumflowModels
* \brief Base class for the flux variables in porous medium models
*/
#ifndef DUMUX_POROUSMEDIUMFLOW_FLUXVARIABLES_HH
#define DUMUX_POROUSMEDIUMFLOW_FLUXVARIABLES_HH
...
...
@@ -33,7 +35,7 @@
namespace
Dumux
{
/*!
* \ingroup
Implicit
Model
* \ingroup
Porousmediumflow
Model
s
* \brief The porous medium flux variables class that computes advective / convective,
* molecular diffusive and heat conduction fluxes.
*
...
...
@@ -120,7 +122,8 @@ public:
/*!
* \brief Returns the diffusive fluxes computed by the respective law.
* Specialization for enabled diffusion.
*
* Specialization for enabled diffusion.
*/
template
<
bool
enable
=
enableMolecularDiffusion
,
typename
std
::
enable_if_t
<
enable
,
int
>
=
0
>
Dune
::
FieldVector
<
Scalar
,
numComponents
>
molecularDiffusionFlux
(
const
int
phaseIdx
)
const
...
...
@@ -136,7 +139,8 @@ public:
/*!
* \brief Returns the diffusive fluxes computed by the respective law.
* Specialization for disabled diffusion. Fluxes are zero.
*
* Specialization for disabled diffusion. Fluxes are zero.
*/
template
<
bool
enable
=
enableMolecularDiffusion
,
typename
std
::
enable_if_t
<!
enable
,
int
>
=
0
>
Dune
::
FieldVector
<
Scalar
,
numComponents
>
molecularDiffusionFlux
(
const
int
phaseIdx
)
const
...
...
@@ -146,7 +150,8 @@ public:
/*!
* \brief Returns the conductive flux computed by the respective law.
* Specialization for enabled heat conduction and thermal equilibrium between all phases.
*
* Specialization for enabled heat conduction and thermal equilibrium between all phases.
*/
template
<
bool
enable
=
enableEnergyBalance
&&
!
enableThermalNonEquilibrium
,
typename
std
::
enable_if_t
<
enable
,
int
>
=
0
>
Scalar
heatConductionFlux
()
const
...
...
@@ -161,7 +166,8 @@ public:
/*!
* \brief Returns the conductive flux computed by the respective law.
* Specialization for enabled heat conduction and thermal non-equilibrium.
*
* Specialization for enabled heat conduction and thermal non-equilibrium.
*/
template
<
bool
enable
=
enableEnergyBalance
&&
enableThermalNonEquilibrium
,
typename
std
::
enable_if_t
<
enable
,
int
>
=
0
>
Scalar
heatConductionFlux
(
const
int
phaseIdx
)
const
...
...
@@ -177,7 +183,8 @@ public:
/*!
* \brief Returns the conductive flux computed by the respective law.
* Specialization for disabeld heat conduction. Conductive fluxes are zero.
*
* Specialization for disabled heat conduction. Conductive fluxes are zero.
*/
template
<
bool
enable
=
enableEnergyBalance
,
typename
std
::
enable_if_t
<!
enable
,
int
>
=
0
>
Scalar
heatConductionFlux
(
const
int
phaseIdx
)
const
...
...
dumux/porousmediumflow/fluxvariablescache.hh
View file @
57faf61d
...
...
@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Base class for the flux variables
* \ingroup PorousmediumflowModels
* \brief Base class for the flux variables.
*/
#ifndef DUMUX_POROUSMEDIUM_FLUXVARIABLESCACHE_HH
#define DUMUX_POROUSMEDIUM_FLUXVARIABLESCACHE_HH
...
...
@@ -41,11 +42,12 @@ class PorousMediumFluxVariablesCacheImplementation;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*!
* \ingroup
Implicit
Model
* \ingroup
Porousmediumflow
Model
s
* \brief The flux variables cache classes for porous media.
* Store data required for flux calculation. For each type of physical process (advection, diffusion, heat conduction)
* there is a base cache storing the data required to compute the respective fluxes. Specializations of the overall
* cache class are provided for different combinations of processes.
*
* Store data required for flux calculation. For each type of physical process (advection, diffusion, heat conduction)
* there is a base cache storing the data required to compute the respective fluxes. Specializations of the overall
* cache class are provided for different combinations of processes.
*/
template
<
class
TypeTag
>
using
PorousMediumFluxVariablesCache
=
PorousMediumFluxVariablesCacheImplementation
<
TypeTag
,
GetPropType
<
TypeTag
,
Properties
::
FVGridGeometry
>::
discMethod
>
;
...
...
@@ -77,8 +79,8 @@ class PorousMediumFluxVariablesCacheImplementation<TypeTag, DiscretizationMethod
,
public
EnergyCacheChooser
<
TypeTag
,
GetPropType
<
TypeTag
,
Properties
::
ModelTraits
>::
enableEnergyBalance
()
>
{};
//!
s
pecialization of the flux variables cache for the cell centered finite volume mpfa scheme
//!
s
tores data which is commonly used by all the different types of processes
//!
S
pecialization of the flux variables cache for the cell centered finite volume mpfa scheme
.
//!
S
tores data which is commonly used by all the different types of processes
.
template
<
class
TypeTag
>
class
PorousMediumFluxVariablesCacheImplementation
<
TypeTag
,
DiscretizationMethod
::
ccmpfa
>
:
public
AdvectionCacheChooser
<
TypeTag
,
GetPropType
<
TypeTag
,
Properties
::
ModelTraits
>::
enableAdvection
()
>
...
...
@@ -123,12 +125,12 @@ public:
private:
bool
isUpdated_
=
false
;
//
!<
returns true if cache has been fully updated
bool
usesSecondaryIv_
=
false
;
//
!<
returns true if scvf is embedded in secondary interaction volume
bool
isUpdated_
=
false
;
// returns true if cache has been fully updated
bool
usesSecondaryIv_
=
false
;
// returns true if scvf is embedded in secondary interaction volume
GridIndexType
ivIndexInContainer_
;
//
!<
index of the iv (this scvf is embedded in) in its container
unsigned
int
ivLocalFaceIdx_
;
//
!<
the interaction volume-local face index of this scvf
unsigned
int
idxInOutsideFaces_
;
//
!<
index of scvf among outside scvfs of iv-local "positive" face (only surface grids)
GridIndexType
ivIndexInContainer_
;
// index of the iv (this scvf is embedded in) in its container
unsigned
int
ivLocalFaceIdx_
;
// the interaction volume-local face index of this scvf
unsigned
int
idxInOutsideFaces_
;
// index of scvf among outside scvfs of iv-local "positive" face (only surface grids)
};
}
// end namespace Dumux
...
...
dumux/porousmediumflow/immiscible/localresidual.hh
View file @
57faf61d
...
...
@@ -18,7 +18,7 @@
*****************************************************************************/
/*!
* \file
* \ingroup Porousmedium
Immiscible
* \ingroup Porousmedium
flowModels
* \brief Element-wise calculation of the residual for problems
* using the n-phase immiscible fully implicit models.
*/
...
...
@@ -27,10 +27,10 @@
#include <dumux/common/properties.hh>
namespace
Dumux
{
namespace
Dumux
{
/*!
* \ingroup Porousmedium
Immiscible
* \ingroup Porousmedium
flowModels
* \brief Element-wise calculation of the residual for problems
* using the n-phase immiscible fully implicit models.
*/
...
...
@@ -60,9 +60,10 @@ public:
using
ParentType
::
ParentType
;
/*!
* \brief Evaluate the rate of change of all conservation
* \brief Evaluate
x
the rate of change of all conservation
* quantites (e.g. phase mass) within a sub-control
* volume of a finite volume element for the immiscible models.
*
* \param problem TODO docme!
* \param scv The sub control volume
* \param volVars The current or previous volVars
...
...
@@ -95,14 +96,14 @@ public:
/*!
* \brief Evaluate the mass flux over a face of a sub control volume
* \brief Evaluate
x
the mass flux over a face of a sub control volume
.
*
* \param problem T
ODO docme!
* \param problem T
he problem
* \param element The element
* \param fvGeometry The finite volume geometry context
* \param elemVolVars The volume variables for all flux stencil elements
* \param scvf The sub control volume face to compute the flux on
* \param elemFluxVarsCache The cache related to flux compuation
* \param elemFluxVarsCache The cache related to flux compu
t
ation
*/
NumEqVector
computeFlux
(
const
Problem
&
problem
,
const
Element
&
element
,
...
...
dumux/porousmediumflow/problem.hh
View file @
57faf61d
...
...
@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Base class for all porous media problems
* \ingroup PorousmediumflowModels
* \brief Base class for all porous media problems.
*/
#ifndef DUMUX_POROUS_MEDIUM_FLOW_PROBLEM_HH
#define DUMUX_POROUS_MEDIUM_FLOW_PROBLEM_HH
...
...
@@ -28,8 +29,9 @@
namespace
Dumux
{
/*!
* \ingroup PorousmediumFlow
* \brief Base class for all fully implicit porous media problems
* \ingroup PorousmediumflowModels
* \brief Base class for all fully implicit porous media problems.
*
* TODO: derive from base problem property?
*/
template
<
class
TypeTag
>
...
...
@@ -52,11 +54,11 @@ class PorousMediumFlowProblem : public FVProblem<TypeTag>
public:
//!
e
xport spatial parameter type
//!
E
xport spatial parameter type
using
SpatialParams
=
GetPropType
<
TypeTag
,
Properties
::
SpatialParams
>
;
/*!
* \brief Constructor, passing the spatial parameters
* \brief Constructor, passing the spatial parameters
.
*
* \param fvGridGeometry The finite volume grid geometry
* \param spatialParams The spatial parameter class
...
...
@@ -75,7 +77,7 @@ public:
}
/*!
* \brief Constructor, constructing the spatial parameters
* \brief Constructor, constructing the spatial parameters
.
*
* \param fvGridGeometry The finite volume grid geometry
* \param paramGroup The parameter group in which to look for runtime parameters first (default is "")
...
...
dumux/porousmediumflow/properties.hh
View file @
57faf61d
...
...
@@ -17,9 +17,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/*!
* \ingroup Properties
* \file
*
*
\ingroup PorousmediumflowModels
* \brief Defines a type tag and some properties for models using the box scheme.
*/
...
...
dumux/porousmediumflow/velocityoutput.hh
View file @
57faf61d
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
* \brief Velocity output for porous media models
*
\ingroup PorousmediumflowModels
* \brief Velocity output for porous media models
.
*/
#ifndef DUMUX_POROUSMEDIUMFLOW_VELOCITYOUTPUT_HH
#define DUMUX_POROUSMEDIUMFLOW_VELOCITYOUTPUT_HH
...
...
@@ -35,7 +36,8 @@
namespace
Dumux
{
/*!
* \brief Velocity output policy for implicit (porous media) models
* \ingroup PorousmediumflowModels
* \brief Velocity output policy for implicit (porous media) models.
*/
template
<
class
GridVariables
,
class
FluxVariables
>
class
PorousMediumFlowVelocityOutput
:
public
VelocityOutput
<
GridVariables
>
...
...
@@ -96,17 +98,17 @@ public:
}
}
//!
r
eturns whether or not velocity output is enabled
//!
R
eturns whether or not velocity output is enabled
.
bool
enableOutput
()
const
override
{
return
enableOutput_
;
}
//!
r
eturns the phase name of a given phase index
//!
R
eturns the phase name of a given phase index
.
std
::
string
phaseName
(
int
phaseIdx
)
const
override
{
return
FluidSystem
::
phaseName
(
phaseIdx
);
}
//!
r
eturns the number of phases
//!
R
eturns the number of phases
.
int
numFluidPhases
()
const
override
{
return
VolumeVariables
::
numFluidPhases
();
}
//! Calculate the velocities for the scvs in the element
//! We assume the local containers to be bound to the complete stencil
//! Calculate
s
the velocities for the scvs in the element
.
//! We assume the local containers to be bound to the complete stencil
.
void
calculateVelocity
(
VelocityVector
&
velocity
,
const
ElementVolumeVariables
&
elemVolVars
,
const
FVElementGeometry
&
fvGeometry
,
...
...
dumux/porousmediumflow/volumevariables.hh
View file @
57faf61d
...
...
@@ -18,18 +18,19 @@
*****************************************************************************/
/*!
* \file
* \ingroup Porousmedium
F
low
* \ingroup Porousmedium
f
low
Models
* \brief Base class for the model specific class which provides
* access to all volume averaged quantities.
*/
#ifndef DUMUX_POROUSMEDIUMFLOW_VOLUME_VARIABLES_HH
#define DUMUX_POROUSMEDIUMFLOW_VOLUME_VARIABLES_HH
namespace
Dumux
{
/*!
* \ingroup Porousmedium
F
low
* \brief The isothermal base class
* \ingroup Porousmedium
f
low
Models
* \brief The isothermal base class
.
*
* \tparam Traits The volume variables traits
* \tparam Impl The implementation of the volume variables
...
...
@@ -40,18 +41,18 @@ class PorousMediumFlowVolumeVariables
using
Scalar
=
typename
Traits
::
PrimaryVariables
::
value_type
;
public:
//!
e
xport the type used for the primary variables
//!
E
xport the type used for the primary variables
using
PrimaryVariables
=
typename
Traits
::
PrimaryVariables
;
//!
e
xport the type encapsulating primary variable indices
//!
E
xport the type encapsulating primary variable indices
using
Indices
=
typename
Traits
::
ModelTraits
::
Indices
;
//!
r
eturn number of phases considered by the model
//!
R
eturn number of phases considered by the model
static
constexpr
int
numFluidPhases
()
{
return
Traits
::
ModelTraits
::
numFluidPhases
();
}
//!
r
eturn number of components considered by the model
//!
R
eturn number of components considered by the model
static
constexpr
int
numFluidComponents
()
{
return
Traits
::
ModelTraits
::
numFluidComponents
();
}
/*!
* \brief Update all quantities for a given control volume
* \brief Update
s
all quantities for a given control volume
.
*
* \param elemSol A vector containing all primary variables connected to the element
* \param problem The object specifying the problem which ought to
...
...
@@ -70,13 +71,13 @@ public:
}
/*!
* \brief Return the vector of primary variables
* \brief Return
s
the vector of primary variables
.
*/
const
PrimaryVariables
&
priVars
()
const
{
return
priVars_
;
}
/*!
* \brief Return a component of primary variable vector
* \brief Return
s
a component of primary variable vector
.
*
* \param pvIdx The index of the primary variable of interest
*/
...
...
@@ -84,7 +85,7 @@ public:
{
return
priVars_
[
pvIdx
];
}
/*!
* \brief Return how much the sub-control volume is extruded.
* \brief Return
s
how much the sub-control volume is extruded.
*
* This means the factor by which a lower-dimensional (1D or 2D)
* entity needs to be expanded to get a full dimensional cell. The
...
...
Timo Koch
@timok
mentioned in commit
bf6fe138
·
Dec 19, 2018
mentioned in commit
bf6fe138
mentioned in commit bf6fe138672c32b74b46ca53e434a9178de2a61b
Toggle commit list
Timo Koch
@timok
mentioned in merge request
!1435 (merged)
·
Dec 19, 2018
mentioned in merge request
!1435 (merged)
mentioned in merge request !1435
Toggle commit list
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