Fixes and improvements to time-of-flight solver docs.

This commit is contained in:
Atgeirr Flø Rasmussen 2013-03-21 14:51:49 +01:00
parent 71057d69db
commit 213e143c47
4 changed files with 32 additions and 53 deletions

View File

@ -35,22 +35,6 @@ namespace Opm
/// Construct solver. /// Construct solver.
/// \param[in] grid A 2d or 3d grid.
/// \param[in] param Parameters for the solver.
/// The following parameters are accepted (defaults):
/// use_cvi (false) Use ECVI velocity interpolation.
/// use_limiter (false) Use a slope limiter. If true, the next three parameters are used.
/// limiter_relative_flux_threshold (1e-3) Ignore upstream fluxes below this threshold, relative to total cell flux.
/// limiter_method ("MinUpwindFace") Limiter method used. Accepted methods are:
/// MinUpwindFace Limit cell tof to >= inflow face tofs.
/// limiter_usage ("DuringComputations") Usage pattern for limiter. Accepted choices are:
/// DuringComputations Apply limiter to cells as they are computed,
/// so downstream cells' solutions may be affected
/// by limiting in upstream cells.
/// AsPostProcess Apply in dependency order, but only after
/// computing (unlimited) solution.
/// AsSimultaneousPostProcess Apply to each cell independently, using un-
/// limited solution in neighbouring cells.
TofDiscGalReorder::TofDiscGalReorder(const UnstructuredGrid& grid, TofDiscGalReorder::TofDiscGalReorder(const UnstructuredGrid& grid,
const parameter::ParameterGroup& param) const parameter::ParameterGroup& param)
: grid_(grid), : grid_(grid),
@ -111,18 +95,6 @@ namespace Opm
/// Solve for time-of-flight. /// Solve for time-of-flight.
/// \param[in] darcyflux Array of signed face fluxes.
/// \param[in] porevolume Array of pore volumes.
/// \param[in] source Source term. Sign convention is:
/// (+) inflow flux,
/// (-) outflow flux.
/// \param[in] degree Polynomial degree of DG basis functions used.
/// \param[out] tof_coeff Array of time-of-flight solution coefficients.
/// The values are ordered by cell, meaning that
/// the K coefficients corresponding to the first
/// cell comes before the K coefficients corresponding
/// to the second cell etc.
/// K depends on degree and grid dimension.
void TofDiscGalReorder::solveTof(const double* darcyflux, void TofDiscGalReorder::solveTof(const double* darcyflux,
const double* porevolume, const double* porevolume,
const double* source, const double* source,

View File

@ -39,10 +39,10 @@ namespace Opm
/// Implements a discontinuous Galerkin solver for /// Implements a discontinuous Galerkin solver for
/// (single-phase) time-of-flight using reordering. /// (single-phase) time-of-flight using reordering.
/// The equation solved is: /// The equation solved is:
/// v \cdot \grad\tau = \phi /// \f[v \cdot \nabla\tau = \phi\f]
/// where v is the fluid velocity, \tau is time-of-flight and /// where \f$ v \f$ is the fluid velocity, \f$ \tau \f$ is time-of-flight and
/// \phi is the porosity. This is a boundary value problem, where /// \f$ \phi \f$ is the porosity. This is a boundary value problem, where
/// \tau is specified to be zero on all inflow boundaries. /// \f$ \tau \f$ is specified to be zero on all inflow boundaries.
/// The user may specify the polynomial degree of the basis function space /// The user may specify the polynomial degree of the basis function space
/// used, but only degrees 0 and 1 are supported so far. /// used, but only degrees 0 and 1 are supported so far.
class TofDiscGalReorder : public ReorderSolverInterface class TofDiscGalReorder : public ReorderSolverInterface
@ -51,23 +51,29 @@ namespace Opm
/// Construct solver. /// Construct solver.
/// \param[in] grid A 2d or 3d grid. /// \param[in] grid A 2d or 3d grid.
/// \param[in] param Parameters for the solver. /// \param[in] param Parameters for the solver.
/// The following parameters are accepted (defaults): /// The following parameters are accepted (defaults):\n
/// dg_degree (0) Polynomial degree of basis functions. /// <ul>
/// use_tensorial_basis (false) Use tensor-product basis, interpreting dg_degree as /// <li> \c dg_degree (0) Polynomial degree of basis functions.
/// bi/tri-degree not total degree. /// <li> \c use_tensorial_basis (false) Use tensor-product basis, interpreting dg_degree as
/// use_cvi (false) Use ECVI velocity interpolation. /// bi/tri-degree not total degree.
/// use_limiter (false) Use a slope limiter. If true, the next three parameters are used. /// <li> \c use_cvi (false) Use ECVI velocity interpolation.
/// limiter_relative_flux_threshold (1e-3) Ignore upstream fluxes below this threshold, relative to total cell flux. /// <li> \c use_limiter (false) Use a slope limiter. If true, the next three parameters are used.
/// limiter_method ("MinUpwindFace") Limiter method used. Accepted methods are: /// <li> \c limiter_relative_flux_threshold (1e-3) Ignore upstream fluxes below this threshold, relative to total cell flux.
/// MinUpwindFace Limit cell tof to >= inflow face tofs. /// <li> \c limiter_method ("MinUpwindFace") Limiter method used. Accepted methods are:
/// limiter_usage ("DuringComputations") Usage pattern for limiter. Accepted choices are: /// <ul>
/// DuringComputations Apply limiter to cells as they are computed, /// <li> MinUpwindFace Limit cell tof to >= inflow face tofs.
/// so downstream cells' solutions may be affected /// <li> MinUpwindAverage Limit cell tof to >= inflow cell average tofs.
/// by limiting in upstream cells. /// </ul>
/// AsPostProcess Apply in dependency order, but only after /// <li> \c limiter_usage ("DuringComputations") Usage pattern for limiter. Accepted choices are:
/// computing (unlimited) solution. /// <ul>
/// AsSimultaneousPostProcess Apply to each cell independently, using un- /// <li> DuringComputations Apply limiter to cells as they are computed,
/// limited solution in neighbouring cells. /// so downstream cells' solutions may be affected
/// by limiting in upstream cells.
/// <li> AsPostProcess Apply in dependency order, but only after
/// computing (unlimited) solution.
/// <li> AsSimultaneousPostProcess Apply to each cell independently, using un-
/// limited solution in neighbouring cells.
/// </ul>
TofDiscGalReorder(const UnstructuredGrid& grid, TofDiscGalReorder(const UnstructuredGrid& grid,
const parameter::ParameterGroup& param); const parameter::ParameterGroup& param);

View File

@ -30,6 +30,7 @@ namespace Opm
/// Construct solver. /// Construct solver.
/// \param[in] grid A 2d or 3d grid. /// \param[in] grid A 2d or 3d grid.
/// \param[in] use_multidim_upwind If true, use multidimensional tof upwinding.
TofReorder::TofReorder(const UnstructuredGrid& grid, TofReorder::TofReorder(const UnstructuredGrid& grid,
const bool use_multidim_upwind) const bool use_multidim_upwind)
: grid_(grid), : grid_(grid),

View File

@ -34,10 +34,10 @@ namespace Opm
/// Implements a first-order finite volume solver for /// Implements a first-order finite volume solver for
/// (single-phase) time-of-flight using reordering. /// (single-phase) time-of-flight using reordering.
/// The equation solved is: /// The equation solved is:
/// v \cdot \grad\tau = \phi /// \f[v \cdot \nabla\tau = \phi\f]
/// where v is the fluid velocity, \tau is time-of-flight and /// where \f$ v \f$ is the fluid velocity, \f$ \tau \f$ is time-of-flight and
/// \phi is the porosity. This is a boundary value problem, where /// \f$ \phi \f$ is the porosity. This is a boundary value problem, where
/// \tau is specified to be zero on all inflow boundaries. /// \f$ \tau \f$ is specified to be zero on all inflow boundaries.
class TofReorder : public ReorderSolverInterface class TofReorder : public ReorderSolverInterface
{ {
public: public: