From 80b267a9dea343ab2e2382833bfbff0ee12af57b Mon Sep 17 00:00:00 2001 From: Ryan Vanden Bos Date: Fri, 2 May 2025 11:30:53 -0700 Subject: [PATCH 1/2] Added FE Quad to FE Triangle script --- python/dataconversion/QUAD_to_TRI.py | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 python/dataconversion/QUAD_to_TRI.py diff --git a/python/dataconversion/QUAD_to_TRI.py b/python/dataconversion/QUAD_to_TRI.py new file mode 100644 index 0000000..8cd3965 --- /dev/null +++ b/python/dataconversion/QUAD_to_TRI.py @@ -0,0 +1,62 @@ +"""Converts a FE Quad zone to an FE Triangle zone + +usage: + + > python QUAD_to_TRI.py + +Description +----------- + +This connected-mode script creates a new FE Triangle zone +from a chosen pre-existing FE Quad zone that only has 3 unique +nodes per cell. +""" + + +import tecplot as tp +from tecplot.constant import ZoneType + + +def quad_to_tri(zn, ds, zone_name): + nmap = zn.nodemap[:] + n_cells = zn.num_elements + n_nodes = zn.num_points + + # Check if nodemap is truly a FE Triangle nodemap + is_tri = any(len(set(lst)) == 3 for lst in nmap) + + if not is_tri: + print("Not a FE Triangle zone") + return + + # Create FE Triangle nodemap from FE Quad nodemap + tri_nmap = [set(m) for m in nmap] + + new_zn = ds.add_fe_zone(ZoneType.FETriangle, zone_name, n_nodes, n_cells) + + # Assign new zone with nodemap and variable values + new_zn.nodemap[:] = tri_nmap + for i in range(ds.num_variables): + new_zn.values(i)[:] = zn.values(i)[:] + + +if __name__ == "__main__": + tp.session.connect() + + ds = tp.active_frame().dataset + + zones = ds.zone_names + + # Print all zones to choose from + print("Zone list:") + for i, z in enumerate(zones): + print(f"{i+1}. {z}") + + choice = int(input("Which zone would you like to convert? ")) + zone_name = input("New zone name: ") + + # Take zone input and run the conversion + zone = ds.zone(choice-1) + + # Attempt to convert zone to FE Triangle zone + quad_to_tri(zone, ds, zone_name) From eacdc5ca5fadb4e52ef45e712827a3c32195c115 Mon Sep 17 00:00:00 2001 From: Ryan Vanden Bos Date: Fri, 2 May 2025 11:32:45 -0700 Subject: [PATCH 2/2] a -> an --- python/dataconversion/QUAD_to_TRI.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/dataconversion/QUAD_to_TRI.py b/python/dataconversion/QUAD_to_TRI.py index 8cd3965..3f0d07e 100644 --- a/python/dataconversion/QUAD_to_TRI.py +++ b/python/dataconversion/QUAD_to_TRI.py @@ -1,4 +1,4 @@ -"""Converts a FE Quad zone to an FE Triangle zone +"""Converts an FE Quad zone to an FE Triangle zone usage: @@ -22,11 +22,11 @@ def quad_to_tri(zn, ds, zone_name): n_cells = zn.num_elements n_nodes = zn.num_points - # Check if nodemap is truly a FE Triangle nodemap + # Check if nodemap is truly an FE Triangle nodemap is_tri = any(len(set(lst)) == 3 for lst in nmap) if not is_tri: - print("Not a FE Triangle zone") + print("Not an FE Triangle zone") return # Create FE Triangle nodemap from FE Quad nodemap