20 #ifndef OPM_EXPLICIT_ARRAYS_SAT_DERIVATIVES_FLUID_STATE_HEADER_INCLUDED 21 #define OPM_EXPLICIT_ARRAYS_SAT_DERIVATIVES_FLUID_STATE_HEADER_INCLUDED 23 #include <opm/material/densead/Evaluation.hpp> 24 #include <opm/material/densead/Math.hpp> 26 #include <opm/core/props/BlackoilPhases.hpp> 44 enum { numPhases = BlackoilPhases::MaxNumPhases };
45 enum { numComponents = 3 };
47 typedef Opm::DenseAd::Evaluation<double, numPhases> Evaluation;
48 typedef Evaluation Scalar;
51 : phaseUsage_(phaseUsage)
53 globalSaturationArray_ = 0;
56 for (
int phaseIdx = 0; phaseIdx < numPhases; ++ phaseIdx) {
57 saturation_[phaseIdx] = Evaluation::createVariable(0.0, phaseIdx);
69 int np = phaseUsage_.num_phases;
73 for (
int phaseIdx = 0; phaseIdx < numPhases; ++ phaseIdx) {
74 if (!phaseUsage_.phase_used[phaseIdx]) {
75 saturation_[phaseIdx].setValue(0.0);
78 saturation_[phaseIdx].setValue(globalSaturationArray_[np*arrayIdx + phaseUsage_.phase_pos[phaseIdx]]);
92 { globalSaturationArray_ = saturations; }
98 {
return saturation_[phaseIdx]; }
104 const double* globalSaturationArray_;
106 std::array<Evaluation, numPhases> saturation_;
This is a fluid state which translates global arrays and translates them to a subset of the fluid sta...
Definition: ExplicitArraysSatDerivativesFluidState.hpp:41
const Evaluation & saturation(int phaseIdx) const
Returns the saturation of a phase for the current cell index.
Definition: ExplicitArraysSatDerivativesFluidState.hpp:97
void setIndex(unsigned arrayIdx)
Sets the currently used array index.
Definition: ExplicitArraysSatDerivativesFluidState.hpp:67
Definition: AnisotropicEikonal.cpp:446
void setSaturationArray(const double *saturations)
Set the array containing the phase saturations.
Definition: ExplicitArraysSatDerivativesFluidState.hpp:91
Definition: BlackoilPhases.hpp:36