IMHO it is perfectly okay to have some references to wikipedia for
basic stuff. Reason: Other online sources are also not reliable and
can usually found in the reference section of the wikipedia
article. (also, even for normal textbooks, there are the occational
errors.)
- extend some comments
- assume an ideal mixture for gas everywhere, i.e. use the partial
pressure to calculate the "partial" specific quantities like
e.g. the specific partial enthalpies of water and nitrogen
- let the water and nitrogen component determine the "partial
densities" of gas if the complex relations are enabled. before, an
ideal gas was assumed. (now the individual components can be
non-ideal gases, but we still assume an ideal mixture.)
for mixtures using cubic EOS, this means that the parameters of the
pure components do not need to be re-calculated if updateComposition()
is called. (they only depend on temperature!) this is a actually a
quite important optimization for cubic EOS because calculating the
parameters of the pure components is the most expensive part in
calculating parameters of the mixture.
For cubic EOS, the critical values only depends on the attractive
paramter "a" and the co-volume of the fluid "b" which makes them an
easy prey for tabulation. also added: a class which does bi-linear
interpolation on an arbitrary function.
TODO: extend Dumux::Tabulated2DFunction so that upper and lower limit
curves f(x) and g(x) can be specified and the sampling points do
not need to be equidistant anymore. If this is done, use it for
Dumux::TabulatedMaterial2.
MORE TODO: In Dumux::Tabulated2DFunction, do not use linear
interpolation, but take the partial derivatives at the
sampling points into account. then, interpolate the partial
derivatives linearly between the sample points. I have not
spend too much time thinking about the, though...
an overlay fluid state takes an arbitrary other fluid state as an
argument to which it forwards everything except the quantity which it
overlays.
also, the fluidsystems test now tests all fluid states for API conformance...
now it will fail if the fluid system tries to access any saturation or
a quantity for a phase which was not queried. also, the parameter
cache may no longer access quantities of phases which have not been
modified in the updatePhase*() methods.
now we assume an ideal mixture of the gas phase again. we probably
want that, as the 2p2c model as currently implemented does not support
non-ideal mixtures, because the MiscibleMultiPhaseComposition
constraint solver does not support this yet. (On a different note, a
reference is missing for the approach taken for the fugacity
coefficients of the gas phase for the "gas as non-ideal mixture"
code.)
and remove the "FluidSystem" postfix from the class names. e.g.
Dumux::H2ON2FluidSystem becomes Dumux::FluidSystems::H2ON2 . this
commit does not change anything beyond that...
oops.
if "useSimpleRelations" in the H2O-N2 fluid system is set to true and
the density of the phases is not normalized by sum of the mole
fractions, the results are identical with the ones on trunk.
the fugacity coefficient must be independent of the fugacity since its
whole point is to, well, define the fugacity. if this worked before,
then probably only because the fugacity was undefined and smaller than
10^-3...
also rename the "fluidsystems" directory to "old_fluidsystems". Since
this is a separate SVN branch, nobody's feelings should be hurt by
this commit...