55 unsigned satRegion(std::size_t active_index)
const {
56 return this->compressed_satnum[active_index] - 1;
59 double permx(std::size_t active_index)
const {
60 return this->compressed_permx[active_index];
63 double permy(std::size_t active_index)
const {
64 return this->compressed_permy[active_index];
67 double permz(std::size_t active_index)
const {
68 return this->compressed_permz[active_index];
71 double poro(std::size_t active_index)
const {
72 return this->compressed_poro[active_index];
75 const double * swl(std::size_t active_index)
const {
76 return this->satfunc(this->compressed_swl, active_index);
79 const double * sgl(std::size_t active_index)
const {
80 return this->satfunc(this->compressed_sgl, active_index);
83 const double * swcr(std::size_t active_index)
const {
84 return this->satfunc(this->compressed_swcr, active_index);
87 const double * sgcr(std::size_t active_index)
const {
88 return this->satfunc(this->compressed_sgcr, active_index);
91 const double * sowcr(std::size_t active_index)
const {
92 return this->satfunc(this->compressed_sowcr, active_index);
95 const double * sogcr(std::size_t active_index)
const {
96 return this->satfunc(this->compressed_sogcr, active_index);
99 const double * swu(std::size_t active_index)
const {
100 return this->satfunc(this->compressed_swu, active_index);
103 const double * sgu(std::size_t active_index)
const {
104 return this->satfunc(this->compressed_sgu, active_index);
107 const double * pcw(std::size_t active_index)
const {
108 return this->satfunc(this->compressed_pcw, active_index);
111 const double * pcg(std::size_t active_index)
const {
112 return this->satfunc(this->compressed_pcg, active_index);
115 const double * krw(std::size_t active_index)
const {
116 return this->satfunc(this->compressed_krw, active_index);
119 const double * krwr(std::size_t active_index)
const {
120 return this->satfunc(this->compressed_krwr, active_index);
123 const double * krg(std::size_t active_index)
const {
124 return this->satfunc(this->compressed_krg, active_index);
127 const double * krgr(std::size_t active_index)
const {
128 return this->satfunc(this->compressed_krgr, active_index);
131 const double * kro(std::size_t active_index)
const {
132 return this->satfunc(this->compressed_kro, active_index);
135 const double * krorg(std::size_t active_index)
const {
136 return this->satfunc(this->compressed_krorg, active_index);
139 const double * krorw(std::size_t active_index)
const {
140 return this->satfunc(this->compressed_krorw, active_index);
145 satfunc(
const std::vector<double>& data,
146 const std::size_t active_index)
const
148 return data.empty() ? nullptr : &data[active_index];
152 std::vector<int> compressed_satnum;
153 std::vector<double> compressed_swl;
154 std::vector<double> compressed_sgl;
155 std::vector<double> compressed_swcr;
156 std::vector<double> compressed_sgcr;
157 std::vector<double> compressed_sowcr;
158 std::vector<double> compressed_sogcr;
159 std::vector<double> compressed_swu;
160 std::vector<double> compressed_sgu;
161 std::vector<double> compressed_pcw;
162 std::vector<double> compressed_pcg;
163 std::vector<double> compressed_krw;
164 std::vector<double> compressed_krwr;
165 std::vector<double> compressed_kro;
166 std::vector<double> compressed_krorg;
167 std::vector<double> compressed_krorw;
168 std::vector<double> compressed_krg;
169 std::vector<double> compressed_krgr;
171 std::vector<double> compressed_permx;
172 std::vector<double> compressed_permy;
173 std::vector<double> compressed_permz;
174 std::vector<double> compressed_poro;