Implements an implicit transport solver for incompressible two-phase flow, using automatic differentiation. More...
#include <TransportSolverTwophaseAd.hpp>
Public Member Functions | |
TransportSolverTwophaseAd (const UnstructuredGrid &grid, const IncompPropertiesInterface &props, const LinearSolverInterface &linsolver, const double *gravity, const ParameterGroup ¶m) | |
Construct solver. More... | |
virtual void | solve (const double *porevolume, const double *source, const double dt, TwophaseState &state) |
Solve for saturation at next timestep. More... | |
Implements an implicit transport solver for incompressible two-phase flow, using automatic differentiation.
Opm::TransportSolverTwophaseAd::TransportSolverTwophaseAd | ( | const UnstructuredGrid & | grid, |
const IncompPropertiesInterface & | props, | ||
const LinearSolverInterface & | linsolver, | ||
const double * | gravity, | ||
const ParameterGroup & | param | ||
) |
Construct solver.
[in] | grid | A 2d or 3d grid. |
[in] | props | Rock and fluid properties. |
[in] | linsolver | Linear solver for Newton-Raphson scheme. |
[in] | gravity | Gravity vector (null for no gravity). |
[in] | param | Parameters for the solver. |
|
virtual |
Solve for saturation at next timestep.
Note that this only performs advection by total velocity, and no gravity segregation.
[in] | porevolume | Array of pore volumes. |
[in] | source | Transport source term. For interpretation see Opm::computeTransportSource(). |
[in] | dt | Time step. |
[in,out] | state | Reservoir state. Calling solve() will read state.faceflux() and read and write state.saturation(). |