From 2a1477d2d8a46560cbc675afb216ff67a89bef78 Mon Sep 17 00:00:00 2001 From: aboutheo Date: Wed, 18 Dec 2024 17:24:43 +0100 Subject: [PATCH] feat: exposing quantity_type in the GRPC API --- src/ansys/dpf/core/field_definition.py | 4 ++++ .../dpf/gate/field_definition_grpcapi.py | 23 +++++++++++++++++-- tests/test_field.py | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/ansys/dpf/core/field_definition.py b/src/ansys/dpf/core/field_definition.py index a979bee973..1b8e89e598 100644 --- a/src/ansys/dpf/core/field_definition.py +++ b/src/ansys/dpf/core/field_definition.py @@ -153,6 +153,7 @@ def dimensionality(self): self._api.csfield_definition_fill_dimensionality(self, dim, nature, dim.internal_size) return Dimensionality(dim.tolist(), natures(int(nature))) + # @version_requires("4.0") #TODO @property def quantity_type(self): """Getter for Quantity Types @@ -170,6 +171,7 @@ def quantity_type(self): return quantity_types + # @version_requires("4.0") #TODO def add_quantity_type(self, quantity_type_to_add): """Add a new Quantity Type @@ -180,6 +182,7 @@ def add_quantity_type(self, quantity_type_to_add): """ self._api.csfield_definition_set_quantity_type(self, quantity_type_to_add) + # @version_requires("4.0") #TODO def num_quantity_types(self): """Number of available quantity types @@ -191,6 +194,7 @@ def num_quantity_types(self): num_quantity_types = self._api.csfield_definition_get_num_available_quantity_types(self) return num_quantity_types + # @version_requires("4.0") #TODO def is_of_quantity_type(self, quantity_type): """Check if the field definition is of a given quantity type diff --git a/src/ansys/dpf/gate/field_definition_grpcapi.py b/src/ansys/dpf/gate/field_definition_grpcapi.py index e585204a59..c86ed997ef 100644 --- a/src/ansys/dpf/gate/field_definition_grpcapi.py +++ b/src/ansys/dpf/gate/field_definition_grpcapi.py @@ -22,10 +22,27 @@ def init_field_definition_environment(object): def csfield_definition_fill_unit(fieldDef, symbol, size, homogeneity, factor, shift): symbol.set_str(_get_stub(fieldDef._server).List(fieldDef._internal_obj).unit.symbol) + + @staticmethod + def csfield_definition_get_quantity_type(fieldDef, index): + return _get_stub(fieldDef._server).List(fieldDef._internal_obj).quantity_type[index] + + @staticmethod + def csfield_definition_set_quantity_type(fieldDef, quantityType): + FieldDefinitionGRPCAPI._modify_field_def(fieldDef, quantity_type=quantityType) + + @staticmethod + def csfield_definition_get_num_available_quantity_types(fieldDef): + return len(_get_stub(fieldDef._server).List(fieldDef._internal_obj).quantity_type) + + @staticmethod + def csfield_definition_is_of_quantity_type(fieldDef, quantityType): + return quantityType in _get_stub(fieldDef._server).List(fieldDef._internal_obj).quantity_type + @staticmethod def csfield_definition_get_shell_layers(fieldDef): return _get_stub(fieldDef._server).List(fieldDef._internal_obj).shell_layers - 1 - + @staticmethod def csfield_definition_fill_location(fieldDef, location, size): out = _get_stub(fieldDef._server).List(fieldDef._internal_obj) @@ -73,7 +90,7 @@ def field_definition_new_on_client(client): @staticmethod def _modify_field_def( - fieldDef, unit=None, location=None, dimensionality=None, shell_layer=None, name=None + fieldDef, unit=None, location=None, dimensionality=None, shell_layer=None, name=None, quantity_type=None ): from ansys.grpc.dpf import field_definition_pb2 request = field_definition_pb2.FieldDefinitionUpdateRequest() @@ -89,5 +106,7 @@ def _modify_field_def( request.shell_layers = shell_layer if name != None: request.name.string = name + if quantity_type != None: + request.quantity_type = quantity_type _get_stub(fieldDef._server).Update(request) diff --git a/tests/test_field.py b/tests/test_field.py index 2b69f9f7f7..f749d43025 100644 --- a/tests/test_field.py +++ b/tests/test_field.py @@ -517,6 +517,7 @@ def test_create_and_update_field_definition(server_type): assert fieldDef.location == locations.nodal +# @conftest.raises_for_servers_version_under("7.0") # TODO def test_field_definition_quantity_type(server_type): fieldDef = FieldDefinition(server=server_type)