mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Simulator programs and utilities for automatic differentiation.
Specifically, - Introduce a new class, UpwindSelector<Scalar> which provides a selection service (method select()) to pick out a quantity across an interface in the upwind direction. Method select() is implemented only for the case of no counter-current flow (i.e., no effects of gravity and/or capillary pressure). The selector is affected through applying an explicit sparse matrix to each quantity. This may be inefficient, but only measurements will tell. - Split function fluxFunc<ADB>() into two components, phaseMobility<ADB>() and fluxFunc<ADB>(). The former computes phase mobilities (per cell) for water and oil in a subset of the grid cells and the latter computes the flux function (for water, i.e., the first phase) based on a (2-) vector of phase mobilities--either per cell or per internal interface. - Compute explicit phase mobilities (per cell) in the non-linear loop before employing the upwind selector to pick out proper upwind mobilities per (internal) interface to define the quantity 'fw_face' which was previously computed by an arithmetic average. |
||
---|---|---|
.gitignore | ||
AutoDiff.hpp | ||
AutoDiffBlock.hpp | ||
AutoDiffVec.hpp | ||
find_zero.cpp | ||
README.md | ||
sim_simple.cpp | ||
test_ad.cpp | ||
test_block.cpp | ||
test_syntax.cpp | ||
test_vec.cpp |
autodiff-experimental
Experiments in Automatic Differentiation