Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions src/ansys/dpf/core/generic_data_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,13 @@ def set_property(self, property_name, prop):
any_dpf = Any.new_from(prop, self._server)
self._api.generic_data_container_set_property_any(self, property_name, any_dpf)

def get_property(self, property_name, output_type):
def get_property(self, property_name):
"""Get property with given name.

Parameters
----------
property_name : str
Property name.
output_type : :class:`ansys.dpf.core.common.types`

Returns
-------
Expand All @@ -111,8 +110,32 @@ def get_property(self, property_name, output_type):
"""
any_ptr = self._api.generic_data_container_get_property_any(self, property_name)
any_dpf = Any(any_ptr, self._server)
output_type = self._type_to_output_method[self.get_property_description()[property_name]]
return any_dpf.cast(output_type)

@property
def _type_to_output_method(self):
# Only the types in any.py need to be casted
from ansys.dpf.core import (
field,
property_field,
string_field,
scoping,
)

out = {
"bool": bool,
"int": int,
"str": str,
"float": float,
"Field": field.Field,
"PropertyField": property_field.PropertyField,
"StringField": string_field.StringField,
"Scoping": scoping.Scoping,
"GenericDataContainer": GenericDataContainer,
}
return out

def get_property_description(self):
"""Get a dictionary description of properties by name and data type

Expand Down
15 changes: 6 additions & 9 deletions src/ansys/dpf/core/mesh_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
"""
from ansys.dpf.core import server as server_module
from ansys.dpf.core.generic_data_container import GenericDataContainer
from ansys.dpf.core.scoping import Scoping
from ansys.dpf.core.string_field import StringField


class MeshInfo:
Expand Down Expand Up @@ -104,21 +102,20 @@ def deep_copy(self, server=None):
mesh_info.generic_data_container = self._generic_data_container.deep_copy(server)
return mesh_info

def get_property(self, property_name, output_type):
def get_property(self, property_name):
"""Get property with given name.

Parameters
----------
property_name : str
Property name.
output_type : :class:`ansys.dpf.core.common.types`

Returns
-------
type
Property object instance.
"""
return self.generic_data_container.get_property(property_name, output_type)
return self.generic_data_container.get_property(property_name)

def set_property(self, property_name, prop):
"""Register given property with the given name.
Expand All @@ -142,7 +139,7 @@ def get_number_nodes(self):
Number of nodes of the mesh.
"""

return self.generic_data_container.get_property("num_nodes", int)
return self.generic_data_container.get_property("num_nodes")

@property
def get_number_elements(self):
Expand All @@ -153,7 +150,7 @@ def get_number_elements(self):
Number of elements of the mesh.
"""

return self.generic_data_container.get_property("num_elements", int)
return self.generic_data_container.get_property("num_elements")

@property
def get_splittable_by(self):
Expand All @@ -164,7 +161,7 @@ def get_splittable_by(self):
Name of the properties according to which the mesh can be split by.
"""

return self.generic_data_container.get_property("splittable_by", StringField)
return self.generic_data_container.get_property("splittable_by")

@property
def get_available_elem_types(self):
Expand All @@ -175,7 +172,7 @@ def get_available_elem_types(self):
element type available for the mesh.
"""

return self.generic_data_container.get_property("avalaible_elem_type", Scoping)
return self.generic_data_container.get_property("avalaible_elem_type")

def set_number_nodes(self, number_of_nodes):
"""Set the number of nodes in the mesh"""
Expand Down
2 changes: 1 addition & 1 deletion tests/test_any.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def test_cast_generic_data_container_any(server_type):
any_dpf = dpf.Any.new_from(entity)
new_entity = any_dpf.cast()

new_field = new_entity.get_property("field", dpf.Field)
new_field = new_entity.get_property("field")

assert field.location == new_field.location

Expand Down
8 changes: 4 additions & 4 deletions tests/test_generic_data_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def test_set_get_property_generic_data_container(server_type):
gdc = dpf.GenericDataContainer(server=server_type)
entity = dpf.Field(location="phase", nature=dpf.natures.scalar, server=server_type)
gdc.set_property("viscosity", entity)
new_entity = gdc.get_property("viscosity", dpf.Field)
new_entity = gdc.get_property("viscosity")
assert entity.location == new_entity.location


Expand All @@ -31,17 +31,17 @@ def test_get_property_description_generic_data_container(server_type):
gdc = dpf.GenericDataContainer(server=server_type)
entity = 42
gdc.set_property("my-int", entity)
new_entity = gdc.get_property("my-int", int)
new_entity = gdc.get_property("my-int")
assert 42 == new_entity

entity = 4.2
gdc.set_property("my-float", entity)
new_entity = gdc.get_property("my-float", float)
new_entity = gdc.get_property("my-float")
assert 4.2 == new_entity

entity = "hello world"
gdc.set_property("my-string", entity)
new_entity = gdc.get_property("my-string", str)
new_entity = gdc.get_property("my-string")
assert "hello world" == new_entity

entity = dpf.Field(location="phase", nature=dpf.natures.scalar, server=server_type)
Expand Down
Loading