-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option to load UNSMRY data as 32 bit floats #797
Comments
We did some Sherlock Holmes-ing. It seems very feasible. While the following isn't the only places where we end up while reading UNSMRY data, it seems to be one of the more important places. Notice that we're reading a float and casting it to double. https://github.com/equinor/ecl/blob/master/lib/ecl/ecl_unsmry_loader.cpp#L76-L83 What remains is to figure out the other places (seems like a few caching and/or default values that also should be floats?) and also what to do with the current API. My hypothesis is that casting |
According to the Eclipse documentation, the vector parameter values in UNSMRY are stored with the data type
REAL
, which is described as single precision (4 byte) floating point reals.In
ecl
, at least from thepython
side (think alsoC++
side, at least what I've seen), all values are returned asfloat64
, giving a substantial memory overhead. For a single simulation, it doesn't have much to say, but if you aggregate to ensembles, the difference is significant.Would be nice to be able to get
float32
directly (as an optional flag to avoid when requesting e.g. numpy arrays or pandas DataFrames (preferably also on theC++
side to limit memory usage also on that side, though thepython
output of the bindings are the most important for my personal use).The text was updated successfully, but these errors were encountered: