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

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

CHG: Diagnostic is now Stressbalance

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
18 self.requested_outputs = float('NaN')
[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
53 return md
54 # }}}
[15131]55 def marshall(self,md,fid): # {{{
[13023]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.