diff --git a/doc/source/_static/dpf_operators.html b/doc/source/_static/dpf_operators.html
index f765719f93..eed2edc7fb 100644
--- a/doc/source/_static/dpf_operators.html
+++ b/doc/source/_static/dpf_operators.html
@@ -2117,7 +2117,7 @@
Configurating operators
All coordinates are global coordinates.
Euler Angles need to be included in the database.
Get the XZ shear component (02 component).">Inputs
Outputs
Configurations
Scripting
result: cms dst table provider
Inputs
Outputs
Configurations
Scripting
result: spectrum data
Inputs
Outputs
Configurations
Scripting
invariant: eigen vectors (on field)
Inputs
Outputs
Configurations
Scripting
result: mapdl material properties
Inputs
Outputs
Configurations
Scripting
result: mapdl_section
Inputs
Outputs
Configurations
Scripting
result: rom data provider
Inputs
Outputs
Configurations
Scripting
result: compute invariant terms motion
Inputs
Outputs
Configurations
Scripting
result: write motion dfmf file
Inputs
Outputs
Configurations
Scripting
result: split to acmo facet indices
Inputs
Outputs
Configurations
Scripting
math: qr solve
Inputs
Outputs
Configurations
Scripting
serialization: migrate to vtk
Inputs
Outputs
Configurations
Scripting
result: cyclic expanded element heat flux
Inputs
Outputs
Configurations
Scripting
mesh: mesh plan clipper
Inputs
Outputs
Configurations
Scripting
mesh: mesh_to_graphics_edges
Inputs
Outputs
Configurations
Scripting
mesh: combine levelset
Inputs
Outputs
Configurations
Scripting
mesh: exclude levelset
Inputs
Outputs
Configurations
Scripting
mesh: make plane levelset
Inputs
Outputs
Configurations
Scripting
mesh: make sphere levelset
Inputs
Outputs
Configurations
Scripting
mesh: wireframe
Inputs
Outputs
Configurations
Scripting
mesh: mesh to tetra
Inputs
Outputs
Configurations
Scripting
mapping: fft
Inputs
Outputs
Configurations
Scripting
math: fft gradient evaluation
Inputs
Outputs
Configurations
Scripting
math: fft multi harmonic solution minmax
Inputs
Outputs
Configurations
Scripting
math: svd
Inputs
Outputs
Configurations
Scripting
mapping: prep sampling fft
Inputs
Outputs
Configurations
Scripting
math: fft filtering and cubic fitting
Inputs
Outputs
Configurations
Scripting
math: window triangular
Inputs
Outputs
Configurations
Scripting
math: window hanning
Inputs
Outputs
Configurations
Scripting
math: window hamming
Inputs
Outputs
Configurations
Scripting
math: window welch
Inputs
Outputs
Configurations
Scripting
math: window blackman
Inputs
Outputs
Configurations
Scripting
math: window triangular (fields container)
Inputs
Outputs
Configurations
Scripting
math: window hanning (fields container)
Inputs
Outputs
Configurations
Scripting
math: window hamming (fields container)
Inputs
Outputs
Configurations
Scripting
math: window welch (fields container)
Inputs
Outputs
Configurations
Scripting
math: window blackman (fields container)
Inputs
Outputs
Configurations
Scripting
serialization: hdf5dpf generate result file
Inputs
Outputs
Configurations
Scripting
result: migrate to h5dpf
Inputs
Outputs
Configurations
Scripting
result: cgns result provider
Inputs
Outputs
Configurations
Scripting
utility: hdf5dpf workflow provider
Inputs
Outputs
Configurations
Scripting
other: hdf5dpf mesh property provider
Inputs
Outputs
Configurations
Scripting
serialization: migrate to vtu
Inputs
Outputs
Configurations
Scripting
serialization: vtu export
Inputs
Outputs
Configurations
Scripting
result: compute total strain Y
Inputs
Outputs
Configurations
Scripting
math: window triangular
Inputs
Outputs
Configurations
Scripting
math: window hanning
Inputs
Outputs
Configurations
Scripting
math: window hamming
Inputs
Outputs
Configurations
Scripting
math: window welch
Inputs
Outputs
Configurations
Scripting
math: window blackman
Inputs
Outputs
Configurations
Scripting
math: window triangular (fields container)
Inputs
Outputs
Configurations
Scripting
math: window hanning (fields container)
Inputs
Outputs
Configurations
Scripting
math: window hamming (fields container)
Inputs
Outputs
Configurations
Scripting
math: window welch (fields container)
Inputs
Outputs
Configurations
Scripting
math: window blackman (fields container)
Inputs
Outputs
Configurations
Scripting
serialization: hdf5dpf generate result file
Inputs
Outputs
Configurations
Scripting
result: migrate to h5dpf
Inputs
Outputs
Configurations
Scripting
result: cgns result provider
Inputs
Outputs
Configurations
Scripting
utility: hdf5dpf workflow provider
Inputs
Outputs
Configurations
Scripting
other: hdf5dpf mesh property provider
Inputs
Outputs
Configurations
Scripting
serialization: migrate to vtu
Inputs
Outputs
Configurations
Scripting
serialization: vtu export
Inputs
Outputs
Configurations
Scripting
result: compute total strain Y
", "string_field"],
+ optional=True,
+ document="""List of names of mesh properties to export.""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -257,6 +275,8 @@ class InputsVtuExport(_Inputs):
>>> op.inputs.as_point_cloud.connect(my_as_point_cloud)
>>> my_export_faces = bool()
>>> op.inputs.export_faces.connect(my_export_faces)
+ >>> my_mesh_properties = dpf.StringField()
+ >>> op.inputs.mesh_properties.connect(my_mesh_properties)
"""
def __init__(self, op: Operator):
@@ -277,6 +297,8 @@ def __init__(self, op: Operator):
self._inputs.append(self._as_point_cloud)
self._export_faces = Input(vtu_export._spec().input_pin(102), 102, op, -1)
self._inputs.append(self._export_faces)
+ self._mesh_properties = Input(vtu_export._spec().input_pin(103), 103, op, -1)
+ self._inputs.append(self._mesh_properties)
@property
def directory(self):
@@ -342,14 +364,15 @@ def mesh(self):
def fields1(self):
"""Allows to connect fields1 input to the operator.
- Nodal, face, or elemental fields (over time)
- to export. when there is no support
- available in the exported mesh, that
- data is ignored.
+ Nodal, face, or elemental field, fields
+ container (over time), or property
+ field to export. when there is no
+ support available in the exported
+ mesh, that data is ignored.
Parameters
----------
- my_fields1 : Field or FieldsContainer
+ my_fields1 : Field or FieldsContainer or PropertyField
Examples
--------
@@ -365,14 +388,15 @@ def fields1(self):
def fields2(self):
"""Allows to connect fields2 input to the operator.
- Nodal, face, or elemental fields (over time)
- to export. when there is no support
- available in the exported mesh, that
- data is ignored.
+ Nodal, face, or elemental field, fields
+ container (over time), or property
+ field to export. when there is no
+ support available in the exported
+ mesh, that data is ignored.
Parameters
----------
- my_fields2 : Field or FieldsContainer
+ my_fields2 : Field or FieldsContainer or PropertyField
Examples
--------
@@ -449,6 +473,26 @@ def export_faces(self):
"""
return self._export_faces
+ @property
+ def mesh_properties(self):
+ """Allows to connect mesh_properties input to the operator.
+
+ List of names of mesh properties to export.
+
+ Parameters
+ ----------
+ my_mesh_properties : StringField
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.serialization.vtu_export()
+ >>> op.inputs.mesh_properties.connect(my_mesh_properties)
+ >>> # or
+ >>> op.inputs.mesh_properties(my_mesh_properties)
+ """
+ return self._mesh_properties
+
class OutputsVtuExport(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/gate/generated/capi.py b/src/ansys/dpf/gate/generated/capi.py
index a431711326..d0d41bd106 100644
--- a/src/ansys/dpf/gate/generated/capi.py
+++ b/src/ansys/dpf/gate/generated/capi.py
@@ -1187,6 +1187,10 @@ def load_api(path):
dll.DpfVector_char_ptr_free.argtypes = (ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.POINTER(ctypes.c_char))), ctypes.POINTER(ctypes.c_int32), ctypes.c_bool, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.DpfVector_char_ptr_free.restype = None
+ if hasattr(dll, "DpfVector_char_ptr_free_for_next_usage"):
+ dll.DpfVector_char_ptr_free_for_next_usage.argtypes = (ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.POINTER(ctypes.c_char))), ctypes.POINTER(ctypes.c_int32), ctypes.c_bool, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
+ dll.DpfVector_char_ptr_free_for_next_usage.restype = None
+
if hasattr(dll, "DpfVector_double_commit"):
dll.DpfVector_double_commit.argtypes = (ctypes.c_void_p, ctypes.POINTER(ctypes.c_double), ctypes.c_int32, ctypes.c_bool, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.DpfVector_double_commit.restype = None
@@ -3759,6 +3763,14 @@ def load_api(path):
dll.CSStringField_GetEntityDataById_For_DpfVector.argtypes = (ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.POINTER(ctypes.c_char))), ctypes.POINTER(ctypes.c_int32), ctypes.c_int32, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.CSStringField_GetEntityDataById_For_DpfVector.restype = None
+ if hasattr(dll, "StringField_GetEntityData_For_DpfVector"):
+ dll.StringField_GetEntityData_For_DpfVector.argtypes = (ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.POINTER(ctypes.c_char))), ctypes.POINTER(ctypes.c_int32), ctypes.c_int32, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
+ dll.StringField_GetEntityData_For_DpfVector.restype = None
+
+ if hasattr(dll, "StringField_GetEntityDataById_For_DpfVector"):
+ dll.StringField_GetEntityDataById_For_DpfVector.argtypes = (ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(ctypes.POINTER(ctypes.POINTER(ctypes.c_char))), ctypes.POINTER(ctypes.c_int32), ctypes.c_int32, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
+ dll.StringField_GetEntityDataById_For_DpfVector.restype = None
+
if hasattr(dll, "CSStringField_GetCScoping"):
dll.CSStringField_GetCScoping.argtypes = (ctypes.c_void_p, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.CSStringField_GetCScoping.restype = ctypes.c_void_p
@@ -3779,6 +3791,10 @@ def load_api(path):
dll.CSStringField_PushBack.argtypes = (ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.POINTER(ctypes.POINTER(ctypes.c_char)), ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.CSStringField_PushBack.restype = None
+ if hasattr(dll, "StringField_PushBack"):
+ dll.StringField_PushBack.argtypes = (ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.POINTER(ctypes.POINTER(ctypes.c_char)), ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
+ dll.StringField_PushBack.restype = None
+
if hasattr(dll, "CSStringField_Resize"):
dll.CSStringField_Resize.argtypes = (ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.CSStringField_Resize.restype = None
@@ -3787,6 +3803,10 @@ def load_api(path):
dll.CSStringField_Reserve.argtypes = (ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.CSStringField_Reserve.restype = None
+ if hasattr(dll, "StringField_fast_access_ptr"):
+ dll.StringField_fast_access_ptr.argtypes = (ctypes.c_void_p, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
+ dll.StringField_fast_access_ptr.restype = ctypes.c_void_p
+
if hasattr(dll, "CSStringField_new_on_client"):
dll.CSStringField_new_on_client.argtypes = (ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_wchar_p), )
dll.CSStringField_new_on_client.restype = ctypes.c_void_p
diff --git a/src/ansys/dpf/gate/generated/dpf_vector_abstract_api.py b/src/ansys/dpf/gate/generated/dpf_vector_abstract_api.py
index 0c363aedb9..4772a2c58d 100644
--- a/src/ansys/dpf/gate/generated/dpf_vector_abstract_api.py
+++ b/src/ansys/dpf/gate/generated/dpf_vector_abstract_api.py
@@ -31,6 +31,10 @@ def dpf_vector_int_free(dpf_vector, data, size, modified):
def dpf_vector_char_ptr_free(dpf_vector, data, size, modified):
raise NotImplementedError
+ @staticmethod
+ def dpf_vector_char_ptr_free_for_next_usage(dpf_vector, data, size, modified):
+ raise NotImplementedError
+
@staticmethod
def dpf_vector_double_commit(dpf_vector, data, size, modified):
raise NotImplementedError
diff --git a/src/ansys/dpf/gate/generated/dpf_vector_capi.py b/src/ansys/dpf/gate/generated/dpf_vector_capi.py
index a281885744..0b09ac8cc4 100644
--- a/src/ansys/dpf/gate/generated/dpf_vector_capi.py
+++ b/src/ansys/dpf/gate/generated/dpf_vector_capi.py
@@ -62,6 +62,15 @@ def dpf_vector_char_ptr_free(dpf_vector, data, size, modified):
raise errors.DPFServerException(sError.value)
return res
+ @staticmethod
+ def dpf_vector_char_ptr_free_for_next_usage(dpf_vector, data, size, modified):
+ errorSize = ctypes.c_int(0)
+ sError = ctypes.c_wchar_p()
+ res = capi.dll.DpfVector_char_ptr_free_for_next_usage(dpf_vector._internal_obj, utils.to_char_ptr_ptr_ptr(data), utils.to_int32_ptr(size), modified, ctypes.byref(utils.to_int32(errorSize)), ctypes.byref(sError))
+ if errorSize.value != 0:
+ raise errors.DPFServerException(sError.value)
+ return res
+
@staticmethod
def dpf_vector_double_commit(dpf_vector, data, size, modified):
errorSize = ctypes.c_int(0)
diff --git a/src/ansys/dpf/gate/generated/string_field_abstract_api.py b/src/ansys/dpf/gate/generated/string_field_abstract_api.py
index 0f46732b5a..9400ff1ce0 100644
--- a/src/ansys/dpf/gate/generated/string_field_abstract_api.py
+++ b/src/ansys/dpf/gate/generated/string_field_abstract_api.py
@@ -39,6 +39,14 @@ def csstring_field_get_entity_data_for_dpf_vector(dpf_object, out, data, size, E
def csstring_field_get_entity_data_by_id_for_dpf_vector(dpf_object, vec, data, size, EntityId):
raise NotImplementedError
+ @staticmethod
+ def string_field_get_entity_data_for_dpf_vector(dpf_object, out, data, size, EntityIndex):
+ raise NotImplementedError
+
+ @staticmethod
+ def string_field_get_entity_data_by_id_for_dpf_vector(dpf_object, vec, data, size, EntityId):
+ raise NotImplementedError
+
@staticmethod
def csstring_field_get_cscoping(field):
raise NotImplementedError
@@ -59,6 +67,10 @@ def csstring_field_set_cscoping(field, scoping):
def csstring_field_push_back(field, EntityId, size, data):
raise NotImplementedError
+ @staticmethod
+ def string_field_push_back(field, EntityId, size, data):
+ raise NotImplementedError
+
@staticmethod
def csstring_field_resize(field, dataSize, scopingSize):
raise NotImplementedError
@@ -67,6 +79,10 @@ def csstring_field_resize(field, dataSize, scopingSize):
def csstring_field_reserve(field, dataSize, scopingSize):
raise NotImplementedError
+ @staticmethod
+ def string_field_fast_access_ptr(field):
+ raise NotImplementedError
+
@staticmethod
def csstring_field_new_on_client(client, numEntities, data_size):
raise NotImplementedError
diff --git a/src/ansys/dpf/gate/generated/string_field_capi.py b/src/ansys/dpf/gate/generated/string_field_capi.py
index bf3373c558..3aaeff9cf9 100644
--- a/src/ansys/dpf/gate/generated/string_field_capi.py
+++ b/src/ansys/dpf/gate/generated/string_field_capi.py
@@ -82,6 +82,24 @@ def csstring_field_get_entity_data_by_id_for_dpf_vector(dpf_object, vec, data, s
raise errors.DPFServerException(sError.value)
return res
+ @staticmethod
+ def string_field_get_entity_data_for_dpf_vector(dpf_object, out, data, size, EntityIndex):
+ errorSize = ctypes.c_int(0)
+ sError = ctypes.c_wchar_p()
+ res = capi.dll.StringField_GetEntityData_For_DpfVector(dpf_object, out._internal_obj, utils.to_char_ptr_ptr_ptr(data), utils.to_int32_ptr(size), utils.to_int32(EntityIndex), ctypes.byref(utils.to_int32(errorSize)), ctypes.byref(sError))
+ if errorSize.value != 0:
+ raise errors.DPFServerException(sError.value)
+ return res
+
+ @staticmethod
+ def string_field_get_entity_data_by_id_for_dpf_vector(dpf_object, vec, data, size, EntityId):
+ errorSize = ctypes.c_int(0)
+ sError = ctypes.c_wchar_p()
+ res = capi.dll.StringField_GetEntityDataById_For_DpfVector(dpf_object, vec._internal_obj, utils.to_char_ptr_ptr_ptr(data), utils.to_int32_ptr(size), utils.to_int32(EntityId), ctypes.byref(utils.to_int32(errorSize)), ctypes.byref(sError))
+ if errorSize.value != 0:
+ raise errors.DPFServerException(sError.value)
+ return res
+
@staticmethod
def csstring_field_get_cscoping(field):
errorSize = ctypes.c_int(0)
@@ -127,6 +145,15 @@ def csstring_field_push_back(field, EntityId, size, data):
raise errors.DPFServerException(sError.value)
return res
+ @staticmethod
+ def string_field_push_back(field, EntityId, size, data):
+ errorSize = ctypes.c_int(0)
+ sError = ctypes.c_wchar_p()
+ res = capi.dll.StringField_PushBack(field, utils.to_int32(EntityId), utils.to_int32(size), utils.to_char_ptr_ptr(data), ctypes.byref(utils.to_int32(errorSize)), ctypes.byref(sError))
+ if errorSize.value != 0:
+ raise errors.DPFServerException(sError.value)
+ return res
+
@staticmethod
def csstring_field_resize(field, dataSize, scopingSize):
errorSize = ctypes.c_int(0)
@@ -145,6 +172,15 @@ def csstring_field_reserve(field, dataSize, scopingSize):
raise errors.DPFServerException(sError.value)
return res
+ @staticmethod
+ def string_field_fast_access_ptr(field):
+ errorSize = ctypes.c_int(0)
+ sError = ctypes.c_wchar_p()
+ res = capi.dll.StringField_fast_access_ptr(field._internal_obj if field is not None else None, ctypes.byref(utils.to_int32(errorSize)), ctypes.byref(sError))
+ if errorSize.value != 0:
+ raise errors.DPFServerException(sError.value)
+ return res
+
@staticmethod
def csstring_field_new_on_client(client, numEntities, data_size):
errorSize = ctypes.c_int(0)
diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll
index 09e1d16785..21db002192 100644
Binary files a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll and b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll differ
diff --git a/src/ansys/dpf/gatebin/DPFClientAPI.dll b/src/ansys/dpf/gatebin/DPFClientAPI.dll
index 0952abfebb..f770f9b8d9 100644
Binary files a/src/ansys/dpf/gatebin/DPFClientAPI.dll and b/src/ansys/dpf/gatebin/DPFClientAPI.dll differ
diff --git a/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so b/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so
index 562cb84aa0..acf616944d 100644
Binary files a/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so and b/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so differ
diff --git a/src/ansys/dpf/gatebin/libDPFClientAPI.so b/src/ansys/dpf/gatebin/libDPFClientAPI.so
index 09bb5c1b99..0f0d236061 100644
Binary files a/src/ansys/dpf/gatebin/libDPFClientAPI.so and b/src/ansys/dpf/gatebin/libDPFClientAPI.so differ