Changeset 22878


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.

Location:
issm/trunk-jpl/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/array/arrayoperations.js

    r22877 r22878  
    317317
    318318} //}}}
     319function ArrayRange(lower, upper) { //{{{
     320
     321    var range = upper - lower;
     322    return Array.apply(null, Array(range)).map(function (val, ind) {return ind + lower;});
     323
     324} //}}}
    319325function ArrayAny(array) { //{{{
    320326    //Emulates Matlab 'any' function
  • 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
  • issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.h

    r22877 r22878  
    4747#ifdef _HAVE_JAVASCRIPT_MODULES_
    4848/* serial input macros: */
    49 #define BAMGMESHIN Vertices_mesh_in,VerticesSize_mesh_in,Edges_mesh_in,EdgesSize_mesh_in,Triangles_mesh_in,TrianglesSize_mesh_in,CrackedEdges_mesh_in,CrackedEdgesSize_mesh_in,VerticesOnGeomEdge_mesh_in,VerticesOnGeomEdgeSize_mesh_in,VerticesOnGeomVertex_mesh_in,VerticesOnGeomVertexSize_mesh_in,EdgesOnGeomEdge_mesh_in,EdgesOnGeomEdgeSize_mesh_in,IssmSegments_mesh_in,IssmSegmentsSize_mesh_in
    50 #define BAMGGEOMIN Vertices_geom_in,VerticesSize_geom_in,Edges_geom_in,EdgesSize_geom_in,Corners_geom_in,CornersSize_geom_in,RequiredVertices_geom_in,RequiredVerticesSize_geom_in,RequiredCrackedEdges_geom_in,RequiredCrackedEdgesSize_geom_in,CrackedEdges_geom_in,CrackedEdgesSize_geom_in,SubDomains_geom_in,SubDomainsSize_geom_in
    51 #define BAMGOPTIONS pbamgopts,anisomax,cutoff,coeff,errg,gradation,Hessiantype,maxnbv,maxsubdiv,Metrictype,nbjacobi,nbsmooth,omega,power,verbose,Crack,KeepVertices,splitcorners,hmin,hmax,hminVertices,hmaxVertices,hVertices,metric,field,err
     49#define BAMGMESHIN VerticesSize_mesh_in, Vertices_mesh_in, EdgesSize_mesh_in, Edges_mesh_in, TrianglesSize_mesh_in, Triangles_mesh_in, CrackedEdgesSize_mesh_in, CrackedEdges_mesh_in, VerticesOnGeomEdgeSize_mesh_in, VerticesOnGeomEdge_mesh_in, VerticesOnGeomVertexSize_mesh_in, VerticesOnGeomVertex_mesh_in, EdgesOnGeomEdgeSize_mesh_in, EdgesOnGeomEdge_mesh_in, IssmSegmentsSize_mesh_in, IssmSegments_mesh_in,
     50#define BAMGGEOMIN VerticesSize_geom_in, Vertices_geom_in, EdgesSize_geom_in, Edges_geom_in, CornersSize_geom_in, Corners_geom_in, RequiredVerticesSize_geom_in, RequiredVertices_geom_in, RequiredEdgesSize_geom_in, RequiredEdges_geom_in, CrackedEdgesSize_geom_in, CrackedEdges_geom_in, SubDomainsSize_geom_in, SubDomains_geom_in,
     51#define BAMGOPTIONS anisomax, cutoff, coeff, errg, gradation, Hessiantype, maxnbv, maxsubdiv, Metrictype, nbjacobi, nbsmooth, omega, power, verbose, Crack, KeepVertices, splitcorners, hmin, hmax, hminVertices, hmaxVertices, hVertices, metric, field, err
    5252/* serial output macros: */
    53 #define BAMGMESHOUT Vertices_mesh_out,VerticesSize_mesh_out,Edges_mesh_out,EdgesSize_mesh_out,Triangles_mesh_out,TrianglesSize_mesh_out,CrackedEdges_mesh_out,CrackedEdgesSize_mesh_out,VerticesOnGeomEdge_mesh_out,VerticesOnGeomEdgeSize_mesh_out,VerticesOnGeomVertex_mesh_out,VerticesOnGeomVertexSize_mesh_out,EdgesOnGeomEdge_mesh_out,EdgesOnGeomEdgeSize_mesh_out,IssmSegments_mesh_out,IssmSegmentsSize_mesh_out
    54 #define BAMGGEOMOUT Vertices_geom_out,VerticesSize_geom_out,Edges_geom_out,EdgesSize_geom_out,Corners_geom_out,CornersSize_geom_out,RequiredVertices_geom_out,RequiredVerticesSize_geom_out,RequiredCrackedEdges_geom_out,RequiredCrackedEdgesSize_geom_out,CrackedEdges_geom_out,CrackedEdgesSize_geom_out,SubDomains_geom_out,SubDomainsSize_geom_out
    55 #define WRAPPER(modulename) extern "C" { int  BamgMesherModule(double* Vertices_mesh_out, int* VerticesSize_mesh_out, double* Edges_mesh_out, int* EdgesSize_mesh_out, double* Triangles_mesh_out, int* TrianglesSize_mesh_out, double* CrackedEdges_mesh_out, int* CrackedEdgesSize_mesh_out, double* VerticesOnGeomEdge_mesh_out, int* VerticesOnGeomEdgeSize_mesh_out, double* VerticesOnGeomVertex_mesh_out, int* VerticesOnGeomVertexSize_mesh_out, double* EdgesOnGeomEdge_mesh_out, int* EdgesOnGeomEdgeSize_mesh_out, double* IssmSegments_mesh_out, int* IssmSegmentsSize_mesh_out, double* Vertices_geom_out, int* VerticesSize_geom_out, double* Edges_geom_out, int* EdgesSize_geom_out, double* Corners_geom_out, int* CornersSize_geom_out, double* RequiredVertices_geom_out, int* RequiredVerticesSize_geom_out, double* RequiredCrackedEdges_geom_out, int* RequiredCrackedEdgesSize_geom_out, double* CrackedEdges_geom_out, int* CrackedEdgesSize_geom_out, double* SubDomains_geom_out, int* SubDomainsSize_geom_out, double* Vertices_mesh_in, int* VerticesSize_mesh_in, double* Edges_mesh_in, int* EdgesSize_mesh_in, double* Triangles_mesh_in, int* TrianglesSize_mesh_in, double* CrackedEdges_mesh_in, int* CrackedEdgesSize_mesh_in, double* VerticesOnGeomEdge_mesh_in, int* VerticesOnGeomEdgeSize_mesh_in, double* VerticesOnGeomVertex_mesh_in, int* VerticesOnGeomVertexSize_mesh_in, double* EdgesOnGeomEdge_mesh_in, int* EdgesOnGeomEdgeSize_mesh_in, double* IssmSegments_mesh_in, int* IssmSegmentsSize_mesh_in, double* Vertices_geom_in, int* VerticesSize_geom_in, double* Edges_geom_in, int* EdgesSize_geom_in, double* Corners_geom_in, int* CornersSize_geom_in, double* RequiredVertices_geom_in, int* RequiredVerticesSize_geom_in, double* RequiredCrackedEdges_geom_in, int* RequiredCrackedEdgesSize_geom_in, double* CrackedEdges_geom_in, int* CrackedEdgesSize_geom_in, double* SubDomains_geom_in, int* SubDomainsSize_geom_in, double anisomax, double cutoff, double coeff, double errg, double gradation, int Hessiantype, int maxnbv, double maxsubdiv, int Metrictype, int nbjacobi, int nbsmooth, double omega, double power, int verbose, int Crack, int KeepVertices, int splitcorners, double hmin, double hmax, double* hminVertices, double* hmaxVertices, double* hVertices, double* metric, double* field, double err)
     53#define BAMGMESHOUT VerticesSize_mesh_out, Vertices_mesh_out, EdgesSize_mesh_out, Edges_mesh_out, TrianglesSize_mesh_out, Triangles_mesh_out, CrackedEdgesSize_mesh_out, CrackedEdges_mesh_out, VerticesOnGeomEdgeSize_mesh_out, VerticesOnGeomEdge_mesh_out, VerticesOnGeomVertexSize_mesh_out, VerticesOnGeomVertex_mesh_out, EdgesOnGeomEdgeSize_mesh_out, EdgesOnGeomEdge_mesh_out, IssmSegmentsSize_mesh_out, IssmSegments_mesh_out
     54#define BAMGGEOMOUT VerticesSize_geom_out, Vertices_geom_out, EdgesSize_geom_out, Edges_geom_out, CornersSize_geom_out, Corners_geom_out, RequiredVerticesSize_geom_out, RequiredVertices_geom_out, RequiredEdgesSize_geom_out, RequiredEdges_geom_out, CrackedEdgesSize_geom_out, CrackedEdges_geom_out, SubDomainsSize_geom_out, SubDomains_geom_out
     55#define WRAPPER(modulename) extern "C" { int  BamgMesherModule(int* VerticesSize_mesh_out, double* Vertices_mesh_out, int* EdgesSize_mesh_out, double* Edges_mesh_out, int* TrianglesSize_mesh_out, double* Triangles_mesh_out, int* CrackedEdgesSize_mesh_out, double* CrackedEdges_mesh_out, int* VerticesOnGeomEdgeSize_mesh_out, double* VerticesOnGeomEdge_mesh_out, int* VerticesOnGeomVertexSize_mesh_out, double* VerticesOnGeomVertex_mesh_out, int* EdgesOnGeomEdgeSize_mesh_out, double* EdgesOnGeomEdge_mesh_out, int* IssmSegmentsSize_mesh_out, double* IssmSegments_mesh_out, int* VerticesSize_geom_out, double* Vertices_geom_out, int* EdgesSize_geom_out, double* Edges_geom_out, int* CornersSize_geom_out, double* Corners_geom_out, int* RequiredVerticesSize_geom_out, double* RequiredVertices_geom_out, int* RequiredEdgesSize_geom_out, double* RequiredEdges_geom_out, int* CrackedEdgesSize_geom_out, double* CrackedEdges_geom_out, int* SubDomainsSize_geom_out, double* SubDomains_geom_out, int* VerticesSize_mesh_in, double* Vertices_mesh_in, int* EdgesSize_mesh_in, double* Edges_mesh_in, int* TrianglesSize_mesh_in, double* Triangles_mesh_in, int* CrackedEdgesSize_mesh_in, double* CrackedEdges_mesh_in, int* VerticesOnGeomEdgeSize_mesh_in, double* VerticesOnGeomEdge_mesh_in, int* VerticesOnGeomVertexSize_mesh_in, double* VerticesOnGeomVertex_mesh_in, int* EdgesOnGeomEdgeSize_mesh_in, double* EdgesOnGeomEdge_mesh_in, int* IssmSegmentsSize_mesh_in, double* IssmSegments_mesh_in, int* VerticesSize_geom_in, double* Vertices_geom_in, int* EdgesSize_geom_in, double* Edges_geom_in, int* CornersSize_geom_in, double* Corners_geom_in, int* RequiredVerticesSize_geom_in, double* RequiredVertices_geom_in, int* RequiredEdgesSize_geom_in, double* RequiredEdges_geom_in, int* CrackedEdgesSize_geom_in, double* CrackedEdges_geom_in, int* SubDomainsSize_geom_in, double* SubDomains_geom_in, double anisomax, double cutoff, double coeff, double errg, double gradation, int Hessiantype, int maxnbv, double maxsubdiv, int Metrictype, int nbjacobi, int nbsmooth, double omega, double power, int verbose, int Crack, int KeepVertices, int splitcorners, double hmin, double hmax, int* hminVerticesSize, double* hminVertices, int* hmaxVerticesSize, double* hmaxVertices, int* hVerticesSize, double* hVertices, int* metricSize, double* metric, int* fieldSize, double* field, int* errSize, double* err)
    5656#define _DO_NOT_LOAD_GLOBALS_//we only load globals for TriangleModule.js, not other modules!
    5757#endif
  • issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.js

    r22877 r22878  
    4040        //Retrieve domain arrays, and allocate on Module heap:
    4141        //input
     42    var pVerticesSize_mesh_in               = intsToHeap([bamgmesh.Vertices.length, bamgmesh.Vertices[0].length]);
    4243    var pVertices_mesh_in                   = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.Vertices));
    43     var pVerticesSize_mesh_in               = intsToHeap([bamgmesh.Vertices.length, bamgmesh.Vertices[0].length]);
     44    var pEdgesSize_mesh_in                  = intsToHeap([bamgmesh.Edges.length, bamgmesh.Edges[0].length]);
    4445    var pEdges_mesh_in                      = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.Edges));
    45     var pEdgesSize_mesh_in                  = intsToHeap([bamgmesh.Edges.length, bamgmesh.Edges[0].length]);
     46    var pTrianglesSize_mesh_in              = intsToHeap([bamgmesh.Triangle.length, bamgmesh.Triangle[0].length]);
    4647    var pTriangles_mesh_in                  = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.Triangle));
    47     var pTrianglesSize_mesh_in              = intsToHeap([bamgmesh.Triangle.length, bamgmesh.Triangle[0].length]);
     48    var pCrackedEdgesSize_mesh_in           = intsToHeap([bamgmesh.CrackedEdges.length, bamgmesh.CrackedEdges[0].length]);
    4849    var pCrackedEdges_mesh_in               = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.CrackedEdges));
    49     var pCrackedEdgesSize_mesh_in           = intsToHeap([bamgmesh.CrackedEdges.length, bamgmesh.CrackedEdges[0].length]);
     50    var pVerticesOnGeomEdgeSize_mesh_in     = intsToHeap([bamgmesh.VerticesOnGeomEdge.length, bamgmesh.VerticesOnGeomEdge[0].length]);
    5051    var pVerticesOnGeomEdge_mesh_in         = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.VerticesOnGeomEdge));
    51     var pVerticesOnGeomEdgeSize_mesh_in     = intsToHeap([bamgmesh.VerticesOnGeomEdge.length, bamgmesh.VerticesOnGeomEdge[0].length]);
     52    var pVerticesOnGeomVertexSize_mesh_in   = intsToHeap([bamgmesh.VerticesOnGeomVertex.length, bamgmesh.VerticesOnGeomVertex[0].length]);
    5253    var pVerticesOnGeomVertex_mesh_in       = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.VerticesOnGeomVertex));
    53     var pVerticesOnGeomVertexSize_mesh_in   = intsToHeap([bamgmesh.VerticesOnGeomVertex.length, bamgmesh.VerticesOnGeomVertex[0].length]);
     54    var pEdgesOnGeomEdgeSize_mesh_in        = intsToHeap([bamgmesh.EdgesOnGeomEdge.length, bamgmesh.EdgesOnGeomEdge[0].length]);
    5455    var pEdgesOnGeomEdge_mesh_in            = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.EdgesOnGeomEdge));
    55     var pEdgesOnGeomEdgeSize_mesh_in        = intsToHeap([bamgmesh.EdgesOnGeomEdge.length, bamgmesh.EdgesOnGeomEdge[0].length]);
     56    var pIssmSegmentsSize_mesh_in           = intsToHeap([bamgmesh.IssmSegments.length, bamgmesh.IssmSegments[0].length]);
    5657    var pIssmSegments_mesh_in               = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.IssmSegments));
    57     var pIssmSegmentsSize_mesh_in           = intsToHeap([bamgmesh.IssmSegments.length, bamgmesh.IssmSegments[0].length]);
    58 
     58
     59    var pVerticesSize_geom_in               = intsToHeap([bamggeom.Vertices.length, bamggeom.Vertices[0].length]);
    5960    var pVertices_geom_in                   = doublesToHeap(Array.prototype.concat.apply([], bamggeom.Vertices));
    60     var pVerticesSize_geom_in               = intsToHeap([bamggeom.Vertices.length, bamggeom.Vertices[0].length]);
     61    var pEdgesSize_geom_in                  = intsToHeap([bamggeom.Edges.length, bamggeom.Edges[0].length]);
    6162    var pEdges_geom_in                      = doublesToHeap(Array.prototype.concat.apply([], bamggeom.Edges));
    62     var pEdgesSize_geom_in                  = intsToHeap([bamggeom.Edges.length, bamggeom.Edges[0].length]);
     63    var pCornersSize_geom_in                = intsToHeap([bamggeom.Corners.length, bamggeom.Corners[0].length]);
    6364    var pCorners_geom_in                    = doublesToHeap(Array.prototype.concat.apply([], bamggeom.Corners));
    64     var pCornersSize_geom_in                = intsToHeap([bamggeom.Corners.length, bamggeom.Corners[0].length]);
     65    var pRequiredVerticesSize_geom_in       = intsToHeap([bamggeom.RequiredVertices.length, bamggeom.RequiredVertices[0].length]);
    6566    var pRequiredVertices_geom_in           = doublesToHeap(Array.prototype.concat.apply([], bamggeom.RequiredVertices));
    66     var pRequiredVerticesSize_geom_in       = intsToHeap([bamggeom.RequiredVertices.length, bamggeom.RequiredVertices[0].length]);
     67    var pRequiredCrackedEdgesSize_geom_in   = intsToHeap([bamggeom.RequiredCrackedEdges.length, bamggeom.RequiredCrackedEdges[0].length]);
    6768    var pRequiredCrackedEdges_geom_in       = doublesToHeap(Array.prototype.concat.apply([], bamggeom.RequiredCrackedEdges));
    68     var pRequiredCrackedEdgesSize_geom_in   = intsToHeap([bamggeom.RequiredCrackedEdges.length, bamggeom.RequiredCrackedEdges[0].length]);
     69    var pCrackedEdgesSize_geom_in           = intsToHeap([bamggeom.CrackedEdges.length, bamggeom.CrackedEdges[0].length]);
    6970    var pCrackedEdges_geom_in               = doublesToHeap(Array.prototype.concat.apply([], bamggeom.CrackedEdges));
    70     var pCrackedEdgesSize_geom_in           = intsToHeap([bamggeom.CrackedEdges.length, bamggeom.CrackedEdges[0].length]);
     71    var pSubDomainsSize_geom_in             = intsToHeap([bamggeom.SubDomains.length, bamggeom.SubDomains[0].length]);
    7172    var pSubDomains_geom_in                 = doublesToHeap(Array.prototype.concat.apply([], bamggeom.SubDomains));
    72     var pSubDomainsSize_geom_in             = intsToHeap([bamggeom.SubDomains.length, bamggeom.SubDomains[0].length]);
    7373
    7474    var anisomax                            = bamgopts.anisomax;
     
    9191    var hmin                                = bamgopts.hmin;
    9292    var hmax                                = bamgopts.hmax;
     93    var phminVerticesSize                   = intsToHeap([bamgopts.hminVertices.length, bamgopts.hminVertices[0].length]);
    9394    var phminVertices                       = doublesToHeap(Array.prototype.concat.apply([], bamgopts.hminVertices));
    94     var phminVerticesSize                   = intsToHeap([bamgopts.hminVertices.length, bamgopts.hminVertices[0].length]);
     95    var phmaxVerticesSize                   = intsToHeap([bamgopts.hmaxVertices.length, bamgopts.hmaxVertices[0].length]);
    9596    var phmaxVertices                       = doublesToHeap(Array.prototype.concat.apply([], bamgopts.hmaxVertices));
    96     var phmaxVerticesSize                   = intsToHeap([bamgopts.hmaxVertices.length, bamgopts.hmaxVertices[0].length]);
     97    var phVerticesSize                      = intsToHeap([bamgopts.hVertices.length, bamgopts.hVertices[0].length]);
    9798    var phVertices                          = doublesToHeap(Array.prototype.concat.apply([], bamgopts.hVertices));
    98     var phVerticesSize                      = intsToHeap([bamgopts.hVertices.length, bamgopts.hVertices[0].length]);
     99    var pmetricSize                         = intsToHeap([bamgopts.metric.length, bamgopts.metric[0].length]);
    99100    var pmetric                             = doublesToHeap(Array.prototype.concat.apply([], bamgopts.metric));
    100     var pmetricSize                         = intsToHeap([bamgopts.metric.length, bamgopts.metric[0].length]);
     101    var pfieldSize                          = intsToHeap([bamgopts.field.length, bamgopts.field[0].length]);
    101102    var pfield                              = doublesToHeap(Array.prototype.concat.apply([], bamgopts.field));
    102     var pfieldSize                          = intsToHeap([bamgopts.field.length, bamgopts.field[0].length]);
    103     var err                                 = bamgopts.err;
     103    var perrSize                            = intsToHeap([bamgopts.err.length, bamgopts.err[0].length]);
     104    var perr                                = doublesToHeap(Array.prototype.concat.apply([], bamgopts.err));
    104105       
    105106        //output
     107    var pVerticesSize_geom_out              = Module._malloc(4);
    106108    var pVertices_geom_out                  = Module._malloc(4);
    107     var pVerticesSize_geom_out              = Module._malloc(4);
     109    var pEdgesSize_geom_out                 = Module._malloc(4);
    108110    var pEdges_geom_out                     = Module._malloc(4);
    109     var pEdgesSize_geom_out                 = Module._malloc(4);
     111    var pCornersSize_geom_out               = Module._malloc(4);
    110112    var pCorners_geom_out                   = Module._malloc(4);
    111     var pCornersSize_geom_out               = Module._malloc(4);
     113    var pRequiredVerticesSize_geom_out      = Module._malloc(4);
    112114    var pRequiredVertices_geom_out          = Module._malloc(4);
    113     var pRequiredVerticesSize_geom_out      = Module._malloc(4);
     115    var pRequiredCrackedEdgesSize_geom_out  = Module._malloc(4);
    114116    var pRequiredCrackedEdges_geom_out      = Module._malloc(4);
    115     var pRequiredCrackedEdgesSize_geom_out  = Module._malloc(4);
     117    var pCrackedEdgesSize_geom_out          = Module._malloc(4);
    116118    var pCrackedEdges_geom_out              = Module._malloc(4);
    117     var pCrackedEdgesSize_geom_out          = Module._malloc(4);
     119    var pSubDomainsSize_geom_out            = Module._malloc(4);
    118120    var pSubDomains_geom_out                = Module._malloc(4);
    119     var pSubDomainsSize_geom_out            = Module._malloc(4);
    120 
     121
     122    var pVerticesSize_mesh_out              = Module._malloc(4);
    121123    var pVertices_mesh_out                  = Module._malloc(4);
    122     var pVerticesSize_mesh_out              = Module._malloc(4);
     124    var pEdgesSize_mesh_out                 = Module._malloc(4);
    123125    var pEdges_mesh_out                     = Module._malloc(4);
    124     var pEdgesSize_mesh_out                 = Module._malloc(4);
     126    var pTrianglesSize_mesh_out             = Module._malloc(4);
    125127    var pTriangles_mesh_out                 = Module._malloc(4);
    126     var pTrianglesSize_mesh_out             = Module._malloc(4);
     128    var pCrackedEdgesSize_mesh_out          = Module._malloc(4);
    127129    var pCrackedEdges_mesh_out              = Module._malloc(4);
    128     var pCrackedEdgesSize_mesh_out          = Module._malloc(4);
     130    var pVerticesOnGeomEdgeSize_mesh_out    = Module._malloc(4);
    129131    var pVerticesOnGeomEdge_mesh_out        = Module._malloc(4);
    130     var pVerticesOnGeomEdgeSize_mesh_out    = Module._malloc(4);
     132    var pVerticesOnGeomVertexSize_mesh_out  = Module._malloc(4);
    131133    var pVerticesOnGeomVertex_mesh_out      = Module._malloc(4);
    132     var pVerticesOnGeomVertexSize_mesh_out  = Module._malloc(4);
     134    var pEdgesOnGeomEdgeSize_mesh_out       = Module._malloc(4);
    133135    var pEdgesOnGeomEdge_mesh_out           = Module._malloc(4);
    134     var pEdgesOnGeomEdgeSize_mesh_out       = Module._malloc(4);
     136    var pIssmSegmentsSize_mesh_out          = Module._malloc(4);
    135137    var pIssmSegments_mesh_out              = Module._malloc(4);
    136     var pIssmSegmentsSize_mesh_out          = Module._malloc(4);
    137138        //}}}
    138139
     
    147148        //Call BamgMesher module:
    148149        BamgMesherModule(
    149         pVertices_mesh_out, pVerticesSize_mesh_out, pEdges_mesh_out, pEdgesSize_mesh_out, pTriangles_mesh_out, pTrianglesSize_mesh_out, pCrackedEdges_mesh_out, pCrackedEdgesSize_mesh_out, pVerticesOnGeomEdge_mesh_out, pVerticesOnGeomEdgeSize_mesh_out, pVerticesOnGeomVertex_mesh_out, pVerticesOnGeomVertexSize_mesh_out, pEdgesOnGeomEdge_mesh_out, pEdgesOnGeomEdgeSize_mesh_out, pIssmSegments_mesh_out, pIssmSegmentsSize_mesh_out,
    150         pVertices_geom_out, pVerticesSize_geom_out, pEdges_geom_out, pEdgesSize_geom_out, pCorners_geom_out, pCornersSize_geom_out, pRequiredVertices_geom_out, pRequiredVerticesSize_geom_out, pRequiredCrackedEdges_geom_out, pRequiredCrackedEdgesSize_geom_out, pCrackedEdges_geom_out, pCrackedEdgesSize_geom_out, pSubDomaouts_geom_out, pSubDomaoutsSize_geom_out,
    151         pVertices_mesh_in, pVerticesSize_mesh_in, pEdges_mesh_in, pEdgesSize_mesh_in, pTriangles_mesh_in, pTrianglesSize_mesh_in, pCrackedEdges_mesh_in, pCrackedEdgesSize_mesh_in, pVerticesOnGeomEdge_mesh_in, pVerticesOnGeomEdgeSize_mesh_in, pVerticesOnGeomVertex_mesh_in, pVerticesOnGeomVertexSize_mesh_in, pEdgesOnGeomEdge_mesh_in, pEdgesOnGeomEdgeSize_mesh_in, pIssmSegments_mesh_in, pIssmSegmentsSize_mesh_in,
    152         pVertices_geom_in, pVerticesSize_geom_in, pEdges_geom_in, pEdgesSize_geom_in, pCorners_geom_in, pCornersSize_geom_in, pRequiredVertices_geom_in, pRequiredVerticesSize_geom_in, pRequiredCrackedEdges_geom_in, pRequiredCrackedEdgesSize_geom_in, pCrackedEdges_geom_in, pCrackedEdgesSize_geom_in, pSubDomains_geom_in, pSubDomainsSize_geom_in,
    153         anisomax, cutoff, coeff, errg, gradation, Hessiantype, maxnbv, maxsubdiv, Metrictype, nbjacobi, nbsmooth, omega, power, verbose, Crack, KeepVertices, splitcorners, hmin, hmax, phminVertices, phminVerticesSize, phmaxVertices, phmaxVerticesSize, phVertices, phVerticesSize, pmetric, pmetricSize, pfield, pfieldSize, err);
     150        pVerticesSize_mesh_out, pVertices_mesh_out, pEdgesSize_mesh_out, pEdges_mesh_out, pTrianglesSize_mesh_out, pTriangles_mesh_out, pCrackedEdgesSize_mesh_out, pCrackedEdges_mesh_out, pVerticesOnGeomEdgeSize_mesh_out, pVerticesOnGeomEdge_mesh_out, pVerticesOnGeomVertexSize_mesh_out, pVerticesOnGeomVertex_mesh_out, pEdgesOnGeomEdgeSize_mesh_out, pEdgesOnGeomEdge_mesh_out, pIssmSegmentsSize_mesh_out, pIssmSegments_mesh_out,
     151        pVerticesSize_geom_out, pVertices_geom_out, pEdgesSize_geom_out, pEdges_geom_out, pCornersSize_geom_out, pCorners_geom_out, pRequiredVerticesSize_geom_out, pRequiredVertices_geom_out, pRequiredCrackedEdgesSize_geom_out, pRequiredCrackedEdges_geom_out, pCrackedEdgesSize_geom_out, pCrackedEdges_geom_out, pSubDomaoutsSize_geom_out, pSubDomaouts_geom_out,
     152        pVerticesSize_mesh_in, pVertices_mesh_in, pEdgesSize_mesh_in, pEdges_mesh_in, pTrianglesSize_mesh_in, pTriangles_mesh_in, pCrackedEdgesSize_mesh_in, pCrackedEdges_mesh_in, pVerticesOnGeomEdgeSize_mesh_in, pVerticesOnGeomEdge_mesh_in, pVerticesOnGeomVertexSize_mesh_in, pVerticesOnGeomVertex_mesh_in, pEdgesOnGeomEdgeSize_mesh_in, pEdgesOnGeomEdge_mesh_in, pIssmSegmentsSize_mesh_in, pIssmSegments_mesh_in,
     153        pVerticesSize_geom_in, pVertices_geom_in, pEdgesSize_geom_in, pEdges_geom_in, pCornersSize_geom_in, pCorners_geom_in, pRequiredVerticesSize_geom_in, pRequiredVertices_geom_in, pRequiredCrackedEdgesSize_geom_in, pRequiredCrackedEdges_geom_in, pCrackedEdgesSize_geom_in, pCrackedEdges_geom_in, pSubDomaoutsSize_geom_in, pSubDomaouts_geom_in,
     154        anisomax, cutoff, coeff, errg, gradation, Hessiantype, maxnbv, maxsubdiv, Metrictype, nbjacobi, nbsmooth, omega, power, verbose, Crack, KeepVertices, splitcorners, hmin, hmax, phminVerticesSize, phminVertices, phmaxVerticesSize, phmaxVertices, phVerticesSize, phVertices, pmetricSize, pmetric, pfieldSize, pfield, perrSize, perr);
    154155       
    155156        /*Dynamic copying from heap: {{{*/
     
    194195
    195196        /*Free ressources: */
     197    Module._free(pVerticesSize_mesh_in);
    196198    Module._free(pVertices_mesh_in);
    197     Module._free(pVerticesSize_mesh_in);
     199    Module._free(pEdgesSize_mesh_in);
    198200    Module._free(pEdges_mesh_in);
    199     Module._free(pEdgesSize_mesh_in);
     201    Module._free(pTrianglesSize_mesh_in);
    200202    Module._free(pTriangles_mesh_in);
    201     Module._free(pTrianglesSize_mesh_in);
     203    Module._free(pCrackedEdgesSize_mesh_in);
    202204    Module._free(pCrackedEdges_mesh_in);
    203     Module._free(pCrackedEdgesSize_mesh_in);
     205    Module._free(pVerticesOnGeomEdgeSize_mesh_in);
    204206    Module._free(pVerticesOnGeomEdge_mesh_in);
    205     Module._free(pVerticesOnGeomEdgeSize_mesh_in);
     207    Module._free(pVerticesOnGeomVertexSize_mesh_in);
    206208    Module._free(pVerticesOnGeomVertex_mesh_in);
    207     Module._free(pVerticesOnGeomVertexSize_mesh_in);
     209    Module._free(pEdgesOnGeomEdgeSize_mesh_in);
    208210    Module._free(pEdgesOnGeomEdge_mesh_in);
    209     Module._free(pEdgesOnGeomEdgeSize_mesh_in);
     211    Module._free(pIssmSegmentsSize_mesh_in);
    210212    Module._free(pIssmSegments_mesh_in);
    211     Module._free(pIssmSegmentsSize_mesh_in);
    212 
     213
     214    Module._free(pVerticesSize_geom_in);
    213215    Module._free(pVertices_geom_in);
    214     Module._free(pVerticesSize_geom_in);
     216    Module._free(pEdgesSize_geom_in);
    215217    Module._free(pEdges_geom_in);
    216     Module._free(pEdgesSize_geom_in);
     218    Module._free(pCornersSize_geom_in);
    217219    Module._free(pCorners_geom_in);
    218     Module._free(pCornersSize_geom_in);
     220    Module._free(pRequiredVerticesSize_geom_in);
    219221    Module._free(pRequiredVertices_geom_in);
    220     Module._free(pRequiredVerticesSize_geom_in);
     222    Module._free(pRequiredCrackedEdgesSize_geom_in);
    221223    Module._free(pRequiredCrackedEdges_geom_in);
    222     Module._free(pRequiredCrackedEdgesSize_geom_in);
     224    Module._free(pCrackedEdgesSize_geom_in);
    223225    Module._free(pCrackedEdges_geom_in);
    224     Module._free(pCrackedEdgesSize_geom_in);
     226    Module._free(pSubDomainsSize_geom_in);
    225227    Module._free(pSubDomains_geom_in);
    226     Module._free(pSubDomainsSize_geom_in);
    227 
     228
     229    Module._free(pVerticesSize_geom_out);
    228230    Module._free(pVertices_geom_out);
    229     Module._free(pVerticesSize_geom_out);
     231    Module._free(pEdgesSize_geom_out);
    230232    Module._free(pEdges_geom_out);
    231     Module._free(pEdgesSize_geom_out);
     233    Module._free(pCornersSize_geom_out);
    232234    Module._free(pCorners_geom_out);
    233     Module._free(pCornersSize_geom_out);
     235    Module._free(pRequiredVerticesSize_geom_out);
    234236    Module._free(pRequiredVertices_geom_out);
    235     Module._free(pRequiredVerticesSize_geom_out);
     237    Module._free(pRequiredCrackedEdgesSize_geom_out);
    236238    Module._free(pRequiredCrackedEdges_geom_out);
    237     Module._free(pRequiredCrackedEdgesSize_geom_out);
     239    Module._free(pCrackedEdgesSize_geom_out);
    238240    Module._free(pCrackedEdges_geom_out);
    239     Module._free(pCrackedEdgesSize_geom_out);
     241    Module._free(pSubDomainsSize_geom_out);
    240242    Module._free(pSubDomains_geom_out);
    241     Module._free(pSubDomainsSize_geom_out);
    242 
     243
     244    Module._free(pVerticesSize_mesh_out);
    243245    Module._free(pVertices_mesh_out);
    244     Module._free(pVerticesSize_mesh_out);
     246    Module._free(pEdgesSize_mesh_out);
    245247    Module._free(pEdges_mesh_out);
    246     Module._free(pEdgesSize_mesh_out);
     248    Module._free(pTrianglesSize_mesh_out);
    247249    Module._free(pTriangles_mesh_out);
    248     Module._free(pTrianglesSize_mesh_out);
     250    Module._free(pCrackedEdgesSize_mesh_out);
    249251    Module._free(pCrackedEdges_mesh_out);
    250     Module._free(pCrackedEdgesSize_mesh_out);
     252    Module._free(pVerticesOnGeomEdgeSize_mesh_out);
    251253    Module._free(pVerticesOnGeomEdge_mesh_out);
    252     Module._free(pVerticesOnGeomEdgeSize_mesh_out);
     254    Module._free(pVerticesOnGeomVertexSize_mesh_out);
    253255    Module._free(pVerticesOnGeomVertex_mesh_out);
    254     Module._free(pVerticesOnGeomVertexSize_mesh_out);
     256    Module._free(pEdgesOnGeomEdgeSize_mesh_out);
    255257    Module._free(pEdgesOnGeomEdge_mesh_out);
    256     Module._free(pEdgesOnGeomEdgeSize_mesh_out);
     258    Module._free(pIssmSegmentsSize_mesh_out);
    257259    Module._free(pIssmSegments_mesh_out);
    258     Module._free(pIssmSegmentsSize_mesh_out);
    259 
     260
     261    Module._free(phminVerticesSize);
    260262    Module._free(phminVertices);
    261     Module._free(phminVerticesSize);
     263    Module._free(phmaxVerticesSize);
    262264    Module._free(phmaxVertices);
    263     Module._free(phmaxVerticesSize);
     265    Module._free(phVerticesSize);
    264266    Module._free(phVertices);
    265     Module._free(phVerticesSize);
     267    Module._free(pmetricSize);
    266268    Module._free(pmetric);
    267     Module._free(pmetricSize);
     269    Module._free(pfieldSize);
    268270    Module._free(pfield);
    269     Module._free(pfieldSize);
     271    Module._free(perrSize);
     272    Module._free(perr);
    270273
    271274        return return_array;
  • issm/trunk-jpl/src/wrappers/javascript/Makefile.am

    r22677 r22878  
    77AM_CPPFLAGS+=  -DISSM_PREFIX='"$(prefix)"'
    88
    9 js_scripts = ${ISSM_DIR}/src/wrappers/Triangle/Triangle.js  \
     9js_scripts = ${ISSM_DIR}/src/wrappers/BamgMesher/BamgMesher.js \
     10             ${ISSM_DIR}/src/wrappers/Triangle/Triangle.js  \
    1011                         ${ISSM_DIR}/src/wrappers/NodeConnectivity/NodeConnectivity.js\
    1112                         ${ISSM_DIR}/src/wrappers/ContourToMesh/ContourToMesh.js\
  • issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp

    r22877 r22878  
    125125/*}}}*/
    126126/*FUNCTION FetchData(BamgGeom** pbamggeom, double* vertices, int nods){{{*/
    127 void FetchData(BamgGeom** pbamggeom, double* Vertices, int* VerticesSize, double* Edges, int* EdgesSize, double* Corners, int* CornersSize, double* RequiredVertices, int* RequiredVerticesSize, double* RequiredCrackedEdges, int* RequiredCrackedEdgesSize, double* CrackedEdges, int* CrackedEdgesSize, double* SubDomains, int* SubDomainsSize){
     127void FetchData(BamgGeom** pbamggeom, int* VerticesSize, double* Vertices, int* EdgesSize, double* Edges, int* CornersSize, double* Corners, int* RequiredVerticesSize, double* RequiredVertices, int* RequiredEdgesSize, double* RequiredEdges, int* CrackedEdgesSize, double* CrackedEdges, int* SubDomainsSize, double* SubDomains){
    128128
    129129        /*Initialize output*/
     
    144144/*}}}*/
    145145/*FUNCTION FetchData(BamgMesh** pbamgmesh, double* vertices, int nods){{{*/
    146 void FetchData(BamgMesh** pbamgmesh, double* Vertices, int* VerticesSize, double* Edges, int* EdgesSize, double* Triangles, int* TrianglesSize, double* CrackedEdges, int* CrackedEdgesSize, double* VerticesOnGeomEdge, int* VerticesOnGeomEdgeSize, double* VerticesOnGeomVertex, int* VerticesOnGeomVertexSize, double* EdgesOnGeomEdge, int* EdgesOnGeomEdgeSize, double* IssmSegments, int* IssmSegmentsSize){
     146void FetchData(BamgMesh** pbamgmesh, int* VerticesSize, double* Vertices, int* EdgesSize, double* Edges, int* TrianglesSize, double* Triangles, int* CrackedEdgesSize, double* CrackedEdges, int* VerticesOnGeomEdgeSize, double* VerticesOnGeomEdge, int* VerticesOnGeomVertexSize, double* VerticesOnGeomVertex, int* EdgesOnGeomEdgeSize, double* EdgesOnGeomEdge, int* IssmSegmentsSize, double* IssmSegments){
    147147
    148148        /*Initialize output*/
     
    150150
    151151        /*Fetch all fields*/
    152         FetchData(&bamggeom->Vertices, &bamggeom->VerticesSize[0], &bamggeom->VerticesSize[1], Vertices, VerticesSize[0], VerticesSize[1]);
    153         FetchData(&bamggeom->Edges, &bamggeom->EdgesSize[0], &bamggeom->EdgesSize[1], Edges, EdgesSize[0], EdgesSize[1]);
    154         FetchData(&bamggeom->Triangles, &bamggeom->TrianglesSize[0], &bamggeom->TrianglesSize[1], Triangles, TrianglesSize[0], TrianglesSize[1]);
    155         FetchData(&bamggeom->CrackedEdges, &bamggeom->CrackedEdgesSize[0], &bamggeom->CrackedEdgesSize[1], CrackedEdges, CrackedEdgesSize[0], CrackedEdgesSize[1]);
    156         FetchData(&bamggeom->VerticesOnGeomEdge, &bamggeom->VerticesOnGeomEdgeSize[0], &bamggeom->VerticesOnGeomEdgeSize[1], VerticesOnGeomEdge, VerticesOnGeomEdgeSize[0], VerticesOnGeomEdgeSize[1]);
    157         FetchData(&bamggeom->VerticesOnGeomVertex, &bamggeom->VerticesOnGeomVertexSize[0], &bamggeom->VerticesOnGeomVertexSize[1], VerticesOnGeomVertex, VerticesOnGeomVertexSize[0], VerticesOnGeomVertexSize[1]);
    158         FetchData(&bamggeom->EdgesOnGeomEdge, &bamggeom->EdgesOnGeomEdgeSize[0], &bamggeom->EdgesOnGeomEdgeSize[1], EdgesOnGeomEdge, EdgesOnGeomEdgeSize[0], EdgesOnGeomEdgeSize[1]);
    159         FetchData(&bamggeom->IssmSegments, &bamggeom->IssmSegmentsSize[0], &bamggeom->IssmSegmentsSize[1], IssmSegments, IssmSegmentsSize[0], IssmSegmentsSize[1]);
     152        FetchData(&bamgmesh->Vertices, &bamgmesh->VerticesSize[0], &bamgmesh->VerticesSize[1], Vertices, VerticesSize[0], VerticesSize[1]);
     153        FetchData(&bamgmesh->Edges, &bamgmesh->EdgesSize[0], &bamgmesh->EdgesSize[1], Edges, EdgesSize[0], EdgesSize[1]);
     154        FetchData(&bamgmesh->Triangles, &bamgmesh->TrianglesSize[0], &bamgmesh->TrianglesSize[1], Triangles, TrianglesSize[0], TrianglesSize[1]);
     155        FetchData(&bamgmesh->CrackedEdges, &bamgmesh->CrackedEdgesSize[0], &bamgmesh->CrackedEdgesSize[1], CrackedEdges, CrackedEdgesSize[0], CrackedEdgesSize[1]);
     156        FetchData(&bamgmesh->VerticesOnGeomEdge, &bamgmesh->VerticesOnGeomEdgeSize[0], &bamgmesh->VerticesOnGeomEdgeSize[1], VerticesOnGeomEdge, VerticesOnGeomEdgeSize[0], VerticesOnGeomEdgeSize[1]);
     157        FetchData(&bamgmesh->VerticesOnGeomVertex, &bamgmesh->VerticesOnGeomVertexSize[0], &bamgmesh->VerticesOnGeomVertexSize[1], VerticesOnGeomVertex, VerticesOnGeomVertexSize[0], VerticesOnGeomVertexSize[1]);
     158        FetchData(&bamgmesh->EdgesOnGeomEdge, &bamgmesh->EdgesOnGeomEdgeSize[0], &bamgmesh->EdgesOnGeomEdgeSize[1], EdgesOnGeomEdge, EdgesOnGeomEdgeSize[0], EdgesOnGeomEdgeSize[1]);
     159        FetchData(&bamgmesh->IssmSegments, &bamgmesh->IssmSegmentsSize[0], &bamgmesh->IssmSegmentsSize[1], IssmSegments, IssmSegmentsSize[0], IssmSegmentsSize[1]);
    160160
    161161        /*Assign output pointers:*/
     
    164164/*}}}*/
    165165/*FUNCTION FetchData(BamgMesh** pbamgopts, double* vertices, int nods){{{*/
    166 void FetchData(BamgOpts** pbamgopts, double anisomax, double cutoff, double coeff, double errg, double gradation, int Hessiantype, int maxnbv, double maxsubdiv, int Metrictype, int nbjacobi, int nbsmooth, double omega, double power, int verbose, int Crack, int KeepVertices, int splitcorners, double hmin, double hmax, double* hminVertices, double* hmaxVertices, double* hVertices, double* metric, double* field, double err){
     166void FetchData(BamgOpts** pbamgopts, double anisomax, double cutoff, double coeff, double errg, double gradation, int Hessiantype, int maxnbv, double maxsubdiv, int Metrictype, int nbjacobi, int nbsmooth, double omega, double power, int verbose, int Crack, int KeepVertices, int splitcorners, double hmin, double hmax, int* hminVerticesSize, double* hminVertices, int* hmaxVerticesSize, double* hmaxVertices, int* hVerticesSize, double* hVertices, int* metricSize, double* metric, int* fieldSize, double* field, int* errSize, double* err){
    167167
    168168        BamgOpts *bamgopts      = new BamgOpts();
     
    192192    bamgopts->hmin              = hmin;
    193193    bamgopts->hmax              = hmax;
    194     bamgopts->hminVertices      = xNew<IssmPDouble>(hminVerticesNods);  xMemCpy<IssmPDouble>(bamgopts->hminVertices, hminVertices, hminVerticesNods);
    195     bamgopts->hmaxVertices  = xNew<IssmPDouble>(hmaxVerticesNods);  xMemCpy<IssmPDouble>(bamgopts->hmaxVertices, hmaxVertices, hmaxVerticesNods);
    196     bamgopts->hVertices     = xNew<IssmPDouble>(hVerticesNods);     xMemCpy<IssmPDouble>(bamgopts->hVertices, hVertices, hVerticesNods);
    197     bamgopts->field             = xNew<IssmPDouble>(fieldNods);         xMemCpy<IssmPDouble>(bamgopts->field, field, fieldNods);
    198     bamgopts->metric        = xNew<IssmPDouble>(metricNods);        xMemCpy<IssmPDouble>(bamgopts->metric, metric, metricNods);
    199     bamgopts->err               = err;
    200 
     194        FetchData(&bamgopts->hminVertices, &bamgopts->hminVerticesSize[0], &bamgopts->hminVerticesSize[1], hminVertices, hminVerticesSize[0], hminVerticesSize[1]);
     195        FetchData(&bamgopts->hmaxVertices, &bamgopts->hmaxVerticesSize[0], &bamgopts->hmaxVerticesSize[1], hmaxVertices, hmaxVerticesSize[0], hmaxVerticesSize[1]);
     196        FetchData(&bamgopts->hVertices, &bamgopts->hVerticesSize[0], &bamgopts->hVerticesSize[1], hVertices, hVerticesSize[0], hVerticesSize[1]);
     197        FetchData(&bamgopts->field, &bamgopts->fieldSize[0], &bamgopts->fieldSize[1], field, fieldSize[0], fieldSize[1]);
     198        FetchData(&bamgopts->metric, &bamgopts->metricSize[0], &bamgopts->metricSize[1], metric, metricSize[0], metricSize[1]);
     199        FetchData(&bamgopts->err, &bamgopts->errSize[0], &bamgopts->errSize[1], err, errSize[0], errSize[1]);
     200   
     201        /*Additional checks*/
     202        bamgopts->Check();
     203
     204        /*Assign output pointers:*/
    201205        *pbamgopts              = bamgopts;
    202206}
  • issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h

    r22877 r22878  
    3737void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
    3838void FetchData(Contours** pcontours,double* x, double* y, int nods);
    39 void FetchData(BamgGeom** pbamggeom, double* Vertices, int* VerticesSize, double* Edges, int* EdgesSize, double* Corners, int* CornersSize, double* RequiredVertices, int* RequiredVerticesSize, double* RequiredCrackedEdges, int* RequiredCrackedEdgesSize, double* CrackedEdges, int* CrackedEdgesSize, double* SubDomains, int* SubDomainsSize);
    40 void FetchData(BamgMesh** pbamgmesh, double* Vertices, int* VerticesSize, double* Edges, int* EdgesSize, double* Triangles, int* TrianglesSize, double* CrackedEdges, int* CrackedEdgesSize, double* VerticesOnGeomEdge, int* VerticesOnGeomEdgeSize, double* VerticesOnGeomVertex, int* VerticesOnGeomVertexSize, double* EdgesOnGeomEdge, int* EdgesOnGeomEdgeSize, double* IssmSegments, int* IssmSegmentsSize);
    41 void FetchData(BamgOpts** pbamgopts, double anisomax, double cutoff, double coeff, double errg, double gradation, int Hessiantype, int maxnbv, double maxsubdiv, int Metrictype, int nbjacobi, int nbsmooth, double omega, double power, int verbose, int Crack, int KeepVertices, int splitcorners, double hmin, double hmax, double* hminVertices, double* hmaxVertices, double* hVertices, double* metric, double* field, double err);
     39void FetchData(BamgGeom** pbamggeom, int* VerticesSize, double* Vertices, int* EdgesSize, double* Edges, int* CornersSize, double* Corners, int* RequiredVerticesSize, double* RequiredVertices, int* RequiredEdgesSize, double* RequiredEdges, int* CrackedEdgesSize, double* CrackedEdges, int* SubDomainsSize, double* SubDomains);
     40void FetchData(BamgMesh** pbamgmesh, int* VerticesSize, double* Vertices, int* EdgesSize, double* Edges, int* TrianglesSize, double* Triangles, int* CrackedEdgesSize, double* CrackedEdges, int* VerticesOnGeomEdgeSize, double* VerticesOnGeomEdge, int* VerticesOnGeomVertexSize, double* VerticesOnGeomVertex, int* EdgesOnGeomEdgeSize, double* EdgesOnGeomEdge, int* IssmSegmentsSize, double* IssmSegments);
     41void FetchData(BamgOpts** pbamgopts, double anisomax, double cutoff, double coeff, double errg, double gradation, int Hessiantype, int maxnbv, double maxsubdiv, int Metrictype, int nbjacobi, int nbsmooth, double omega, double power, int verbose, int Crack, int KeepVertices, int splitcorners, double hmin, double hmax, int* hminVerticesSize, double* hminVertices, int* hmaxVerticesSize, double* hmaxVertices, int* hVerticesSize, double* hVertices, int* metricSize, double* metric, int* fieldSize, double* field, int* errSize, double* err);
    4242void FetchData(Options** poptions,int NRHS, int nrhs, const char* optionname, double optionvalue);
    4343void FetchData(int* pinteger,int integer);
Note: See TracChangeset for help on using the changeset viewer.