live_field_data#

User-facing Fluent field-data access and batch request orchestration.

Classes:

BaseFieldData(data, field_info, ...)

Shared implementation for live and batched field-data responses.

Batch(field_data, field_info, ...)

Collect field-data requests and retrieve them in one service call.

BatchFieldData(data, field_info, ...)

Read-only response container returned by Batch.

LiveFieldData(field_data, field_info, ...[, ...])

Primary user-facing wrapper over an AbstractFieldData service.

class ansys.fluent.core.fields.field_data.live_field_data.BaseFieldData(data, field_info, allowed_surface_names, allowed_scalar_field_names)#

Bases: BaseFieldDataSource

Shared implementation for live and batched field-data responses.

This class implements the request dispatch and response extraction shared by LiveFieldData and BatchFieldData. It is not a transport adapter and is not intended to be instantiated directly.

Methods:

__init__(data, field_info, ...)

Initialize the field data container.

get_field_data(obj)

Retrieve field data for a surface, scalar, vector, or pathlines request.

get_surface_ids(surfaces)

Resolve surface names or IDs to a list of integer surface IDs.

__init__(data, field_info, allowed_surface_names, allowed_scalar_field_names)#

Initialize the field data container.

Parameters:
datadict

Raw field data keyed by request descriptor tuples.

field_info_FieldInfo

Object used to query metadata about available fields and surfaces.

allowed_surface_names_AllowedSurfaceNames

Validator for surface name inputs.

allowed_scalar_field_names_AllowedScalarFieldNames

Validator for scalar field name inputs.

get_field_data(obj)#

Retrieve field data for a surface, scalar, vector, or pathlines request.

Dispatches the request to the appropriate internal handler based on the type of obj and returns field data keyed by surface ID or surface name.

Parameters:
objSurfaceFieldDataRequest | ScalarFieldDataRequest | VectorFieldDataRequest | PathlinesFieldDataRequest

A request object describing the field type, field name, and target surfaces. Construct the appropriate request type from ansys.fluent.core.fields.field_data.abstract_field_data.

Returns:
dict[int | str, SurfaceData | PathlinesData | np.ndarray]

Field data keyed by surface ID (int) or surface name (str), depending on how surfaces were specified in the request. If field data is unavailable for a surface, an empty array is returned and a warning is issued. Always check the array size before using the data.

Examples

>>> data = field_data.get_field_data(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"])
... )
>>> pressure_array = data["wall"]
>>> if pressure_array.size == 0:
...     # Handle missing data
...     pass
get_surface_ids(surfaces)#

Resolve surface names or IDs to a list of integer surface IDs.

Parameters:
surfaceslist[str | int]

Surface names (str) or surface IDs (int) to resolve.

Returns:
list[int]

Corresponding list of integer surface IDs recognized by Fluent.

Raises:
DisallowedValuesError

If a surface name or ID is not found among the allowed surfaces.

class ansys.fluent.core.fields.field_data.live_field_data.Batch(field_data, field_info, allowed_surface_ids, allowed_surface_names, allowed_scalar_field_names, allowed_vector_field_names)#

Bases: FieldBatch

Collect field-data requests and retrieve them in one service call.

Create this object with LiveFieldData.new_batch(). It delegates the transport operation to the AbstractFieldData implementation owned by the parent LiveFieldData, then returns a BatchFieldData from get_response().

Examples

>>> batch = field_data.new_batch()
>>> batch.add_requests(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"]),
...     VectorFieldDataRequest(field_name="velocity", surfaces=["wall"]),
... )
>>> result = batch.get_response()

Methods:

__init__(field_data, field_info, ...)

Initialize a Batch instance.

add_requests(obj, *args)

Add one or more field data requests to the batch queue.

get_response()

Send all queued requests to Fluent and return the retrieved field data.

get_surface_ids(surfaces)

Resolve surface names or IDs to a list of integer surface IDs.

__init__(field_data, field_info, allowed_surface_ids, allowed_surface_names, allowed_scalar_field_names, allowed_vector_field_names)#

Initialize a Batch instance.

Parameters:
field_dataobject

Low-level field data service proxy connected to a running Fluent session.

field_info_FieldInfo

Object used to query metadata about available fields and surfaces.

allowed_surface_ids_AllowedSurfaceIDs

Validator for surface ID inputs.

allowed_surface_names_AllowedSurfaceNames

Validator for surface name inputs.

allowed_scalar_field_names_AllowedScalarFieldNames

Validator for scalar field name inputs.

allowed_vector_field_names_AllowedVectorFieldNames

Validator for vector field name inputs.

add_requests(obj, *args)#

Add one or more field data requests to the batch queue.

Accepts requests for surface geometry, scalar fields, vector fields, or pathlines. All requested surfaces are resolved to integer IDs. Duplicate requests are ignored with a warning. This method returns self to support method chaining.

Parameters:
objSurfaceFieldDataRequest | ScalarFieldDataRequest | VectorFieldDataRequest | PathlinesFieldDataRequest

The first (required) field data request.

*argsSurfaceFieldDataRequest | ScalarFieldDataRequest | VectorFieldDataRequest | PathlinesFieldDataRequest

Additional optional field data requests.

Returns:
Batch

Returns self to allow method chaining with get_response().

Raises:
ValueError

If two pathlines requests share the same field_name.

Examples

>>> result = (
...     field_data.new_batch()
...     .add_requests(
...         ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"]),
...         VectorFieldDataRequest(field_name="velocity", surfaces=["wall"]),
...     )
...     .get_response()
... )
get_response()#

Send all queued requests to Fluent and return the retrieved field data.

Executes all requests added via add_requests() in a single server call. Returns a BatchFieldData object; use its get_field_data() method to access individual field arrays by surface.

Returns:
FieldDataSource

Abstract field-data source contract implemented by the returned response container.

Examples

>>> batch = field_data.new_batch()
>>> batch.add_requests(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"])
... )
>>> result = batch.get_response()
>>> pressure = result.get_field_data(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"])
... )
get_surface_ids(surfaces)#

Resolve surface names or IDs to a list of integer surface IDs.

Parameters:
surfaceslist[str | int]

Surface names (str) or surface IDs (int) to resolve.

Returns:
list[int]

Corresponding list of integer surface IDs recognized by Fluent.

Raises:
DisallowedValuesError

If a surface name or ID is not found among the allowed surfaces.

class ansys.fluent.core.fields.field_data.live_field_data.BatchFieldData(data, field_info, allowed_surface_names, allowed_scalar_field_names)#

Bases: BaseFieldData

Read-only response container returned by Batch.

The batch transport response is stored here and exposed through the shared BaseFieldData.get_field_data() implementation. This class adds only response-container behavior; it does not issue service calls.

Examples

>>> batch = field_data.new_batch()
>>> batch.add_requests(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"])
... )
>>> result: FieldDataSource = batch.get_response()
>>> pressure = result.get_field_data(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"])
... )

Methods:

__init__(data, field_info, ...)

Initialize a BatchFieldData container.

__init__(data, field_info, allowed_surface_names, allowed_scalar_field_names)#

Initialize a BatchFieldData container.

Parameters:
datadict

Extracted field data keyed by request descriptor tuples.

field_info_FieldInfo

Object used to query metadata about available fields and surfaces.

allowed_surface_names_AllowedSurfaceNames

Validator for surface name inputs.

allowed_scalar_field_names_AllowedScalarFieldNames

Validator for scalar field name inputs.

class ansys.fluent.core.fields.field_data.live_field_data.LiveFieldData(field_data, field_info, scheme_interpreter, get_zones_info=None)#

Bases: BaseFieldData, FieldDataSource

Primary user-facing wrapper over an AbstractFieldData service.

The field_data argument is the transport-specific service adapter. It implements AbstractFieldData and can be backed by any kind of service, such as gRPC or REST. This wrapper adds validation, surface resolution, field metadata helpers, and conversion of transport results into user-facing objects.

Use new_batch() to create a Batch for multiple requests. The batch returns a BatchFieldData response while BaseFieldData supplies the shared response extraction logic.

Attributes:
surfaces_SurfaceNames

Lists all surface names available in the current Fluent session.

surface_ids_SurfaceIds

Lists all surface IDs available in the current Fluent session.

scalar_fields_ScalarFields

Lists available scalar field names (e.g., "pressure", "temperature").

vector_fields_VectorFields

Lists available vector field names (e.g., "velocity").

Examples

>>> field_data = solver.fields.field_data
>>> pressure = field_data.get_field_data(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"])
... )

Methods:

__init__(field_data, field_info, ...[, ...])

Initialize a LiveFieldData instance.

get_mesh(zone)

Retrieve the computational mesh for a Fluent cell zone.

new_batch()

Create a new Batch for queuing multiple field data requests.

__init__(field_data, field_info, scheme_interpreter, get_zones_info=None)#

Initialize a LiveFieldData instance.

Parameters:
field_dataobject

Low-level field data service proxy connected to a running Fluent session.

field_infoobject

Low-level field info service proxy for querying available fields and surfaces.

scheme_interpreterobject

Interface to the Fluent Scheme interpreter, used for evaluating expressions such as precision queries.

get_zones_infoweakref.WeakMethod, optional

Weak reference to a callable that returns a list of ZoneInfo objects. Required for mesh retrieval via get_mesh().

get_mesh(zone)#

Retrieve the computational mesh for a Fluent cell zone.

Fetches node coordinates and element connectivity from the Fluent solver for the specified zone and returns them as a Mesh object. Only cell zones are currently supported; face zones raise NotImplementedError.

Parameters:
zonestr | int

Name or integer ID of the zone to retrieve. Must be a cell zone.

Returns:
Mesh

Mesh containing all Node coordinates and Element connectivity for the zone.

Raises:
ValueError

If zone does not match any known zone name or ID.

NotImplementedError

If zone refers to a face zone.

Examples

>>> mesh = field_data.get_mesh("fluid")
>>> print(f"Nodes: {len(mesh.nodes)}, Elements: {len(mesh.elements)}")
new_batch()#

Create a new Batch for queuing multiple field data requests.

Use a batch to accumulate several field data requests (scalar, vector, surface geometry, or pathlines) and retrieve them all from Fluent in a single efficient server call via Batch.get_response().

Returns:
Batch

A new Batch instance bound to this session.

Examples

>>> batch = field_data.new_batch()
>>> batch.add_requests(
...     ScalarFieldDataRequest(field_name="pressure", surfaces=["wall"]),
...     VectorFieldDataRequest(field_name="velocity", surfaces=["wall"]),
... )
>>> result = batch.get_response()