[12038] | 1 | #module imports
|
---|
| 2 | from fielddisplay import fielddisplay
|
---|
[13101] | 3 | from EnumDefinitions import *
|
---|
| 4 | from checkfield import *
|
---|
| 5 | from WriteData import *
|
---|
[12038] | 6 |
|
---|
[13101] | 7 | class friction(object):
|
---|
| 8 | """
|
---|
| 9 | FRICTION class definition
|
---|
| 10 |
|
---|
| 11 | Usage:
|
---|
| 12 | friction=friction();
|
---|
| 13 | """
|
---|
| 14 |
|
---|
[12038] | 15 | #properties
|
---|
| 16 | def __init__(self):
|
---|
| 17 | # {{{ Properties
|
---|
| 18 | self.coefficient = float('NaN')
|
---|
| 19 | self.p = float('NaN')
|
---|
| 20 | self.q = float('NaN')
|
---|
[12123] | 21 |
|
---|
| 22 | #set defaults
|
---|
| 23 | self.setdefaultparameters()
|
---|
| 24 |
|
---|
[12038] | 25 | #}}}
|
---|
[13101] | 26 | def __repr__(self):
|
---|
[12038] | 27 | # {{{ Display
|
---|
| 28 | string="Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p"
|
---|
[13101] | 29 | string="%s\n\n%s"%(string,fielddisplay(self,"coefficient","friction coefficient [SI]"))
|
---|
| 30 | string="%s\n%s"%(string,fielddisplay(self,"p","p exponent"))
|
---|
| 31 | string="%s\n%s"%(string,fielddisplay(self,"q","q exponent"))
|
---|
[12038] | 32 | return string
|
---|
| 33 | #}}}
|
---|
[12123] | 34 |
|
---|
[13101] | 35 | def setdefaultparameters(self):
|
---|
[12123] | 36 | # {{{setdefaultparameters
|
---|
[13101] | 37 | return self
|
---|
[12123] | 38 | #}}}
|
---|
| 39 |
|
---|
[13101] | 40 | def checkconsistency(self,md,solution,analyses): # {{{
|
---|
| 41 |
|
---|
| 42 | #Early return
|
---|
| 43 | if DiagnosticHorizAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
|
---|
| 44 | return md
|
---|
| 45 |
|
---|
| 46 | md = checkfield(md,'friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices])
|
---|
| 47 | md = checkfield(md,'friction.q','NaN',1,'size',[md.mesh.numberofelements])
|
---|
| 48 | md = checkfield(md,'friction.p','NaN',1,'size',[md.mesh.numberofelements])
|
---|
| 49 |
|
---|
| 50 | return md
|
---|
| 51 | # }}}
|
---|
| 52 |
|
---|
| 53 | def marshall(self,fid): # {{{
|
---|
| 54 | WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1)
|
---|
| 55 | WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2)
|
---|
| 56 | WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2)
|
---|
| 57 | # }}}
|
---|
| 58 |
|
---|