live_field_data#
User-facing Fluent field-data access and batch request orchestration.
Classes:
|
Shared implementation for live and batched field-data responses. |
|
Collect field-data requests and retrieve them in one service call. |
|
Read-only response container returned by |
|
Primary user-facing wrapper over an |
- class ansys.fluent.core.fields.field_data.live_field_data.BaseFieldData(data, field_info, allowed_surface_names, allowed_scalar_field_names)#
Bases:
BaseFieldDataSourceShared implementation for live and batched field-data responses.
This class implements the request dispatch and response extraction shared by
LiveFieldDataandBatchFieldData. 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:
- data
dict 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.
- data
- 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:
- obj
SurfaceFieldDataRequest|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.
- obj
- 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.
- 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:
FieldBatchCollect field-data requests and retrieve them in one service call.
Create this object with
LiveFieldData.new_batch(). It delegates the transport operation to theAbstractFieldDataimplementation owned by the parentLiveFieldData, then returns aBatchFieldDatafromget_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.
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_data
object 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.
- field_data
- 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
selfto support method chaining.- Parameters:
- obj
SurfaceFieldDataRequest|ScalarFieldDataRequest|VectorFieldDataRequest|PathlinesFieldDataRequest The first (required) field data request.
- *args
SurfaceFieldDataRequest|ScalarFieldDataRequest|VectorFieldDataRequest|PathlinesFieldDataRequest Additional optional field data requests.
- obj
- Returns:
BatchReturns
selfto allow method chaining withget_response().
- Raises:
ValueErrorIf 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 aBatchFieldDataobject; use itsget_field_data()method to access individual field arrays by surface.- Returns:
FieldDataSourceAbstract 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.
- class ansys.fluent.core.fields.field_data.live_field_data.BatchFieldData(data, field_info, allowed_surface_names, allowed_scalar_field_names)#
Bases:
BaseFieldDataRead-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:
- data
dict 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.
- data
- class ansys.fluent.core.fields.field_data.live_field_data.LiveFieldData(field_data, field_info, scheme_interpreter, get_zones_info=None)#
Bases:
BaseFieldData,FieldDataSourcePrimary user-facing wrapper over an
AbstractFieldDataservice.The
field_dataargument is the transport-specific service adapter. It implementsAbstractFieldDataand 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 aBatchfor multiple requests. The batch returns aBatchFieldDataresponse whileBaseFieldDatasupplies 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").
- surfaces
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.
Create a new
Batchfor queuing multiple field data requests.- __init__(field_data, field_info, scheme_interpreter, get_zones_info=None)#
Initialize a LiveFieldData instance.
- Parameters:
- field_data
object Low-level field data service proxy connected to a running Fluent session.
- field_info
object Low-level field info service proxy for querying available fields and surfaces.
- scheme_interpreter
object Interface to the Fluent Scheme interpreter, used for evaluating expressions such as precision queries.
- get_zones_info
weakref.WeakMethod,optional Weak reference to a callable that returns a list of
ZoneInfoobjects. Required for mesh retrieval viaget_mesh().
- field_data
- 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
Meshobject. Only cell zones are currently supported; face zones raiseNotImplementedError.- Parameters:
- Returns:
MeshMeshcontaining allNodecoordinates andElementconnectivity for the zone.
- Raises:
ValueErrorIf zone does not match any known zone name or ID.
NotImplementedErrorIf 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
Batchfor 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().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()