Changeset 20806


Ignore:
Timestamp:
06/24/16 14:04:19 (9 years ago)
Author:
ayfeng
Message:

FIX: Project3D not producing correct results for thickness, surface fields
CHG: Align extrude functions from multiple modules to be more in line with MATLAB's
CHG: Implement extrude functionality for initialization module

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

Legend:

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

    r20801 r20806  
    2727      'lib/bin/inversion.js',
    2828      'lib/bin/SMBforcing.js',
     29      'lib/bin/initialization.js',
    2930      'lib/bin/project3d.js',
    3031      'lib/bin/model.js',
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/SMBforcing.js

    r20801 r20806  
    2222    this.extrude = function(md) {//{{{
    2323        this.mass_balance=project3d(md,'vector',this.mass_balance,'type','node');
     24        return this;
    2425    }//}}}
    2526    this.initialize = function(md) {// {{{
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/friction.js

    r20799 r20806  
    1616        } // }}}
    1717    this.extrude = function(md) {//{{{
    18 
    19         console.log("coefficient");
    20         console.log(self.coefficient);
    21         console.log("p");
    22         console.log(self.p);
    23         console.log("q");
    24         console.log(self.q);
    2518        self.coefficient = project3d(md, 'vector', self.coefficient, 'type', 'node', 'layer', 1);
    2619        self.p = project3d(md, 'vector', self.p, 'type', 'element');
    2720        self.q = project3d(md, 'vector', self.q, 'type', 'element');
     21        return this;
    2822    }//}}}
    2923        this.classname= function (){// {{{
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/geometry.js

    r20794 r20806  
    2222            this.base=project3d(md,'vector',this.base,'type','node');
    2323            this.bed=project3d(md,'vector',this.bed,'type','node');
     24            return this;
    2425        }//}}}
    2526                this.classname = function () { //{{{
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/inversion.js

    r20800 r20806  
    9090            this.max_parameters=project3d(md,'vector',this.max_parameters,'type','node');
    9191        }
     92        return this;
    9293    }//}}}
    9394        this.classname= function(){// {{{
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/model.js

    r20800 r20806  
    329329
    330330                md.geometry=md.geometry.extrude(md);
    331                 md.friction  = md.friction.extrude(md);
    332                 md.inversion = md.inversion.extrude(md);
    333                 md.smb = md.smb.extrude(md);
    334                 md.initialization = extrude(md.initialization,md);
     331                md.friction=md.friction.extrude(md);
     332                md.inversion=md.inversion.extrude(md);
     333                md.smb=md.smb.extrude(md);
     334                md.initialization=md.initialization.extrude(md);
    335335
    336336                md.flowequation=md.flowequation.extrude(md);
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/project3d.js

    r20800 r20806  
    112112        console.error('project3d error message: unknown projection type');
    113113    }
     114
     115    return projected_vector;
    114116};
  • issm/trunk-jpl/src/m/classes/SMBforcing.js

    r20801 r20806  
    2222    this.extrude = function(md) {//{{{
    2323        this.mass_balance=project3d(md,'vector',this.mass_balance,'type','node');
     24        return this;
    2425    }//}}}
    2526    this.initialize = function(md) {// {{{
  • issm/trunk-jpl/src/m/classes/friction.js

    r20799 r20806  
    1616        } // }}}
    1717    this.extrude = function(md) {//{{{
    18 
    19         console.log("coefficient");
    20         console.log(self.coefficient);
    21         console.log("p");
    22         console.log(self.p);
    23         console.log("q");
    24         console.log(self.q);
    2518        self.coefficient = project3d(md, 'vector', self.coefficient, 'type', 'node', 'layer', 1);
    2619        self.p = project3d(md, 'vector', self.p, 'type', 'element');
    2720        self.q = project3d(md, 'vector', self.q, 'type', 'element');
     21        return this;
    2822    }//}}}
    2923        this.classname= function (){// {{{
  • issm/trunk-jpl/src/m/classes/geometry.js

    r20794 r20806  
    2222            this.base=project3d(md,'vector',this.base,'type','node');
    2323            this.bed=project3d(md,'vector',this.bed,'type','node');
     24            return this;
    2425        }//}}}
    2526                this.classname = function () { //{{{
  • issm/trunk-jpl/src/m/classes/initialization.js

    r20777 r20806  
    2424
    2525        }// }}}
     26    this.extrude = function(md) {//{{{
     27        this.vx=project3d(md,'vector',this.vx,'type','node');
     28        this.vy=project3d(md,'vector',this.vy,'type','node');
     29        this.vz=project3d(md,'vector',this.vz,'type','node');
     30        this.vel=project3d(md,'vector',this.vel,'type','node');
     31        this.temperature=project3d(md,'vector',this.temperature,'type','node');
     32        this.waterfraction=project3d(md,'vector',this.waterfraction,'type','node');
     33        this.watercolumn=project3d(md,'vector',this.watercolumn,'type','node','layer',1);
     34        this.sediment_head=project3d(md,'vector',this.sediment_head,'type','node','layer',1);
     35        this.epl_head=project3d(md,'vector',this.epl_head,'type','node','layer',1);
     36        this.epl_thickness=project3d(md,'vector',this.epl_thickness,'type','node','layer',1);
     37
     38        //Lithostatic pressure by default
     39        this.pressure=md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.z);
     40        return this;
     41    }//}}}
    2642                this.checkconsistency = function(md,solution,analyses) { //{{{
    2743                        if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)){
  • issm/trunk-jpl/src/m/classes/inversion.js

    r20800 r20806  
    9090            this.max_parameters=project3d(md,'vector',this.max_parameters,'type','node');
    9191        }
     92        return this;
    9293    }//}}}
    9394        this.classname= function(){// {{{
Note: See TracChangeset for help on using the changeset viewer.