Skip to content

Commit 2a1477d

Browse files
committed
feat: exposing quantity_type in the GRPC API
1 parent 799227f commit 2a1477d

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

src/ansys/dpf/core/field_definition.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ def dimensionality(self):
153153
self._api.csfield_definition_fill_dimensionality(self, dim, nature, dim.internal_size)
154154
return Dimensionality(dim.tolist(), natures(int(nature)))
155155

156+
# @version_requires("4.0") #TODO
156157
@property
157158
def quantity_type(self):
158159
"""Getter for Quantity Types
@@ -170,6 +171,7 @@ def quantity_type(self):
170171

171172
return quantity_types
172173

174+
# @version_requires("4.0") #TODO
173175
def add_quantity_type(self, quantity_type_to_add):
174176
"""Add a new Quantity Type
175177
@@ -180,6 +182,7 @@ def add_quantity_type(self, quantity_type_to_add):
180182
"""
181183
self._api.csfield_definition_set_quantity_type(self, quantity_type_to_add)
182184

185+
# @version_requires("4.0") #TODO
183186
def num_quantity_types(self):
184187
"""Number of available quantity types
185188
@@ -191,6 +194,7 @@ def num_quantity_types(self):
191194
num_quantity_types = self._api.csfield_definition_get_num_available_quantity_types(self)
192195
return num_quantity_types
193196

197+
# @version_requires("4.0") #TODO
194198
def is_of_quantity_type(self, quantity_type):
195199
"""Check if the field definition is of a given quantity type
196200

src/ansys/dpf/gate/field_definition_grpcapi.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,27 @@ def init_field_definition_environment(object):
2222
def csfield_definition_fill_unit(fieldDef, symbol, size, homogeneity, factor, shift):
2323
symbol.set_str(_get_stub(fieldDef._server).List(fieldDef._internal_obj).unit.symbol)
2424

25+
26+
@staticmethod
27+
def csfield_definition_get_quantity_type(fieldDef, index):
28+
return _get_stub(fieldDef._server).List(fieldDef._internal_obj).quantity_type[index]
29+
30+
@staticmethod
31+
def csfield_definition_set_quantity_type(fieldDef, quantityType):
32+
FieldDefinitionGRPCAPI._modify_field_def(fieldDef, quantity_type=quantityType)
33+
34+
@staticmethod
35+
def csfield_definition_get_num_available_quantity_types(fieldDef):
36+
return len(_get_stub(fieldDef._server).List(fieldDef._internal_obj).quantity_type)
37+
38+
@staticmethod
39+
def csfield_definition_is_of_quantity_type(fieldDef, quantityType):
40+
return quantityType in _get_stub(fieldDef._server).List(fieldDef._internal_obj).quantity_type
41+
2542
@staticmethod
2643
def csfield_definition_get_shell_layers(fieldDef):
2744
return _get_stub(fieldDef._server).List(fieldDef._internal_obj).shell_layers - 1
28-
45+
2946
@staticmethod
3047
def csfield_definition_fill_location(fieldDef, location, size):
3148
out = _get_stub(fieldDef._server).List(fieldDef._internal_obj)
@@ -73,7 +90,7 @@ def field_definition_new_on_client(client):
7390

7491
@staticmethod
7592
def _modify_field_def(
76-
fieldDef, unit=None, location=None, dimensionality=None, shell_layer=None, name=None
93+
fieldDef, unit=None, location=None, dimensionality=None, shell_layer=None, name=None, quantity_type=None
7794
):
7895
from ansys.grpc.dpf import field_definition_pb2
7996
request = field_definition_pb2.FieldDefinitionUpdateRequest()
@@ -89,5 +106,7 @@ def _modify_field_def(
89106
request.shell_layers = shell_layer
90107
if name != None:
91108
request.name.string = name
109+
if quantity_type != None:
110+
request.quantity_type = quantity_type
92111

93112
_get_stub(fieldDef._server).Update(request)

tests/test_field.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ def test_create_and_update_field_definition(server_type):
517517
assert fieldDef.location == locations.nodal
518518

519519

520+
# @conftest.raises_for_servers_version_under("7.0") # TODO
520521
def test_field_definition_quantity_type(server_type):
521522
fieldDef = FieldDefinition(server=server_type)
522523

0 commit comments

Comments
 (0)