source: issm/trunk-jpl/src/m/classes/steadystate.py@ 14640

Last change on this file since 14640 was 14640, checked in by Mathieu Morlighem, 12 years ago

CHG: added units to all fields and homogenized python classes

File size: 1.7 KB
Line 
1import numpy
2from fielddisplay import fielddisplay
3from EnumDefinitions import *
4from checkfield import *
5from WriteData import *
6
7class steadystate(object):
8 """
9 STEADYSTATE class definition
10
11 Usage:
12 steadystate=steadystate();
13 """
14
15 def __init__(self): # {{{
16 self.reltol = 0
17 self.maxiter = 0
18 self.requested_outputs = float('NaN')
19
20 #set defaults
21 self.setdefaultparameters()
22
23 #}}}
24 def __repr__(self): # {{{
25 string=' steadystate solution parameters:'
26 string="%s\n%s"%(string,fielddisplay(self,'reltol','relative tolerance criterion'))
27 string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of iterations'))
28 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional requested outputs'))
29 return string
30 #}}}
31 def setdefaultparameters(self): # {{{
32
33 #maximum of steady state iterations
34 self.maxiter=100
35
36 #Relative tolerance for the steadystate convertgence
37 self.reltol=0.01
38
39 return self
40 #}}}
41 def checkconsistency(self,md,solution,analyses): # {{{
42
43 #Early return
44 if not solution==SteadystateSolutionEnum():
45 return md
46
47 if not md.timestepping.time_step==0:
48 md.checkmessage("for a steadystate computation, timestepping.time_step must be zero.")
49
50 if numpy.isnan(md.diagnostic.reltol):
51 md.checkmessage("for a steadystate computation, diagnostic.reltol (relative convergence criterion) must be defined!")
52
53 return md
54 # }}}
55 def marshall(self,fid): # {{{
56 WriteData(fid,'object',self,'fieldname','reltol','format','Double')
57 WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
58 WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3)
59 # }}}
Note: See TracBrowser for help on using the repository browser.