Changeset 9719
- Timestamp:
- Apr 2, 2015, 3:11:36 PM (10 years ago)
- Location:
- trunk/anuga_core
- Files:
-
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/.travis.yml
r9714 r9719 1 1 language: python 2 sudo: required 2 3 virtualenv: 3 4 system_site_packages: true … … 16 17 17 18 script: 18 - python runtests.py -vv$COVERAGE19 - python runtests.py $COVERAGE 19 20 - if [[ "$COVERAGE" == "--coverage" ]]; then cp build/test/.coverage .; fi 20 21 -
trunk/anuga_core/README.rst
r9717 r9719 30 30 We recommend using python 2.7 31 31 32 Developed at the Risk Assessment Methods Project at Geoscience 33 Australia and Mathematical Sciences Institute at the Australian 34 National University. 35 32 Developed at Geoscience Australia and Mathematical Sciences Institute at the 33 Australian National University. 36 34 37 35 Copyright 2004 - 2015 -
trunk/anuga_core/anuga/__init__.py
r9716 r9719 48 48 your python interpreter from there.""" 49 49 raise ImportError(msg) 50 51 52 #------------------------------------------53 # Hacky Code to allow binary install on windows54 # without a compiler by packaging the mingw55 # runtime libraries56 #-----------------------------------------57 58 59 # At runtime, If mingw not installed add mingw dlls folder to path60 import sys61 import os62 if sys.platform == 'win32':63 MinGW = False64 import subprocess65 try:66 output = subprocess.check_output('gcc -dumpmachine', shell=True, stderr=subprocess.STDOUT)67 MinGW = 'mingw' in output68 except Exception as e:69 pass70 71 if not MinGW:72 (folder, tail) = os.path.split(__file__)73 runtime_dir = os.path.join(os.path.abspath(folder), 'runtime_libs')74 os.environ['PATH'] = runtime_dir + ';' + os.environ['PATH']75 50 76 51 … … 344 319 from anuga.config import velocity_protection 345 320 346 ## if use_psyco: 347 ## # try using psyco if available 348 ## try: 349 ## import psyco 350 ## except: 351 ## import os 352 ## import sys 353 ## if os.name == 'posix' and os.uname()[4] in ['x86_64', 'ia64']: 354 ## pass 355 ## # Psyco isn't supported on 64 bit systems, but it doesn't matter 356 ## elif sys.version[:3] == '2.7' : 357 ## pass 358 ## # Psyco isn't available for python 2.7 (16/05/2011) 359 ## else: 360 ## log.critical('WARNING: psyco (speedup) could not be imported, ' 361 ## 'you may want to consider installing it') 362 ## else: 363 ## psyco.full() # aggressively compile everything 364 ## #psyco.background() # attempt to profile code - only compile most used 365 366 367 368 369 321 322 323 324 325 -
trunk/anuga_core/anuga/shallow_water/shallow_water_domain.py
r9715 r9719 9 9 Stephen Roberts, Stephen.Roberts@anu.edu.au 10 10 Duncan Gray, Duncan.Gray@ga.gov.au 11 Gareth Davies, gareth.davies.ga.code@gmail.com 11 12 12 13 CreationDate: 2004 -
trunk/anuga_core/anuga/shallow_water/swDE1_domain_ext.c
r9715 r9719 16 16 17 17 18 19 18 #include "Python.h" 20 19 #include "numpy/arrayobject.h" … … 31 30 32 31 // Trick to compute n modulo d (n%d in python) when d is a power of 2 33 unsigned int Mod_of_power_2(unsigned int n, unsigned int d)32 inline unsigned int Mod_of_power_2(unsigned int n, unsigned int d) 34 33 { 35 34 return ( n & (d-1) ); … … 38 37 39 38 // Computational function for rotation 40 in t _rotate(double *q, double n1, double n2) {39 inline int _rotate(double *q, double n1, double n2) { 41 40 /*Rotate the last 2 coordinates of q (q[1], q[2]) 42 41 from x,y coordinates to coordinates based on normal vector (n1, n2). … … 109 108 110 109 // Innermost flux function (using stage w=z+h) 111 in t _flux_function_toro(double *q_left, double *q_right,110 inline int _flux_function_toro(double *q_left, double *q_right, 112 111 double h_left, double h_right, 113 112 double hle, double hre, … … 283 282 284 283 // Innermost flux function (using stage w=z+h) 285 in t _flux_function_central(double *q_left, double *q_right,284 inline int _flux_function_central(double *q_left, double *q_right, 286 285 double h_left, double h_right, 287 286 double hle, double hre, … … 452 451 //////////////////////////////////////////////////////////////// 453 452 454 in t _compute_flux_update_frequency(struct domain *D, double timestep){453 inline int _compute_flux_update_frequency(struct domain *D, double timestep){ 455 454 // Compute the 'flux_update_frequency' for each edge. 456 455 // … … 614 613 615 614 616 double adjust_edgeflux_with_weir(double *edgeflux,615 inline double adjust_edgeflux_with_weir(double *edgeflux, 617 616 double h_left, double h_right, 618 617 double g, double weir_height, … … 708 707 709 708 // Computational function for flux computation 710 double _compute_fluxes_central(struct domain *D, double timestep){709 inline double _compute_fluxes_central(struct domain *D, double timestep){ 711 710 712 711 // Local variables … … 1079 1078 1080 1079 // Protect against the water elevation falling below the triangle bed 1081 double _protect(int N,1080 inline double _protect(int N, 1082 1081 double minimum_allowed_height, 1083 1082 double maximum_allowed_speed, … … 1141 1140 } 1142 1141 1143 in t find_qmin_and_qmax(double dq0, double dq1, double dq2,1142 inline int find_qmin_and_qmax(double dq0, double dq1, double dq2, 1144 1143 double *qmin, double *qmax){ 1145 1144 // Considering the centroid of an FV triangle and the vertices of its … … 1161 1160 } 1162 1161 1163 in t limit_gradient(double *dqv, double qmin, double qmax, double beta_w){1162 inline int limit_gradient(double *dqv, double qmin, double qmax, double beta_w){ 1164 1163 // Given provisional jumps dqv from the FV triangle centroid to its 1165 1164 // vertices/edges, and jumps qmin (qmax) between the centroid of the FV … … 1232 1231 // double* y_centroid_work, 1233 1232 // long* update_extrapolation) { 1234 in t _extrapolate_second_order_edge_sw(struct domain *D){1233 inline int _extrapolate_second_order_edge_sw(struct domain *D){ 1235 1234 1236 1235 // Local variables -
trunk/anuga_core/anuga/utilities/quantity_setting_functions.py
r9679 r9719 509 509 number_of_ip = ip.sum() 510 510 ip = ip.nonzero()[0] 511 512 # Check that none of the ip points has an nan value 513 nan_ip = (quantityVal[ip] != quantityVal[ip]).nonzero()[0] 514 515 if len(nan_ip) > 0: 516 print len(nan_ip), ' points outside the nan_interpolation_region_polygon have nan values' 517 print 'This should not happen' 518 print 'The points have the following coordinates:' 519 print xy_array_trans[ip,:] 520 msg = "There are nan points outside of nan_interpolation_region_polygon, even after all fall-through's" 521 raise Exception(msg) 511 522 512 523 if(number_of_ip < default_k_nearest_neighbours): … … 531 542 if( min(isSet) != 1): 532 543 print 'Some points remain as nan, which is not allowed' 533 unset_inds = (isSet !=1).nonzero()[0]544 unset_inds = (isSet != 1).nonzero()[0] 534 545 lui = min(5, len(unset_inds)) 535 546 print 'There are ', len(unset_inds), ' such points' 536 547 print 'Here are a few:' 537 548 for i in range(lui): 538 print x[unset_inds[i]] +xll, y[unset_inds[i]]+yll549 print x[unset_inds[i]] + xll, y[unset_inds[i]] + yll 539 550 raise Exception('It seems the input data needs to be fixed') 540 551 -
trunk/anuga_core/anuga/utilities/spatialInputUtil.py
r9696 r9719 272 272 except: 273 273 msg = 'Could not read points from ' + filename 274 raise Exception , msg274 raise Exception(msg) 275 275 else: 276 276 # Assume txt format … … 283 283 '. Make sure it has a single header row, ' +\ 284 284 'with comma separator, and the first 2 columns are x,y' 285 raise Exception , msg285 raise Exception(msg) 286 286 return points 287 287 … … 330 330 data=ogr.Geometry(ogr.wkbLinearRing) 331 331 else: 332 raise Exception, "Type must be either 'point' or 'line' or 'polygon'" 332 msg = "Type must be either 'point' or 'line' or 'polygon'" 333 raise Exception(msg) 333 334 334 335 for i in range(len(pts)): … … 348 349 data.AddPoint(pts[i][0], pts[i][1], pts[i][2]) 349 350 else: 350 raise Exception , 'Points must be either 2 or 3 dimensional'351 raise Exception('Points must be either 2 or 3 dimensional') 351 352 352 353 if(geometry_type=='polygon'): … … 370 371 new=[ list(wkb_geo.GetPoints()[i]) for i in range(len(wkb_geo.GetPoints())) ] 371 372 else: 372 raise Exception , 'Geometry type not supported'373 raise Exception('Geometry type not supported') 373 374 374 375 if(removeLast): … … 672 673 xOrigin = transform[0] 673 674 yOrigin = transform[3] 674 xPixels =raster.RasterXSize675 yPixels =raster.RasterYSize675 xPixels = raster.RasterXSize 676 yPixels = raster.RasterYSize 676 677 677 678 # Compute the other extreme corner 678 x2 =xOrigin + xPixels*transform[1]+yPixels*transform[2]679 y2 =yOrigin + xPixels*transform[4]+yPixels*transform[5]679 x2 = xOrigin + xPixels * transform[1] + yPixels * transform[2] 680 y2 = yOrigin + xPixels * transform[4] + yPixels * transform[5] 680 681 681 682 xmin=min(xOrigin,x2) … … 723 724 # Raster info 724 725 raster = gdal.Open(rasterFile) 725 rasterBand =raster.GetRasterBand(band)726 rasterBandType =gdal.GetDataTypeName(rasterBand.DataType)726 rasterBand = raster.GetRasterBand(band) 727 rasterBandType = gdal.GetDataTypeName(rasterBand.DataType) 727 728 nodataval = rasterBand.GetNoDataValue() 728 729 729 730 # Projection info 730 transform =raster.GetGeoTransform()731 transform = raster.GetGeoTransform() 731 732 xOrigin = transform[0] 732 733 yOrigin = transform[3] … … 760 761 xMax = raster.RasterXSize 761 762 yMax = raster.RasterYSize 762 if(px.max() <xMax and px.min()>=0 and py.max()<yMax and py.min()>=0):763 if(px.max() < xMax and px.min() >= 0 and py.max() < yMax and py.min() >= 0): 763 764 pass 764 765 else: … … 769 770 for i in range(len(px)): 770 771 771 if(interpolation =='pixel'):772 if(interpolation == 'pixel'): 772 773 # Pixel coordinates 773 xC =int(numpy.floor(px[i]))774 yC =int(numpy.floor(py[i]))774 xC = int(numpy.floor(px[i])) 775 yC = int(numpy.floor(py[i])) 775 776 776 777 structval = rasterBand.ReadRaster(xC,yC,1,1, … … 897 898 898 899 # Get polygon extent 899 polygonArr =numpy.array(polygon)900 poly_xmin =polygonArr[:,0].min()901 poly_xmax =polygonArr[:,0].max()902 poly_ymin =polygonArr[:,1].min()903 poly_ymax =polygonArr[:,1].max()900 polygonArr = numpy.array(polygon) 901 poly_xmin = polygonArr[:,0].min() 902 poly_xmax = polygonArr[:,0].max() 903 poly_ymin = polygonArr[:,1].min() 904 poly_ymax = polygonArr[:,1].max() 904 905 905 906 # Make a 'grid' of points which covers the polygon 906 xGridCount =max( numpy.ceil( (poly_xmax-poly_xmin)/approx_grid_spacing[0]+1. ).astype(int), 4)907 R =(poly_xmax-poly_xmin)*eps908 Xvals =numpy.linspace(poly_xmin+R,poly_xmax-R, xGridCount)909 yGridCount =max( numpy.ceil( (poly_ymax-poly_ymin)/approx_grid_spacing[1]+1. ).astype(int), 4)910 R =(poly_ymax-poly_ymin)*eps911 Yvals =numpy.linspace(poly_ymin+R,poly_ymax-R, yGridCount)912 913 xGrid, yGrid=numpy.meshgrid(Xvals,Yvals)914 Grid =numpy.vstack([xGrid.flatten(),yGrid.flatten()]).transpose()907 xGridCount = max( numpy.ceil( (poly_xmax-poly_xmin)/approx_grid_spacing[0]+1. ).astype(int), 4) 908 R = (poly_xmax-poly_xmin)*eps 909 Xvals = numpy.linspace(poly_xmin+R,poly_xmax-R, xGridCount) 910 yGridCount = max( numpy.ceil( (poly_ymax-poly_ymin)/approx_grid_spacing[1]+1. ).astype(int), 4) 911 R = (poly_ymax-poly_ymin)*eps 912 Yvals = numpy.linspace(poly_ymin+R,poly_ymax-R, yGridCount) 913 914 xGrid, yGrid = numpy.meshgrid(Xvals,Yvals) 915 Grid = numpy.vstack([xGrid.flatten(),yGrid.flatten()]).transpose() 915 916 916 917 keepers = inside_polygon(Grid, polygon) 917 if(len(keepers) ==0):918 if(len(keepers) == 0): 918 919 raise Exception('No points extracted from polygon') 919 xyInside =Grid[keepers,:]920 xyInside = Grid[keepers,:] 920 921 921 922 return(xyInside) … … 928 929 """ 929 930 #matches=[ (pattern in stringList[i]) for i in range(len(stringList))] 930 matches =[]931 matches = [] 931 932 for i in range(len(stringList)): 932 933 if pattern in stringList[i]: … … 1009 1010 if(i>=j): 1010 1011 continue 1011 n2 =krw[j]1012 n2 = krw[j] 1012 1013 # Convert breaklines to wkb format 1013 rw1 =ListPts2Wkb(riverWalls[n1],geometry_type='line')1014 rw2 =ListPts2Wkb(riverWalls[n2],geometry_type='line')1014 rw1 = ListPts2Wkb(riverWalls[n1],geometry_type='line') 1015 rw2 = ListPts2Wkb(riverWalls[n2],geometry_type='line') 1015 1016 # Add intersection points 1016 rw1, rw2 = addIntersectionPtsToLines(rw1, rw2,\1017 rw1, rw2 = addIntersectionPtsToLines(rw1, rw2,\ 1017 1018 point_movement_threshold=point_movement_threshold,\ 1018 1019 verbose=verbose, nameFlag=n1+' intersects '+ n2) 1019 riverWalls[n1] =Wkb2ListPts(rw1)1020 riverWalls[n2] =Wkb2ListPts(rw2)1020 riverWalls[n1] = Wkb2ListPts(rw1) 1021 riverWalls[n2] = Wkb2ListPts(rw2) 1021 1022 1022 1023 # Clean intersections of breaklines with riverwalls … … 1024 1025 print 'Cleaning breakLine-riverWall intersections' 1025 1026 if( (len(riverWalls)>0) and (len(breakLines)>0)): 1026 krw =riverWalls.keys()1027 kbl =breakLines.keys()1027 krw = riverWalls.keys() 1028 kbl = breakLines.keys() 1028 1029 for i in range(len(krw)): 1029 n1 =krw[i]1030 n1 = krw[i] 1030 1031 for j in range(len(kbl)): 1031 n2 =kbl[j]1032 n2 = kbl[j] 1032 1033 # Convert breaklines to wkb format 1033 rw1 =ListPts2Wkb(riverWalls[n1],geometry_type='line')1034 bw2 =ListPts2Wkb(breakLines[n2],geometry_type='line')1034 rw1 = ListPts2Wkb(riverWalls[n1],geometry_type='line') 1035 bw2 = ListPts2Wkb(breakLines[n2],geometry_type='line') 1035 1036 # Add intersection points 1036 rw1, bw2 = addIntersectionPtsToLines(rw1, bw2,\1037 rw1, bw2 = addIntersectionPtsToLines(rw1, bw2,\ 1037 1038 point_movement_threshold=point_movement_threshold,\ 1038 1039 verbose=verbose, nameFlag=n1+' intersects '+ n2) 1039 riverWalls[n1] =Wkb2ListPts(rw1)1040 breakLines[n2] =Wkb2ListPts(bw2)1040 riverWalls[n1] = Wkb2ListPts(rw1) 1041 breakLines[n2] = Wkb2ListPts(bw2) 1041 1042 1042 1043 … … 1045 1046 print 'Cleaning bounding_poly-riverWall intersections' 1046 1047 if( (len(riverWalls)>0)): 1047 krw =riverWalls.keys()1048 krw = riverWalls.keys() 1048 1049 for i in range(len(krw)): 1049 n1 =krw[i]1050 n1 = krw[i] 1050 1051 # Convert breaklines to wkb format 1051 rw1 =ListPts2Wkb(riverWalls[n1],geometry_type='line')1052 bp2 =ListPts2Wkb(bounding_polygon,geometry_type='line', appendFirstOnEnd=True)1052 rw1 = ListPts2Wkb(riverWalls[n1],geometry_type='line') 1053 bp2 = ListPts2Wkb(bounding_polygon,geometry_type='line', appendFirstOnEnd=True) 1053 1054 # Add intersection points 1054 rw1, bp2 = addIntersectionPtsToLines(rw1, bp2,\1055 rw1, bp2 = addIntersectionPtsToLines(rw1, bp2,\ 1055 1056 point_movement_threshold=point_movement_threshold,\ 1056 1057 verbose=verbose, nameFlag='Bounding Pol intersects '+ n1) 1057 riverWalls[n1] =Wkb2ListPts(rw1)1058 riverWalls[n1] = Wkb2ListPts(rw1) 1058 1059 # Since the bounding polygon is a loop, the first/last points are the same 1059 1060 # If one of these was moved, the other should be moved too. Since we 1060 1061 # will drop the last bounding_polygon point, we only need to worry about the first 1061 bounding_polygon =Wkb2ListPts(bp2,removeLast=False)1062 bounding_polygon = Wkb2ListPts(bp2,removeLast=False) 1062 1063 if(bounding_polygon[-1] is not bounding_polygon[0]): 1063 bounding_polygon[0] =bounding_polygon[-1]1064 bounding_polygon[0] = bounding_polygon[-1] 1064 1065 # Drop the last point 1065 bounding_polygon =bounding_polygon[:-1]1066 bounding_polygon = bounding_polygon[:-1] 1066 1067 1067 1068 # Clean intersections of bounding polygon and breaklines … … 1069 1070 print 'Cleaning bounding_poly-breaklines intersections' 1070 1071 if( (len(breakLines)>0)): 1071 kbl =breakLines.keys()1072 kbl = breakLines.keys() 1072 1073 for i in range(len(kbl)): 1073 n1 =kbl[i]1074 n1 = kbl[i] 1074 1075 # Convert breaklines to wkb format 1075 bl1 =ListPts2Wkb(breakLines[n1],geometry_type='line')1076 bp2 =ListPts2Wkb(bounding_polygon,geometry_type='line', appendFirstOnEnd=True)1076 bl1 = ListPts2Wkb(breakLines[n1],geometry_type='line') 1077 bp2 = ListPts2Wkb(bounding_polygon,geometry_type='line', appendFirstOnEnd=True) 1077 1078 # Add intersection points 1078 bl1, bp2 = addIntersectionPtsToLines(bl1, bp2,\1079 bl1, bp2 = addIntersectionPtsToLines(bl1, bp2,\ 1079 1080 point_movement_threshold=point_movement_threshold, 1080 1081 verbose=verbose, nameFlag='Bounding Pol intersects '+n1) 1081 breakLines[n1] =Wkb2ListPts(bl1)1082 breakLines[n1] = Wkb2ListPts(bl1) 1082 1083 # Since the bounding polygon is a loop, the first/last points are the same 1083 1084 # If one of these was moved, the other should be moved too. Since we 1084 1085 # will drop the last bp2 point, we only need to worry about the first 1085 bounding_polygon =Wkb2ListPts(bp2,removeLast=False)1086 bounding_polygon = Wkb2ListPts(bp2,removeLast=False) 1086 1087 if(bounding_polygon[-1] is not bounding_polygon[0]): 1087 bounding_polygon[0] =bounding_polygon[-1]1088 bounding_polygon[0] = bounding_polygon[-1] 1088 1089 # Drop the last point 1089 bounding_polygon =bounding_polygon[:-1]1090 bounding_polygon = bounding_polygon[:-1] 1090 1091 1091 1092 # Remove the extra 0.0 from bounding polygon [this cannot have 3 coordinates] … … 1099 1100 for blCat in [riverWalls, breakLines]: 1100 1101 for n1 in blCat.keys(): 1101 l =len(blCat[n1])1102 l = len(blCat[n1]) 1102 1103 # Test every point -- means we can strip 3rd coordinate if needed 1103 1104 for j in range(l): 1104 isOut =outside_polygon(blCat[n1][j][0:2], bounding_polygon)1105 isOut = outside_polygon(blCat[n1][j][0:2], bounding_polygon) 1105 1106 if(len(isOut)>0): 1106 msg ='Breakline/riverwall point '+str(blCat[n1][j][0:2]) +' on '+ n1+\1107 msg = 'Breakline/riverwall point '+str(blCat[n1][j][0:2]) +' on '+ n1+\ 1107 1108 ' is outside the bounding polygon.\n'+\ 1108 1109 'Check that it exceeds the bounding polygon'+\ … … 1136 1137 """ 1137 1138 1138 ptData =readShpPtsAndAttributes(shapefile)1139 ptData = readShpPtsAndAttributes(shapefile) 1139 1140 1140 1141 # Must have only 1 attribute 1141 assert len(ptData[2])==1 1142 1143 numPts=len(ptData[0]) 1144 outData=[] 1142 if not (len(ptData[2]) == 1): 1143 msg = 'Shapefile ' + shapefile + ' does not contain exactly 1 ' +\ 1144 'attribute, so cannot be read as a regionPointArea' 1145 raise Exception(msg) 1146 1147 numPts = len(ptData[0]) 1148 outData = [] 1145 1149 for i in range(numPts): 1146 1150 if(convert_length_to_area): 1147 newDat =[ptData[0][i][0], ptData[0][i][1], 0.5*float(ptData[1][i])**2]1151 newDat = [ptData[0][i][0], ptData[0][i][1], 0.5*float(ptData[1][i])**2] 1148 1152 else: 1149 newDat =[ptData[0][i][0], ptData[0][i][1], float(ptData[1][i])]1153 newDat = [ptData[0][i][0], ptData[0][i][1], float(ptData[1][i])] 1150 1154 outData.append(newDat) 1151 1155 -
trunk/anuga_core/tools/install_conda.sh
r9717 r9719 11 11 12 12 13 [ -z "$PYTHON_VERSION" ] && PYTHON_VERSION="2.7" 13 PYTHON_VERSION=${PYTHON_VERSION:-"2.7"} 14 ANUGA_BITS=${ANUGA_BITS:-"64"} 14 15 15 16 … … 36 37 # Use the miniconda installer for faster download 37 38 # install of conda itself 38 wget http://repo.continuum.io/miniconda/Miniconda-3.8.3-Linux-x86_64.sh \ 39 -O miniconda.sh 39 if [[ "$ANUGA_BITS" == "64" ]]; then 40 wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh ; 41 fi 42 if [[ "$ANUGA_BITS" == "32" ]]; then 43 wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86.sh -O miniconda.sh ; 44 fi 40 45 chmod +x miniconda.sh && ./miniconda.sh -b 41 46 -
trunk/anuga_core/tools/install_ubuntu.sh
r9718 r9719 10 10 set -e 11 11 12 13 [ -z "$PYTHON_VERSION" ] && PYTHON_VERSION="2.7" 12 PYTHON_VERSION=${PYTHON_VERSION:-"2.7"} 14 13 15 14 sudo apt-get update -q … … 47 46 ######################################################## 48 47 if [[ "$COVERAGE" == "--coverage" ]]; then 49 pip install coverage coveralls48 sudo pip install coverage coveralls 50 49 fi 51 50 -
trunk/anuga_core/validation_tests/experimental_data/dam_break_yeh_petroff/produce_results.py
r9117 r9719 1 #-------------------------------- 2 # import modules 3 #-------------------------------- 4 from anuga.validation_utilities.fabricate import * 5 from anuga.validation_utilities import run_validation_script 6 from anuga.validation_utilities import typeset_report 1 import anuga 2 from anuga.validation_utilities import produce_report 3 4 args = anuga.get_args() 5 6 produce_report('numerical_Yeh_Petroff.py', args=args) 7 7 8 8 9 # Setup the python scripts which produce the output for this10 # validation test11 def build():12 run_validation_script('numerical_Yeh_Petroff.py')13 run_validation_script('plot_results.py')14 typeset_report()15 9 16 def clean():17 autoclean()18 19 main()20 -
trunk/anuga_core/validation_tests/reports/all_tests_produce_results.py
r9317 r9719 22 22 #--------------------------------- 23 23 timestamp = time.asctime() 24 major_revision = anuga. config.major_revision24 major_revision = anuga.__version__ 25 25 try: 26 26 # This fails if using git for version control
Note: See TracChangeset
for help on using the changeset viewer.