File: WriteTime.py

package info (click to toggle)
xdmf 3.0%2Bgit20190531-14
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,796 kB
  • sloc: cpp: 67,089; ansic: 5,172; python: 4,566; f90: 1,247; java: 187; fortran: 173; makefile: 92; sh: 28
file content (93 lines) | stat: -rw-r--r-- 2,700 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
from Xdmf import *

import timeit
import time
import os

h5file = os.getcwd() + "/timestamptest.h5"
xmffile = os.getcwd() + "/timestamptest.xmf"

if __name__ == "__main__":

	#for later use in determining actual time
	#    print timeit.Timer(timedWrite.write).timeit(1)

        exampleHeavyWriter = XdmfHDF5Writer.New(h5file)

        #possible options
        exampleHeavyWriter.setReleaseData(True)

        exampleWriter = XdmfWriter.New(xmffile, exampleHeavyWriter)
        exampleWriter.setLightDataLimit(10)


	primaryDomain = XdmfDomain.New()

	numNodes = 30000
	numAttrib = 10
	gridsPerTimestamp = 10
	numTimestamps = 100

	#for 100 time steps
	#each time step is a grid collection
	#base structue is a spacial grid collection full of temporal grid collections

	primaryCollection = XdmfGridCollection.New()

	primaryDomain.insert(primaryCollection)

	startclock = time.clock()

	for i in range(numTimestamps):
		timestampGrid = XdmfGridCollection.New()
		timestampTime = XdmfTime.New(i)
		timestampGrid.setTime(timestampTime)
		#each time stamp has 10 grids
		for j in range(gridsPerTimestamp):
			sectionGrid = XdmfUnstructuredGrid.New()
			sectionTime = XdmfTime.New(i)
			sectionGrid.setTime(sectionTime)
			#each grid has one topo, one geo, and 10 attrib
			sectionGeometry = XdmfGeometry.New()
			sectionGeometry.setType(XdmfGeometryType.XYZ())
			sectionTopology = XdmfTopology.New()
			sectionTopology.setType(XdmfTopologyType.Triangle())
			#Fill each with 30,000 values
			#for k in range(numNodes):
			#	sectionGeometry.pushBackAsFloat32(k)
			#	sectionTopology.pushBackAsFloat32(k)
			sectionGeometry.resizeAsFloat32(30000)
			sectionTopology.resizeAsFloat32(30000)
			sectionGrid.setGeometry(sectionGeometry)
			sectionGrid.setTopology(sectionTopology)
			for k in range(numAttrib):
				sectionAttribute = XdmfAttribute.New()
				#for l in range(numNodes):
				#	sectionAttribute.pushBackAsFloat32(l)
				sectionAttribute.resizeAsFloat32(30000)
				sectionGrid.insert(sectionAttribute)
			timestampGrid.insert(sectionGrid)
			#exampleHeavyWriter.openFile()
			#sectionGrid.accept(exampleHeavyWriter)
			#exampleHeavyWriter.closeFile()
		primaryCollection.insert(timestampGrid)
		writeclock = time.clock()
		exampleHeavyWriter.openFile()
		#primaryDomain.accept(exampleHeavyWriter)
		if i % 10 == 9:
			primaryDomain.accept(exampleWriter)
		else:
			timestampGrid.accept(exampleHeavyWriter)
		exampleHeavyWriter.closeFile()
		print "iteration " + str(i) + " Time = " + str(time.clock() - writeclock)


	exampleHeavyWriter.openFile()
	primaryDomain.accept(exampleWriter)

	exampleHeavyWriter.closeFile()

	print (time.clock() - startclock)

	os.remove(xmffile)
	os.remove(h5file)