Changeset 12123


Ignore:
Timestamp:
04/25/12 09:17:29 (13 years ago)
Author:
Eric.Larour
Message:

Added setdefaultparameters routines to python classes

Location:
issm/trunk-jpl/src/m/classes
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/autodiff.py

    r12038 r12123  
    99                self.forward    = True
    1010                self.reverse    = False
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1822                return string
    1923                #}}}
     24        def setdefaultparameters(obj):
     25                # {{{setdefaultparameters
     26                return obj
     27        #}}}
     28
  • issm/trunk-jpl/src/m/classes/balancethickness.py

    r12038 r12123  
    88                self.thickening_rate           = float('NaN')
    99                self.stabilization           = 0
     10
     11                #set defaults
     12                self.setdefaultparameters()
     13
    1014                #}}}
    1115        def __repr__(obj):
     
    1923                return string
    2024                #}}}
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27               
     28                #Type of stabilization used
     29                obj.stabilization=1
     30
     31                return obj
     32        #}}}
     33
  • issm/trunk-jpl/src/m/classes/basalforcings.py

    r12038 r12123  
    99                self.melting_rate_correction  = float('NaN')
    1010                self.geothermalflux           = float('NaN')
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1923                return string
    2024                #}}}
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27                return obj
     28        #}}}
     29
  • issm/trunk-jpl/src/m/classes/constants.py

    r12038 r12123  
    99                self.yts                  = 0
    1010                self.referencetemperature = 0
     11               
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    2024                return string
    2125                #}}}
     26               
     27        def setdefaultparameters(obj):
     28                # {{{setdefaultparameters
     29               
     30                #acceleration due to gravity (m/s^2)
     31                obj.g=9.81
     32
     33                #converstion from year to seconds
     34                obj.yts=365*24*3600
     35
     36                #the reference temperature for enthalpy model (cf Aschwanden)
     37                obj.referencetemperature=223.15
     38
     39                return obj
     40        #}}}
     41
  • issm/trunk-jpl/src/m/classes/debug.py

    r12038 r12123  
    88                self.valgrind=False
    99                self.gprof   = False
     10               
     11                #set defaults
     12                self.setdefaultparameters()
     13
    1014                #}}}
    1115        def __repr__(obj):
     
    1721                return string
    1822                #}}}
     23               
     24        def setdefaultparameters(obj):
     25                # {{{setdefaultparameters
     26                return obj
     27        #}}}
     28
  • issm/trunk-jpl/src/m/classes/diagnostic.py

    r12038 r12123  
    2424                self.referential              = float('NaN')
    2525                self.requested_outputs        = float('NaN')
     26
     27                #set defaults
     28                self.setdefaultparameters()
     29
    2630                #}}}
    2731        def __repr__(obj):
     
    6266                return string
    6367                #}}}
     68               
     69        def setdefaultparameters(obj):
     70                # {{{setdefaultparameters
     71                #maximum of non-linear iterations.
     72                obj.maxiter=100
     73
     74                #Convergence criterion: absolute, relative and residual
     75                obj.restol=10**-4;
     76                obj.reltol=0.01
     77                obj.abstol=10
     78
     79                obj.stokesreconditioning=10**13
     80                obj.shelf_dampening=0
     81
     82                #Penalty factor applied kappa=max(stiffness matrix)*10^penalty_factor
     83                obj.penalty_factor=3
     84
     85                #coefficient to update the viscosity between each iteration of
     86                #a diagnostic according to the following formula
     87                #viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))
     88                obj.viscosity_overshoot=0
     89
     90                #Stop the iterations of rift if below a threshold
     91                obj.rift_penalty_threshold=0
     92
     93                #in some solutions, it might be needed to stop a run when only
     94                #a few constraints remain unstable. For thermal computation, this
     95                #parameter is often used.
     96                obj.rift_penalty_lock=10
     97
     98                return obj
     99        #}}}
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r12038 r12123  
    1515                self.borderpattyn         = float('NaN')
    1616                self.borderstokes         = float('NaN')
     17
     18                #set defaults
     19                self.setdefaultparameters()
     20
    1721                #}}}
    1822        def __repr__(obj):
     
    3034                return string
    3135                #}}}
     36               
     37        def setdefaultparameters(obj):
     38                # {{{setdefaultparameters
     39                return obj
     40        #}}}
     41
  • issm/trunk-jpl/src/m/classes/friction.py

    r12038 r12123  
    99                self.p           = float('NaN')
    1010                self.q           = float('NaN')
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1822                return string
    1923                #}}}
     24
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27                return obj
     28        #}}}
     29
  • issm/trunk-jpl/src/m/classes/geometry.py

    r12038 r12123  
    1111                self.bathymetry        = float('NaN')
    1212                self.hydrostatic_ratio = float('NaN')
     13
     14                #set defaults
     15                self.setdefaultparameters()
     16
    1317                #}}}
    1418        def __repr__(obj):
     
    2428                return string
    2529                #}}}
     30               
     31        def setdefaultparameters(obj):
     32                # {{{setdefaultparameters
     33                return obj
     34        #}}}
     35
  • issm/trunk-jpl/src/m/classes/groundingline.py

    r12038 r12123  
    88                self.migration=''
    99                self.melting_rate=float('NaN')
     10
     11                #set defaults
     12                self.setdefaultparameters()
     13
    1014                #}}}
    1115        def __repr__(obj):
     
    1620                string="%s\n%s"%(string,fielddisplay(obj,'melting_rate','melting rate applied when previously grounded parts start floating'))
    1721                return string
    18                 #}}}
     22                #}}}   
     23        def setdefaultparameters(obj):
     24                # {{{setdefaultparameters
     25
     26                #Type of migration
     27                obj.migration='None'
     28
     29                #basal melting rate correction:
     30                obj.melting_rate=0;
     31
     32                return obj
     33        #}}}
     34
  • issm/trunk-jpl/src/m/classes/hydrology.py

    r12038 r12123  
    1313                self.kn             = 0
    1414                self.stabilization  = 0
     15
     16                #set defaults
     17                self.setdefaultparameters()
     18
    1519       
    1620                #}}}
     
    2832                return string
    2933                #}}}
     34               
     35        def setdefaultparameters(obj):
     36                # {{{setdefaultparameters
     37               
     38                #Parameters from Johnson's 2002 thesis, section 3.5.4                   
     39                obj.n=.02                       
     40                obj.CR=.01
     41                obj.p=2
     42                obj.q=1
     43                obj.kn=0
     44
     45                #Type of stabilization to use 0:nothing 1:artificial_diffusivity
     46                obj.stabilization=1
     47
     48                return obj
     49        #}}}
     50
  • issm/trunk-jpl/src/m/classes/initialization.py

    r12038 r12123  
    1515                self.watercolumn   = float('NaN')
    1616                self.waterfraction = float('NaN')
     17
     18                #set defaults
     19                self.setdefaultparameters()
     20
    1721                #}}}
    1822        def __repr__(obj):
     
    3135                return string
    3236                #}}}
     37               
     38        def setdefaultparameters(obj):
     39                # {{{setdefaultparameters
     40                return obj
     41        #}}}
     42
  • issm/trunk-jpl/src/m/classes/inversion.py

    r12038 r12123  
    5858                return string
    5959                #}}}
     60
     61        def setdefaultparameters(obj):
     62                # {{{setdefaultparameters
     63               
     64                #default is incomplete adjoint for now
     65                obj.incomplete_adjoint=1
     66
     67                #parameter to be inferred by control methods (only
     68                #drag and B are supported yet)
     69                obj.control_parameters=['FrictionCoefficient']
     70
     71                #number of steps in the control methods
     72                obj.nsteps=20
     73
     74                #maximum number of iteration in the optimization algorithm for
     75                #each step
     76                obj.maxiter_per_step=20*ones(obj.nsteps)
     77
     78                #the inversed parameter is updated as follows:
     79                #new_par=old_par + gradient_scaling(n)*C*gradient with C in [0 1];
     80                #usually the gradient_scaling must be of the order of magnitude of the
     81                #inversed parameter (10^8 for B, 50 for drag) and can be decreased
     82                #after the first iterations
     83                obj.gradient_scaling=50*ones(obj.nsteps)
     84
     85                #several responses can be used:
     86                obj.cost_functions=101*ones(obj.nsteps)
     87
     88                #step_threshold is used to speed up control method. When
     89                #misfit(1)/misfit(0) < obj.step_threshold, we go directly to
     90                #the next step
     91                obj.step_threshold=.7*ones(obj.nsteps) #30 per cent decrement
     92
     93                #stop control solution at the gradient computation and return it?
     94                obj.gradient_only=0
     95
     96                #cost_function_threshold is a criteria to stop the control methods.
     97                #if J[n]-J[n-1]/J[n] < criteria, the control run stops
     98                #NaN if not applied
     99                obj.cost_function_threshold=NaN #not activated
     100
     101                return obj
     102                #}}}
     103
     104
  • issm/trunk-jpl/src/m/classes/mask.py

    r12038 r12123  
    1212                self.vertexongroundedice  = float('NaN')
    1313                self.vertexonwater        = float('NaN')
     14
     15                #set defaults
     16                self.setdefaultparameters()
     17
    1418                #}}}
    1519        def __repr__(obj):
     
    2529                return string
    2630                #}}}
     31               
     32        def setdefaultparameters(obj):
     33                # {{{setdefaultparameters
     34                return obj
     35        #}}}
     36
  • issm/trunk-jpl/src/m/classes/materials.py

    r12117 r12123  
    4444        def setdefaultparameters(obj):
    4545                # {{{setdefaultparameters
    46                         #ice density (kg/m^3)
    47                         obj.rho_ice=917
     46                #ice density (kg/m^3)
     47                obj.rho_ice=917
    4848
    49                         #water density (kg/m^3)
    50                         obj.rho_water=1023
     49                #water density (kg/m^3)
     50                obj.rho_water=1023
    5151
    52                         #water viscosity (N.s/m^2)
    53                         obj.mu_water=0.001787 
     52                #water viscosity (N.s/m^2)
     53                obj.mu_water=0.001787 
    5454
    55                         #ice heat capacity cp (J/kg/K)
    56                         obj.heatcapacity=2093
     55                #ice heat capacity cp (J/kg/K)
     56                obj.heatcapacity=2093
    5757
    58                         #ice latent heat of fusion L (J/kg)
    59                         obj.latentheat=3.34*10**5
     58                #ice latent heat of fusion L (J/kg)
     59                obj.latentheat=3.34*10**5
    6060
    61                         #ice thermal conductivity (W/m/K)
    62                         obj.thermalconductivity=2.4
     61                #ice thermal conductivity (W/m/K)
     62                obj.thermalconductivity=2.4
    6363
    64                         #the melting point of ice at 1 atmosphere of pressure in K
    65                         obj.meltingpoint=273.15
     64                #the melting point of ice at 1 atmosphere of pressure in K
     65                obj.meltingpoint=273.15
    6666
    67                         #rate of change of melting point with pressure (K/Pa)
    68                         obj.beta=9.8*10**-8
     67                #rate of change of melting point with pressure (K/Pa)
     68                obj.beta=9.8*10**-8
    6969
    70                         #mixed layer (ice-water interface) heat capacity (J/kg/K)
    71                         obj.mixed_layer_capacity=3974
     70                #mixed layer (ice-water interface) heat capacity (J/kg/K)
     71                obj.mixed_layer_capacity=3974
    7272
    73                         #thermal exchange velocity (ice-water interface) (m/s)
    74                         obj.thermal_exchange_velocity=1.00*10**-4
     73                #thermal exchange velocity (ice-water interface) (m/s)
     74                obj.thermal_exchange_velocity=1.00*10**-4
    7575
    76                         #Rheology law: what is the temperature dependence of B with T
    77                         #available: none, paterson and arrhenius
    78                         obj.rheology_law='Paterson'
    79                         return obj
     76                #Rheology law: what is the temperature dependence of B with T
     77                #available: none, paterson and arrhenius
     78                obj.rheology_law='Paterson'
     79                return obj
    8080                #}}}
  • issm/trunk-jpl/src/m/classes/mesh.py

    r12038 r12123  
    4545                self.extractedvertices           = float('NaN');
    4646                self.extractedelements           = float('NaN');
     47
     48                #set defaults
     49                self.setdefaultparameters()
    4750
    4851                #}}}
     
    107110                return string
    108111                #}}}
     112               
     113        def setdefaultparameters(obj):
     114                # {{{setdefaultparameters
     115               
     116                #the connectivity is the avergaded number of nodes linked to a
     117                #given node through an edge. This connectivity is used to initially
     118                #allocate memory to the stiffness matrix. A value of 16 seems to
     119                #give a good memory/time ration. This value can be checked in
     120                #trunk/test/Miscellaneous/runme.m
     121                obj.average_vertex_connectivity=25
     122
     123                return obj
     124        #}}}
     125
  • issm/trunk-jpl/src/m/classes/miscellaneous.py

    r12038 r12123  
    99                self.name  = ''
    1010                self.dummy = {}
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1923                return string
    2024                #}}}
     25               
     26        def setdefaultparameters(obj):
     27                # {{{setdefaultparameters
     28                return obj
     29        #}}}
     30
  • issm/trunk-jpl/src/m/classes/private.py

    r12038 r12123  
    99                self.bamg        = {}
    1010                self.solution    = '';
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1822                return string
    1923                #}}}
     24               
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27                return obj
     28        #}}}
     29
  • issm/trunk-jpl/src/m/classes/prognostic.py

    r12038 r12123  
    1212                self.vertex_pairing         = float('NaN')
    1313                self.penalty_factor         = 0
     14
     15                #set defaults
     16                self.setdefaultparameters()
     17
    1418                #}}}
    1519        def __repr__(obj):
     
    2327                return string
    2428                #}}}
     29               
     30        def setdefaultparameters(obj):
     31                # {{{setdefaultparameters
     32               
     33                #Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin
     34                obj.stabilization=1
     35
     36                #Factor applied to compute the penalties kappa=max(stiffness matrix)*10^penalty_factor
     37                obj.penalty_factor=3
     38
     39                #Minimum ice thickness that can be used
     40                obj.min_thickness=1
     41
     42                #Hydrostatic adjustment
     43                obj.hydrostatic_adjustment='Absolute'
     44
     45                return obj
     46        #}}}
     47
  • issm/trunk-jpl/src/m/classes/qmu.py

    r12038 r12123  
    2222                self.adjacency                   = float('NaN')
    2323                self.vertex_weight               = float('NaN')
     24
     25                #set defaults
     26                self.setdefaultparameters()
     27
    2428                #}}}
    2529        def __repr__(obj):
     
    2832                return string
    2933                #}}}
     34               
     35        def setdefaultparameters(obj):
     36                # {{{setdefaultparameters
     37                return obj
     38        #}}}
     39
  • issm/trunk-jpl/src/m/classes/radaroverlay.py

    r12038 r12123  
    99                self.x   = float('NaN')
    1010                self.y   = float('NaN')
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1822                return string
    1923                #}}}
     24               
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27                return obj
     28        #}}}
     29
  • issm/trunk-jpl/src/m/classes/rifts.py

    r12038 r12123  
    88                self.riftstruct     = float('NaN')
    99                self.riftproperties = float('NaN')
     10
     11                #set defaults
     12                self.setdefaultparameters()
     13
    1014                #}}}
    1115        def __repr__(obj):
     
    1721                return string
    1822                #}}}
     23               
     24        def setdefaultparameters(obj):
     25                # {{{setdefaultparameters
     26                return obj
     27        #}}}
     28
  • issm/trunk-jpl/src/m/classes/settings.py

    r12038 r12123  
    66        def __init__(self):
    77                # {{{ Properties
    8                 self.io_gather           = 0;
    9                 self.lowmem              = 0;
    10                 self.results_as_patches  = 0;
    11                 self.output_frequency    = 0;
    12                 self.waitonlock          = 0;
     8                self.io_gather           = 0
     9                self.lowmem              = 0
     10                self.results_as_patches  = 0
     11                self.output_frequency    = 0
     12                self.waitonlock          = 0
     13
     14                #set defaults
     15                self.setdefaultparameters()
     16
    1317                #}}}
    1418        def __repr__(obj):
     
    2327                return string
    2428                #}}}
     29               
     30        def setdefaultparameters(obj):
     31                # {{{setdefaultparameters
     32               
     33                #are we short in memory ? (0 faster but requires more memory)
     34                obj.lowmem=0
     35
     36                #i/o:
     37                obj.io_gather=1
     38
     39                #results frequency by default every step
     40                obj.output_frequency=1
     41
     42                #do not use patches by default (difficult to plot)
     43                obj.results_as_patches=0
     44
     45                #this option can be activated to load automatically the results
     46                #onto the model after a parallel run by waiting for the lock file
     47                #N minutes that is generated once the solution has converged
     48                #0 to desactivate
     49                obj.waitonlock=float('Inf')
     50
     51                return obj
     52        #}}}
     53
  • issm/trunk-jpl/src/m/classes/steadystate.py

    r12038 r12123  
    99                self.maxiter           = 0
    1010                self.requested_outputs = float('NaN')
     11
     12                #set defaults
     13                self.setdefaultparameters()
     14
    1115                #}}}
    1216        def __repr__(obj):
     
    1822                return string
    1923                #}}}
     24               
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27               
     28                #maximum of steady state iterations
     29                obj.maxiter=100
     30
     31                #Relative tolerance for the steadystate convertgence
     32                obj.reltol=0.01
     33
     34                return obj
     35        #}}}
     36
  • issm/trunk-jpl/src/m/classes/surfaceforcings.py

    r12038 r12123  
    88                self.precipitation = float('NaN')
    99                self.mass_balance  = float('NaN')
     10
     11                #set defaults
     12                self.setdefaultparameters()
     13
    1014                #}}}
    1115        def __repr__(obj):
     
    1822                return string
    1923                #}}}
     24               
     25        def setdefaultparameters(obj):
     26                # {{{setdefaultparameters
     27                return obj
     28        #}}}
     29
  • issm/trunk-jpl/src/m/classes/thermal.py

    r12038 r12123  
    1313                self.penalty_factor    = 0
    1414                self.isenthalpy        = 0
     15
     16                #set defaults
     17                self.setdefaultparameters()
     18
    1519                #}}}
    1620        def __repr__(obj):
     
    2529                return string
    2630                #}}}
     31               
     32        def setdefaultparameters(obj):
     33                # {{{setdefaultparameters
     34               
     35                #Number of unstable constraints acceptable
     36                obj.penalty_threshold=0
     37
     38                #Type of stabilization used
     39                obj.stabilization=1
     40
     41                #Maximum number of iterations
     42                obj.maxiter=100
     43
     44                #factor used to compute the values of the penalties: kappa=max(stiffness matrix)*10^penalty_factor
     45                obj.penalty_factor=3
     46
     47                #Should we use cold ice (default) or enthalpy formulation
     48                obj.isenthalpy=0
     49
     50                return obj
     51        #}}}
     52
  • issm/trunk-jpl/src/m/classes/timestepping.py

    r12038 r12123  
    66        def __init__(self):
    77                # {{{ Properties
    8                 self.time_step       = 0;
    9                 self.final_time      = 0;
    10                 self.time_adapt      = 0;
    11                 self.cfl_coefficient = 0;
     8                self.time_step       = 0
     9                self.final_time      = 0
     10                self.time_adapt      = 0
     11                self.cfl_coefficient = 0
     12               
     13                #set defaults
     14                self.setdefaultparameters()
     15
    1216                #}}}
    1317        def __repr__(obj):
     
    2024                return string
    2125                #}}}
     26               
     27        def setdefaultparameters(obj):
     28                # {{{setdefaultparameters
     29               
     30                #time between 2 time steps
     31                obj.time_step=1/2
     32
     33                #final time
     34                obj.final_time=10*obj.time_step
     35
     36                #time adaptation?
     37                obj.time_adapt=0
     38                obj.cfl_coefficient=.5
     39
     40                return obj
     41        #}}}
  • issm/trunk-jpl/src/m/classes/transient.py

    r12038 r12123  
    1111                self.isgroundingline   = 0
    1212                self.requested_outputs = float('NaN')
     13
     14                #set defaults
     15                self.setdefaultparameters()
     16
    1317                #}}}
    1418        def __repr__(obj):
     
    2226                return string
    2327                #}}}
     28               
     29        def setdefaultparameters(obj):
     30                # {{{setdefaultparameters
     31               
     32                #full analysis: Diagnostic, Prognostic and Thermal but no groundingline migration for now
     33                obj.isprognostic=1
     34                obj.isdiagnostic=1
     35                obj.isthermal=1
     36                obj.isgroundingline=0
     37
     38                return obj
     39        #}}}
     40
Note: See TracChangeset for help on using the changeset viewer.