Implements a first-order finite volume solver for (single-phase) time-of-flight using reordering. More...
#include <TofReorder.hpp>
Public Member Functions | |
TofReorder (const UnstructuredGrid &grid, const bool use_multidim_upwind=false) | |
Construct solver. More... | |
void | solveTof (const double *darcyflux, const double *porevolume, const double *source, std::vector< double > &tof) |
Solve for time-of-flight. More... | |
void | solveTofTracer (const double *darcyflux, const double *porevolume, const double *source, const SparseTable< int > &tracerheads, std::vector< double > &tof, std::vector< double > &tracer) |
Solve for time-of-flight and a number of tracers. More... | |
Additional Inherited Members | |
![]() | |
void | reorderAndTransport (const UnstructuredGrid &grid, const double *darcyflux) |
const std::vector< int > & | sequence () const |
const std::vector< int > & | components () const |
Implements a first-order finite volume solver for (single-phase) time-of-flight using reordering.
The equation solved is:
in which is the fluid velocity,
is time-of-flight and
is the porosity. This is a boundary value problem, and
is specified to be zero on all inflow boundaries.
Opm::TofReorder::TofReorder | ( | const UnstructuredGrid & | grid, |
const bool | use_multidim_upwind = false |
||
) |
Construct solver.
[in] | grid | A 2d or 3d grid. |
[in] | use_multidim_upwind | If true, use multidimensional tof upwinding. |
void Opm::TofReorder::solveTof | ( | const double * | darcyflux, |
const double * | porevolume, | ||
const double * | source, | ||
std::vector< double > & | tof | ||
) |
Solve for time-of-flight.
[in] | darcyflux | Array of signed face fluxes. |
[in] | porevolume | Array of pore volumes. |
[in] | source | Source term. Sign convention is: (+) inflow flux, (-) outflow flux. |
[out] | tof | Array of time-of-flight values. |
void Opm::TofReorder::solveTofTracer | ( | const double * | darcyflux, |
const double * | porevolume, | ||
const double * | source, | ||
const SparseTable< int > & | tracerheads, | ||
std::vector< double > & | tof, | ||
std::vector< double > & | tracer | ||
) |
Solve for time-of-flight and a number of tracers.
[in] | darcyflux | Array of signed face fluxes. |
[in] | porevolume | Array of pore volumes. |
[in] | source | Source term. Sign convention is: (+) inflow flux, (-) outflow flux. |
[in] | tracerheads | Table containing one row per tracer, and each row contains the source cells for that tracer. |
[out] | tof | Array of time-of-flight values (1 per cell). |
[out] | tracer | Array of tracer values. N per cell, where N is equalt to tracerheads.size(). |