Class WellScheduler.WellRecord

java.lang.Object
neqsim.process.util.fielddevelopment.WellScheduler.WellRecord
All Implemented Interfaces:
Serializable
Enclosing class:
WellScheduler

public static final class WellScheduler.WellRecord extends Object implements Serializable
Well record for availability and production tracking.

Maintains the complete history of a well's status and production, along with scheduled interventions.

Version:
1.0
Author:
ESOL
See Also:
  • Field Details

  • Constructor Details

    • WellRecord

      public WellRecord(String wellName, double initialPotential, String rateUnit)
      Creates a new well record.
      Parameters:
      wellName - well identifier
      initialPotential - initial production potential
      rateUnit - rate unit
  • Method Details

    • getWellName

      public String getWellName()
      Gets the well name.
      Returns:
      well name
    • getCurrentPotential

      public double getCurrentPotential()
      Gets the current production potential.
      Returns:
      current potential rate
    • setCurrentPotential

      public void setCurrentPotential(double potential)
      Sets the current production potential.
      Parameters:
      potential - new potential rate
    • getOriginalPotential

      public double getOriginalPotential()
      Gets the original production potential.
      Returns:
      original potential rate
    • getRateUnit

      public String getRateUnit()
      Gets the rate unit.
      Returns:
      rate unit string
    • getCurrentStatus

      public WellScheduler.WellStatus getCurrentStatus()
      Gets the current well status.
      Returns:
      current status
    • setStatus

      public void setStatus(WellScheduler.WellStatus status, LocalDate date)
      Sets the current well status and records it in history.
      Parameters:
      status - new status
      date - date of status change
    • getStatusOn

      public WellScheduler.WellStatus getStatusOn(LocalDate date)
      Gets the status on a specific date.
      Parameters:
      date - date to check
      Returns:
      status on that date, or current status if not found
    • getScheduledInterventions

      public List<WellScheduler.Intervention> getScheduledInterventions()
      Gets the scheduled interventions.
      Returns:
      unmodifiable list of interventions
    • addIntervention

      public void addIntervention(WellScheduler.Intervention intervention)
      Adds a scheduled intervention.
      Parameters:
      intervention - intervention to schedule
    • recordProduction

      public void recordProduction(LocalDate date, double rate)
      Records production for a date.
      Parameters:
      date - production date
      rate - production rate
    • calculateAvailability

      public double calculateAvailability(LocalDate startDate, LocalDate endDate)
      Calculates availability over a period.
      Parameters:
      startDate - start of period
      endDate - end of period
      Returns:
      availability fraction (0-1)
    • getInterventionsInRange

      public List<WellScheduler.Intervention> getInterventionsInRange(LocalDate startDate, LocalDate endDate)
      Gets interventions within a date range.
      Parameters:
      startDate - start of range
      endDate - end of range
      Returns:
      list of interventions overlapping the range