We would write outside the allocated buffer, and fail to write the
nul terminator, when presented with inputs of very small size
(denormalized numbers in the order of 1.0e-101 or smaller). Switch
to using std::snprintf and expand the buffer size to work around
this problem.
While here, also fix a subtle issue in determining whether or not we
should insert the exponent character 'D' into the formatted output.
Since we add one upon formatting the number, we also need to use a
non-symmetric condition for the 'D' character lest we fail to output
correctly formatted versions of
-2.9440373045442E-100 (=> -0.29440373045442D-99)
-2.9440373045442E+99 (=> -0.29440373045442+100)
- The NNC and EDITNNC keywords are internalized in the same class.
- The EDITNNC keyword operations are applied directly to the NNC keywords.
- The nnc vectors are ordered with cell1 < cell2 and ascending order.
- An api has been added to get the KeywordLocation from an NCC
- NNC/EDITNNC which is connected to inactive cell is ignored
This commit adds a new helper function
getCompletionNumberFromGlobalConnectionIndex
which returns an optional<int> containing the completion number of
the connection with the associated global cell index, or nullopt if
no such connection exists. We then reimplement the CxL summary
keywords in terms of this function to handle connections being added
dynamically during the simulation. The connections at the end of
the simulation, from which we configure all connection-related
summary nodes, might not accurately reflect the connections existing
at all times during the simulation.
- Enables reading of output files generated by simulator IX
- Adding support for EclFile data type C0nn (string with length > 8 characters)
- Update of program summary, now supporting well names with more that 8 characters
- Updates of program convertECL, possible to write output files with IX "format"
- updates of python bindings (EclOutput and EclFile)
The 'schedule_wells' vector is guaranteed to be empty when we're
configuring the set of summary vectors to report. Don't blindly
access the .front() element.