Skip to content

Commit 0de17ec

Browse files
authored
Fix coordinate system example retro-compatibility (#1747)
* Fix coordinate system example retro-compatibility * Add a proper test Signed-off-by: paul.profizi <[email protected]> * Fix code style Signed-off-by: paul.profizi <[email protected]> * Make the test retro-compatible Signed-off-by: paul.profizi <[email protected]> * Make the test retro-compatible Signed-off-by: paul.profizi <[email protected]> * Make the test retro-compatible Signed-off-by: paul.profizi <[email protected]> --------- Signed-off-by: paul.profizi <[email protected]>
1 parent 7decc11 commit 0de17ec

File tree

2 files changed

+67
-2
lines changed

2 files changed

+67
-2
lines changed

examples/10-mesh_operations/13-nodes_in_local_coordinate_system.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,14 @@
5555
###############################################################################
5656
# Get the rotation matrix of the LCS ID 12.
5757
# The first 9 values in the ``cs`` output is the rotation matrix.
58-
cs = dpf.operators.result.coordinate_system()
59-
cs.inputs.data_sources.connect(model)
58+
try:
59+
# Starting with DPF 2025.1.pre1
60+
cs = dpf.operators.result.coordinate_system()
61+
cs.inputs.data_sources.connect(model)
62+
except KeyError:
63+
# For previous DPF versions
64+
cs = model.operator(r"mapdl::rst::CS")
65+
6066
cs.inputs.cs_id.connect(12)
6167
cs_rot_mat = cs.outputs.field.get_data().data.T[0:9]
6268

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Copyright (C) 2020 - 2024 ANSYS, Inc. and/or its affiliates.
2+
# SPDX-License-Identifier: MIT
3+
#
4+
#
5+
# Permission is hereby granted, free of charge, to any person obtaining a copy
6+
# of this software and associated documentation files (the "Software"), to deal
7+
# in the Software without restriction, including without limitation the rights
8+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
# copies of the Software, and to permit persons to whom the Software is
10+
# furnished to do so, subject to the following conditions:
11+
#
12+
# The above copyright notice and this permission notice shall be included in all
13+
# copies or substantial portions of the Software.
14+
#
15+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
# SOFTWARE.
22+
23+
# Tests the result.coordinate_system operator
24+
import ansys.dpf.core as dpf
25+
from ansys.dpf.core import examples
26+
import conftest
27+
import numpy as np
28+
29+
30+
def test_operator_coordinate_system_rst(server_type):
31+
model = dpf.Model(examples.download_hemisphere(server=server_type), server=server_type)
32+
if conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_9_1:
33+
# Starting with DPF 2025.1.pre1
34+
cs = dpf.operators.result.coordinate_system(server=server_type)
35+
cs.inputs.data_sources.connect(model)
36+
else:
37+
# For previous DPF versions
38+
cs = model.operator(r"mapdl::rst::CS")
39+
cs.inputs.cs_id.connect(12)
40+
cs_rot_mat = cs.outputs.field().data
41+
ref = np.array(
42+
[
43+
[
44+
-0.18966565,
45+
0.91517569,
46+
0.35564083,
47+
-0.91517569,
48+
-0.03358143,
49+
-0.40165376,
50+
-0.35564083,
51+
-0.40165376,
52+
0.84391579,
53+
4.74164122,
54+
22.87939222,
55+
8.89102077,
56+
]
57+
]
58+
)
59+
assert np.allclose(cs_rot_mat.data, ref)

0 commit comments

Comments
 (0)