Skip to content

WellSet (inherits from dataclass)

Description

Represents a set of Well objects as a dictionary. Each well is accessible by its name string (e.g., "A1") or by integer index in list order. Provides flexible and convenient access to individual wells or slices of wells.

Constructor

python
WellSet(wells: Dict[str, Well])

Initializes a set of wells, where the key is the well name and the value is the corresponding Well object.

ParameterTypeDescription
wellsDict[str, Well]Dictionary mapping well names to Well instances.

Properties

(No additional explicit properties beyond wells, but dynamic list-like access is provided.)

Methods

MethodReturnsDescription
__getitem__(id_: Union[str, int])Well or List[Well]Retrieves a Well by name (string key) or index (integer position). Supports slices.
__repr__()strReturns a string list of all well names contained in the WellSet.

Short Example

python
# Create a few wells manually
well_a1 = Well(name="A1", depth=10, totalLiquidVolume=360, shape="circular", x=0, y=0, z=0)
well_b1 = Well(name="B1", depth=10, totalLiquidVolume=360, shape="circular", x=10, y=0, z=0)

# Create a WellSet
well_set = WellSet(wells={"A1": well_a1, "B1": well_b1})

# Access wells
a1 = well_set["A1"]
b1 = well_set[1]  # Access by list index

# Access multiple wells (slice)
subset = well_set[0:2]
print(subset)

Important Notes

  • If a well is accessed by an integer index and not a string key, the wells are retrieved according to their order in the dictionary's values list.
  • Slice access (e.g., well_set[0:3]) returns a list of Well objects, not another WellSet.
  • The repr displays a list of well names for quick inspection, helpful for debugging or UI displays.
  • Care must be taken when relying on ordering: dictionary order is preserved only in Python 3.7+ (and effectively 3.6 for CPython).

Pre-release documentation · Internal research use only · Not authorized for redistribution.