Commit Graph
9 Commits
Author SHA1 Message Date
Kristian Bendiksen 8174e21561 #14961 Sim Events: Support segment lengths in SEGMENT events
Add FIXED_SEGMENT_LENGTH, MIN_SEGMENT_LENGTH and MAX_SEGMENT_LENGTH to
SIMEVENTS SEGMENT events. The lengths are stored on RimWellEventSegment
(new AddSegmentEvent arguments, 0 = not set) and applied to the segment
interval when the timeline is applied. Invalid combinations (fixed with
min/max, min > max, non-positive values) are reported as parse errors.
2026-10-19 09:28:29 +02:00
Kristian Bendiksen c56e921160 #14958 Sim Events: Move PRESSURE_COMPONENTS to WELSPECS
Move Pressure Drop and Length and Depth from the segment collection to
the well path completion settings. PRESSURE_COMPONENTS is now a dated
WELSPECS attribute used for the WELSEGS header at export, and is
rejected on SEGMENT events.
2026-10-19 09:28:29 +02:00
Kristian Bendiksen 2f86d4c210 #14956: Rename well event Tubing to Segment
Rename RimWellEventTubing to RimWellEventSegment (keyword WellEventSegment),
EventType::TUBING to SEGMENT, and the scripting method AddTubingEvent to
AddSegmentEvent (Python: add_segment_event). Update the project tree label,
schedule comments, Python helpers, examples, tests and docs.
2026-10-19 09:28:29 +02:00
Kristian Bendiksen 8324af966c #14666 Simulator Events: Expand INSERT_DATE into insert-date events
INSERT_DATE statements are now expanded into one timeline event per
occurrence instead of a list of bare dates, so each generated date keeps
the COMMENT of its statement.

- New RimWellEventInsertDate (EventType::INSERT_DATE): a date-only event
  that generates no keyword, added with
  WellEventTimeline.add_insert_date_event(event_date, comment).
- The schedule generator writes the comment of an insert-date event as
  "--" lines directly below its DATES keyword.
- generate_schedule(_text) no longer takes additional_dates; insert-date
  events are part of the timeline, but keep the previous behavior of not
  being filtered by set_timestamp().
- SimulatorEventsDocument.report_dates and ApplyReport.report_dates are
  replaced by SimulatorEventsDocument.insert_date_events/insert_dates;
  merging files drops insert dates repeating both date and comment.
2026-09-25 14:35:45 +02:00
Kristian Bendiksen 70e10cb386 #14666 Simulator Events: Align INSERT_DATE with other keyword events
INSERT_DATE is now a SCHEDULE event using KEY=VALUE attributes, and the file
format version is bumped to SIMEVENTS 1.2:

    <date-expr> INSERT_DATE [EVERY=<duration>] [UNTIL=<date-expr>]

- EVERY takes a duration literal, DURATION variable or expression
  (EVERY=1mon, EVERY=30d, EVERY=12mon, EVERY=12h) and must be positive.
  Occurrence n is start + n months (clamped), then + n times the fixed part,
  which preserves the dates of the previous DAY/MONTH/YEAR recurrences.
- UNTIL is an inclusive end date and requires EVERY; quote values with spaces.
- COMMENT is accepted and ignored; other attributes are rejected.
- SIMEVENTS 1.1 files and old-style INSERT_DATE lines are rejected with a
  migration hint showing the rewritten line.
2026-09-25 14:35:45 +02:00
Kristian Bendiksen cbd3d39a5c #14582 Simulator Events: Merge events from multiple files
Importing several SIMEVENTS files together now merges them into one document
before coalescing, so keyword events with the same owner, type and timestamp
are combined across files, not only within one file.

- Add merge_simulator_events_documents, parse_simulator_events_files and
  apply_simulator_events_files. Source locations carry the file name, so
  conflict warnings and errors identify both files.
- Reject mismatched UNIT, and a second RESTART or duplicate WELSPECS across
  files. Collect parse errors from all files in one pass.
- Warn when files declare the same FILTER name with different expressions,
  and keep each file's filter instead of reusing the first one.
- CLI accepts multiple files; the import dialog allows multi-selection.
2026-09-25 14:35:45 +02:00
Kristian Bendiksen b0f60c392f #14651 SIMEVENTS 1.1: datetime dates and Go-style durations
Increase the time resolution of the SIMEVENTS format and replace whole-day
integer offsets with Go-style duration literals.

- All DATE values are now datetimes with second resolution. A date-only
  literal means midnight; a time-of-day requires the 'T' separator and
  fractional seconds are rounded to the nearest second.
- DURATION values and offset terms are Go-style literals such as 5d,
  12h30m, 1.5h, 3mon and -3d. Units (mon, d, h, m, s) are mandatory, must
  appear in strictly descending order without repeats, and a fraction is
  allowed only on the last component (never on mon or s). Unitless numbers
  and the legacy DAYS suffix are rejected with hints.
- New Duration type keeps calendar months separate from the fixed
  timedelta part; adding months clamps to the end of shorter months, and
  str() renders the Go-style form.
- Header version bumped to 1.1; 1.0 files are rejected with a migration
  hint.
- Update tests, sample .events file, example script and
  docs/simulatorEvents.md.
2026-09-22 14:20:36 +02:00
Kristian Bendiksen 63bcc22485 #14667 Completions: Move MSW settings to segments 2026-09-16 11:35:13 +02:00
Kristian Bendiksen 71c5b5a97d #14612 Simulator Events: Remove Orion project naming 2026-09-09 13:01:26 +02:00