source: trunk/anuga_work/development/mem_time_tests/scenarios/vel2/main.py @ 8331

Last change on this file since 8331 was 8331, checked in by pittj, 12 years ago

update for the new experiments

  • Property svn:executable set to *
File size: 3.2 KB
Line 
1#------------------------------------------------------------------------------
2# Import necessary modules
3#------------------------------------------------------------------------------
4import anuga
5import subprocess
6import csv
7import os
8import time
9from anuga.abstract_2d_finite_volumes.util import add_directories
10from anuga.utilities.log_analyser import analyse_log
11
12#------------------------------------------------------------------------------
13# Set up variables for the correct directories to store the output
14#------------------------------------------------------------------------------
15home = os.getenv('INUNDATIONHOME')
16scenariodir = add_directories(home, ["data","mem_time_test", "scenarios",
17                                     "velocity"])
18meta = 'metalog.csv'
19meta_path = os.path.join(scenariodir, meta)
20final = 'final.csv'
21final_path = os.path.join(scenariodir, final)
22
23# these are the main loops that give the velocity of inflow (m) and the map side length(n)
24for m in range(0,250,10):
25     for n in range(1,2000,300): 
26         subprocess.call(['python2.5', 'ex1.py', str(m), str(n)])#run simulation script
27print 'DONE' 
28
29#get the important data for the experiments from the anuga experiments
30analyse_log(scenariodir, os.path.join(scenariodir,'metalog.csv')) 
31
32#open files to read from and write to
33metalog = csv.reader(open(meta_path,'rb'))
34final = csv.writer(open(final_path,'wb'))
35
36#list stores the index of the values requird
37indexlist = []
38
39#read in the first row
40firstrow = metalog.next()
41
42#get the indices of the values we want, so that the data can be condensed
43indexlist.append(firstrow.index("beforetime"))
44indexlist.append(firstrow.index("aftertime"))
45indexlist.append(firstrow.index("beforesimulationmemory"))
46indexlist.append(firstrow.index("aftermeshmemory"))
47indexlist.append(firstrow.index("afterinitialconditionsmemory"))
48indexlist.append(firstrow.index("afterboundarymemory"))
49indexlist.append(firstrow.index("aftersimulationmemory"))
50indexlist.append(firstrow.index("variable1"))
51
52#not all experiments have 3 variables, but some do
53try:
54    indexlist.append(firstrow.index("variable2"))
55except ValueError:
56    indexlist.append(firstrow.index("beforetime"))
57try:
58    indexlist.append(firstrow.index("variable3"))
59except ValueError:
60    indexlist.append(firstrow.index("aftertime"))
61
62#write the header for the final csv
63final.writerow(["TimeTaken(s)",firstrow[(indexlist[2])],
64                firstrow[(indexlist[3])],firstrow[(indexlist[4])],
65                firstrow[(indexlist[5])],firstrow[(indexlist[6])],
66                firstrow[(indexlist[7])],firstrow[(indexlist[8])],
67                firstrow[(indexlist[9])]])
68
69#write the data for each column in the final csv
70for row in metalog:
71
72    #manipulate the beginning and end time to get the time taken
73    begin = time.strptime(row[(indexlist[0])],'%Y%m%d_%H%M%S')
74    end = time.strptime(row[(indexlist[1])],'%Y%m%d_%H%M%S')
75    taken = time.mktime(end) - time.mktime(begin)
76
77    #write to file
78    final.writerow([str(taken),row[(indexlist[2])],
79                    row[(indexlist[3])],row[(indexlist[4])],
80                    row[(indexlist[5])],row[(indexlist[6])],
81                    row[(indexlist[7])],row[(indexlist[8])],
82                    row[(indexlist[9])]])
83
84
Note: See TracBrowser for help on using the repository browser.