Changeset 26828


Ignore:
Timestamp:
01/27/22 17:48:26 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: trying m->py

Location:
issm/trunk-jpl/src/m/classes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/lovenumbers.m

    r26800 r26828  
    1616               
    1717                %tidal love numbers for computing rotational feedback:
    18                 th              = [];
    19                 tk              = [];
    20                 tl              = [];
    21                 tk2secular      = 0; %deg 2 secular number.
    22                 pmtf_colinear   = [];
    23                 pmtf_ortho      = [];
     18                th            = [];
     19                tk            = [];
     20                tl            = [];
     21                tk2secular    = 0; %deg 2 secular number.
     22                pmtf_colinear = [];
     23                pmtf_ortho    = [];
    2424
    2525                %time/frequency for visco-elastic love numbers
  • issm/trunk-jpl/src/m/classes/lovenumbers.py

    r26358 r26828  
    66from WriteData import WriteData
    77
    8 
    9 class lovenumbers(object):  #{{{
     8class lovenumbers(object):
    109    """LOVENUMBERS class definition
    1110
     
    2928        self.tl = []
    3029        self.tk2secular = 0  # deg 2 secular number
     30        pmtf_colinear   = []
     31        pmtf_ortho      = []
    3132
    3233        # Time/frequency for visco-elastic love numbers
     
    3940        self.setdefaultparameters(maxdeg, referenceframe)
    4041    #}}}
    41 
    4242    def __repr__(self):  #{{{
    4343        s = '   lovenumbers parameters:\n'
     
    4949        s += '{}\n'.format(fielddisplay(self, 'tl', 'tidal load Love number (deg 2)'))
    5050        s += '{}\n'.format(fielddisplay(self, 'tk2secular', 'secular fluid Love number'))
     51        s += '{}\n'.format(fielddisplay(self, 'pmtf_colinear', 'Colinear component of the Polar Motion Transfer Function (e.g. x-motion due to x-component perturbation of the inertia tensor)'))
     52        s += '{}\n'.format(fielddisplay(self, 'pmtf_ortho', 'Orthogonal component of the Polar Motion Transfer Function (couples x and y components, only used for Chandler Wobble)'))
    5153        s += '{}\n'.format(fielddisplay(self, 'istime', 'time (default: 1) or frequency love numbers (0)'))
    5254        s += '{}\n'.format(fielddisplay(self, 'timefreq', 'time/frequency vector (yr or 1/yr)'))
    5355        return s
    5456    #}}}
    55 
    5657    def setdefaultparameters(self, maxdeg, referenceframe):  #{{{
    5758        # Initialize love numbers
     
    6566        # Secular fluid love number
    6667        self.tk2secular = 0.942
     68        self.pmtf_colinear=0.0
     69        self.pmtf_ortho=0.0
     70        if maxdeg>=2:
     71            self.pmtf_colinear= (1.0+self.k[3-1,:])/(1.0-self.tk[3-1,:]/self.tk2secular) #valid only for elastic regime, not viscous. Also neglects chandler wobble
     72            self.pmtf_ortho= 0.0
    6773
    6874        # Time
     
    7177        return self
    7278    #}}}
    73 
    7479    def checkconsistency(self, md, solution, analyses):  #{{{
    7580        if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):
     
    8388        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.tl', 'NaN', 1, 'Inf', 1)
    8489        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.tk2secular', 'NaN', 1, 'Inf', 1)
     90        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.pmtf_colinear', 'NaN', 1, 'Inf', 1)
     91        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.pmtf_ortho', 'NaN', 1, 'Inf', 1)
    8592        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.timefreq', 'NaN', 1, 'Inf', 1)
    8693        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.istime', 'NaN', 1, 'Inf', 1, 'values', [0, 1])
     
    96103        return md
    97104    #}}}
    98 
    99105    def defaultoutputs(self, md):  #{{{
    100106        return[]
    101107    #}}}
    102 
    103108    def marshall(self, prefix, md, fid):  #{{{
    104109        WriteData(fid, prefix, 'object', self, 'fieldname', 'h', 'name', 'md.solidearth.lovenumbers.h', 'format', 'DoubleMat', 'mattype', 1)
     
    110115        WriteData(fid, prefix, 'object', self, 'fieldname', 'tl', 'name', 'md.solidearth.lovenumbers.tl', 'format', 'DoubleMat', 'mattype', 1)
    111116        WriteData(fid, prefix, 'object', self, 'data', self.tk2secular, 'fieldname', 'lovenumbers.tk2secular', 'format', 'Double')
     117        WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_colinear','name','md.solidearth.lovenumbers.pmtf_colinear','format','DoubleMat','mattype',1);
     118        WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_ortho','name','md.solidearth.lovenumbers.pmtf_ortho','format','DoubleMat','mattype',1);
    112119
    113120        if (self.istime):
     
    118125        WriteData(fid, prefix, 'object', self, 'fieldname', 'timefreq', 'name', 'md.solidearth.lovenumbers.timefreq', 'format', 'DoubleMat', 'mattype', 1, 'scale', scale);
    119126    #}}}
    120 
    121127    def extrude(self, md):  #{{{
    122128        return
Note: See TracChangeset for help on using the changeset viewer.