Ignore:
Timestamp:
06/27/18 11:46:38 (7 years ago)
Author:
dlcheng
Message:

BUG (JS): Compilation error fixes for BAMG js integration. Resolving semantic translation issues from Matlab to JS. Adding BamgMesher.js to JS Makefile.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/mesh/bamg.js

    r22877 r22878  
    6060    //initialize the structures required as input of Bamg
    6161    var bamg_options = {}
    62     var bamg_geometry = bamggeom();
    63     var bamg_mesh = bamgmesh();
     62    var bamg_geometry = new bamggeom();
     63    var bamg_mesh = new bamgmesh();
    6464
    6565    var subdomain_ref = 1;
    6666    var hole_ref = 1;
    67     var vertices = [];
    68     var edges = [];
    69     var subdomains = [];
    7067    // Bamg Geometry parameters {{{
    7168    if (options.exist('domain')) {
     
    134131            //Add all points to bamg_geometry
    135132            for (var j = 0; j < nods; j++) {
    136                 vertices.push(domain[i].x[j]);
    137                 vertices.push(domain[i].y[j]);
    138                 vertices.push(1);
    139             }
     133                bamg_geometry.Vertices.push([domain[i].x[j], domain[i].y[j], 1]);
     134            }
     135            var edges1 = ArrayRange(count + 1, count + nods);
     136            var edges2 = ArrayConcat(ArrayRange(count + 2, count + nods), [count + 1]);
    140137            for (var j = 0; j < nods; j++) {
    141                 edges.push(ArrayRange(count + 1, count + nods));
    142                 edges.push(ArrayConcat(ArrayRange(count + 2, count + nods), [count + 1]));
    143                 edges.push(1);
    144             }
    145             subdomains.push([2, count + 1, 1, -subdomain_ref]);
    146             subdomain_ref = subdomain_ref + 1;
    147             bamg_geometry.Vertices = vertices;
    148             bamg_geometry.Edges = edges;
    149             bamg_geometry.SubDomains = subdomains;
     138                bamg_geometry.Edges.push([edges1[j], edges2[j], 1]);
     139            }
     140            if (i > 1) {
     141                bamg_geometry.SubDomains.push([2, count + 1, 1, -subdomain_ref]);
     142                subdomain_ref = subdomain_ref + 1;
     143            } else {
     144                bamg_geometry.SubDomains.push([2, count + 1, 1, 0]);
     145            }
    150146
    151147            //update counter
     
    183179            //Add all points to bamg_geometry
    184180            for (var j = 0; j < nods; j++) {
    185                 vertices.push(holes[i].x[j]);
    186                 vertices.push(holes[i].y[j]);
    187                 vertices.push(1);
    188             }
     181                bamg_geometry.Vertices.push([holes[i].x[j], holes[i].y[j], 1]);
     182            }
     183            var edges1 = ArrayRange(count + 1, count + nods);
     184            var edges2 = ArrayConcat(ArrayRange(count + 2, count + nods), [count + 1]);
    189185            for (var j = 0; j < nods; j++) {
    190                 edges.push(ArrayRange(count + 1, count + nods));
    191                 edges.push(ArrayConcat(ArrayRange(count + 2, count + nods), [count + 1]));
    192                 edges.push(1);
    193             }
    194             subdomains.push([2, count + 1, 1, -hole_ref]);
     186                bamg_geometry.Edges.push([edges1[j], edges2[j], 1]);
     187            }
     188            bamg_geometry.SubDomains.push([2, count + 1, 1, -hole_ref]);
    195189            hole_ref = hole_ref + 1;
    196             bamg_geometry.Vertices = vertices;
    197             bamg_geometry.Edges = edges;
    198             bamg_geometry.SubDomains = subdomains;
    199190
    200191            //update counter
     
    227218            //Add all points to bamg_geometry
    228219            for (var j = 0; j < nods; j++) {
    229                 vertices.push(subdomains[i].x[j]);
    230                 vertices.push(subdomains[i].y[j]);
    231                 vertices.push(1);
    232             }
     220                bamg_geometry.Vertices.push([subdomains[i].x[j], subdomains[i].y[j], 1]);
     221            }
     222            var edges1 = ArrayRange(count + 1, count + nods);
     223            var edges2 = ArrayConcat(ArrayRange(count + 2, count + nods), [count + 1]);
    233224            for (var j = 0; j < nods; j++) {
    234                 edges.push(ArrayRange(count + 1, count + nods));
    235                 edges.push(ArrayConcat(ArrayRange(count + 2, count + nods), [count + 1]));
    236                 edges.push(1);
    237             }
    238             subdomains.push([2, count + 1, 1, subdomain_ref]);
     225                bamg_geometry.Edges.push([edges1[j], edges2[j], 1]);
     226            }
     227            bamg_geometry.SubDomains.push([2, count + 1, 1, subdomain_ref]);
    239228            subdomain_ref = subdomain_ref + 1;
    240             bamg_geometry.Vertices = vertices;
    241             bamg_geometry.Edges = edges;
    242             bamg_geometry.SubDomains = subdomains;
    243229
    244230            //update counter
Note: See TracChangeset for help on using the changeset viewer.