Source code for issm.groundingline

import numpy as np
from fielddisplay import fielddisplay
from checkfield import checkfield
from WriteData import WriteData
import MatlabFuncs as m

[docs]class groundingline(object): """ GROUNDINGLINE class definition Usage: groundingline=groundingline(); """ def __init__(self): # {{{ self.migration='' #set defaults self.setdefaultparameters() #}}} def __repr__(self): # {{{ string=' grounding line migration parameters:' string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AggressiveMigration'',''SubelementMigration'',''SubelementMigration2'',''Contact'',''None''')) return string #}}}
[docs] def setdefaultparameters(self): # {{{ #Type of migration self.migration='None' return self
#}}}
[docs] def checkconsistency(self,md,solution,analyses): # {{{ md = checkfield(md,'fieldname','groundingline.migration','values',['None','AggressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2','Contact','GroundingOnly']) if not m.strcmp(self.migration,'None'): if np.any(np.isnan(md.geometry.bed)): md.checkmessage("requesting grounding line migration, but bathymetry is absent!") pos=np.nonzero(md.mask.groundedice_levelset>0.)[0] if any(np.abs(md.geometry.base[pos]-md.geometry.bed[pos])>10**-10): md.checkmessage("base not equal to bed on grounded ice!") if any(md.geometry.bed - md.geometry.base > 10**-9): md.checkmessage("bed superior to base on floating ice!") return md
# }}}
[docs] def marshall(self,prefix,md,fid): # {{{ WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.migration','format','String')
# }}}