From d1834ba6915649b75f33db812e941f112ee3a3b1 Mon Sep 17 00:00:00 2001 From: Prithwish Mukherjee Date: Thu, 29 Sep 2022 11:05:22 +0530 Subject: [PATCH 1/3] Mock filed data updated to be consistent with core Repo --- tests/test_post.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_post.py b/tests/test_post.py index e3848cf4..43804007 100644 --- a/tests/test_post.py +++ b/tests/test_post.py @@ -93,9 +93,9 @@ def add_get_scalar_fields_request( def add_get_vector_fields_request( self, surface_ids: List[int], - vector_field: Optional[str] = "velocity", + field_name: str, ) -> None: - self._request_to_serve["vector"].append((surface_ids, vector_field)) + self._request_to_serve["vector"].append((surface_ids, field_name)) def get_fields(self) -> Dict[int, Dict]: fields = {} From b434dbae2ea0e02f72d37707e99a1b5158417257 Mon Sep 17 00:00:00 2001 From: Prithwish Mukherjee Date: Wed, 19 Oct 2022 19:31:51 +0530 Subject: [PATCH 2/3] Updated post_data_extractor --- .../matplotlib/matplot_windows_manager.py | 6 +- .../visualization/post_data_extractor.py | 60 +++++++++++-------- .../pyvista/pyvista_windows_manager.py | 6 +- 3 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/ansys/fluent/visualization/matplotlib/matplot_windows_manager.py b/src/ansys/fluent/visualization/matplotlib/matplot_windows_manager.py index a1a06961..79813c5b 100644 --- a/src/ansys/fluent/visualization/matplotlib/matplot_windows_manager.py +++ b/src/ansys/fluent/visualization/matplotlib/matplot_windows_manager.py @@ -1,9 +1,9 @@ """Module for matplotlib windows management.""" import itertools import multiprocessing as mp -from typing import List, Optional, Union +from typing import Dict, List, Optional, Union -from ansys.fluent.core.session import Session +from ansys.fluent.core.fluent_connection import _FluentConnection from ansys.fluent.core.utils.generic import AbstractSingletonMeta, in_notebook from ansys.fluent.visualization import get_config @@ -38,7 +38,7 @@ def __init__( target=self.plotter, args=(plotter_pipe,), daemon=True ) self.plot_process.start() - Session._monitor_thread.cbs.append(self.close) + _FluentConnection._monitor_thread.cbs.append(self.close) def plot(self, data): self.plot_pipe.send(data) diff --git a/src/ansys/fluent/visualization/post_data_extractor.py b/src/ansys/fluent/visualization/post_data_extractor.py index 7373d092..64221c4b 100644 --- a/src/ansys/fluent/visualization/post_data_extractor.py +++ b/src/ansys/fluent/visualization/post_data_extractor.py @@ -4,6 +4,7 @@ from typing import Dict from ansys.api.fluent.v0.field_data_pb2 import PayloadTag +from ansys.fluent.core.services.field_data import _FieldDataConstants import numpy as np from ansys.fluent.visualization.post_object_defns import GraphicsDefn, PlotDefn @@ -49,6 +50,7 @@ def _fetch_mesh_data(self, obj, *args, **kwargs): obj._pre_display() field_info = obj._api_helper.field_info() field_data = obj._api_helper.field_data() + transaction = field_data.new_transaction() surfaces_info = field_info.get_surfaces_info() surface_ids = [ id @@ -56,10 +58,10 @@ def _fetch_mesh_data(self, obj, *args, **kwargs): for id in surfaces_info[surf]["surface_id"] ] - field_data.add_get_surfaces_request(surface_ids, *args, **kwargs) + transaction.add_surfaces_request(surface_ids, *args, **kwargs) surface_tag = 0 try: - surfaces_data = field_data.get_fields()[surface_tag] + surfaces_data = transaction.get_fields()[surface_tag] except: raise RuntimeError("Error while requesting data from server.") finally: @@ -105,6 +107,7 @@ def _fetch_contour_data(self, obj, *args, **kwargs): field_info = obj._api_helper.field_info() field_data = obj._api_helper.field_data() + transaction = field_data.new_transaction() surfaces_info = field_info.get_surfaces_info() surface_ids = [ id @@ -112,27 +115,27 @@ def _fetch_contour_data(self, obj, *args, **kwargs): for id in surfaces_info[surf]["surface_id"] ] # get scalar field data - field_data.add_get_surfaces_request(surface_ids, *args, **kwargs) - field_data.add_get_scalar_fields_request( - surface_ids, - field, - node_values, - boundary_values, + transaction.add_surfaces_request(surface_ids=surface_ids, *args, **kwargs) + transaction.add_scalar_fields_request( + field_name=field, + surface_ids=surface_ids, + node_value=node_values, + boundary_value=boundary_values, ) location_tag = ( - field_data._payloadTags[PayloadTag.NODE_LOCATION] + _FieldDataConstants.payloadTags[PayloadTag.NODE_LOCATION] if node_values - else field_data._payloadTags[PayloadTag.ELEMENT_LOCATION] + else _FieldDataConstants.payloadTags[PayloadTag.ELEMENT_LOCATION] ) boundary_value_tag = ( - field_data._payloadTags[PayloadTag.BOUNDARY_VALUES] + _FieldDataConstants.payloadTags[PayloadTag.BOUNDARY_VALUES] if boundary_values else 0 ) surface_tag = 0 try: - scalar_field_payload_data = field_data.get_fields() + scalar_field_payload_data = transaction.get_fields() data_tag = location_tag | boundary_value_tag scalar_field_data = scalar_field_payload_data[data_tag] surface_data = scalar_field_payload_data[surface_tag] @@ -151,6 +154,8 @@ def _fetch_vector_data(self, obj, *args, **kwargs): field_info = obj._api_helper.field_info() field_data = obj._api_helper.field_data() + transaction = field_data.new_transaction() + # surface ids surfaces_info = field_info.get_surfaces_info() surface_ids = [ @@ -159,11 +164,13 @@ def _fetch_vector_data(self, obj, *args, **kwargs): for id in surfaces_info[surf]["surface_id"] ] - field_data.add_get_surfaces_request(surface_ids, *args, **kwargs) - field_data.add_get_vector_fields_request(surface_ids, obj.vectors_of()) + transaction.add_surfaces_request(surface_ids=surface_ids, *args, **kwargs) + transaction.add_vector_fields_request( + field_name=obj.vectors_of(), surface_ids=surface_ids + ) vector_field_tag = 0 try: - fields = field_data.get_fields()[vector_field_tag] + fields = transaction.get_fields()[vector_field_tag] except: raise RuntimeError("Error while requesting data from server.") finally: @@ -218,6 +225,7 @@ def _fetch_xy_data(self, obj): surfaces_list = obj.surfaces_list() field_info = obj._api_helper.field_info() field_data = obj._api_helper.field_data() + transaction = field_data.new_transaction() surfaces_info = field_info.get_surfaces_info() surface_ids = [ id @@ -248,31 +256,31 @@ def _fetch_xy_data(self, obj): ] # get scalar field data - field_data.add_get_surfaces_request( - surface_ids, + transaction.add_surfaces_request( + surface_ids=surface_ids, provide_faces=False, provide_vertices=True if node_values else False, provide_faces_centroid=False if node_values else True, ) - field_data.add_get_scalar_fields_request( - surface_ids, - field, - node_values, - boundary_values, + transaction.add_scalar_fields_request( + field_name=field, + surface_ids=surface_ids, + node_value=node_values, + boundary_value=boundary_values, ) location_tag = ( - field_data._payloadTags[PayloadTag.NODE_LOCATION] + _FieldDataConstants.payloadTags[PayloadTag.NODE_LOCATION] if node_values - else field_data._payloadTags[PayloadTag.ELEMENT_LOCATION] + else _FieldDataConstants.payloadTags[PayloadTag.ELEMENT_LOCATION] ) boundary_value_tag = ( - field_data._payloadTags[PayloadTag.BOUNDARY_VALUES] + _FieldDataConstants.payloadTags[PayloadTag.BOUNDARY_VALUES] if boundary_values else 0 ) surface_tag = 0 - xyplot_payload_data = field_data.get_fields() + xyplot_payload_data = transaction.get_fields() data_tag = location_tag | boundary_value_tag if data_tag not in xyplot_payload_data: raise RuntimeError("Plot surface is not valid.") diff --git a/src/ansys/fluent/visualization/pyvista/pyvista_windows_manager.py b/src/ansys/fluent/visualization/pyvista/pyvista_windows_manager.py index f4c9b240..7bfc7036 100644 --- a/src/ansys/fluent/visualization/pyvista/pyvista_windows_manager.py +++ b/src/ansys/fluent/visualization/pyvista/pyvista_windows_manager.py @@ -3,7 +3,7 @@ import threading from typing import List, Optional, Union -from ansys.fluent.core.session import Session +from ansys.fluent.core.fluent_connection import _FluentConnection from ansys.fluent.core.utils.generic import AbstractSingletonMeta, in_notebook import numpy as np import pyvista as pv @@ -599,8 +599,8 @@ def _open_and_plot_console(self, obj: object, window_id: str) -> None: self._post_object = obj if not self._plotter_thread: - if Session._monitor_thread: - Session._monitor_thread.cbs.append(self._exit) + if _FluentConnection._monitor_thread: + _FluentConnection._monitor_thread.cbs.append(self._exit) self._plotter_thread = threading.Thread(target=self._display, args=()) self._plotter_thread.start() From 0c50a6353b79a558e25e084b998b43d28c1b4ddb Mon Sep 17 00:00:00 2001 From: Prithwish Mukherjee Date: Wed, 19 Oct 2022 19:35:34 +0530 Subject: [PATCH 3/3] Revert test - post --- tests/test_post.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_post.py b/tests/test_post.py index 43804007..e3848cf4 100644 --- a/tests/test_post.py +++ b/tests/test_post.py @@ -93,9 +93,9 @@ def add_get_scalar_fields_request( def add_get_vector_fields_request( self, surface_ids: List[int], - field_name: str, + vector_field: Optional[str] = "velocity", ) -> None: - self._request_to_serve["vector"].append((surface_ids, field_name)) + self._request_to_serve["vector"].append((surface_ids, vector_field)) def get_fields(self) -> Dict[int, Dict]: fields = {}