source: anuga_core/source/anuga/config.py @ 5442

Last change on this file since 5442 was 5442, checked in by ole, 16 years ago

Retired h-limiter and beta_h as per ticket:194.
All unit tests and validation tests pass.

File size: 6.4 KB
RevLine 
[4837]1"""Module where global ANUGA model parameters and default values are set
[4376]2"""
3
[4837]4#--------------------
5# Numerical constants
6#--------------------
7epsilon = 1.0e-12 # Smallest number - used for safe division
8max_float = 1.0e36 # Largest number - used to initialise (max, min) ranges
[5352]9default_smoothing_parameter = 0.001 # Default alpha for penalised
10                                    # least squares fitting
[4376]11
[5436]12velocity_protection = 1.0e-6                                     
13
[4837]14#-------------------------------------------
15# Standard filenames, directories and system
16# parameters used by ANUGA
17#-------------------------------------------
18pmesh_filename = '.\\pmesh'
19version_filename = 'stored_version_info.py'
20default_datadir = '.'
[4376]21time_format = '%d/%m/%y %H:%M:%S'
[4837]22umask = 002  # Controls file and directory permission created by anuga
23default_boundary_tag = 'exterior' 
[4376]24
[4837]25# Major revision number for use with create_distribution
26# and update_anuga_user_guide
27major_revision = '1.0beta'
[4376]28
29
[4837]30#-------------------
31# Physical constants
32#-------------------
33manning = 0.03  # Manning's friction coefficient
34#g = 9.80665    # Gravity - FIXME reinstate this and fix unit tests.
[4376]35g = 9.8
36#g(phi) = 9780313 * (1 + 0.0053024 sin(phi)**2 - 0.000 0059 sin(2*phi)**2) micro m/s**2, where phi is the latitude
37#The 'official' average is 9.80665
38
39eta_w = 3.0e-3 #Wind stress coefficient
40rho_a = 1.2e-3 #Atmospheric density
41rho_w = 1023   #Fluid density [kg/m^3] (rho_w = 1023 for salt water)
42
43
[4837]44#-----------------------------------------------------
45# Limiters - used with linear reconstruction of vertex
46# values from centroid values
47#-----------------------------------------------------
48
49# Betas [0;1] control the allowed steepness of gradient for second order
50# extrapolations. Values of 1 allow the steepes gradients while
51# lower values are more conservative. Values of 0 correspond to
52# 1'st order extrapolations.
[4376]53#
[4768]54
[5442]55# There are separate betas for the w, uh, and vh limiters
[4376]56# I think these are better SR but they conflict with the unit tests!
57beta_w      = 1.0
58beta_w_dry  = 0.2
59beta_uh     = 1.0
60beta_uh_dry = 0.2
61beta_vh     = 1.0
62beta_vh_dry = 0.2
63
64
65# Alpha_balance controls how limiters are balanced between deep and shallow.
66# A large value will favour the deep water limiters, allowing the a closer hug to the coastline.
67# This will minimise 'creep' but at the same time cause smaller time steps
68# Range:
69
70alpha_balance = 2.0 
71
72# Flag use of new limiters.
[4631]73# tight_slope_limiters = 0 means use old limiters (e.g. for some tests)
74# tight_slope_limiters = 1 means use new limiters that hug the bathymetry closer
[5181]75tight_slope_limiters = True
[4376]76
[5315]77# Use centroid velocities to reconstruct momentum at vertices in
78# very shallow water
[5313]79# This option has a first order flavour to it, but we still have second order
[5315]80# reconstruction of stage and this option only applies in
81# balance_deep_and_shallow when
[5313]82# alpha < 1 so in deeper water the full second order scheme is used.
[5290]83#
[5303]84# This option is good with tight_slope_limiters, especially for large domains.
[5313]85use_centroid_velocities = True
[4376]86
87
[4837]88#-------------
89# Timestepping
90#-------------
[4376]91
[4837]92CFL = 1.0  # CFL condition assigned to domain.CFL - controls timestep size
93     
[4712]94# Choose type of timestepping,
95timestepping_method = 'euler' # 1st order euler
96#timestepping_method = 'rk2'   # 2nd Order TVD scheme
97
[5162]98# rk2 is a little more stable than euler, so rk2 timestepping
99# can deal with a larger beta when slope limiting the reconstructed
100# solution. The large beta is needed if solving problems sensitive
101# to numerical diffusion, like a small forced wave in an ocean
102beta_euler = 1.0
103beta_rk2   = 1.6
104
105
106
[4677]107# Option to search for signatures where isolated triangles are
108# responsible for a small global timestep.
109# Treating these by limiting their momenta may help speed up the
110# overall computation.
111# This facility is experimental.
[4805]112
113# protect_against_isolated_degenerate_timesteps = False
[4677]114protect_against_isolated_degenerate_timesteps = False
[4376]115
116
[4837]117min_timestep = 1.0e-6 # Minimal timestep accepted in ANUGA
118max_timestep = 1.0e+3
119max_smallsteps = 50  # Max number of degenerate steps allowed b4 trying first order
[4376]120
[4837]121#Perhaps minimal timestep could be based on the geometry as follows:
122#Define maximal possible speed in open water v_max, e.g. 500m/s (soundspeed?)
123#Then work out minimal internal distance in mesh r_min and set
124#min_timestep = r_min/v_max
125#
126#Max speeds are calculated in the flux function as
127#
128#lambda = v +/- sqrt(gh)
129#
130# so with 500 m/s, h ~ 500^2/g = 2500 m well out of the domain of the
131# shallow water wave equation
132#
133#The actual soundspeed can be as high as 1530m/s
134#(see http://staff.washington.edu/aganse/public.projects/clustering/clustering.html),
135#but that would only happen with h>225000m in this equation. Why ?
136#The maximal speed we specify is really related to the max speed
137#of surface pertubation
138#
139#v_max = 100 #For use in domain_ext.c
140#sound_speed = 500
[4376]141
142
[4837]143#---------------------------------------------------
144# Ranges specific to the shallow water wave equation
145# These control maximal and minimal values of
146# quantities
147#---------------------------------------------------
[4376]148
[4837]149# Water depth below which it is considered to be 0 in the model
150minimum_allowed_height = 1.0e-3 
[4376]151
[4837]152# Water depth below which it is *stored* as 0
153minimum_storable_height = 1.0e-5
[4376]154
[4805]155# FIXME (Ole): Redefine this parameter to control maximal speeds in general
156# and associate it with protect_against_isolated_degenerate_timesteps = True
[4732]157maximum_allowed_speed = 0.0 # Maximal particle speed of water
158#maximum_allowed_speed = 1.0 # Maximal particle speed of water
[4376]159                            # Too large (100) creates 'flopping' water
160                            # Too small (0) creates 'creep'
[4837]161                           
162maximum_froude_number = 100.0 # To be used in limiters.
[4376]163
164
[4837]165#------------------------------------------------------------
166# Performance parameters used to invoke various optimisations
167#------------------------------------------------------------
[4815]168
[4837]169use_extensions = True # Use C-extensions
170use_psyco = True # Use psyco optimisations
[4376]171
[4837]172optimise_dry_cells = True # Exclude dry and still cells from flux computation
173optimised_gradient_limiter = True # Use hardwired gradient limiter
[5304]174use_edge_limiter = False # The edge limiter is better, but most runs have been using vertex limiting. Validations passed with this one True 9th May 2008, but many unit tests need backward compatibility flag set FIXME(Ole).
[4837]175
[4376]176points_file_block_line_size = 500 # Number of lines read in from a points file
177                                  # when blocking
[4502]178
[4685]179
[4837]180
181
182
183
[4699]184   
Note: See TracBrowser for help on using the repository browser.