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

Last change on this file since 16458 was 16458, checked in by seroussi, 11 years ago

BUG: changing checkconsistency for requested_outpus

File size: 1.7 KB
RevLine 
[13023]1import numpy
[12038]2from fielddisplay import fielddisplay
[13023]3from EnumDefinitions import *
4from checkfield import *
5from WriteData import *
[12038]6
[12958]7class steadystate(object):
[13023]8 """
9 STEADYSTATE class definition
10
11 Usage:
12 steadystate=steadystate();
13 """
14
[14640]15 def __init__(self): # {{{
[12038]16 self.reltol = 0
17 self.maxiter = 0
[16363]18 self.requested_outputs = []
[12123]19
20 #set defaults
21 self.setdefaultparameters()
22
[12038]23 #}}}
[14640]24 def __repr__(self): # {{{
[12038]25 string=' steadystate solution parameters:'
[13023]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'))
[12038]29 return string
30 #}}}
[14640]31 def setdefaultparameters(self): # {{{
[12123]32
33 #maximum of steady state iterations
[13023]34 self.maxiter=100
[12123]35
36 #Relative tolerance for the steadystate convertgence
[13023]37 self.reltol=0.01
[12123]38
[13023]39 return self
[12123]40 #}}}
[13023]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
[15771]50 if numpy.isnan(md.stressbalance.reltol):
51 md.checkmessage("for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!")
[13023]52
[16458]53 md = checkfield(md,'steadystate.requested_outputs','stringrow',1)
[16385]54
[13023]55 return md
56 # }}}
[15131]57 def marshall(self,md,fid): # {{{
[13023]58 WriteData(fid,'object',self,'fieldname','reltol','format','Double')
59 WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
[16363]60 WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray')
[13023]61 # }}}
Note: See TracBrowser for help on using the repository browser.