diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-08-16 19:10:10 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-08-23 05:16:38 -0700 |
commit | 360f07e4533d4ede7ba494724382fc8dbcb4649c (patch) | |
tree | 73a222ad3469e8a7fd085cb2671d12dac664aeac /core/gas-model.c | |
parent | 5c4569247a31cf9f52238bd2b3f9c87b8f79933a (diff) | |
download | subsurface-360f07e4533d4ede7ba494724382fc8dbcb4649c.tar.gz |
Cleanup: pass gasmix by value
In a previous commit, the get_gasmix_* functions were changed to
return by value. For consistency, also pass gasmix by value.
Note that on common 64-bit platforms struct gasmix is the size
of a pointer [2 * 32 bit vs. 64 bit] and therefore uses the
same space on the stack. On 32-bit platforms, the stack use
is probably doubled, but in return a dereference is avoided.
Supporting arbitrary gas-mixes (H2, Ar, ...) will be such an
invasive change that going back to pointers is probably the
least of our worries.
This commit is a step in const-ifying input parameters (passing
by value is the ultimate way of signaling that the input parameter
will not be changed [unless there are references to said parameter]).
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/gas-model.c')
-rw-r--r-- | core/gas-model.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/gas-model.c b/core/gas-model.c index 49c677967..7fb9ce111 100644 --- a/core/gas-model.c +++ b/core/gas-model.c @@ -26,7 +26,7 @@ * NOTE! Helium coefficients are a linear mix operation between the * 323K and one for 273K isotherms, to make everything be at 300K. */ -double gas_compressibility_factor(struct gasmix *gas, double bar) +double gas_compressibility_factor(struct gasmix gas, double bar) { static const double o2_coefficients[3] = { -7.18092073703e-04, @@ -69,15 +69,15 @@ double gas_compressibility_factor(struct gasmix *gas, double bar) /* Compute the new pressure when compressing (expanding) volome v1 at pressure p1 bar to volume v2 * taking into account the compressebility (to first order) */ -double isothermal_pressure(struct gasmix *gas, double p1, int volume1, int volume2) +double isothermal_pressure(struct gasmix gas, double p1, int volume1, int volume2) { double p_ideal = p1 * volume1 / volume2 / gas_compressibility_factor(gas, p1); return p_ideal * gas_compressibility_factor(gas, p_ideal); } -inline double gas_density(struct gasmix *gas, int pressure) { - int density = gas->he.permille * HE_DENSITY + gas->o2.permille * O2_DENSITY + (1000 - gas->he.permille - gas->o2.permille) * N2_DENSITY; +inline double gas_density(struct gasmix gas, int pressure) { + int density = gas.he.permille * HE_DENSITY + gas.o2.permille * O2_DENSITY + (1000 - gas.he.permille - gas.o2.permille) * N2_DENSITY; return density * (double) pressure / gas_compressibility_factor(gas, pressure / 1000.0) / SURFACE_PRESSURE / 1000000.0; } |