Opm::TransportSolverTwophaseAd Class Reference

Implements an implicit transport solver for incompressible two-phase flow, using automatic differentiation. More...

#include <TransportSolverTwophaseAd.hpp>

Inheritance diagram for Opm::TransportSolverTwophaseAd:

Public Member Functions

 TransportSolverTwophaseAd (const UnstructuredGrid &grid, const IncompPropertiesInterface &props, const LinearSolverInterface &linsolver, const double *gravity, const ParameterGroup &param)
 Construct solver. More...
 
virtual void solve (const double *porevolume, const double *source, const double dt, TwophaseState &state)
 Solve for saturation at next timestep. More...
 

Detailed Description

Implements an implicit transport solver for incompressible two-phase flow, using automatic differentiation.

Constructor & Destructor Documentation

◆ TransportSolverTwophaseAd()

Opm::TransportSolverTwophaseAd::TransportSolverTwophaseAd ( const UnstructuredGrid &  grid,
const IncompPropertiesInterface &  props,
const LinearSolverInterface &  linsolver,
const double *  gravity,
const ParameterGroup &  param 
)

Construct solver.

Parameters
[in]gridA 2d or 3d grid.
[in]propsRock and fluid properties.
[in]linsolverLinear solver for Newton-Raphson scheme.
[in]gravityGravity vector (null for no gravity).
[in]paramParameters for the solver.

Member Function Documentation

◆ solve()

void Opm::TransportSolverTwophaseAd::solve ( const double *  porevolume,
const double *  source,
const double  dt,
TwophaseState &  state 
)
virtual

Solve for saturation at next timestep.

Note that this only performs advection by total velocity, and no gravity segregation.

Parameters
[in]porevolumeArray of pore volumes.
[in]sourceTransport source term. For interpretation see Opm::computeTransportSource().
[in]dtTime step.
[in,out]stateReservoir state. Calling solve() will read state.faceflux() and read and write state.saturation().

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