Opm::FlowDiagnostics::TracerTofSolver Class Reference

#include <TracerTofSolver.hpp>

Classes

struct  LocalSolution
 Output data struct for solveLocal(). More...
 

Public Member Functions

 TracerTofSolver (const AssembledConnections &graph, const AssembledConnections &reverse_graph, const std::vector< double > &pore_volumes, const CellSetValues &source_inflow)
 
std::vector< double > solveGlobal ()
 
LocalSolution solveLocal (const CellSetValues &startset)
 

Detailed Description

Class for solving the tracer and time-of-flight equations.

Implements a first-order finite volume solver for (single-phase) time-of-flight using reordering. The equation solved is:

\[v \cdot \nabla\tau = \phi\]

in which $ v $ is the fluid velocity, $ \tau $ is time-of-flight and $ \phi $ is the porosity. This is a boundary value problem, and $ \tau $ is considered zero on all inflow boundaries (or well inflows).

The tracer equation is the same, except for the right hand side which is zero instead of

\[\phi\]

.

Constructor & Destructor Documentation

◆ TracerTofSolver()

Opm::FlowDiagnostics::TracerTofSolver::TracerTofSolver ( const AssembledConnections graph,
const AssembledConnections reverse_graph,
const std::vector< double > &  pore_volumes,
const CellSetValues source_inflow 
)

Initialize solver with a given flow graph (a weighted, directed acyclic graph) containing the out-fluxes from each cell, the reverse graph (with in-fluxes from each cell), pore volumes and all (positive) inflow sources. If there are multiple inflow sources for a single cell, they should be added before passing to this function.

Member Function Documentation

◆ solveGlobal()

std::vector< double > Opm::FlowDiagnostics::TracerTofSolver::solveGlobal ( )

Compute the global (combining all sources) time-of-flight of each cell.

TODO: also compute tracer solution.

◆ solveLocal()

LocalSolution Opm::FlowDiagnostics::TracerTofSolver::solveLocal ( const CellSetValues startset)

Compute a local solution tracer and time-of-flight solution.

Local means that only cells downwind from he startset are considered. The solution is therefore potentially sparse. The startset must contain the (nonnegative) source term for each start cell.


The documentation for this class was generated from the following file: