From e958704112b0dba32d299e6ab05d1c8a9fee69b6 Mon Sep 17 00:00:00 2001 From: Ben Wibking Date: Fri, 21 Mar 2025 12:28:58 -0400 Subject: [PATCH 1/2] write binary VTP particles --- .../amrex_particles_to_vtp/write_pview_file.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py b/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py index 253b862db1a..5bda181be8b 100644 --- a/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py +++ b/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py @@ -199,14 +199,17 @@ def write_paraview_file_particles(fname,pts,ncdata): outfile.write("\n") outfile.write("\n") - outfile.write("\n") - for i in range(Npts): - outfile.write("%e\t%e\t%e\t"%(pts[i][0],pts[i][1],pts[i][2])) + outfile.write("\n") outfile.write("\n\n") - outfile.write("\n") - + outfile.write("\n") outfile.write("\n") outfile.write("\n") - outfile.write("\n") + # write binary data AppendedData + outfile.write("\n") + outfile.write("_") + outfile.write(pts.tobytes('C')) # use C-ordering of array + outfile.write("\n") + + outfile.write("\n") outfile.close() From 767d1e2bcc91353eb414ecfc24fecf8a3eb1ecd9 Mon Sep 17 00:00:00 2001 From: Ben Wibking Date: Fri, 21 Mar 2025 13:21:53 -0400 Subject: [PATCH 2/2] fix binary write --- .../write_pview_file.py | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py b/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py index 5bda181be8b..57264745432 100644 --- a/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py +++ b/Tools/Py_util/amrex_particles_to_vtp/write_pview_file.py @@ -1,4 +1,6 @@ import numpy as np +import struct +import os def write_paraview_file_structmesh(fname,xp,yp,ccdata,ncdata): @@ -184,7 +186,7 @@ def write_paraview_file_particles(fname,pts,ncdata): Npts=pts.shape[0] outfile.write("\n") - outfile.write("\n") + outfile.write("\n") outfile.write("\n") outfile.write("\n"%(Npts)) @@ -200,16 +202,24 @@ def write_paraview_file_particles(fname,pts,ncdata): outfile.write("\n") outfile.write("\n") - outfile.write("\n\n") + outfile.write("\n") outfile.write("\n") outfile.write("\n") outfile.write("\n") - # write binary data AppendedData - outfile.write("\n") - outfile.write("_") - outfile.write(pts.tobytes('C')) # use C-ordering of array + # write AppendedData in special format + # https://vtk.org/Wiki/VTK_XML_Formats#Uncompressed_Data + outfile.write("\n") + outfile.write("\t_") + outfile.close() + with open(fname, 'ab') as binfile: + arrays_to_write = [pts] + for arr in arrays_to_write: + float_arr = arr.astype(np.float32) + binfile.write(struct.pack('") - outfile.write("\n") outfile.close()