ogstools.materiallib.core.media module#

class ogstools.materiallib.core.media.MediaSet[source]#

Bases: object

Represents a collection of Medium objects (solids or fluids) for a given process.

MediaSet are constructed from a filtered MaterialManager, i.e. after process schemas, subdomain assignments, and fluid materials have already been applied.

Provides: - Dictionary-like access (__getitem__, keys(), values(), items()). - Iteration over all Medium instances. - Lookup by name or by material ID.

Notes#

This class requires that the input MaterialManager has already been filtered for a specific process (filtered_db.process must not be None).

Create a MediaSet collection from a filtered MaterialManager.

Parameters#

filtered_dbMaterialManager

A MaterialManager instance that has been filtered for a specific process and contains subdomain IDs and fluids.

Raises#

ValueError

If filtered_db.process is None (i.e. unfiltered manager), or if any Medium fails validation.

__init__(filtered_db)[source]#

Create a MediaSet collection from a filtered MaterialManager.

Parameters#

filtered_dbMaterialManager

A MaterialManager instance that has been filtered for a specific process and contains subdomain IDs and fluids.

Raises#

ValueError

If filtered_db.process is None (i.e. unfiltered manager), or if any Medium fails validation.

__getitem__(key)[source]#

Retrieve a Medium by its subdomain name.

Return type:

Medium

keys()[source]#

Return the list of subdomain names (keys).

Return type:

list[str]

values()[source]#

Return the list of Medium objects (values).

Return type:

list[Medium]

items()[source]#

Return (name, Medium) pairs like dict.items().

Return type:

list[tuple[str, Medium]]

to_dict()[source]#

Return the mapping of subdomain names to Medium objects.

Return type:

dict[str, Medium]

get_by_id(material_id)[source]#

Lookup a Medium by its material ID.

Parameters#

material_idint

The material_id assigned to a subdomain.

Returns#

Medium | None

The Medium object with the given ID, or None if not found.

Return type:

Medium | None

classmethod from_project(prj, process)[source]#

Reconstruct a Media collection from an OGS6py Project.

Parameters#

prjProject

An OGS6py Project instance containing <media> definitions.

processstr

The process type to which these media belong.

Raises#

NotImplementedError

This functionality is not implemented yet.

Return type:

MediaSet

validate()[source]#

Validate all Medium objects.

Returns#

bool

True if all Medium objects are valid, otherwise raises ValueError.

Return type:

bool

validate_medium(medium)[source]#

Validate a single Medium.

Parameters#

mediumMedium

The Medium object to validate.

Returns#

bool

True if valid.

Raises#

ValueError

If the Medium fails validation.

Return type:

bool