mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-18 21:43:27 -06:00
Fixes and improvements to time-of-flight solver docs.
This commit is contained in:
parent
71057d69db
commit
213e143c47
@ -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,
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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),
|
||||||
|
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user