Skip to content

Commit

Permalink
feat: exposing quantity_type in the GRPC API
Browse files Browse the repository at this point in the history
  • Loading branch information
a-bouth committed Dec 18, 2024
1 parent 799227f commit 2a1477d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/ansys/dpf/core/field_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
23 changes: 21 additions & 2 deletions src/ansys/dpf/gate/field_definition_grpcapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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()
Expand All @@ -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)
1 change: 1 addition & 0 deletions tests/test_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down

0 comments on commit 2a1477d

Please sign in to comment.