I’m writing a Python script to serve as the black-box simulation interface driver for a DAKOTA project. Essentially, this Python driver generates a simulation model, submits a solver subprocess which creates a new .vtu
file with the hardcoded name: output_ts000001.vtu
, which is then read using another method that does:
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName( "output_ts000001.vtu" )
reader.Update()
output = reader.GetOutput()
I extract out the data I need, compute, then return the objective function. DAKOTA then generates the next iteration / guess and the process starts over. My question is, do I need to close the reader after I finish processing the data? It would seem like the file would be open, and wouldn’t be able to be overwritten or deleted. Yet I’ve been poking around https://kitware.github.io/vtk-examples/site/Python and https://gitlab.kitware.com/vtk/vtk-examples/-/tree/master/src/Python/IO and can’t seem to find any examples that close()
a reader. This suggests to me that this isn’t necessary, but that clashes with my general I/O experiences. Is calling del reader
sufficient? Is there some documentation I missed that describes why deleting or closing isn’t necessary?