Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
2 changes: 1 addition & 1 deletion src/ansys/dpf/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ def _deep_copy(dpf_entity, server=None):
if stream_type == 1:
out = serializer.get_output(0, types.bytes)
else:
out = serializer.get_output(0, types.string)
out = serializer.outputs.serialized_string # Required for retro with 241
deserializer.connect(-1, stream_type)
deserializer.connect(0, out)
type_map = types_enum_to_types()
Expand Down
15 changes: 15 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,21 @@ def return_ds(server=None):
return return_ds


@pytest.fixture()
def fluent_multiphase():
"""Return a function which creates a data sources
with a cas and a dat file of fluent multiphase case."""

def return_ds(server=None):
ds = core.DataSources(server=server)
files = examples.download_fluent_multi_phase(server=server)
ds.set_result_file_path(files["cas"], "cas")
ds.add_file_path(files["dat"], "dat")
return ds

return return_ds


@pytest.fixture()
def cfx_heating_coil():
"""Return a function which creates a data sources
Expand Down
45 changes: 33 additions & 12 deletions tests/test_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -1298,22 +1298,43 @@ def test_field_no_inprocess_localfield(server_in_process, allkindofcomplexity):
assert field == local_field


def test_deep_copy_2_field(server_type, server_in_process):
data = np.random.random(10)
field_a = dpf.core.field_from_array(data, server=server_type)
assert np.allclose(field_a.data, data)
if SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0:
def test_deep_copy_2_field(server_type, server_in_process):
data = np.random.random(10)
field_a = dpf.core.field_from_array(data, server=server_type)
assert np.allclose(field_a.data, data)

out = dpf.core.core._deep_copy(field_a, server_in_process)
assert np.allclose(out.data, data)
out = dpf.core.core._deep_copy(field_a, server_in_process)
assert np.allclose(out.data, data)


def test_deep_copy_2_field_remote(server_type, server_type_remote_process):
data = np.random.random(10)
field_a = dpf.core.field_from_array(data, server=server_type)
assert np.allclose(field_a.data, data)
def test_deep_copy_2_field_remote(server_type, server_type_remote_process):
data = np.random.random(10)
field_a = dpf.core.field_from_array(data, server=server_type)
assert np.allclose(field_a.data, data)

out = dpf.core.core._deep_copy(field_a, server_type_remote_process)
assert np.allclose(out.data, data)
out = dpf.core.core._deep_copy(field_a, server_type_remote_process)
assert np.allclose(out.data, data)

elif conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_6_0:
# before server version 8.0 deep copying between a legacy grpc client and another client type
# is not supported.
def test_deep_copy_2_field(server_clayer, server_in_process):
data = np.random.random(10)
field_a = dpf.core.field_from_array(data, server=server_clayer)
assert np.allclose(field_a.data, data)

out = dpf.core.core._deep_copy(field_a, server_in_process)
assert np.allclose(out.data, data)


def test_deep_copy_2_field_remote(server_type):
data = np.random.random(10)
field_a = dpf.core.field_from_array(data, server=server_type)
assert np.allclose(field_a.data, data)

out = dpf.core.core._deep_copy(field_a, server_type)
assert np.allclose(out.data, data)


@pytest.mark.skipif(not SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0, reason="Available for servers >=8.0")
Expand Down
11 changes: 11 additions & 0 deletions tests/test_meshregion.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,7 @@ def test_has_element_shape_meshed_region(server_type):

@pytest.mark.slow
def test_mesh_deep_copy(allkindofcomplexity, server_type):
# Small mesh
model = dpf.core.Model(allkindofcomplexity, server=server_type)
mesh = model.metadata.meshed_region
copy = mesh.deep_copy()
Expand Down Expand Up @@ -575,6 +576,16 @@ def test_mesh_deep_copy(allkindofcomplexity, server_type):
)


@pytest.mark.skipif(
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_7_0, reason="Available with CFF starting 7.0"
)
def test_mesh_deep_copy_large(fluent_multiphase, server_type):
model = dpf.core.Model(fluent_multiphase(server=server_type), server=server_type)
mesh = model.metadata.meshed_region
copy = mesh.deep_copy()
assert np.allclose(copy.nodes.scoping.ids, mesh.nodes.scoping.ids)


@pytest.mark.slow
def test_mesh_deep_copy2(simple_bar_model, server_type):
mesh = simple_bar_model.metadata.meshed_region
Expand Down
2 changes: 2 additions & 0 deletions tests/test_operator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_4_0,
SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_5_0,
SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_6_2,
SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0,
)

# Check for ANSYS installation env var
Expand Down Expand Up @@ -1337,6 +1338,7 @@ def test_connect_get_non_ascii_string(server_type):
assert str == str_out


@pytest.mark.skipif(not SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0, reason="Available for servers >=8.0")
def test_deep_copy_non_ascii_string(server_type):
str = "\N{GREEK CAPITAL LETTER DELTA}"
str_out = dpf.core.core._deep_copy(str, server_type)
Expand Down