Changeset 9155
- Timestamp:
- Jun 14, 2014, 10:20:26 PM (11 years ago)
- Location:
- trunk/anuga_core/validation_tests/analytical_exact
- Files:
-
- 38 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/validation_tests/analytical_exact/avalanche_dry/numerical_avalanche_dry.py
r8722 r9155 15 15 from time import localtime, strftime, gmtime 16 16 from numpy import sin, cos, tan, arctan 17 17 from anuga import myid, finalize, distribute 18 18 19 19 #------------------------------------------------------------------------------- … … 41 41 W = 3*dx 42 42 43 def stage(X,Y): 44 N = len(X) 45 w = zeros(N) 46 for i in range(N): 47 if X[i]<=0.0: 48 w[i] = bed_slope*X[i] 49 else: 50 w[i] = bed_slope*X[i] + h_0 51 return w 43 52 44 # structured mesh 45 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (-L/2.0, -W/2.0)) 53 def elevation(X,Y): 54 N = len(X) 55 y=zeros(N) 56 for i in range(N): 57 y[i] = bed_slope*X[i] 58 return y 46 59 47 #domain = anuga.Domain(points, vertices, boundary)48 domain = Domain(points, vertices, boundary)49 60 50 domain.set_name(output_file)51 domain.set_datadir(output_dir)52 53 #------------------------------------------------------------------------------54 # Setup Algorithm, either using command line arguments55 # or override manually yourself56 #------------------------------------------------------------------------------57 from anuga.utilities.argparsing import parse_standard_args58 alg, cfl = parse_standard_args()59 domain.set_flow_algorithm(alg)60 domain.set_CFL(cfl)61 62 #------------------------------------------------------------------------------63 # Setup initial conditions64 #------------------------------------------------------------------------------65 66 # No Mannings friction, but we introduce Coulomb friction below.67 domain.set_quantity('friction', 0.0)68 61 class Coulomb_friction: 69 62 … … 94 87 friction_slope = 0.05 95 88 Coulomb_forcing_term = Coulomb_friction(friction_slope, bed_slope) 96 domain.forcing_terms.append(Coulomb_forcing_term)97 98 def stage(X,Y):99 N = len(X)100 w = zeros(N)101 for i in range(N):102 if X[i]<=0.0:103 w[i] = bed_slope*X[i]104 else:105 w[i] = bed_slope*X[i] + h_0106 return w107 domain.set_quantity('stage', stage)108 109 def elevation(X,Y):110 N = len(X)111 y=zeros(N)112 for i in range(N):113 y[i] = bed_slope*X[i]114 return y115 domain.set_quantity('elevation',elevation)116 89 117 90 def f_right(t): … … 123 96 return [w_r, u_r*h_r, 0.0] 124 97 98 #------------------------------------------------------------------------------ 99 # Setup Algorithm, either using command line arguments 100 # or override manually yourself 101 #------------------------------------------------------------------------------ 102 args = anuga.get_args() 103 alg = args.alg 104 cfl = args.cfl 105 verbose = args.v 125 106 107 if myid == 0: 108 109 # structured mesh 110 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (-L/2.0, -W/2.0)) 111 112 #domain = anuga.Domain(points, vertices, boundary) 113 domain = Domain(points, vertices, boundary) 114 115 domain.set_name(output_file) 116 domain.set_datadir(output_dir) 117 118 domain.set_flow_algorithm(alg) 119 #domain.set_CFL(cfl) 120 121 #------------------------------------------------------------------------------ 122 # Setup initial conditions 123 #------------------------------------------------------------------------------ 124 125 # No Mannings friction, but we introduce Coulomb friction below. 126 domain.set_quantity('friction', 0.0) 127 domain.set_quantity('stage', stage) 128 domain.set_quantity('elevation',elevation) 129 130 else: 131 132 domain = None 133 134 135 domain = distribute(domain) 136 137 138 #----------------------------------------------------------------------------- 139 # Special implementation of Coulomb friction 140 #----------------------------------------------------------------------------- 141 domain.forcing_terms.append(Coulomb_forcing_term) 126 142 127 143 … … 139 155 140 156 141 #===============================================================================142 ##from anuga.visualiser import RealtimeVisualiser143 ##vis = RealtimeVisualiser(domain)144 ##vis.render_quantity_height("stage", zScale =h0*500, dynamic=True)145 ##vis.colour_height_quantity('stage', (0.0, 0.5, 1.0))146 ##vis.start()147 #===============================================================================148 149 157 150 158 #------------------------------------------------------------------------------ 151 159 # Produce a documentation of parameters 152 160 #------------------------------------------------------------------------------ 153 parameter_file=open('parameters.tex', 'w') 154 parameter_file.write('\\begin{verbatim}\n') 155 from pprint import pprint 156 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 157 parameter_file.write('\\end{verbatim}\n') 158 parameter_file.close() 161 if myid == 0: 162 parameter_file=open('parameters.tex', 'w') 163 parameter_file.write('\\begin{verbatim}\n') 164 from pprint import pprint 165 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 166 parameter_file.write('\\end{verbatim}\n') 167 parameter_file.close() 159 168 160 169 #------------------------------------------------------------------------------ … … 162 171 #------------------------------------------------------------------------------ 163 172 for t in domain.evolve(yieldstep = 0.1, finaltime = 3.): 164 #print domain.timestepping_statistics(track_speeds=True) 165 print domain.timestepping_statistics() 166 #vis.update() 173 if myid == 0 and verbose: print domain.timestepping_statistics() 174 175 176 domain.sww_merge(delete_old=True) 167 177 168 178 169 #test against know data 170 171 #vis.evolveFinished() 179 finalize() 172 180 181 -
trunk/anuga_core/validation_tests/analytical_exact/avalanche_dry/produce_results.py
r9117 r9155 2 2 # import modules 3 3 #-------------------------------- 4 from anuga.validation_utilities.fabricate import * 5 from anuga.validation_utilities.run_validation import run_validation_script 6 from anuga.validation_utilities.typeset_report import typeset_report 4 import anuga 5 from anuga.validation_utilities import produce_report 6 7 args = anuga.get_args() 8 9 produce_report('numerical_avalanche_dry.py', args=args) 7 10 8 11 9 # Setup the python scripts which produce the output for this10 # validation test11 def build():12 run_validation_script('numerical_avalanche_dry.py')13 run_validation_script('plot_results.py')14 typeset_report()15 12 16 17 def clean():18 autoclean()19 20 main()21 -
trunk/anuga_core/validation_tests/analytical_exact/avalanche_dry/validate_avalanche_dry.py
r9001 r9155 10 10 indent = anuga.indent 11 11 12 verbose = True 12 args = anuga.get_args() 13 verbose = args.v 13 14 14 15 class Test_results(unittest.TestCase): … … 32 33 print indent+'Running simulation script' 33 34 35 34 36 s = 'numerical_avalanche_dry.py' 35 res = os.system('python %s > validate_output.stdout' %s) 37 res = anuga.run_anuga_script(s,args=args) 38 36 39 37 40 # Test that script runs ok -
trunk/anuga_core/validation_tests/analytical_exact/avalanche_wet/numerical_avalanche_wet.py
r8723 r9155 58 58 alg, cfl = parse_standard_args() 59 59 domain.set_flow_algorithm(alg) 60 domain.set_CFL(cfl)60 #domain.set_CFL(cfl) 61 61 62 62 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/avalanche_wet/produce_results.py
r9117 r9155 1 #--------------------------------2 # import modules3 #--------------------------------4 from anuga.validation_utilities.fabricate import *5 from anuga.validation_utilities import run_validation_script6 from anuga.validation_utilities import typeset_report7 1 8 # Setup the python scripts which produce the output for this 9 # validation test 10 def build(): 11 run_validation_script('numerical_avalanche_wet.py') 12 run_validation_script('plot_results.py') 13 typeset_report() 2 import anuga 3 from anuga.validation_utilities import produce_report 14 4 15 def clean(): 16 autoclean() 5 args = anuga.get_args() 17 6 18 main()7 produce_report('numerical_avalanche_wet.py', args=args) 19 8 9 -
trunk/anuga_core/validation_tests/analytical_exact/carrier_greenspan_periodic/produce_results.py
r9117 r9155 2 2 # import modules 3 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 4 import anuga 5 from anuga.validation_utilities import produce_report 7 6 8 # Setup the python scripts which produce the output for this 9 # validation test 10 def build(): 11 run_validation_script('numerical_carrier_greenspan.py') 12 run_validation_script('plot_results_cross_section.py') 13 run_validation_script('plot_results_origin_wrt_time.py') 14 typeset_report() 7 args = anuga.get_args() 8 9 produce_report('numerical_carrier_greenspan.py', args=args) 15 10 16 11 17 def clean():18 autoclean()19 12 20 main()21 -
trunk/anuga_core/validation_tests/analytical_exact/carrier_greenspan_transient/numerical_cg_transient.py
r8915 r9155 15 15 from scipy.optimize import fsolve 16 16 from math import sin, pi, exp, sqrt, cos 17 from analytical_cg_transient import * 17 from analytical_cg_transient import analytical_sol 18 19 from anuga import myid, finalize, distribute 20 21 import warnings 22 warnings.simplefilter('ignore') 23 24 #------------------------------------------------------------------------------ 25 # Setup Algorithm, either using command line arguments 26 # or override manually yourself 27 #------------------------------------------------------------------------------ 28 args = anuga.get_args() 29 alg = args.alg 30 cfl = args.cfl 31 verbose = args.v 18 32 19 33 … … 44 58 45 59 46 # structured mesh47 points, vertices, boundary = anuga.rectangular_cross(int(0.8*L/dx), int(W/dy), 0.8*L, W, (-0.5*L, -0.5*W))48 domain = Domain(points, vertices, boundary)49 domain.set_name(output_file)50 domain.set_datadir(output_dir)51 52 #------------------------------------------------------------------------------53 # Setup Algorithm, either using command line arguments54 # or override manually yourself55 #------------------------------------------------------------------------------56 from anuga.utilities.argparsing import parse_standard_args57 alg, cfl = parse_standard_args()58 domain.set_flow_algorithm(alg)59 domain.set_CFL(cfl)60 61 #------------------------------------------------------------------------------62 # Setup initial conditions63 #------------------------------------------------------------------------------64 domain.set_quantity('friction', 0.0)65 66 60 def elevation(x,y): 67 61 return h0*x/L 68 domain.set_quantity('elevation', elevation) 62 69 63 70 64 def stage(x,y): 71 65 w,z,u = analytical_sol(x/L,0.0) 72 66 return h0*w 73 domain.set_quantity('stage', stage)74 67 75 68 69 70 if myid == 0: 71 # structured mesh 72 points, vertices, boundary = anuga.rectangular_cross(int(0.8*L/dx), int(W/dy), 0.8*L, W, (-0.5*L, -0.5*W)) 73 domain = Domain(points, vertices, boundary) 74 domain.set_name(output_file) 75 domain.set_datadir(output_dir) 76 77 domain.set_flow_algorithm(alg) 78 #domain.set_CFL(cfl) 79 80 #------------------------------------------------------------------------------ 81 # Setup initial conditions 82 #------------------------------------------------------------------------------ 83 domain.set_quantity('friction', 0.0) 84 domain.set_quantity('stage', stage) 85 domain.set_quantity('elevation', elevation) 86 87 else: 88 domain = None 89 90 domain = distribute(domain) 76 91 77 92 #----------------------------------------------------------------------------- … … 106 121 107 122 108 #------------------------------------------------------------------------------ 109 # Produce a documentation of parameters 110 #------------------------------------------------------------------------------ 111 parameter_file=open('parameters.tex', 'w') 112 parameter_file.write('\\begin{verbatim}\n') 113 from pprint import pprint 114 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 115 parameter_file.write('\\end{verbatim}\n') 116 parameter_file.close() 123 if myid == 0: 124 #------------------------------------------------------------------------------ 125 # Produce a documentation of parameters 126 #------------------------------------------------------------------------------ 127 parameter_file=open('parameters.tex', 'w') 128 parameter_file.write('\\begin{verbatim}\n') 129 from pprint import pprint 130 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 131 parameter_file.write('\\end{verbatim}\n') 132 parameter_file.close() 117 133 118 134 #------------------------------------------------------------------------------ … … 121 137 for t in domain.evolve(yieldstep = 1000., finaltime = 30000.): 122 138 #print domain.timestepping_statistics(track_speeds=True) 123 print domain.timestepping_statistics() 139 if myid == 0 and verbose: 140 print domain.timestepping_statistics() 124 141 #vis.update() 125 142 126 143 127 #test against know data 128 129 #vis.evolveFinished() 144 domain.sww_merge(delete_old=True) 130 145 146 finalize() 147 148 -
trunk/anuga_core/validation_tests/analytical_exact/carrier_greenspan_transient/produce_results.py
r9117 r9155 2 2 # import modules 3 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 4 import anuga 5 from anuga.validation_utilities import produce_report 7 6 7 args = anuga.get_args() 8 8 9 # Setup the python scripts which produce the output for this 10 # validation test 11 def build(): 12 run_validation_script('numerical_cg_transient.py') 13 run_validation_script('plot_results.py') 14 typeset_report() 9 produce_report('numerical_cg_transient.py', args=args) 15 10 16 def clean():17 autoclean()18 19 main()20 -
trunk/anuga_core/validation_tests/analytical_exact/carrier_greenspan_transient/validate_carrier_greenspan_transient.py
r9138 r9155 122 122 123 123 for i, id in enumerate(ids): 124 assert euh[i] < 0.02 , 'L^1 error %g greater than 2 percent'% euh[i]124 assert euh[i] < 0.025, 'L^1 error %g greater than 2 percent'% euh[i] 125 125 126 126 -
trunk/anuga_core/validation_tests/analytical_exact/dam_break_dry/numerical_dam_break_dry.py
r9137 r9155 48 48 return z 49 49 50 51 args = anuga.get_args() 52 alg = args.alg 53 cfl = args.cfl 54 verbose = args.v 55 56 print args 57 58 50 59 #================================================================================ 51 60 # create sequential domain … … 65 74 # or override manually yourself 66 75 #------------------------------------------------------------------------------ 67 from anuga.utilities.argparsing import parse_standard_args68 alg, cfl = parse_standard_args()69 76 domain.set_flow_algorithm(alg) 70 domain.set_CFL(cfl)77 #domain.set_CFL(cfl) 71 78 72 79 #------------------------------------------------------------------------------ … … 121 128 #=================================================================================== 122 129 for t in domain.evolve(yieldstep = 0.5, finaltime = 50.): 123 if myid == 0 :130 if myid == 0 and verbose: 124 131 print domain.timestepping_statistics() 125 132 -
trunk/anuga_core/validation_tests/analytical_exact/dam_break_dry/produce_results.py
r9117 r9155 2 2 # import modules 3 3 #-------------------------------- 4 from anuga.validation_utilities.fabricate import *5 from anuga.validation_utilities import run_validation_script6 from anuga.validation_utilities import typeset_report7 4 8 # Setup the python scripts which produce the output for this 9 # validation test 10 def build(): 11 run_validation_script('numerical_dam_break_dry.py') 12 run_validation_script('plot_results.py') 13 typeset_report() 5 import anuga 6 from anuga.validation_utilities import produce_report 14 7 15 16 def clean(): 17 autoclean() 8 args = anuga.get_args() 18 9 19 main()10 produce_report('numerical_dam_break_dry.py', args=args) 20 11 12 13 14 15 16 -
trunk/anuga_core/validation_tests/analytical_exact/dam_break_dry/validate_dam_break_dry.py
r8995 r9155 8 8 import anuga 9 9 10 args = anuga.get_args() 11 12 10 13 indent = anuga.indent 11 14 12 verbose = True15 verbose = args.v 13 16 14 17 class Test_results(unittest.TestCase): … … 32 35 print indent+'Running simulation script' 33 36 34 s = ' produce_results.py'35 res = os.system('python %s > validate_output.stdout' %s)37 s = 'numerical_dam_break_dry.py' 38 res = anuga.run_anuga_script(s,args=args) 36 39 37 40 # Test that script runs ok -
trunk/anuga_core/validation_tests/analytical_exact/dam_break_wet/numerical_dam_break_wet.py
r9137 r9155 64 64 alg, cfl = parse_standard_args() 65 65 domain.set_flow_algorithm(alg) 66 domain.set_CFL(cfl)66 #domain.set_CFL(cfl) 67 67 68 68 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/dam_break_wet/produce_results.py
r9117 r9155 2 2 # import modules 3 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 4 5 import anuga 6 from anuga.validation_utilities import produce_report 7 8 args = anuga.get_args() 9 10 produce_report('numerical_dam_break_wet.py', args=args) 7 11 8 12 9 # Setup the python scripts which produce the output for this10 # validation test11 def build():12 run_validation_script('numerical_dam_break_wet.py')13 run_validation_script('plot_results.py')14 typeset_report()15 16 def clean():17 autoclean()18 19 main()20 -
trunk/anuga_core/validation_tests/analytical_exact/dam_break_wet/validate_dam_break_wet.py
r8786 r9155 8 8 import anuga 9 9 10 args = anuga.get_args() 11 10 12 indent = anuga.indent 11 13 12 verbose = True14 verbose = args.v 13 15 14 16 class Test_results(unittest.TestCase): … … 32 34 print indent+'Running simulation script' 33 35 34 s = ' produce_results.py'35 res = os.system('python %s > validate_output.stdout' %s)36 s = 'numerical_dam_break_wet.py' 37 res = anuga.run_anuga_script(s,args=args) 36 38 37 39 # Test that script runs ok -
trunk/anuga_core/validation_tests/analytical_exact/deep_wave/produce_results.py
r9117 r9155 1 from anuga.validation_utilities.fabricate import *2 1 #-------------------------------- 3 2 # import modules 4 3 #-------------------------------- 5 from anuga.validation_utilities.fabricate import * 6 from anuga.validation_utilities import run_validation_script 7 from anuga.validation_utilities import typeset_report 4 import anuga 5 from anuga.validation_utilities import produce_report 8 6 9 # Setup the python scripts which produce the output for this 10 # validation test 11 def build(): 12 run_validation_script('run_wave.py') 13 run_validation_script('plot_results.py') 14 typeset_report() 7 args = anuga.get_args() 15 8 16 def clean(): 17 autoclean() 9 produce_report('run_wave.py', args=args) 18 10 19 main() -
trunk/anuga_core/validation_tests/analytical_exact/deep_wave/run_wave.py
r9035 r9155 11 11 import anuga 12 12 from anuga import Domain 13 from anuga import myid, finalize, distribute 13 14 14 #from balanced_dev import * 15 #from balanced_dev import Domain as Domain 15 16 16 17 17 from math import cos … … 25 25 # algorithm parameters. 26 26 #-------------------------------- 27 from anuga.utilities.argparsing import parse_standard_args 28 alg , cfl = parse_standard_args()27 args = anuga.get_args() 28 alg = args.alg 29 29 30 30 #------------------------------------------------------------------------------- … … 42 42 interactive_visualisation = False 43 43 44 #------------------------------------------------------------------------------ 45 # Setup domain 46 #------------------------------------------------------------------------------ 47 dx = 500. 48 dy = dx 49 L = 100000. 50 W = 10*dx 44 if myid == 0: 45 #------------------------------------------------------------------------------ 46 # Setup sequential domain 47 #------------------------------------------------------------------------------ 48 dx = 500. 49 dy = dx 50 L = 100000. 51 W = 10*dx 52 53 # structured mesh 54 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, -W/2)) 55 56 domain = Domain(points, vertices, boundary) 57 58 domain.set_name(output_file) 59 domain.set_datadir(output_dir) 60 61 #------------------------------------------------------------------------------ 62 # Setup Algorithm, either using command line arguments 63 # or override manually yourself 64 #------------------------------------------------------------------------------ 65 from anuga.utilities.argparsing import parse_standard_args 66 alg, cfl = parse_standard_args() 67 domain.set_flow_algorithm(alg) 68 #domain.set_CFL(cfl) 69 70 71 #------------------------------------------------------------------------------ 72 # Setup initial conditions 73 #------------------------------------------------------------------------------ 74 domain.set_quantity('elevation',-100.0) 75 domain.set_quantity('friction', 0.00) 76 domain.set_quantity('stage', 0.0) 51 77 52 # structured mesh 53 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, -W/2)) 78 else: 54 79 55 domain = Domain(points, vertices, boundary) 56 57 domain.set_name(output_file) 58 domain.set_datadir(output_dir) 59 60 #------------------------------------------------------------------------------ 61 # Setup Algorithm, either using command line arguments 62 # or override manually yourself 63 #------------------------------------------------------------------------------ 64 from anuga.utilities.argparsing import parse_standard_args 65 alg, cfl = parse_standard_args() 66 domain.set_flow_algorithm(alg) 67 domain.set_CFL(cfl) 68 69 70 #------------------------------------------------------------------------------ 71 # Setup initial conditions 72 #------------------------------------------------------------------------------ 73 domain.set_quantity('elevation',-100.0) 74 domain.set_quantity('friction', 0.00) 75 domain.set_quantity('stage', 0.0) 76 80 domain = None 81 82 #----------------------------------------------------------------------------------- 83 # Parallel Domain 84 #----------------------------------------------------------------------------------- 85 domain = distribute(domain) 86 77 87 #----------------------------------------------------------------------------- 78 88 # Setup boundary conditions … … 101 111 return amplitude*sin((1./wave_length)*t*2*pi) 102 112 103 Bw2 = anuga. shallow_water.boundaries.Transmissive_n_momentum_zero_t_momentum_set_stage_boundary(domain, waveform2)113 Bw2 = anuga.Transmissive_n_momentum_zero_t_momentum_set_stage_boundary(domain, waveform2) 104 114 #Bw3 = swb2_boundary_conditions.Transmissive_momentum_nudge_stage_boundary(domain, waveform) 105 115 Bw3 = anuga.Time_boundary(domain, waveform) … … 115 125 116 126 117 #===============================================================================118 if interactive_visualisation:119 from anuga.visualiser import RealtimeVisualiser120 vis = RealtimeVisualiser(domain)121 vis.render_quantity_height("stage", zScale =10000, dynamic=True)122 vis.colour_height_quantity('stage', (1.0, 0.5, 0.5))123 vis.start()124 #===============================================================================125 127 126 128 … … 128 130 # Produce a documentation of parameters 129 131 #------------------------------------------------------------------------------ 130 parameter_file=open('parameters.tex', 'w') 131 parameter_file.write('\\begin{verbatim}\n') 132 from pprint import pprint 133 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 134 parameter_file.write('\\end{verbatim}\n') 135 parameter_file.close() 132 if myid == 0: 133 parameter_file=open('parameters.tex', 'w') 134 parameter_file.write('\\begin{verbatim}\n') 135 from pprint import pprint 136 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 137 parameter_file.write('\\end{verbatim}\n') 138 parameter_file.close() 136 139 137 140 #------------------------------------------------------------------------------ … … 144 147 vis.update() 145 148 146 if interactive_visualisation: 147 vis.evolveFinished() 149 domain.sww_merge(delete_old=True) 148 150 151 finalize() 152 -
trunk/anuga_core/validation_tests/analytical_exact/lake_at_rest_immersed_bump/numerical_immersed_bump.py
r8777 r9155 15 15 from time import localtime, strftime, gmtime 16 16 #from balanced_dev import * 17 17 from anuga import myid, finalize, distribute 18 18 19 19 #------------------------------------------------------------------------------- … … 27 27 output_file = 'immersed_bump' 28 28 29 #anuga.copy_code_files(output_dir,__file__)30 #start_screen_catcher(output_dir+'_')31 32 33 #------------------------------------------------------------------------------34 # Setup domain35 #------------------------------------------------------------------------------36 dx = 1.37 dy = dx38 L = 25.39 W = 5*dx40 41 # structured mesh42 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, 0.0))43 44 #domain = anuga.Domain(points, vertices, boundary)45 domain = Domain(points, vertices, boundary)46 47 domain.set_name(output_file)48 domain.set_datadir(output_dir)49 50 #------------------------------------------------------------------------------51 # Setup Algorithm, either using command line arguments52 # or override manually yourself53 #------------------------------------------------------------------------------54 from anuga.utilities.argparsing import parse_standard_args55 alg, cfl = parse_standard_args()56 domain.set_flow_algorithm(alg)57 domain.set_CFL(cfl)58 59 #------------------------------------------------------------------------------60 # Setup initial conditions61 #------------------------------------------------------------------------------62 domain.set_quantity('friction', 0.0)63 domain.set_quantity('stage', 0.5)64 65 29 def bed_elevation(x,y): 66 30 z = zeros(len(x), float) … … 71 35 z[i] = 0.0 72 36 return z 73 domain.set_quantity('elevation', bed_elevation) 37 38 39 args = anuga.get_args() 40 alg = args.alg 41 verbose = args.v 42 43 if myid == 0: 44 #------------------------------------------------------------------------------ 45 # Setup domain 46 #------------------------------------------------------------------------------ 47 dx = 1. 48 dy = dx 49 L = 25. 50 W = 5*dx 51 52 # structured mesh 53 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, 0.0)) 54 55 #domain = anuga.Domain(points, vertices, boundary) 56 domain = Domain(points, vertices, boundary) 57 58 domain.set_name(output_file) 59 domain.set_datadir(output_dir) 60 61 domain.set_flow_algorithm(alg) 62 63 64 #------------------------------------------------------------------------------ 65 # Setup initial conditions 66 #------------------------------------------------------------------------------ 67 domain.set_quantity('friction', 0.0) 68 domain.set_quantity('stage', 0.5) 69 domain.set_quantity('elevation', bed_elevation) 70 71 else: 72 73 domain = None 74 75 #----------------------------------------------------------------------------- 76 # Parallel Domain 77 #----------------------------------------------------------------------------- 78 domain = distribute(domain) 74 79 75 80 #----------------------------------------------------------------------------- … … 85 90 86 91 87 #===============================================================================88 ##from anuga.visualiser import RealtimeVisualiser89 ##vis = RealtimeVisualiser(domain)90 ##vis.render_quantity_height("stage", zScale =h0*500, dynamic=True)91 ##vis.colour_height_quantity('stage', (0.0, 0.5, 1.0))92 ##vis.start()93 #===============================================================================94 92 95 93 … … 97 95 # Produce a documentation of parameters 98 96 #------------------------------------------------------------------------------ 99 parameter_file=open('parameters.tex', 'w') 100 parameter_file.write('\\begin{verbatim}\n') 101 from pprint import pprint 102 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 103 parameter_file.write('\\end{verbatim}\n') 104 parameter_file.close() 97 if myid == 0: 98 parameter_file=open('parameters.tex', 'w') 99 parameter_file.write('\\begin{verbatim}\n') 100 from pprint import pprint 101 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 102 parameter_file.write('\\end{verbatim}\n') 103 parameter_file.close() 105 104 106 105 #------------------------------------------------------------------------------ … … 109 108 for t in domain.evolve(yieldstep = 0.1, finaltime = 5.): 110 109 #print domain.timestepping_statistics(track_speeds=True) 111 print domain.timestepping_statistics() 112 #vis.update() 110 if myid == 0: print domain.timestepping_statistics() 113 111 112 domain.sww_merge(delete_old=True) 114 113 115 #test against know data 116 117 #vis.evolveFinished() 114 finalize() 118 115 -
trunk/anuga_core/validation_tests/analytical_exact/lake_at_rest_immersed_bump/produce_results.py
r9117 r9155 2 2 # import modules 3 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 4 import anuga 5 from anuga.validation_utilities import produce_report 7 6 7 args = anuga.get_args() 8 8 9 # Setup the python scripts which produce the output for this 10 # validation test 11 def build(): 12 run_validation_script('numerical_immersed_bump.py') 13 run_validation_script('plot_results.py') 14 typeset_report() 15 16 def clean(): 17 autoclean() 18 19 main() 20 9 produce_report('numerical_immersed_bump.py', args=args) -
trunk/anuga_core/validation_tests/analytical_exact/lake_at_rest_steep_island/numerical_steep_island.py
r8778 r9155 14 14 from numpy import zeros, float 15 15 from time import localtime, strftime, gmtime 16 #from balanced_dev import * 16 from anuga import myid, finalize, distribute 17 17 18 18 … … 27 27 output_file = 'steep_island' 28 28 29 #anuga.copy_code_files(output_dir,__file__) 30 #start_screen_catcher(output_dir+'_') 29 args = anuga.get_args() 30 alg = args.alg 31 verbose = args.v 31 32 32 33 #------------------------------------------------------------------------------34 # Setup domain35 #------------------------------------------------------------------------------36 33 dx = 1. 37 34 dy = dx 38 35 L = 2000. 39 36 W = 5*dx 40 41 # structured mesh42 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, 0.0))43 44 #domain = anuga.Domain(points, vertices, boundary)45 domain = Domain(points, vertices, boundary)46 47 domain.set_name(output_file)48 domain.set_datadir(output_dir)49 50 #------------------------------------------------------------------------------51 # Setup Algorithm, either using command line arguments52 # or override manually yourself53 #------------------------------------------------------------------------------54 from anuga.utilities.argparsing import parse_standard_args55 alg, cfl = parse_standard_args()56 domain.set_flow_algorithm(alg)57 domain.set_CFL(cfl)58 59 #------------------------------------------------------------------------------60 # Setup initial conditions61 #------------------------------------------------------------------------------62 domain.set_quantity('friction', 0.0)63 37 64 38 def stage_flat(x,y): … … 67 41 w[i]=4.5 68 42 return w 69 domain.set_quantity('stage', stage_flat)70 43 71 44 def bed_elevation(x,y): … … 99 72 z[i] = (4.5/40000)*(x[i]-1800)*(x[i]-1800) + 2.0 100 73 return z 101 domain.set_quantity('elevation', bed_elevation) 74 75 #------------------------------------------------------------------------------ 76 # Setup sequential domain 77 #------------------------------------------------------------------------------ 78 if myid == 0: 79 # structured mesh 80 points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, 0.0)) 81 82 domain = Domain(points, vertices, boundary) 83 84 domain.set_name(output_file) 85 domain.set_datadir(output_dir) 86 domain.set_flow_algorithm(alg) 87 88 #------------------------------------------------------------------------------ 89 # Setup initial conditions 90 #------------------------------------------------------------------------------ 91 domain.set_quantity('friction', 0.0) 92 domain.set_quantity('stage', stage_flat) 93 domain.set_quantity('elevation', bed_elevation) 94 95 else: 96 97 domain = None 98 99 #----------------------------------------------------------------------------- 100 # Parallel Domain 101 #----------------------------------------------------------------------------- 102 domain = distribute(domain) 102 103 103 104 #----------------------------------------------------------------------------- … … 113 114 114 115 115 #===============================================================================116 ##from anuga.visualiser import RealtimeVisualiser117 ##vis = RealtimeVisualiser(domain)118 ##vis.render_quantity_height("stage", zScale =h0*500, dynamic=True)119 ##vis.colour_height_quantity('stage', (0.0, 0.5, 1.0))120 ##vis.start()121 #===============================================================================122 116 123 117 … … 125 119 # Produce a documentation of parameters 126 120 #------------------------------------------------------------------------------ 127 parameter_file=open('parameters.tex', 'w') 128 parameter_file.write('\\begin{verbatim}\n') 129 from pprint import pprint 130 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 131 parameter_file.write('\\end{verbatim}\n') 132 parameter_file.close() 121 if myid == 0: 122 parameter_file=open('parameters.tex', 'w') 123 parameter_file.write('\\begin{verbatim}\n') 124 from pprint import pprint 125 pprint(domain.get_algorithm_parameters(),parameter_file,indent=4) 126 parameter_file.write('\\end{verbatim}\n') 127 parameter_file.close() 133 128 134 129 #------------------------------------------------------------------------------ … … 137 132 for t in domain.evolve(yieldstep = 0.1, finaltime = 5.): 138 133 #print domain.timestepping_statistics(track_speeds=True) 139 print domain.timestepping_statistics() 140 #vis.update() 134 if myid == 0: print domain.timestepping_statistics() 141 135 142 136 143 #test against know data 144 145 #vis.evolveFinished() 137 domain.sww_merge(delete_old=True) 146 138 139 finalize() 140 141 142 # 143 -
trunk/anuga_core/validation_tests/analytical_exact/lake_at_rest_steep_island/produce_results.py
r9117 r9155 2 2 # import modules 3 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 4 import anuga 5 from anuga.validation_utilities import produce_report 6 7 args = anuga.get_args() 8 9 produce_report('numerical_steep_island.py', args=args) 7 10 8 11 9 # Setup the python scripts which produce the output for this10 # validation test11 def build():12 run_validation_script('numerical_steep_island.py')13 run_validation_script('plot_results.py')14 typeset_report()15 16 def clean():17 autoclean()18 19 main()20 -
trunk/anuga_core/validation_tests/analytical_exact/landslide_tsunami/runup.py
r9038 r9155 37 37 alg, cfl = parse_standard_args() 38 38 domain.set_flow_algorithm(alg) 39 domain.set_CFL(cfl)39 #domain.set_CFL(cfl) 40 40 41 41 #------------------ -
trunk/anuga_core/validation_tests/analytical_exact/mac_donald_short_channel/numerical_MacDonald.py
r8783 r9155 54 54 alg, cfl = parse_standard_args() 55 55 domain.set_flow_algorithm(alg) 56 domain.set_CFL(cfl)56 #domain.set_CFL(cfl) 57 57 58 58 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/parabolic_basin/numerical_parabolic_basin.py
r8788 r9155 45 45 alg, cfl = parse_standard_args() 46 46 domain.set_flow_algorithm(alg) 47 domain.set_CFL(cfl)47 #domain.set_CFL(cfl) 48 48 49 49 #------------------ -
trunk/anuga_core/validation_tests/analytical_exact/paraboloid_basin/numerical_paraboloid_basin.py
r8868 r9155 63 63 #domain.set_timestepping_method(2) 64 64 #domain.set_beta(1.5) 65 # domain.set_CFL(0.6)65 ##domain.set_CFL(0.6) 66 66 #domain.smooth = True 67 67 -
trunk/anuga_core/validation_tests/analytical_exact/river_at_rest_varying_topo_width/numerical_varying_width.py
r8886 r9155 58 58 alg, cfl = parse_standard_args() 59 59 domain.set_flow_algorithm(alg) 60 domain.set_CFL(cfl)60 #domain.set_CFL(cfl) 61 61 62 62 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/river_at_rest_varying_topo_width/results.tex
r8886 r9155 1 2 1 3 2 4 \section{River at rest with varying width and topography} -
trunk/anuga_core/validation_tests/analytical_exact/rundown_mild_slope/numerical_rundown_channel.py
r8793 r9155 27 27 alg, cfl = parse_standard_args() 28 28 domain.set_flow_algorithm(alg) 29 domain.set_CFL(cfl)29 #domain.set_CFL(cfl) 30 30 31 31 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/rundown_mild_slope/plot_results.py
r8792 r9155 47 47 pyplot.clf() 48 48 49 line, = pyplot.plot( (p2.x[v].min(),p2.x[v].max()) ,( (p2.stage[:,v]-p2.elev[ :,v]).max(),(p2.stage[:,v]-p2.elev[v]).min() ) )49 line, = pyplot.plot( (p2.x[v].min(),p2.x[v].max()) ,( (p2.stage[:,v]-p2.elev[v]).max(),(p2.stage[:,v]-p2.elev[v]).min() ) ) 50 50 line.set_label('numerical') 51 51 pyplot.plot( (0,100),(dana,dana), 'r',label='analytical' ) -
trunk/anuga_core/validation_tests/analytical_exact/rundown_mild_slope_coarse/numerical_rundown_channel_coarse.py
r9056 r9155 27 27 alg, cfl = parse_standard_args() 28 28 domain.set_flow_algorithm(alg) 29 domain.set_CFL(cfl)29 #domain.set_CFL(cfl) 30 30 31 31 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/rundown_mild_slope_coarse/plot_results.py
r9150 r9155 53 53 pyplot.clf() 54 54 55 56 print (p2.x[v].min(),p2.x[v].max())57 print (p2.stage[:,v]-p2.elev[v]).max()58 print (p2.stage[:,v]-p2.elev[v]).min()59 60 55 line, = pyplot.plot( (p2.x[v].min(),p2.x[v].max()) ,( (p2.stage[:,v]-p2.elev[v]).max(),(p2.stage[:,v]-p2.elev[v]).min() ) ) 61 56 line.set_label('numerical') -
trunk/anuga_core/validation_tests/analytical_exact/runup_on_beach/numerical_runup.py
r8796 r9155 26 26 alg, cfl = parse_standard_args() 27 27 domain.set_flow_algorithm(alg) 28 domain.set_CFL(cfl)28 #domain.set_CFL(cfl) 29 29 #domain.set_minimum_allowed_height(0.0001) 30 30 #domain.set_minimum_storable_height(0.0001) -
trunk/anuga_core/validation_tests/analytical_exact/runup_on_sinusoid_beach/numerical_runup_sinusoid.py
r9036 r9155 23 23 alg, cfl = parse_standard_args() 24 24 domain.set_flow_algorithm(alg) 25 domain.set_CFL(cfl)25 #domain.set_CFL(cfl) 26 26 domain.set_name('runup_sinusoid') # Output to file runup.sww 27 27 domain.set_datadir('.') # Use current folder -
trunk/anuga_core/validation_tests/analytical_exact/subcritical_over_bump/numerical_subcritical.py
r8797 r9155 54 54 alg, cfl = parse_standard_args() 55 55 domain.set_flow_algorithm(alg) 56 domain.set_CFL(cfl)56 #domain.set_CFL(cfl) 57 57 58 58 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/transcritical_with_shock/numerical_transcritical.py
r8799 r9155 54 54 alg, cfl = parse_standard_args() 55 55 domain.set_flow_algorithm(alg) 56 domain.set_CFL(cfl)56 #domain.set_CFL(cfl) 57 57 58 58 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/transcritical_without_shock/numerical_transcritical.py
r8800 r9155 57 57 alg, cfl = parse_standard_args() 58 58 domain.set_flow_algorithm(alg) 59 domain.set_CFL(cfl)59 #domain.set_CFL(cfl) 60 60 61 61 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/trapezoidal_channel/numerical_channel_floodplain.py
r9038 r9155 83 83 alg, cfl = parse_standard_args() 84 84 domain.set_flow_algorithm(alg) 85 domain.set_CFL(cfl)85 #domain.set_CFL(cfl) 86 86 87 87 #------------------------------------------------------------------------------ -
trunk/anuga_core/validation_tests/analytical_exact/trapezoidal_channel/results.tex
r8912 r9155 33 33 34 34 35 \DTLloaddb{dischargeout}{ analytical_exact/trapezoidal_channel/discharge_outputs.txt}35 \DTLloaddb{dischargeout}{../analytical_exact/trapezoidal_channel/discharge_outputs.txt} 36 36 %\DTLloaddb{dischargeout}{discharge_outputs.txt} 37 37 \begin{table}
Note: See TracChangeset
for help on using the changeset viewer.