Changeset 20824


Ignore:
Timestamp:
06/28/16 13:09:29 (9 years ago)
Author:
ayfeng
Message:

CHG: Implement extrude for qmu, basalforcings
CHG: Add 2D array find to matlab helper lib
CHG: Add mathjs for transposing matrices

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

Legend:

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

    r20812 r20824  
    1212    // list of files / patterns to load in the browser
    1313    files: [
     14      'node_modules/mathjs/dist/math.min.js',
    1415      'lib/bin/EnumDefinitions.js',
    1516      'lib/bin/issm-binaries.js',
     
    3233      'lib/bin/thermal.js',
    3334      'lib/bin/masstransport.js',
     35      'lib/bin/calving.js',
     36      'lib/bin/hydrologyshreve.js',
     37      'lib/bin/matice.js',
     38      'lib/bin/damage.js',
     39      'lib/bin/qmu.js',
     40      'lib/bin/basalforcings.js',
    3441      'lib/bin/project3d.js',
    3542      'lib/bin/model.js',
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matlabfunc.js

    r20809 r20824  
    4141    return indices;
    4242}
     43
     44function ArrayFind2D(array, value) {
     45    var indices = [];
     46
     47    for (var i = 0; i < array.length; ++i) {
     48        for (var j = 0; j < array[0].length; ++j) {
     49            if (array[i][j] === value) {
     50                indices.push(array[i][j]);
     51            }
     52        }
     53    }
     54
     55    return indices;
     56}
     57
     58function getMatrixWidth(matrix) {
     59    return matrix.reduce(function (result, row) {
     60        return Math.max(result, row.length);
     61    }, 0);
     62}
  • issm/trunk-jpl/jenkins/javascript/karma/lib/bin/model.js

    r20818 r20824  
    359359                    for (var i = 0; i < md.mesh.elementconnectivity.length; i++) {
    360360                        if (md.mesh.elementconnectivity[i] == 0) {
    361                             md.mesh.elementconnectivity[i] = null;
     361                            md.mesh.elementconnectivity[i] = NaN;
    362362                        }
    363363                    };
     
    371371                    };
    372372
    373                     md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
    374 
    375                     for (var i = 0; i < md.mesh.elementconnectivity.length; ++i) {
    376                         if (md.mesh.elementconnectivity[i] === null || typeof md.mesh.elementconnectivity[i] === 'undefined') {
    377                             md.mesh.elementconnectivity[i] = 0;
    378                         }
    379                     }
     373                    md.mesh.elementconnectivity.map(function(x) { return (isNaN(x)) ? 0 : x; });
    380374                }
    381375
     
    383377                md.damage=md.damage.extrude(md);
    384378                md.mask=md.mask.extrude(md);
    385                 md.qmu=extrude(md.qmu,md);
    386                 md.basalforcings=extrude(md.basalforcings,md);
     379                md.qmu=md.qmu.extrude(md);
     380                md.basalforcings=md.basalforcings.extrude(md);
    387381
    388382                //increase connectivity if less than 25:
  • issm/trunk-jpl/jenkins/javascript/karma/package.json

    r20794 r20824  
    99    "karma-junit-reporter": "^1.0.0",
    1010    "karma-requirejs": "^1.0.0",
     11    "mathjs": "^3.2.1",
    1112    "requirejs": "^2.2.0"
    1213  }
  • issm/trunk-jpl/src/m/classes/basalforcings.js

    r20777 r20824  
    1717
    1818        } // }}}
     19    this.extrude = function(md) {//{{{
     20        this.groundedice_melting_rate=project3d(md,'vector',this.groundedice_melting_rate,'type','node','layer',1);
     21        this.floatingice_melting_rate=project3d(md,'vector',this.floatingice_melting_rate,'type','node','layer',1);
     22        this.geothermalflux=project3d(md,'vector',this.geothermalflux,'type','node','layer',1); //bedrock only gets geothermal flux
     23        return this;
     24    }//}}}
    1925        this.classname = function(){ // {{{
    2026                return "basalforcings";
  • issm/trunk-jpl/src/m/classes/model.js

    r20818 r20824  
    359359                    for (var i = 0; i < md.mesh.elementconnectivity.length; i++) {
    360360                        if (md.mesh.elementconnectivity[i] == 0) {
    361                             md.mesh.elementconnectivity[i] = null;
     361                            md.mesh.elementconnectivity[i] = NaN;
    362362                        }
    363363                    };
     
    371371                    };
    372372
    373                     md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
    374 
    375                     for (var i = 0; i < md.mesh.elementconnectivity.length; ++i) {
    376                         if (md.mesh.elementconnectivity[i] === null || typeof md.mesh.elementconnectivity[i] === 'undefined') {
    377                             md.mesh.elementconnectivity[i] = 0;
    378                         }
    379                     }
     373                    md.mesh.elementconnectivity.map(function(x) { return (isNaN(x)) ? 0 : x; });
    380374                }
    381375
     
    383377                md.damage=md.damage.extrude(md);
    384378                md.mask=md.mask.extrude(md);
    385                 md.qmu=extrude(md.qmu,md);
    386                 md.basalforcings=extrude(md.basalforcings,md);
     379                md.qmu=md.qmu.extrude(md);
     380                md.basalforcings=md.basalforcings.extrude(md);
    387381
    388382                //increase connectivity if less than 25:
  • issm/trunk-jpl/src/m/classes/qmu.js

    r20777 r20824  
    9090
    9191        }// }}}
     92    this.extrude = function(md) {//{{{
     93        console.log("ORIGINAL");
     94        console.log(this.partition);
     95        console.log("TRANSPOSE");
     96        console.log(math.transpose(this.partition));
     97        this.partition=project3d(md,'vector',math.transpose(this.partition),'type','node');
     98        return this;
     99    }//}}}
    92100        this.classname= function(){// {{{
    93101                return "qmu";
Note: See TracChangeset for help on using the changeset viewer.