Changeset 20801


Ignore:
Timestamp:
06/23/16 16:06:54 (9 years ago)
Author:
ayfeng
Message:

CHG: Implement extrude for SMBforcing

Location:
issm/trunk-jpl
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/jenkins/javascript/karma/karma.conf.js

    r20800 r20801  
    2626      'lib/bin/friction.js',
    2727      'lib/bin/inversion.js',
     28      'lib/bin/SMBforcing.js',
    2829      'lib/bin/project3d.js',
    2930      'lib/bin/model.js',
  • issm/trunk-jpl/src/m/classes/SMBforcing.js

    r20777 r20801  
    1717                return '';
    1818        }//}}}
    19 this.classname = function(){ // {{{
    20         return "SMBforcing";
    21 } // }}}
    22                 this.initialize = function(md) {// {{{
     19    this.classname = function(){ // {{{
     20        return "SMBforcing";
     21    } // }}}
     22    this.extrude = function(md) {//{{{
     23        this.mass_balance=project3d(md,'vector',this.mass_balance,'type','node');
     24    }//}}}
     25    this.initialize = function(md) {// {{{
    2326
    24                         if (isNaN(this.mass_balance)){
    25                                 this.mass_balance=NewArrayFill(md.mesh.numberofvertices,0);
    26                                 console.log('      no smb.mass_balance specified: values set as zero');
    27                         }
     27        if (isNaN(this.mass_balance)){
     28            this.mass_balance=NewArrayFill(md.mesh.numberofvertices,0);
     29            console.log('      no smb.mass_balance specified: values set as zero');
     30        }
    2831
    29                 } // }}}
    30                 this.checkconsistency = function(md,solution,analyses) { //{{{
     32    } // }}}
     33    this.checkconsistency = function(md,solution,analyses) { //{{{
    3134
    32                         if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
    33                                 checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
    34                         }
    35                         if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
    36                                 checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1,'Inf',1);
    37                         }
    38                         checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
     35        if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
     36            checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
     37        }
     38        if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
     39            checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1,'Inf',1);
     40        }
     41        checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    3942
    40                 } // }}}
    41                 this.marshall=function(md,prefix,fid) { //{{{
     43    } // }}}
     44    this.marshall=function(md,prefix,fid) { //{{{
    4245
    43                         var yts=365.0*24.0*3600.0;
     46        var yts=365.0*24.0*3600.0;
    4447
    45                         WriteData(fid,prefix,'name','md.smb.model','data',SMBforcingEnum(),'format','Integer');
    46                         WriteData(fid,prefix,'object',this,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    47                        
    48                         //process requested outputs
    49                         var outputs = this.requested_outputs.slice();
    50                         for (var i=0;i<outputs.length;i++){
    51                                 if (outputs[i] == 'default') {
    52                                         outputs.splice(i,1);
    53                                         var newoutputs=this.defaultoutputs(md);
    54                                         for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
    55                                 }
    56                         }
    57                         WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray');
     48        WriteData(fid,prefix,'name','md.smb.model','data',SMBforcingEnum(),'format','Integer');
     49        WriteData(fid,prefix,'object',this,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    5850
    59                 }//}}}
    60                 this.fix=function() { //{{{
    61                 }//}}}
     51        //process requested outputs
     52        var outputs = this.requested_outputs.slice();
     53        for (var i=0;i<outputs.length;i++){
     54            if (outputs[i] == 'default') {
     55                outputs.splice(i,1);
     56                var newoutputs=this.defaultoutputs(md);
     57                for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
     58            }
     59        }
     60        WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray');
     61
     62    }//}}}
     63    this.fix=function() { //{{{
     64    }//}}}
    6265        //properties
    6366        this.mass_balance = NaN;
Note: See TracChangeset for help on using the changeset viewer.