Commit 57faf61d authored by Sina Ackermann's avatar Sina Ackermann Committed by Simon Emmert

[doxygen] Adapt documentation for compositional, immiscible models and general

parent a06acdf4
......@@ -18,10 +18,11 @@
*****************************************************************************/
/*!
* \file
* \ingroup PorousmediumCompositional
* \ingroup PorousmediumflowModels
* \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 PorousmediumCompositional
* \ingroup PorousmediumflowModels
* \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 Evaluates 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
......
......@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
* \ingroup PorousmediumCompositional
* \brief The primary variable switch base class for compositional models
* \ingroup PorousmediumflowModels
* \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 ImplicitModel
* \brief Empty class for models without pri var switch
* \ingroup PorousmediumflowModels
* \brief Empty class for models without pri var switch.
*/
class NoPrimaryVariableSwitch
{
......@@ -51,8 +52,8 @@ public:
};
/*!
* \ingroup PorousmediumCompositional
* \brief The primary variable switch controlling the phase presence state variable
* \ingroup PorousmediumflowModels
* \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 Updates 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:
//! return actual implementation (static polymorphism)
//! Return actual implementation (static polymorphism)
Implementation &asImp_()
{ return *static_cast<Implementation*>(this); }
//! return actual implementation (static polymorphism)
//! Return actual implementation (static polymorphism)
const Implementation &asImp_() const
{ return *static_cast<const Implementation*>(this); }
// perform variable switch at a degree of freedom location
// Perform variable switch at a degree of freedom location
template<class VolumeVariables, class GlobalPosition>
bool update_(typename VolumeVariables::PrimaryVariables& priVars,
const VolumeVariables& volVars,
......
......@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
* \ingroup PorousmediumCompositional
* \brief A primary variable vector with a state to allow variable switches
* \ingroup PorousmediumflowModels
* \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 PorousmediumCompositional
* \brief A primary variable vector with a state to allow variable switches
* \ingroup PorousmediumflowModels
* \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:
//! inherit the constructors
//! Inherit the constructors
using ParentType::ParentType;
//! use the assignment operators from the field vector
//! Use the assignment operators from the field vector
using ParentType::operator=;
//! Ask for the state of this primary variable object, e.g. the phase presence
......
......@@ -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 ImplicitModel
* \ingroup PorousmediumflowModels
* \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
......
......@@ -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 ImplicitModel
* \ingroup PorousmediumflowModels
* \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()>
{};
//! specialization of the flux variables cache for the cell centered finite volume mpfa scheme
//! stores data which is commonly used by all the different types of processes
//! Specialization of the flux variables cache for the cell centered finite volume mpfa scheme.
//! Stores 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
......
......@@ -18,7 +18,7 @@
*****************************************************************************/
/*!
* \file
* \ingroup PorousmediumImmiscible
* \ingroup PorousmediumflowModels
* \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 PorousmediumImmiscible
* \ingroup PorousmediumflowModels
* \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 Evaluatex 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 Evaluatex the mass flux over a face of a sub control volume.
*
* \param problem TODO docme!
* \param problem The 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 computation
*/
NumEqVector computeFlux(const Problem& problem,
const Element& element,
......
......@@ -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:
//! export spatial parameter type
//! Export 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 "")
......
......@@ -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.
*/
......
......@@ -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:
}
}
//! returns whether or not velocity output is enabled
//! Returns whether or not velocity output is enabled.
bool enableOutput() const override { return enableOutput_; }
//! returns the phase name of a given phase index
//! Returns the phase name of a given phase index.
std::string phaseName(int phaseIdx) const override { return FluidSystem::phaseName(phaseIdx); }
//! returns the number of phases
//! Returns 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
//! Calculates 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,
......
......@@ -18,18 +18,19 @@
*****************************************************************************/
/*!
* \file
* \ingroup PorousmediumFlow
* \ingroup PorousmediumflowModels
* \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 PorousmediumFlow
* \brief The isothermal base class
* \ingroup PorousmediumflowModels
* \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:
//! export the type used for the primary variables
//! Export the type used for the primary variables
using PrimaryVariables = typename Traits::PrimaryVariables;
//! export the type encapsulating primary variable indices
//! Export the type encapsulating primary variable indices
using Indices = typename Traits::ModelTraits::Indices;
//! return number of phases considered by the model
//! Return number of phases considered by the model
static constexpr int numFluidPhases() { return Traits::ModelTraits::numFluidPhases(); }
//! return number of components considered by the model
//! Return 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 Updates 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 Returns the vector of primary variables.
*/
const PrimaryVariables &priVars() const
{ return priVars_; }
/*!
* \brief Return a component of primary variable vector
* \brief Returns 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 Returns 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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment