[Paraview] pvpython eating all my memory

Berk Geveci berk.geveci at kitware.com
Sun Apr 5 17:59:21 EDT 2009


Hi Peter,

Can you give us the first 10-20 timesteps of this dataset? Maybe there
is a memory leak somewhere and I would like to debug it.

-berk

On Wed, Apr 1, 2009 at 4:48 PM, Peter Brady <petertbrady at gmail.com> wrote:
> Hello all,
>
> I have some reasonable sized data sets (256x256x512) that I'm using
> paraview to do some postprocessing on via a python script.  However,
> for some reason, as time progresses and it slogs through more
> timesteps the memory usage slowly creeps up until my workstation
> crashes (seems to take about 200-300 timesteps before it eats up all
> my memory).  I haven't encountered this problem before but this is the
> largest data set I've processed thus far.  My data format is ensight
> gold.  The script I'm using is below:
>
> from paraview import servermanager
>
> if not servermanager.ActiveConnection:
>    connection = servermanager.Connect()
>
> suffix = ''
>
> # open file center_vol_data and get center and radius data
> datafile = open('center_vol_data'+suffix, 'r')
> lines = datafile.readlines()
> datafile.close()
>
> filterfile = open('prog_filter.py', 'r')
> filterString = filterfile.read()
> filterfile.close()
>
> tempfile = open('temp_data', 'w')
> tempfile.write(lines[0])
> tempfile.close()
>
> # open NGA data and read in temperature field
> #nga_reader = servermanager.sources.ensight(ByteOrder='LittleEndian',CaseFileName='ensight-3D/arts.case')
>
> #nga_reader.UpdatePipelineInformation()
> # only read in temperature...
> a1 = ['Pressure', '0']
> a2 = ['Viscosity', '0']
> a3 = ['Diffusivity', '0']
> a4 = ['T', '1']
> a5 = ['VolumeFraction', '0']
> a6 = ['Density', '0']
> a7 = ['Curvature', '0']
> a8 = ['SurfaceTension', '0']
> a9 = ['Sigma', '0']
> a10 = ['divg', '0']
> a11 = ['Pcrit', '0']
> a12 = ['Qcrit', '0']
> a13 = ['Rcrit', '0']
> #nga_reader.CellArrayStatus = a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13
> #nga_reader.UpdatePipeline()
>
> # outline source
> myBox = servermanager.sources.OutlineSource()
> myBox.Bounds = [-0.0225, 0.0225, -0.0225, 0.0225, 0.0, 0.060]
> myBox.UpdatePipeline()
>
> # open LIT data
> lit_reader = servermanager.sources.ensight(ByteOrder='LittleEndian',
>
> CaseFileName='dump'+suffix+'/td.case')
> lit_reader.UpdatePipelineInformation()
> # only read in G field
> a1 = ['G', '1']
> a2 = ['KAPPA', '0']
> a3 = ['V', '0']
> lit_reader.PointArrayStatus = a1+a2+a3
> lit_reader.UpdatePipeline()
>
> # apply contour to G field
> g_cont = servermanager.filters.Contour(Input=lit_reader)
> g_cont.ContourValues = 0.0
> g_cont.SelectInputScalars = ['0', '0', '0', '0', 'G']
> g_cont.UpdatePipeline()
>
> # resample dataset
> #resample = servermanager.filters.Probe(Input=nga_reader, Source=g_cont)
> #resample.UpdatePipeline()
>
> # read in center and volume from file
> #deform = servermanager.filters.ProgrammableFilter(Input=resample)
> deform = servermanager.filters.ProgrammableFilter(Input=g_cont)
> deform.Script = filterString
> deform.UpdatePipeline()
>
> # create rendering views
> view = servermanager.CreateRenderView()
> rep1 = servermanager.CreateRepresentation(deform, view)
> rep1.Representation = 2 # set view to surface
> #rep2 = servermanager.CreateRepresentation(nga_reader, view)
> rep2 = servermanager.CreateRepresentation(myBox, view)
> rep2.Representation = 3
>
> # set background to black
> view.Background = [0.0, 0.0, 0.0]
> view.CameraParallelProjection = 1
> view.ViewSize = [625,700]
> view.CameraPosition = [0.0263666,-0.165717,0.0707883]
> view.CameraViewUp = [-0.019148, 0.236082, 0.971544]
> view.UseOffscreenRenderingForScreenshots = 0
> view.ResetCamera()
>
> lt = servermanager.rendering.PVLookupTable()
> rep1.LookupTable = lt
> rep1.ColorAttributeType = 0 # point data
> rep1.ColorArrayName = "radiusDeform"
> lt.RGBPoints = [-3,0,0,1,3,1,0,0]
> lt.ColorSpace = 1
> rep2.Color = [1.0, 1.0, 1.0]
>
> # color legend
> sbar = servermanager.rendering.ScalarBarWidgetRepresentation()
> sbar.Title = '% def'
> sbar.LookupTable = lt
> sbar.Position = [0.85, 0.1]
> view.Representations.append(sbar)
>
> # get timesteps and append to view
> tsteps = lit_reader.TimestepValues.GetData()
> annTime = servermanager.filters.TimeToTextConvertor(Input=lit_reader)
> timeRep = servermanager.rendering.TextSourceRepresentation(Input=annTime)
> view.Representations.append(timeRep)
> #make bigger
> timeRep.Position2 = [0.2,0.2]
>
> # get ready to do some file saving
> #savestep = [0, 1] # frame of interest
> savestep= range(1000,1100)
> namei = map(str, savestep)
> #offset = 624-63
> #for i in range(len(savestep)):
> #    namei[i] = str(savestep[i]+offset)
>
> for i in range(len(savestep)):
>    tempfile = open('temp_data', 'w')
>    tempfile.write(lines[savestep[i]])
>    tempfile.close()
>    view.ViewTime = tsteps[savestep[i]]
>    if savestep[i] < 10:
>        namei[i] = "000" + namei[i]
>    elif savestep[i] < 100:
>        namei[i] = "00" + namei[i]
>    elif savestep[i] < 1000:
>        namei[i] = "0" + namei[i]
>    view.WriteImage("movie/arc."+namei[i]+".png", "vtkPNGWriter", 1)
>
> Any help in this matter would be greatly appreciated.
> Thanks,
> Peter.
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>


More information about the ParaView mailing list