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
b9b3d5c6
Commit
b9b3d5c6
authored
Dec 18, 2018
by
Simon Scholz
Browse files
[doxygen] Adapt documentation in 2p sequential
parent
76f567b6
Changes
65
Hide whitespace changes
Inline
Side-by-side
dumux/porousmediumflow/2p/sequential/celldata.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Class including data of one grid cell
*/
#ifndef DUMUX_ELEMENTDATA2P_HH
#define DUMUX_ELEMENTDATA2P_HH
...
...
@@ -260,7 +259,8 @@ public:
// functions returning the vectors of secondary variables
//////////////////////////////////////////////////////////////
/*! \brief Returns the cell phase mobility
/*!
* \brief Returns the cell phase mobility
*
* \param phaseIdx Index of a fluid phase
*/
...
...
@@ -269,7 +269,8 @@ public:
return
mobility_
[
phaseIdx
];
}
/*! \brief Returns the cell phase mobility
/*!
* \brief Returns the cell phase mobility
*
* \param phaseIdx Index of a fluid phase
*/
...
...
@@ -278,7 +279,8 @@ public:
return
mobility_
[
phaseIdx
];
}
/*! \brief Sets the cell phase mobility
/*!
* \brief Sets the cell phase mobility
*
* \param phaseIdx Index of a fluid phase
* \param mobility Phase mobility with which is stored
...
...
@@ -288,7 +290,8 @@ public:
mobility_
[
phaseIdx
]
=
mobility
;
}
/*! \brief Returns the cell phase fractional flow function
/*!
* \brief Returns the cell phase fractional flow function
*
* \param phaseIdx Index of a fluid phase
*/
...
...
@@ -297,7 +300,8 @@ public:
return
fracFlowFunc_
[
phaseIdx
];
}
/*! \brief Returns the cell phase fractional flow function
/*!
* \brief Returns the cell phase fractional flow function
*
* \param phaseIdx Index of a fluid phase
*/
...
...
@@ -306,7 +310,8 @@ public:
return
fracFlowFunc_
[
phaseIdx
];
}
/*! \brief Sets the cell phase fractional flow function
/*!
* \brief Sets the cell phase fractional flow function
*
* \param phaseIdx Index of a fluid phase
* \param fracFlowFunc Phase fractional flow function which is stored
...
...
@@ -328,7 +333,8 @@ public:
return
capillaryPressure_
;
}
/*! \brief Sets the cell capillary pressure
/*!
* \brief Sets the cell capillary pressure
*
* \param pc Capillary pressure which is stored
*/
...
...
@@ -337,7 +343,8 @@ public:
capillaryPressure_
=
pc
;
}
/*! \brief Store transport update
/*!
* \brief Store transport update
*
* \param update Transport update of the cell
*/
...
...
@@ -382,11 +389,11 @@ public:
};
/*!
* \brief Class including the variables and data of discretized data of the constitutive relations for one grid cell.
* \ingroup SequentialTwoPModel
* \brief Class including the variables and data of discretized data of the constitutive relations for one grid cell.
*
* The variables of two-phase flow, which are phase pressures and saturations are stored in this class.
*Further, resulting cell values for constitutive relationships like
*
Further, resulting cell values for constitutive relationships like
* mobilities, fractional flow functions and capillary pressure are stored.
* Additionally, data assigned to cell-cell interfaces, so-called flux-data are stored.
*
...
...
@@ -716,7 +723,8 @@ public:
return
fluidState_
.
viscosity
(
phaseIdx
);
}
/*!\brief Sets the cell phase viscosity
/*!
* \brief Sets the cell phase viscosity
*
* \param phaseIdx Index of a fluid phase
* \param viscosity Phase viscosity which is stored
...
...
@@ -749,5 +757,5 @@ public:
}
};
}
}
// end namespace Dumux
#endif
dumux/porousmediumflow/2p/sequential/celldataadaptive.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Class including the data of a grid cell needed if an adaptive grid is used.
*/
#ifndef DUMUX_ELEMENTDATA2P_ADAPTIVE_HH
#define DUMUX_ELEMENTDATA2P_ADAPTIVE_HH
...
...
@@ -58,8 +57,8 @@ private:
};
public:
/
/! Collection of variables that have to be mapped if the grid is adapted
/**
/
*!
* \brief Collection of variables that have to be mapped if the grid is adapted
* For an immiscible two-phase model, the following data has to be
* transferred to a new grid.
*/
...
...
@@ -185,5 +184,5 @@ public:
};
}
}
// end namespace Dumux
#endif
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Finite Volume discretization of a two-phase flow pressure equation.
*/
#ifndef DUMUX_FVPRESSURE2P_HH
#define DUMUX_FVPRESSURE2P_HH
...
...
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Finite volume discretization of a two-phase flow pressure equation.
*/
#ifndef DUMUX_FVPRESSURE2P_ADAPTIVE_HH
#define DUMUX_FVPRESSURE2P_ADAPTIVE_HH
...
...
@@ -32,10 +31,8 @@
#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh>
#include <dumux/porousmediumflow/sequential/cellcentered/velocity.hh>
namespace
Dumux
{
namespace
Dumux
{
/*!
* \ingroup SequentialTwoPModel
* \brief Finite volume discretization of a two-phase flow pressure equation of the sequential IMPES model.
...
...
@@ -129,10 +126,10 @@ public:
/*!
* \brief Pressure update
*
*
\copydetails FVPressure::update()
* \copydetails FVPressure::update()
*
*
The grid-adaptive implementation also reconstructs the velocity directly after the pressure update.
*
This is necessary to make sure the hanging nodes are treated correctly!
* The grid-adaptive implementation also reconstructs the velocity directly after the pressure update.
* This is necessary to make sure the hanging nodes are treated correctly!
*/
void
update
()
{
...
...
@@ -196,7 +193,6 @@ public:
* \brief Adds pressure output to the output file
*
* \copydetails FVPressure2P::addOutputVtkFields(MultiWriter&)
*
*/
template
<
class
MultiWriter
>
void
addOutputVtkFields
(
MultiWriter
&
writer
)
...
...
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureproperties.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines the properties required for finite volume pressure models in a two-phase sequential model.
*/
#ifndef DUMUX_FVPRESSUREPORPERTIES2P_SEQUENTIAL_HH
#define DUMUX_FVPRESSUREPORPERTIES2P_SEQUENTIAL_HH
...
...
@@ -35,7 +34,6 @@ namespace Dumux {
// Forward declarations
////////////////////////////////
////////////////////////////////
// Properties
////////////////////////////////
...
...
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressurepropertiesadaptive.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines the properties required for finite volume pressure models in a two-phase sequential model.
*/
#ifndef DUMUX_FVPRESSUREPORPERTIES2P_ADAPTIVE_SEQUENTIAL_HH
#define DUMUX_FVPRESSUREPORPERTIES2P_ADAPTIVE_SEQUENTIAL_HH
...
...
@@ -34,7 +33,6 @@ namespace Dumux {
// Forward declarations
////////////////////////////////
////////////////////////////////
// Properties
////////////////////////////////
...
...
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressurevelocity.hh
View file @
b9b3d5c6
...
...
@@ -21,18 +21,14 @@
* \ingroup SequentialTwoPModel
* \brief Two-phase finite volume model
*/
#ifndef DUMUX_FVPRESSUREVELOCITY2P_HH
#define DUMUX_FVPRESSUREVELOCITY2P_HH
// dumux environment
#include "pressure.hh"
#include <dumux/porousmediumflow/2p/sequential/properties.hh>
#include <dumux/porousmediumflow/sequential/cellcentered/velocity.hh>
namespace
Dumux
{
/*!
* \ingroup SequentialTwoPModel
...
...
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Velocity field from a finite volume solution of a pressure equation.
*/
#ifndef DUMUX_FVVELOCITY2P_HH
#define DUMUX_FVVELOCITY2P_HH
...
...
dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh
View file @
b9b3d5c6
...
...
@@ -21,18 +21,17 @@
* \ingroup SequentialTwoPModel
* \brief Velocity field from a finite volume solution of a pressure equation.
*/
#ifndef DUMUX_FVVELOCITY2P_ADAPTIVE_HH
#define DUMUX_FVVELOCITY2P_ADAPTIVE_HH
#include <dune/common/float_cmp.hh>
#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh>
namespace
Dumux
{
namespace
Dumux
{
/*!
* \brief Determines the velocity from a finite volume solution of the pressure equation of a sequential model (IMPES).
* \ingroup SequentialTwoPModel
* \brief Determines the velocity from a finite volume solution of the pressure equation of a sequential model (IMPES).
*
* Details see FVVelocity2P
*/
...
...
@@ -157,11 +156,11 @@ private:
/*!
* \brief Calculates the velocity at a cell-cell interface.
*
* \copydetails FVVelocity2P::calculateVelocity(const Intersection&,CellData&)
*
* Implementation of calculateVelocity() function for cell-cell interfaces with hanging nodes.
*/
*
* \copydetails FVVelocity2P::calculateVelocity(const Intersection&,CellData&)
*
* Implementation of calculateVelocity() function for cell-cell interfaces with hanging nodes.
*/
template
<
class
TypeTag
>
void
FVVelocity2PAdaptive
<
TypeTag
>::
calculateVelocity
(
const
Intersection
&
intersection
,
CellData
&
cellData
)
{
...
...
dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperator.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines a class for Crozieux-Raviart piecewise linear finite element functions.
*/
#ifndef DUMUX_CROPERATOR2P_HH
#define DUMUX_CROPERATOR2P_HH
...
...
@@ -46,8 +45,8 @@
#include <dumux/common/boundaryconditions.hh>
#include "localstiffness.hh"
namespace
Dumux
{
namespace
Dumux
{
/*!
* \ingroup SequentialTwoPModel
* \brief Extends CROperatorBase by a generic methods to assemble global stiffness matrix from local stiffness matrices.
...
...
dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperatoradaptive.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines a class for Crozieux-Raviart piecewise linear finite element functions.
*/
#ifndef DUMUX_CROPERATOR2PADAPTIVE_HH
#define DUMUX_CROPERATOR2PADAPTIVE_HH
...
...
@@ -48,8 +47,8 @@
#include "localstiffness.hh"
#include <dumux/common/intersectionmapper.hh>
namespace
Dumux
{
namespace
Dumux
{
/*!
* \ingroup SequentialTwoPModel
* \brief Extends CROperatorBase by a generic methods to assemble global stiffness matrix from local stiffness matrices.
...
...
dumux/porousmediumflow/2p/sequential/diffusion/mimetic/localstiffness.hh
View file @
b9b3d5c6
...
...
@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Base class for assembling local stiffness matrices.
*/
#ifndef DUMUX_LOCAL_STIFFNESS_HH
#define DUMUX_LOCAL_STIFFNESS_HH
...
...
@@ -45,31 +44,32 @@
namespace
Dumux
{
/*!
*\brief Base class for local assemblers.
*
* This class serves as a base class for local assemblers. It provides space
* and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template
<
class
TypeTag
,
int
m
>
class
LocalStiffness
{
using
GridView
=
typename
GET_PROP_TYPE
(
TypeTag
,
GridView
);
using
Scalar
=
typename
GET_PROP_TYPE
(
TypeTag
,
Scalar
);
/*!
* \ingroup SequentialTwoPModel
* \brief Base class for local assemblers.
*
* This class serves as a base class for local assemblers. It provides space
* and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template
<
class
TypeTag
,
int
m
>
class
LocalStiffness
{
using
GridView
=
typename
GET_PROP_TYPE
(
TypeTag
,
GridView
);
using
Scalar
=
typename
GET_PROP_TYPE
(
TypeTag
,
Scalar
);
// grid types
using
Entity
=
typename
GridView
::
template
Codim
<
0
>
::
Entity
;
using
Entity
=
typename
GridView
::
template
Codim
<
0
>
::
Entity
;
enum
{
n
=
GridView
::
dimension
};
public:
public:
// types for matrics, vectors and boundary conditions
using
MBlockType
=
Dune
::
FieldMatrix
<
Scalar
,
m
,
m
>
;
// one entry in the stiffness matrix
using
VBlockType
=
Dune
::
FieldVector
<
Scalar
,
m
>
;
// one entry in the global vectors
using
BCBlockType
=
std
::
array
<
BoundaryConditions
::
Flags
,
m
>
;
// componentwise boundary conditions
using
BoundaryTypes
=
typename
GET_PROP_TYPE
(
TypeTag
,
BoundaryTypes
);
using
BCBlockType
=
std
::
array
<
BoundaryConditions
::
Flags
,
m
>
;
// componentwise boundary conditions
using
BoundaryTypes
=
typename
GET_PROP_TYPE
(
TypeTag
,
BoundaryTypes
);
virtual
~
LocalStiffness
()
{
...
...
@@ -95,33 +95,33 @@ namespace Dumux {
* \param e a codim 0 entity reference
* \param k order of Lagrange basis (default is 1)
*/
virtual
void
assemble
(
const
Entity
&
e
,
int
k
=
1
)
=
0
;
virtual
void
assemble
(
const
Entity
&
e
,
int
k
=
1
)
=
0
;
/*!
* \brief assemble local stiffness matrix including boundary conditions for given element and order
*
* Unlike the method with only two arguments, this one additionally takes the local solution in order
* to allow assembly of nonlinear operators.
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either Neumann, process or Dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).
* Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value
* in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet
* boundary.
* - The right hand side has been assembled. It contains either the value of the essential boundary
* condition or the assembled source term and Neumann boundary condition.
* It is accessible via the rhs() method.
*
*\param e a codim 0 entity reference
* \param localSolution The current solution on the entity, which is needed by nonlinear assemblers
* \param k order of Lagrange basis (default is 1)
*/
virtual
void
assemble
(
const
Entity
&
e
,
const
Dune
::
BlockVector
<
VBlockType
>&
localSolution
,
int
k
=
1
)
=
0
;
/*!
* \brief assemble local stiffness matrix including boundary conditions for given element and order
*
* Unlike the method with only two arguments, this one additionally takes the local solution in order
* to allow assembly of nonlinear operators.
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either Neumann, process or Dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).
* Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value
* in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet
* boundary.
* - The right hand side has been assembled. It contains either the value of the essential boundary
* condition or the assembled source term and Neumann boundary condition.
* It is accessible via the rhs() method.
*
*
\param e a codim 0 entity reference
* \param localSolution The current solution on the entity, which is needed by nonlinear assemblers
* \param k order of Lagrange basis (default is 1)
*/
virtual
void
assemble
(
const
Entity
&
e
,
const
Dune
::
BlockVector
<
VBlockType
>&
localSolution
,
int
k
=
1
)
=
0
;
/*!
* \brief assemble only boundary conditions for given element and order
...
...
@@ -142,15 +142,15 @@ namespace Dumux {
* \param e a codim 0 entity reference
* \param k order of Lagrange basis (default is 1)
*/
virtual
void
assembleBoundaryCondition
(
const
Entity
&
e
,
int
k
=
1
)
=
0
;
virtual
void
assembleBoundaryCondition
(
const
Entity
&
e
,
int
k
=
1
)
=
0
;
/*!
* \brief Prints contents of local stiffness matrix
*
* \param s output stream
* \param width the width
* \param precision the precision
*/
/*!
* \brief Prints contents of local stiffness matrix
*
* \param s output stream
* \param width the width
* \param precision the precision
*/
void
print
(
std
::
ostream
&
s
,
int
width
,
int
precision
)
{
// set the output format
...
...
@@ -199,7 +199,6 @@ namespace Dumux {
return
A
[
i
][
j
];
}
/*!
* \brief Accesses right hand side
*
...
...
@@ -246,85 +245,84 @@ namespace Dumux {
return
A
.
N
();
}
protected:
protected:
// assembled data
Dune
::
Matrix
<
MBlockType
>
A
;
std
::
vector
<
VBlockType
>
b
;
std
::
vector
<
BoundaryTypes
>
bctype
;
};
Dune
::
Matrix
<
MBlockType
>
A
;
std
::
vector
<
VBlockType
>
b
;
std
::
vector
<
BoundaryTypes
>
bctype
;
};
/*!
* \brief Base class for linear local assemblers
*
* This class serves as a base class for linear local assemblers. It provides
* space and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template
<
class
TypeTag
,
int
m
>
class
LinearLocalStiffness
:
public
LocalStiffness
<
TypeTag
,
m
>
{
using
GridView
=
typename
GET_PROP_TYPE
(
TypeTag
,
GridView
);
using
Scalar
=
typename
GET_PROP_TYPE
(
TypeTag
,
Scalar
);
/*!
* \ingroup SequentialTwoPModel
* \brief Base class for linear local assemblers
*
* This class serves as a base class for linear local assemblers. It provides
* space and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template
<
class
TypeTag
,
int
m
>
class
LinearLocalStiffness
:
public
LocalStiffness
<
TypeTag
,
m
>
{
using
GridView
=
typename
GET_PROP_TYPE
(
TypeTag
,
GridView
);
using
Scalar
=
typename
GET_PROP_TYPE
(
TypeTag
,
Scalar
);
// grid types
using
Entity
=
typename
GridView
::
template
Codim
<
0
>
::
Entity
;
using
Entity
=
typename
GridView
::
template
Codim
<
0
>
::
Entity
;
enum
{
n
=
GridView
::
dimension
};
public:
public:
// types for matrics, vectors and boundary conditions
using
MBlockType
=
Dune
::
FieldMatrix
<
Scalar
,
m
,
m
>
;
// one entry in the stiffness matrix
using
VBlockType
=
Dune
::
FieldVector
<
Scalar
,
m
>
;
// one entry in the global vectors
using
BCBlockType
=
std
::
array
<
BoundaryConditions
::
Flags
,
m
>
;
// componentwise boundary conditions
using
MBlockType
=
Dune
::
FieldMatrix
<
Scalar
,
m
,
m
>
;
// one entry in the stiffness matrix
using
VBlockType
=
Dune
::
FieldVector
<
Scalar
,
m
>
;
// one entry in the global vectors
using
BCBlockType
=
std
::
array
<
BoundaryConditions
::
Flags
,
m
>
;
// componentwise boundary conditions
/*! Initialize local stiffness matrix */
LinearLocalStiffness
()
{}
LinearLocalStiffness
()
{}
virtual
~
LinearLocalStiffness
()
{
}
/*!
* \brief Assembles local stiffness matrix including boundary conditions for given element and order
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either neumann, process or dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).
* Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value
* in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet
* boundary.
* - The right hand side has been assembled. It contains either the value of the essential boundary
* condition or the assembled source term and neumann boundary condition.
* It is accessible via the rhs() method.
*
* \param e a codim 0 entity reference
* \param k order of Lagrange basis (default is 1)
*/
virtual
void
assemble
(
const
Entity
&
e
,
int
k
=
1
)
=
0
;
virtual
~
LinearLocalStiffness
()
{
}
/*!
* \brief Assembles local stiffness matrix including boundary conditions for given element and order
*
* Since this is a base class for linear assemblers, the local solution will be ignored.
*
* \param e a codim 0 entity reference
* \param localSolution The current solution on the entity, which is needed by nonlinear assemblers
* \param k order of Lagrange basis (default is 1)
*/
virtual
void
assemble
(
const
Entity
&
e
,
const
Dune
::
BlockVector
<
VBlockType
>&
localSolution
,
int
k
=
1
)
{
assemble
(
e
,
k
);
}
/*!
* \brief Assembles local stiffness matrix including boundary conditions for given element and order
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either neumann, process or dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).