Changeset 22896


Ignore:
Timestamp:
07/03/18 20:19:41 (7 years ago)
Author:
dlcheng
Message:

CHG (JS): Working JS BAMG wrapper.

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/bamg/Geometry.cpp

    r22380 r22896  
    4141        Geometry::~Geometry() {/*{{{*/
    4242                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/~Geometry)*/
    43                 if(NbRef>0){   _printf_("Trying to delete geometry and NbRef>0, probably due to an error"); return;}
     43       
     44                if(NbRef>0){   _printf_("Trying to delete geometry and NbRef>0, probably due to an error. NbRef:" << NbRef); return;}
    4445                if(vertices)   delete [] vertices;  vertices=0;
    4546                if(edges)      delete [] edges;     edges=0;
     
    551552                                delete [] head_v;
    552553                                delete [] eangle;
     554                _printf_("Length of edge " << i << " is 0\n");
    553555                                _error_("Length of edge " << i << " is 0");
    554556                        }
  • issm/trunk-jpl/src/m/array/arrayoperations.js

    r22894 r22896  
    325325function ArrayRange(lower, upper) { //{{{
    326326
    327     var range = upper - lower;
     327    var range = upper - lower + 1;
    328328    return Array.apply(null, Array(range)).map(function (val, ind) {return ind + lower;});
    329329
  • issm/trunk-jpl/src/m/mesh/bamg.js

    r22878 r22896  
    452452    bamg_options.coeff=options.getfieldvalue('coeff',1.);
    453453    bamg_options.cutoff=options.getfieldvalue('cutoff',Math.pow(10,-5));
    454     bamg_options.err=options.getfieldvalue('err',0.01);
     454    bamg_options.err=options.getfieldvalue('err',[[0.01]]);
    455455    bamg_options.errg=options.getfieldvalue('errg',0.1);
    456456    bamg_options.field=options.getfieldvalue('field',[]);
     
    472472    bamg_options.power=options.getfieldvalue('power',1.);
    473473    bamg_options.splitcorners=options.getfieldvalue('splitcorners',1);
    474     bamg_options.verbose=options.getfieldvalue('verbose',1);
     474    bamg_options.verbose=options.getfieldvalue('verbose',6);
    475475    //}}}
    476476
  • issm/trunk-jpl/src/m/solve/solve.js

    r22880 r22896  
    233233        }//}}}
    234234}//}}}
     235
  • issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.h

    r22878 r22896  
    4747#ifdef _HAVE_JAVASCRIPT_MODULES_
    4848/* serial input macros: */
    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
     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, hminVerticesSize, hminVertices, hmaxVerticesSize, hmaxVertices, hVerticesSize, hVertices, metricSize, metric, fieldSize, field, errSize, err
    5252/* serial output macros: */
    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
     53#define BAMGMESHOUT VerticesSize_mesh_out, Vertices_mesh_out, EdgesSize_mesh_out, Edges_mesh_out, TrianglesSize_mesh_out, Triangles_mesh_out, IssmEdgesSize_mesh_out, IssmEdges_mesh_out, IssmSegmentsSize_mesh_out, IssmSegments_mesh_out, VerticesOnGeomVertexSize_mesh_out, VerticesOnGeomVertex_mesh_out, VerticesOnGeomEdgeSize_mesh_out, VerticesOnGeomEdge_mesh_out, EdgesOnGeomEdgeSize_mesh_out, EdgesOnGeomEdge_mesh_out, SubDomainsSize_mesh_out, SubDomains_mesh_out, SubDomainsFromGeomSize_mesh_out, SubDomainsFromGeom_mesh_out, ElementConnectivitySize_mesh_out, ElementConnectivity_mesh_out, NodalConnectivitySize_mesh_out, NodalConnectivity_mesh_out, NodalElementConnectivitySize_mesh_out, NodalElementConnectivity_mesh_out, CrackedVerticesSize_mesh_out, CrackedVertices_mesh_out, CrackedEdgesSize_mesh_out, CrackedEdges_mesh_out, PreviousNumberingSize_mesh_out, PreviousNumbering_mesh_out
    5454#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)
    56 #define _DO_NOT_LOAD_GLOBALS_//we only load globals for TriangleModule.js, not other modules!
     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** IssmEdgesSize_mesh_out, double** IssmEdges_mesh_out, int** IssmSegmentsSize_mesh_out, double** IssmSegments_mesh_out, int** VerticesOnGeomVertexSize_mesh_out, double** VerticesOnGeomVertex_mesh_out, int** VerticesOnGeomEdgeSize_mesh_out, double** VerticesOnGeomEdge_mesh_out, int** EdgesOnGeomEdgeSize_mesh_out, double** EdgesOnGeomEdge_mesh_out, int** SubDomainsSize_mesh_out, double** SubDomains_mesh_out, int** SubDomainsFromGeomSize_mesh_out, double** SubDomainsFromGeom_mesh_out, int** ElementConnectivitySize_mesh_out, double** ElementConnectivity_mesh_out, int** NodalConnectivitySize_mesh_out, double** NodalConnectivity_mesh_out, int** NodalElementConnectivitySize_mesh_out, double** NodalElementConnectivity_mesh_out, int** CrackedVerticesSize_mesh_out, double** CrackedVertices_mesh_out, int** CrackedEdgesSize_mesh_out, double** CrackedEdges_mesh_out, int** PreviousNumberingSize_mesh_out, double** PreviousNumbering_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)
     56
    5757#endif
    5858
  • issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.js

    r22878 r22896  
    2424        return Module.HEAPU32.slice(ptr / 4, ptr / 4 + nods);
    2525}
    26 function BamgMesher(md, bamgmesh, bamggeom, bamgopts) {
     26function BamgMesher(bamgmesh_in, bamggeom_in, bamgopts) {
    2727/*
    2828           usage: var array = Triangle(domain,rifts,area);
     
    3939        //Dynamic allocations: {{{
    4040        //Retrieve domain arrays, and allocate on Module heap:
     41    //For each property, calculate the size and fill with 0 if the 2nd dimension is undefined, then use the int size array to init the double array.
    4142        //input
    42     var pVerticesSize_mesh_in               = intsToHeap([bamgmesh.Vertices.length, bamgmesh.Vertices[0].length]);
    43     var pVertices_mesh_in                   = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.Vertices));
    44     var pEdgesSize_mesh_in                  = intsToHeap([bamgmesh.Edges.length, bamgmesh.Edges[0].length]);
    45     var pEdges_mesh_in                      = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.Edges));
    46     var pTrianglesSize_mesh_in              = intsToHeap([bamgmesh.Triangle.length, bamgmesh.Triangle[0].length]);
    47     var pTriangles_mesh_in                  = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.Triangle));
    48     var pCrackedEdgesSize_mesh_in           = intsToHeap([bamgmesh.CrackedEdges.length, bamgmesh.CrackedEdges[0].length]);
    49     var pCrackedEdges_mesh_in               = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.CrackedEdges));
    50     var pVerticesOnGeomEdgeSize_mesh_in     = intsToHeap([bamgmesh.VerticesOnGeomEdge.length, bamgmesh.VerticesOnGeomEdge[0].length]);
    51     var pVerticesOnGeomEdge_mesh_in         = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.VerticesOnGeomEdge));
    52     var pVerticesOnGeomVertexSize_mesh_in   = intsToHeap([bamgmesh.VerticesOnGeomVertex.length, bamgmesh.VerticesOnGeomVertex[0].length]);
    53     var pVerticesOnGeomVertex_mesh_in       = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.VerticesOnGeomVertex));
    54     var pEdgesOnGeomEdgeSize_mesh_in        = intsToHeap([bamgmesh.EdgesOnGeomEdge.length, bamgmesh.EdgesOnGeomEdge[0].length]);
    55     var pEdgesOnGeomEdge_mesh_in            = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.EdgesOnGeomEdge));
    56     var pIssmSegmentsSize_mesh_in           = intsToHeap([bamgmesh.IssmSegments.length, bamgmesh.IssmSegments[0].length]);
    57     var pIssmSegments_mesh_in               = doublesToHeap(Array.prototype.concat.apply([], bamgmesh.IssmSegments));
    58 
    59     var pVerticesSize_geom_in               = intsToHeap([bamggeom.Vertices.length, bamggeom.Vertices[0].length]);
    60     var pVertices_geom_in                   = doublesToHeap(Array.prototype.concat.apply([], bamggeom.Vertices));
    61     var pEdgesSize_geom_in                  = intsToHeap([bamggeom.Edges.length, bamggeom.Edges[0].length]);
    62     var pEdges_geom_in                      = doublesToHeap(Array.prototype.concat.apply([], bamggeom.Edges));
    63     var pCornersSize_geom_in                = intsToHeap([bamggeom.Corners.length, bamggeom.Corners[0].length]);
    64     var pCorners_geom_in                    = doublesToHeap(Array.prototype.concat.apply([], bamggeom.Corners));
    65     var pRequiredVerticesSize_geom_in       = intsToHeap([bamggeom.RequiredVertices.length, bamggeom.RequiredVertices[0].length]);
    66     var pRequiredVertices_geom_in           = doublesToHeap(Array.prototype.concat.apply([], bamggeom.RequiredVertices));
    67     var pRequiredCrackedEdgesSize_geom_in   = intsToHeap([bamggeom.RequiredCrackedEdges.length, bamggeom.RequiredCrackedEdges[0].length]);
    68     var pRequiredCrackedEdges_geom_in       = doublesToHeap(Array.prototype.concat.apply([], bamggeom.RequiredCrackedEdges));
    69     var pCrackedEdgesSize_geom_in           = intsToHeap([bamggeom.CrackedEdges.length, bamggeom.CrackedEdges[0].length]);
    70     var pCrackedEdges_geom_in               = doublesToHeap(Array.prototype.concat.apply([], bamggeom.CrackedEdges));
    71     var pSubDomainsSize_geom_in             = intsToHeap([bamggeom.SubDomains.length, bamggeom.SubDomains[0].length]);
    72     var pSubDomains_geom_in                 = doublesToHeap(Array.prototype.concat.apply([], bamggeom.SubDomains));
     43    var pVerticesSize_mesh_in               = intsToHeap([bamgmesh_in.Vertices.length, bamgmesh_in.Vertices[0] != undefined ? bamgmesh_in.Vertices[0].length : 1]);
     44    var pVertices_mesh_in                   = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.Vertices));
     45    var pEdgesSize_mesh_in                  = intsToHeap([bamgmesh_in.Edges.length, bamgmesh_in.Edges[0] != undefined ? bamgmesh_in.Edges[0].length : 1]);
     46    var pEdges_mesh_in                      = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.Edges));
     47    var pTrianglesSize_mesh_in              = intsToHeap([bamgmesh_in.Triangles.length, bamgmesh_in.Triangles[0] != undefined ? bamgmesh_in.Triangles[0].length : 1]);
     48    var pTriangles_mesh_in                  = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.Triangles));
     49    var pCrackedEdgesSize_mesh_in           = intsToHeap([bamgmesh_in.CrackedEdges.length, bamgmesh_in.CrackedEdges[0] != undefined ? bamgmesh_in.CrackedEdges[0].length : 1]);
     50    var pCrackedEdges_mesh_in               = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.CrackedEdges));
     51    var pVerticesOnGeomEdgeSize_mesh_in     = intsToHeap([bamgmesh_in.VerticesOnGeomEdge.length, bamgmesh_in.VerticesOnGeomEdge[0] != undefined ? bamgmesh_in.VerticesOnGeomEdge[0].length : 1]);
     52    var pVerticesOnGeomEdge_mesh_in         = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.VerticesOnGeomEdge));
     53    var pVerticesOnGeomVertexSize_mesh_in   = intsToHeap([bamgmesh_in.VerticesOnGeomVertex.length, bamgmesh_in.VerticesOnGeomVertex[0] != undefined ? bamgmesh_in.VerticesOnGeomVertex[0].length : 1]);
     54    var pVerticesOnGeomVertex_mesh_in       = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.VerticesOnGeomVertex));
     55    var pEdgesOnGeomEdgeSize_mesh_in        = intsToHeap([bamgmesh_in.EdgesOnGeomEdge.length, bamgmesh_in.EdgesOnGeomEdge[0] != undefined ? bamgmesh_in.EdgesOnGeomEdge[0].length : 1]);
     56    var pEdgesOnGeomEdge_mesh_in            = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.EdgesOnGeomEdge));
     57    var pIssmSegmentsSize_mesh_in           = intsToHeap([bamgmesh_in.IssmSegments.length, bamgmesh_in.IssmSegments[0] != undefined ? bamgmesh_in.IssmSegments[0].length : 1]);
     58    var pIssmSegments_mesh_in               = doublesToHeap(Array.prototype.concat.apply([], bamgmesh_in.IssmSegments));
     59
     60    var pVerticesSize_geom_in               = intsToHeap([bamggeom_in.Vertices.length, bamggeom_in.Vertices[0] != undefined ? bamggeom_in.Vertices[0].length : 1]);
     61    var pVertices_geom_in                   = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.Vertices));
     62    var pEdgesSize_geom_in                  = intsToHeap([bamggeom_in.Edges.length, bamggeom_in.Edges[0] != undefined ? bamggeom_in.Edges[0].length : 1]);
     63    var pEdges_geom_in                      = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.Edges));
     64    var pCornersSize_geom_in                = intsToHeap([bamggeom_in.Corners.length, bamggeom_in.Corners[0] != undefined ? bamggeom_in.Corners[0].length : 1]);
     65    var pCorners_geom_in                    = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.Corners));
     66    var pRequiredVerticesSize_geom_in       = intsToHeap([bamggeom_in.RequiredVertices.length, bamggeom_in.RequiredVertices[0] != undefined ? bamggeom_in.RequiredVertices[0].length : 1]);
     67    var pRequiredVertices_geom_in           = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.RequiredVertices));
     68    var pRequiredEdgesSize_geom_in          = intsToHeap([bamggeom_in.RequiredEdges.length, bamggeom_in.RequiredEdges[0] != undefined ? bamggeom_in.RequiredEdges[0].length : 1]);
     69    var pRequiredEdges_geom_in              = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.RequiredEdges));
     70    var pCrackedEdgesSize_geom_in           = intsToHeap([bamggeom_in.CrackedEdges.length, bamggeom_in.CrackedEdges[0] != undefined ? bamggeom_in.CrackedEdges[0].length : 1]);
     71    var pCrackedEdges_geom_in               = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.CrackedEdges));
     72    var pSubDomainsSize_geom_in             = intsToHeap([bamggeom_in.SubDomains.length, bamggeom_in.SubDomains[0] != undefined ? bamggeom_in.SubDomains[0].length : 1]);
     73    var pSubDomains_geom_in                 = doublesToHeap(Array.prototype.concat.apply([], bamggeom_in.SubDomains));
    7374
    7475    var anisomax                            = bamgopts.anisomax;
     
    9192    var hmin                                = bamgopts.hmin;
    9293    var hmax                                = bamgopts.hmax;
    93     var phminVerticesSize                   = intsToHeap([bamgopts.hminVertices.length, bamgopts.hminVertices[0].length]);
     94    var phminVerticesSize                   = intsToHeap([bamgopts.hminVertices.length, bamgopts.hminVertices[0] != undefined ? bamgopts.hminVertices[0].length : 1]);
    9495    var phminVertices                       = doublesToHeap(Array.prototype.concat.apply([], bamgopts.hminVertices));
    95     var phmaxVerticesSize                   = intsToHeap([bamgopts.hmaxVertices.length, bamgopts.hmaxVertices[0].length]);
     96    var phmaxVerticesSize                   = intsToHeap([bamgopts.hmaxVertices.length, bamgopts.hmaxVertices[0] != undefined ? bamgopts.hmaxVertices[0].length : 1]);
    9697    var phmaxVertices                       = doublesToHeap(Array.prototype.concat.apply([], bamgopts.hmaxVertices));
    97     var phVerticesSize                      = intsToHeap([bamgopts.hVertices.length, bamgopts.hVertices[0].length]);
     98    var phVerticesSize                      = intsToHeap([bamgopts.hVertices.length, bamgopts.hVertices[0] != undefined ? bamgopts.hVertices[0].length : 1]);
    9899    var phVertices                          = doublesToHeap(Array.prototype.concat.apply([], bamgopts.hVertices));
    99     var pmetricSize                         = intsToHeap([bamgopts.metric.length, bamgopts.metric[0].length]);
     100    var pmetricSize                         = intsToHeap([bamgopts.metric.length, bamgopts.metric[0] != undefined ? bamgopts.metric[0].length : 1]);
    100101    var pmetric                             = doublesToHeap(Array.prototype.concat.apply([], bamgopts.metric));
    101     var pfieldSize                          = intsToHeap([bamgopts.field.length, bamgopts.field[0].length]);
     102    var pfieldSize                          = intsToHeap([bamgopts.field.length, bamgopts.field[0] != undefined ? bamgopts.field[0].length : 1]);
    102103    var pfield                              = doublesToHeap(Array.prototype.concat.apply([], bamgopts.field));
    103     var perrSize                            = intsToHeap([bamgopts.err.length, bamgopts.err[0].length]);
     104    var perrSize                            = intsToHeap([bamgopts.err.length, bamgopts.err[0] != undefined ? bamgopts.err[0].length : 1]);
    104105    var perr                                = doublesToHeap(Array.prototype.concat.apply([], bamgopts.err));
    105106       
    106107        //output
    107     var pVerticesSize_geom_out              = Module._malloc(4);
    108     var pVertices_geom_out                  = Module._malloc(4);
    109     var pEdgesSize_geom_out                 = Module._malloc(4);
    110     var pEdges_geom_out                     = Module._malloc(4);
    111     var pCornersSize_geom_out               = Module._malloc(4);
    112     var pCorners_geom_out                   = Module._malloc(4);
    113     var pRequiredVerticesSize_geom_out      = Module._malloc(4);
    114     var pRequiredVertices_geom_out          = Module._malloc(4);
    115     var pRequiredCrackedEdgesSize_geom_out  = Module._malloc(4);
    116     var pRequiredCrackedEdges_geom_out      = Module._malloc(4);
    117     var pCrackedEdgesSize_geom_out          = Module._malloc(4);
    118     var pCrackedEdges_geom_out              = Module._malloc(4);
    119     var pSubDomainsSize_geom_out            = Module._malloc(4);
    120     var pSubDomains_geom_out                = Module._malloc(4);
    121 
    122     var pVerticesSize_mesh_out              = Module._malloc(4);
    123     var pVertices_mesh_out                  = Module._malloc(4);
    124     var pEdgesSize_mesh_out                 = Module._malloc(4);
    125     var pEdges_mesh_out                     = Module._malloc(4);
    126     var pTrianglesSize_mesh_out             = Module._malloc(4);
    127     var pTriangles_mesh_out                 = Module._malloc(4);
    128     var pCrackedEdgesSize_mesh_out          = Module._malloc(4);
    129     var pCrackedEdges_mesh_out              = Module._malloc(4);
    130     var pVerticesOnGeomEdgeSize_mesh_out    = Module._malloc(4);
    131     var pVerticesOnGeomEdge_mesh_out        = Module._malloc(4);
    132     var pVerticesOnGeomVertexSize_mesh_out  = Module._malloc(4);
    133     var pVerticesOnGeomVertex_mesh_out      = Module._malloc(4);
    134     var pEdgesOnGeomEdgeSize_mesh_out       = Module._malloc(4);
    135     var pEdgesOnGeomEdge_mesh_out           = Module._malloc(4);
    136     var pIssmSegmentsSize_mesh_out          = Module._malloc(4);
    137     var pIssmSegments_mesh_out              = Module._malloc(4);
     108    var pVerticesSize_mesh_out                  = Module._malloc(4);
     109    var pVertices_mesh_out                      = Module._malloc(4);
     110    var pEdgesSize_mesh_out                     = Module._malloc(4);
     111    var pEdges_mesh_out                         = Module._malloc(4);
     112    var pTrianglesSize_mesh_out                 = Module._malloc(4);
     113    var pTriangles_mesh_out                     = Module._malloc(4);
     114    var pIssmEdgesSize_mesh_out                 = Module._malloc(4);
     115    var pIssmEdges_mesh_out                     = Module._malloc(4);
     116    var pIssmSegmentsSize_mesh_out              = Module._malloc(4);
     117    var pIssmSegments_mesh_out                  = Module._malloc(4);
     118    var pVerticesOnGeomVertexSize_mesh_out      = Module._malloc(4);
     119    var pVerticesOnGeomVertex_mesh_out          = Module._malloc(4);
     120    var pVerticesOnGeomEdgeSize_mesh_out        = Module._malloc(4);
     121    var pVerticesOnGeomEdge_mesh_out            = Module._malloc(4);
     122    var pEdgesOnGeomEdgeSize_mesh_out           = Module._malloc(4);
     123    var pEdgesOnGeomEdge_mesh_out               = Module._malloc(4);
     124    var pSubDomainsSize_mesh_out                = Module._malloc(4);
     125    var pSubDomains_mesh_out                    = Module._malloc(4);
     126    var pSubDomainsFromGeomSize_mesh_out        = Module._malloc(4);
     127    var pSubDomainsFromGeom_mesh_out            = Module._malloc(4);
     128    var pElementConnectivitySize_mesh_out       = Module._malloc(4);
     129    var pElementConnectivity_mesh_out           = Module._malloc(4);
     130    var pNodalConnectivitySize_mesh_out         = Module._malloc(4);
     131    var pNodalConnectivity_mesh_out             = Module._malloc(4);
     132    var pNodalElementConnectivitySize_mesh_out  = Module._malloc(4);
     133    var pNodalElementConnectivity_mesh_out      = Module._malloc(4);
     134    var pCrackedVerticesSize_mesh_out           = Module._malloc(4);
     135    var pCrackedVertices_mesh_out               = Module._malloc(4);
     136    var pCrackedEdgesSize_mesh_out              = Module._malloc(4);
     137    var pCrackedEdges_mesh_out                  = Module._malloc(4);
     138    var pPreviousNumberingSize_mesh_out         = Module._malloc(4);
     139    var pPreviousNumbering_mesh_out             = Module._malloc(4);
     140
     141    var pVerticesSize_geom_out                  = Module._malloc(4);
     142    var pVertices_geom_out                      = Module._malloc(4);
     143    var pEdgesSize_geom_out                     = Module._malloc(4);
     144    var pEdges_geom_out                         = Module._malloc(4);
     145    var pCornersSize_geom_out                   = Module._malloc(4);
     146    var pCorners_geom_out                       = Module._malloc(4);
     147    var pRequiredVerticesSize_geom_out          = Module._malloc(4);
     148    var pRequiredVertices_geom_out              = Module._malloc(4);
     149    var pRequiredEdgesSize_geom_out             = Module._malloc(4);
     150    var pRequiredEdges_geom_out                 = Module._malloc(4);
     151    var pCrackedEdgesSize_geom_out              = Module._malloc(4);
     152    var pCrackedEdges_geom_out                  = Module._malloc(4);
     153    var pSubDomainsSize_geom_out                = Module._malloc(4);
     154    var pSubDomains_geom_out                    = Module._malloc(4);
    138155        //}}}
    139156
    140157        //Declare BamgMesher module:
    141158        BamgMesherModule = Module.cwrap('BamgMesherModule', 'number',[
    142         'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number',
     159        'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number',
    143160        'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number',
    144161        'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number',
    145162        'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number',
    146         'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']);
     163        'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']);
    147164       
    148165        //Call BamgMesher module:
     166
    149167        BamgMesherModule(
    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,
     168        pVerticesSize_mesh_out, pVertices_mesh_out, pEdgesSize_mesh_out, pEdges_mesh_out, pTrianglesSize_mesh_out, pTriangles_mesh_out, pIssmEdgesSize_mesh_out, pIssmEdges_mesh_out, pIssmSegmentsSize_mesh_out, pIssmSegments_mesh_out, pVerticesOnGeomVertexSize_mesh_out, pVerticesOnGeomVertex_mesh_out, pVerticesOnGeomEdgeSize_mesh_out, pVerticesOnGeomEdge_mesh_out, pEdgesOnGeomEdgeSize_mesh_out, pEdgesOnGeomEdge_mesh_out, pSubDomainsSize_mesh_out, pSubDomains_mesh_out, pSubDomainsFromGeomSize_mesh_out, pSubDomainsFromGeom_mesh_out, pElementConnectivitySize_mesh_out, pElementConnectivity_mesh_out, pNodalConnectivitySize_mesh_out, pNodalConnectivity_mesh_out, pNodalElementConnectivitySize_mesh_out, pNodalElementConnectivity_mesh_out, pCrackedVerticesSize_mesh_out, pCrackedVertices_mesh_out, pCrackedEdgesSize_mesh_out, pCrackedEdges_mesh_out, pPreviousNumberingSize_mesh_out, pPreviousNumbering_mesh_out,
     169        pVerticesSize_geom_out, pVertices_geom_out, pEdgesSize_geom_out, pEdges_geom_out, pCornersSize_geom_out, pCorners_geom_out, pRequiredVerticesSize_geom_out, pRequiredVertices_geom_out, pRequiredEdgesSize_geom_out, pRequiredEdges_geom_out, pCrackedEdgesSize_geom_out, pCrackedEdges_geom_out, pSubDomainsSize_geom_out, pSubDomains_geom_out,
    152170        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,
     171        pVerticesSize_geom_in, pVertices_geom_in, pEdgesSize_geom_in, pEdges_geom_in, pCornersSize_geom_in, pCorners_geom_in, pRequiredVerticesSize_geom_in, pRequiredVertices_geom_in, pRequiredEdgesSize_geom_in, pRequiredEdges_geom_in, pCrackedEdgesSize_geom_in, pCrackedEdges_geom_in, pSubDomainsSize_geom_in, pSubDomains_geom_in,
    154172        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);
    155173       
    156174        /*Dynamic copying from heap: {{{*/
    157175        //recover mesh:
    158     var bamgmeshout = bamgmesh();
    159     var bamggeomout = bamggeom();
    160 
    161     bamgmeshout.VerticesSize                = heapToint(pVerticesSize_mesh_out, 2);
    162     bamgmeshout.Vertices                    = heapToDoubles(heapToDoubles(pVertices_mesh_out), bamgmeshout.VerticesSize);
    163     bamgmeshout.EdgesSize                   = heapToint(pEdgesSize_mesh_out, 2);
    164     bamgmeshout.Edges                       = heapToDoubles(heapToDoubles(pEdges_mesh_out), bamgmeshout.EdgesSize);
    165     bamgmeshout.TrianglesSize               = heapToint(pTrianglesSize_mesh_out, 2);
    166     bamgmeshout.Triangles                   = heapToDoubles(heapToDoubles(pTriangles_mesh_out), bamgmeshout.TrianglesSize);
    167     bamgmeshout.CrackedEdgesSize            = heapToint(pCrackedEdgesSize_mesh_out, 2);
    168     bamgmeshout.CrackedEdges                = heapToDoubles(heapToDoubles(pCrackedEdges_mesh_out), bamgmeshout.CrackedEdgesSize);
    169     bamgmeshout.VerticesOnGeomEdgeSize      = heapToint(pVerticesOnGeomEdgeSize_mesh_out, 2);
    170     bamgmeshout.VerticesOnGeomEdge          = heapToDoubles(heapToDoubles(pVerticesOnGeomEdge_mesh_out), bamgmeshout.VerticesOnGeomEdgeSize);
    171     bamgmeshout.VerticesOnGeomVertexSize    = heapToint(pVerticesOnGeomVertexSize_mesh_out, 2);
    172     bamgmeshout.VerticesOnGeomVertex        = heapToDoubles(heapToDoubles(pVerticesOnGeomVertex_mesh_out), bamgmeshout.VerticesOnGeomVertexSize);
    173     bamgmeshout.EdgesOnGeomEdgeSize         = heapToint(pEdgesOnGeomEdgeSize_mesh_out, 2);
    174     bamgmeshout.EdgesOnGeomEdge             = heapToDoubles(heapToDoubles(pEdgesOnGeomEdge_mesh_out), bamgmeshout.EdgesOnGeomEdgeSize);
    175     bamgmeshout.IssmSegmentsSize            = heapToint(pIssmSegmentsSize_mesh_out, 2);
    176     bamgmeshout.IssmSegments                = heapToDoubles(heapToDoubles(pIssmSegments_mesh_out), bamgmeshout.IssmSegmentsSize);
    177 
    178     bamggeomout.VerticesSize                = heapToint(pVerticesSize_mesh_out, 2);
    179     bamggeomout.Vertices                    = heapToDoubles(heapToDoubles(pVertices_mesh_out), bamggeomout.VerticesSize);
    180     bamggeomout.EdgesSize                   = heapToint(pEdgesSize_mesh_out, 2);
    181     bamggeomout.Edges                       = heapToDoubles(heapToDoubles(pEdges_mesh_out), bamggeomout.EdgesSize);
    182     bamggeomout.CornersSize                 = heapToint(pCornersSize_mesh_out, 2);
    183     bamggeomout.Corners                     = heapToDoubles(heapToDoubles(pCorners_mesh_out), bamggeomout.CornersSize);
    184     bamggeomout.RequiredVerticesSize        = heapToint(pRequiredVerticesSize_mesh_out, 2);
    185     bamggeomout.RequiredVertices            = heapToDoubles(heapToDoubles(pRequiredVertices_mesh_out), bamggeomout.RequiredVerticesSize);
    186     bamggeomout.RequiredCrackedEdgesSize    = heapToint(pRequiredCrackedEdgesSize_mesh_out, 2);
    187     bamggeomout.RequiredCrackedEdges        = heapToDoubles(heapToDoubles(pRequiredCrackedEdges_mesh_out), bamggeomout.RequiredCrackedEdgesSize);
    188     bamggeomout.CrackedEdgesSize            = heapToint(pCrackedEdgesSize_mesh_out, 2);
    189     bamggeomout.CrackedEdges                = heapToDoubles(heapToDoubles(pCrackedEdges_mesh_out), bamggeomout.CrackedEdgesSize);
    190     bamggeomout.SubDomainSize               = heapToint(pSubDomainsSize_mesh_out, 2);
    191     bamggeomout.SubDomains                  = heapToDoubles(heapToDoubles(pSubDomains_mesh_out), bamggeomout.SubDomainsSize);
     176    var bamgmeshout = new bamgmesh();
     177    var bamggeomout = new bamggeom();
     178
     179        bamgmeshout.VerticesSize                   = heapToInts(pVerticesSize_mesh_out, 2);
     180    bamgmeshout.Vertices                       = heapToDoubles(pVertices_mesh_out, bamgmeshout.VerticesSize);
     181        bamgmeshout.EdgesSize                      = heapToInts(pEdgesSize_mesh_out, 2);
     182    bamgmeshout.Edges                          = heapToDoubles(pEdges_mesh_out, bamgmeshout.EdgesSize);
     183        bamgmeshout.TrianglesSize                  = heapToInts(pTrianglesSize_mesh_out, 2);
     184    bamgmeshout.Triangles                      = heapToDoubles(pTriangles_mesh_out, bamgmeshout.TrianglesSize);
     185        bamgmeshout.IssmEdgesSize                  = heapToInts(pIssmEdgesSize_mesh_out, 2);
     186    bamgmeshout.IssmEdges                      = heapToDoubles(pIssmEdges_mesh_out, bamgmeshout.IssmEdgesSize);
     187        bamgmeshout.IssmSegmentsSize               = heapToInts(pIssmSegmentsSize_mesh_out, 2);
     188    bamgmeshout.IssmSegments                   = heapToDoubles(pIssmSegments_mesh_out, bamgmeshout.IssmSegmentsSize);
     189        bamgmeshout.VerticesOnGeomVertexSize       = heapToInts(pVerticesOnGeomVertexSize_mesh_out, 2);
     190    bamgmeshout.VerticesOnGeomVertex           = heapToDoubles(pVerticesOnGeomVertex_mesh_out, bamgmeshout.VerticesOnGeomVertexSize);
     191        bamgmeshout.VerticesOnGeomEdgeSize         = heapToInts(pVerticesOnGeomEdgeSize_mesh_out, 2);
     192    bamgmeshout.VerticesOnGeomEdge             = heapToDoubles(pVerticesOnGeomEdge_mesh_out, bamgmeshout.VerticesOnGeomEdgeSize);
     193        bamgmeshout.EdgesOnGeomEdgeSize            = heapToInts(pEdgesOnGeomEdgeSize_mesh_out, 2);
     194    bamgmeshout.EdgesOnGeomEdge                = heapToDoubles(pEdgesOnGeomEdge_mesh_out, bamgmeshout.EdgesOnGeomEdgeSize);
     195        bamgmeshout.SubDomainsSize                 = heapToInts(pSubDomainsSize_mesh_out, 2);
     196    bamgmeshout.SubDomains                     = heapToDoubles(pSubDomains_mesh_out, bamgmeshout.SubDomainsSize);
     197        bamgmeshout.SubDomainsFromGeomSize         = heapToInts(pSubDomainsFromGeomSize_mesh_out, 2);
     198    bamgmeshout.SubDomainsFromGeom             = heapToDoubles(pSubDomainsFromGeom_mesh_out, bamgmeshout.SubDomainsFromGeomSize);
     199        bamgmeshout.ElementConnectivitySize        = heapToInts(pElementConnectivitySize_mesh_out, 2);
     200    bamgmeshout.ElementConnectivity            = heapToDoubles(pElementConnectivity_mesh_out, bamgmeshout.ElementConnectivitySize);
     201        bamgmeshout.NodalConnectivitySize          = heapToInts(pNodalConnectivitySize_mesh_out, 2);
     202    bamgmeshout.NodalConnectivity              = heapToDoubles(pNodalConnectivity_mesh_out, bamgmeshout.NodalConnectivitySize);
     203        bamgmeshout.NodalElementConnectivitySize   = heapToInts(pNodalElementConnectivitySize_mesh_out, 2);
     204    bamgmeshout.NodalElementConnectivity       = heapToDoubles(pNodalElementConnectivity_mesh_out, bamgmeshout.NodalElementConnectivitySize);
     205        bamgmeshout.CrackedVerticesSize            = heapToInts(pCrackedVerticesSize_mesh_out, 2);
     206    bamgmeshout.CrackedVertices                = heapToDoubles(pCrackedVertices_mesh_out, bamgmeshout.CrackedVerticesSize);
     207        bamgmeshout.CrackedEdgesSize               = heapToInts(pCrackedEdgesSize_mesh_out, 2);
     208    bamgmeshout.CrackedEdges                   = heapToDoubles(pCrackedEdges_mesh_out, bamgmeshout.CrackedEdgesSize);
     209    bamgmeshout.PreviousNumberingSize          = heapToInts(pPreviousNumberingSize_mesh_out, 2);
     210    bamgmeshout.PreviousNumbering              = heapToDoubles(pPreviousNumbering_mesh_out, bamgmeshout.PreviousNumberingSize);
     211
     212    bamggeomout.VerticesSize                   = heapToInts(pVerticesSize_geom_out, 2);
     213    bamggeomout.Vertices                       = heapToDoubles(pVertices_geom_out, bamggeomout.VerticesSize);
     214    bamggeomout.EdgesSize                      = heapToInts(pEdgesSize_geom_out, 2);
     215    bamggeomout.Edges                          = heapToDoubles(pEdges_geom_out, bamggeomout.EdgesSize);
     216    bamggeomout.CornersSize                    = heapToInts(pCornersSize_geom_out, 2);
     217    bamggeomout.Corners                        = heapToDoubles(pCorners_geom_out, bamggeomout.CornersSize);
     218    bamggeomout.RequiredVerticesSize           = heapToInts(pRequiredVerticesSize_geom_out, 2);
     219    bamggeomout.RequiredVertices               = heapToDoubles(pRequiredVertices_geom_out, bamggeomout.RequiredVerticesSize);
     220    bamggeomout.RequiredEdgesSize              = heapToInts(pRequiredEdgesSize_geom_out, 2);
     221    bamggeomout.RequiredEdges                  = heapToDoubles(pRequiredEdges_geom_out, bamggeomout.RequiredEdgesSize);
     222    bamggeomout.CrackedEdgesSize               = heapToInts(pCrackedEdgesSize_geom_out, 2);
     223    bamggeomout.CrackedEdges                   = heapToDoubles(pCrackedEdges_geom_out, bamggeomout.CrackedEdgesSize);
     224    bamggeomout.SubDomainsSize                 = heapToInts(pSubDomainsSize_geom_out, 2);
     225    bamggeomout.SubDomains                     = heapToDoubles(pSubDomains_geom_out, bamggeomout.SubDomainsSize);
    192226        /*}}}*/
    193227
     
    195229
    196230        /*Free ressources: */
     231    Module._free(pVerticesSize_mesh_out);
     232    Module._free(pVertices_mesh_out);
     233    Module._free(pEdgesSize_mesh_out);
     234    Module._free(pEdges_mesh_out);
     235    Module._free(pTrianglesSize_mesh_out);
     236    Module._free(pTriangles_mesh_out);
     237    Module._free(pIssmEdgesSize_mesh_out);
     238    Module._free(pIssmEdges_mesh_out);
     239    Module._free(pIssmSegmentsSize_mesh_out);
     240    Module._free(pIssmSegments_mesh_out);
     241    Module._free(pVerticesOnGeomVertexSize_mesh_out);
     242    Module._free(pVerticesOnGeomVertex_mesh_out);
     243    Module._free(pVerticesOnGeomEdgeSize_mesh_out);
     244    Module._free(pVerticesOnGeomEdge_mesh_out);
     245    Module._free(pEdgesOnGeomEdgeSize_mesh_out);
     246    Module._free(pEdgesOnGeomEdge_mesh_out);
     247    Module._free(pSubDomainsSize_mesh_out);
     248    Module._free(pSubDomains_mesh_out);
     249    Module._free(pSubDomainsFromGeomSize_mesh_out);
     250    Module._free(pSubDomainsFromGeom_mesh_out);
     251    Module._free(pElementConnectivitySize_mesh_out);
     252    Module._free(pElementConnectivity_mesh_out);
     253    Module._free(pNodalConnectivitySize_mesh_out);
     254    Module._free(pNodalConnectivity_mesh_out);
     255    Module._free(pNodalElementConnectivitySize_mesh_out);
     256    Module._free(pNodalElementConnectivity_mesh_out);
     257    Module._free(pCrackedVerticesSize_mesh_out);
     258    Module._free(pCrackedVertices_mesh_out);
     259    Module._free(pCrackedEdgesSize_mesh_out);
     260    Module._free(pCrackedEdges_mesh_out);
     261    Module._free(pPreviousNumberingSize_mesh_out);
     262    Module._free(pPreviousNumbering_mesh_out);
     263
     264    Module._free(pVerticesSize_geom_out);
     265    Module._free(pVertices_geom_out);
     266    Module._free(pEdgesSize_geom_out);
     267    Module._free(pEdges_geom_out);
     268    Module._free(pCornersSize_geom_out);
     269    Module._free(pCorners_geom_out);
     270    Module._free(pRequiredVerticesSize_geom_out);
     271    Module._free(pRequiredVertices_geom_out);
     272    Module._free(pRequiredEdgesSize_geom_out);
     273    Module._free(pRequiredEdges_geom_out);
     274    Module._free(pCrackedEdgesSize_geom_out);
     275    Module._free(pCrackedEdges_geom_out);
     276    Module._free(pSubDomainsSize_geom_out);
     277    Module._free(pSubDomains_geom_out);
     278
    197279    Module._free(pVerticesSize_mesh_in);
    198280    Module._free(pVertices_mesh_in);
     
    220302    Module._free(pRequiredVerticesSize_geom_in);
    221303    Module._free(pRequiredVertices_geom_in);
    222     Module._free(pRequiredCrackedEdgesSize_geom_in);
    223     Module._free(pRequiredCrackedEdges_geom_in);
     304    Module._free(pRequiredEdgesSize_geom_in);
     305    Module._free(pRequiredEdges_geom_in);
    224306    Module._free(pCrackedEdgesSize_geom_in);
    225307    Module._free(pCrackedEdges_geom_in);
    226308    Module._free(pSubDomainsSize_geom_in);
    227309    Module._free(pSubDomains_geom_in);
    228 
    229     Module._free(pVerticesSize_geom_out);
    230     Module._free(pVertices_geom_out);
    231     Module._free(pEdgesSize_geom_out);
    232     Module._free(pEdges_geom_out);
    233     Module._free(pCornersSize_geom_out);
    234     Module._free(pCorners_geom_out);
    235     Module._free(pRequiredVerticesSize_geom_out);
    236     Module._free(pRequiredVertices_geom_out);
    237     Module._free(pRequiredCrackedEdgesSize_geom_out);
    238     Module._free(pRequiredCrackedEdges_geom_out);
    239     Module._free(pCrackedEdgesSize_geom_out);
    240     Module._free(pCrackedEdges_geom_out);
    241     Module._free(pSubDomainsSize_geom_out);
    242     Module._free(pSubDomains_geom_out);
    243 
    244     Module._free(pVerticesSize_mesh_out);
    245     Module._free(pVertices_mesh_out);
    246     Module._free(pEdgesSize_mesh_out);
    247     Module._free(pEdges_mesh_out);
    248     Module._free(pTrianglesSize_mesh_out);
    249     Module._free(pTriangles_mesh_out);
    250     Module._free(pCrackedEdgesSize_mesh_out);
    251     Module._free(pCrackedEdges_mesh_out);
    252     Module._free(pVerticesOnGeomEdgeSize_mesh_out);
    253     Module._free(pVerticesOnGeomEdge_mesh_out);
    254     Module._free(pVerticesOnGeomVertexSize_mesh_out);
    255     Module._free(pVerticesOnGeomVertex_mesh_out);
    256     Module._free(pEdgesOnGeomEdgeSize_mesh_out);
    257     Module._free(pEdgesOnGeomEdge_mesh_out);
    258     Module._free(pIssmSegmentsSize_mesh_out);
    259     Module._free(pIssmSegments_mesh_out);
    260310
    261311    Module._free(phminVerticesSize);
  • issm/trunk-jpl/src/wrappers/javascript/Makefile.am

    r22878 r22896  
    8383endif
    8484
    85 IssmModule_SOURCES = ../Triangle/Triangle.cpp \
     85IssmModule_SOURCES = ../BamgMesher/BamgMesher.cpp \
     86                     ../Triangle/Triangle.cpp \
    8687                                         ../NodeConnectivity/NodeConnectivity.cpp\
    8788                                         ../ContourToMesh/ContourToMesh.cpp\
     
    9293                                         ../Issm/issm.cpp
    9394
    94 IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_  --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriangleModule','_NodeConnectivityModule','_ContourToMeshModule','_ElementConnectivityModule','_InterpFromGridToMeshModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_IssmModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1 -s INVOKE_RUN=0
     95IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_  --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_BamgMesherModule','_TriangleModule','_NodeConnectivityModule','_ContourToMeshModule','_ElementConnectivityModule','_InterpFromGridToMeshModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_IssmModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1 -s INVOKE_RUN=0
    9596IssmModule_LDADD = ${deps} $(TRIANGLELIB)  $(GSLLIB)
    9697#}}}
  • issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp

    r22878 r22896  
    124124}
    125125/*}}}*/
    126 /*FUNCTION FetchData(BamgGeom** pbamggeom, double* vertices, int nods){{{*/
     126/*FUNCTION 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){{{*/
    127127void 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
     
    143143}
    144144/*}}}*/
    145 /*FUNCTION FetchData(BamgMesh** pbamgmesh, double* vertices, int nods){{{*/
     145/*FUNCTION 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){{{*/
    146146void 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
     
    163163}
    164164/*}}}*/
    165 /*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, int* hminVerticesSize, double* hminVertices, int* hmaxVerticesSize, double* hmaxVertices, int* hVerticesSize, double* hVertices, int* metricSize, double* metric, int* fieldSize, double* field, int* errSize, double* err){
     165/*FUNCTION 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){{{*/
     166void FetchData(BamgOpts** pbamgopts, double anisomax, double coeff, double cutoff, 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();
  • issm/trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp

    r22689 r22896  
    1414/*Primitive data types*/
    1515/*FUNCTION WriteData(IssmPDouble** pmatrix, int* pnel, int* matrix, int M,int N){{{*/
    16 void WriteData(IssmPDouble** pmatrix,int* pnel, int* matrix, int M,int N){
     16void WriteData(IssmPDouble** pmatrix, int* pnel, int* matrix, int M,int N){
    1717
    1818        if(pmatrix && matrix){
     
    2727/*}}}*/
    2828/*FUNCTION WriteData(IssmPDouble** pmatrix, int* pM, int* pN, , int* matrix, int M,int N){{{*/
    29 void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, int* matrix, int M, int N){
     29void WriteData(IssmPDouble** pmatrix, int* pM, int* pN, int* matrix, int M, int N){
    3030
    3131        if(pmatrix && matrix){
    3232
    3333                /*Copy matrix: */
    34                 IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N);
    35                 for (int i=0;i<M*N;i++)dmatrix[i]=(IssmPDouble)matrix[i];
     34            IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N);
     35                for (int i=0;i<M*N;i++) dmatrix[i]=(IssmPDouble)matrix[i];
    3636                *pmatrix=dmatrix;
    3737                *pM=M;
     
    4141/*}}}*/
    4242/*FUNCTION WriteData(IssmPDouble** pmatrix, int* pM, IssmPDouble* pN, , int* matrix, int M,int N){{{*/
    43 void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, IssmPDouble* matrix, int M, int N){
     43void WriteData(IssmPDouble** pmatrix, int* pM, int* pN, IssmPDouble* matrix, int M, int N){
    4444
    4545        if(pmatrix && matrix){
     
    4747                /*Copy matrix: */
    4848                IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N);
    49                 for (int i=0;i<M*N;i++)dmatrix[i]=matrix[i];
     49                for (int i=0;i<M*N;i++) dmatrix[i]=matrix[i];
    5050                *pmatrix=dmatrix;
    51                 if(pM)*pM=M;
    52                 if(pN)*pN=N;
     51                *pM=M;
     52                *pN=N;
    5353        }
     54}
     55/*}}}*/
     56/*FUNCTION WriteData(IssmPDouble** pmatrix, int** pSize, IssmPDouble* matrix, int* size){{{*/
     57void WriteData(IssmPDouble** pmatrix, int** pSize, IssmPDouble* matrix, int* size){
     58
     59    int M = size[0];
     60    int N = size[1];
     61    int* imatrix = xNew<int>(2);
     62    IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N);
     63
     64    /*Copy matrix: */
     65    for (int i=0;i<2;i++) imatrix[i]=size[i];
     66    for (int i=0;i<M*N;i++) dmatrix[i]=matrix[i];
     67    *pmatrix=dmatrix;
     68    *pSize=imatrix;
    5469}
    5570/*}}}*/
     
    120135}
    121136/*}}}*/
     137
     138/*ISSM objects*/
     139/*FUNCTION WriteData(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, BamgGeom* bamggeom){{{*/
     140void WriteData(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, BamgGeom* bamggeom){
     141
     142        /*Assign each field to output*/
     143    WriteData(Vertices, VerticesSize, bamggeom->Vertices, bamggeom->VerticesSize);
     144    WriteData(Edges, EdgesSize, bamggeom->Edges, bamggeom->EdgesSize);
     145    WriteData(Corners, CornersSize, bamggeom->Corners, bamggeom->CornersSize);
     146    WriteData(RequiredVertices, RequiredVerticesSize, bamggeom->RequiredVertices, bamggeom->RequiredVerticesSize);
     147    WriteData(RequiredEdges, RequiredEdgesSize, bamggeom->RequiredEdges, bamggeom->RequiredEdgesSize);
     148    WriteData(CrackedEdges, CrackedEdgesSize, bamggeom->CrackedEdges, bamggeom->CrackedEdgesSize);
     149    WriteData(SubDomains, SubDomainsSize, bamggeom->SubDomains, bamggeom->SubDomainsSize);
     150}
     151/*}}}*/
     152/*FUNCTION WriteData(int** VerticesSize, double** Vertices, int** EdgesSize, double** Edges, int** TrianglesSize, double** Triangles, int** IssmEdgesSize, double** IssmEdges, int** IssmSegmentsSize, double** IssmSegments, int** VerticesOnGeomVertexSize, double** VerticesOnGeomVertex, int** VerticesOnGeomEdgeSize, double** VerticesOnGeomEdge, int** EdgesOnGeomEdgeSize, double** EdgesOnGeomEdge, int** SubDomainsSize, double** SubDomains, int** SubDomainsFromGeomSize, double** SubDomainsFromGeom, int** ElementConnectivitySize, double** ElementConnectivity, int** NodalConnectivitySize, double** NodalConnectivity, int** NodalElementConnectivitySize, double** NodalElementConnectivity, int** CrackedVerticesSize, double** CrackedVertices, int** CrackedEdgesSize, double** CrackedEdges, int** PreviousNumberingSize, double** PreviousNumbering, BamgMesh* bamgmesh){{{*/
     153void WriteData(int** VerticesSize, double** Vertices, int** EdgesSize, double** Edges, int** TrianglesSize, double** Triangles, int** IssmEdgesSize, double** IssmEdges, int** IssmSegmentsSize, double** IssmSegments, int** VerticesOnGeomVertexSize, double** VerticesOnGeomVertex, int** VerticesOnGeomEdgeSize, double** VerticesOnGeomEdge, int** EdgesOnGeomEdgeSize, double** EdgesOnGeomEdge, int** SubDomainsSize, double** SubDomains, int** SubDomainsFromGeomSize, double** SubDomainsFromGeom, int** ElementConnectivitySize, double** ElementConnectivity, int** NodalConnectivitySize, double** NodalConnectivity, int** NodalElementConnectivitySize, double** NodalElementConnectivity, int** CrackedVerticesSize, double** CrackedVertices, int** CrackedEdgesSize, double** CrackedEdges, int** PreviousNumberingSize, double** PreviousNumbering, BamgMesh* bamgmesh){
     154
     155        /*Assign each field to output*/
     156    WriteData(Vertices, VerticesSize, bamgmesh->Vertices, bamgmesh->VerticesSize);
     157    WriteData(Edges, EdgesSize, bamgmesh->Edges, bamgmesh->EdgesSize);
     158    WriteData(Triangles, TrianglesSize, bamgmesh->Triangles, bamgmesh->TrianglesSize);
     159    WriteData(IssmEdges, IssmEdgesSize, bamgmesh->IssmEdges, bamgmesh->IssmEdgesSize);
     160    WriteData(IssmSegments, IssmSegmentsSize, bamgmesh->IssmSegments, bamgmesh->IssmSegmentsSize);
     161    WriteData(VerticesOnGeomVertex, VerticesOnGeomVertexSize, bamgmesh->VerticesOnGeomVertex, bamgmesh->VerticesOnGeomVertexSize);
     162    WriteData(VerticesOnGeomEdge, VerticesOnGeomEdgeSize, bamgmesh->VerticesOnGeomEdge, bamgmesh->VerticesOnGeomEdgeSize);
     163    WriteData(EdgesOnGeomEdge, EdgesOnGeomEdgeSize, bamgmesh->EdgesOnGeomEdge, bamgmesh->EdgesOnGeomEdgeSize);
     164    WriteData(SubDomains, SubDomainsSize, bamgmesh->SubDomains, bamgmesh->SubDomainsSize);
     165    WriteData(SubDomainsFromGeom, SubDomainsFromGeomSize, bamgmesh->SubDomainsFromGeom, bamgmesh->SubDomainsFromGeomSize);
     166    WriteData(ElementConnectivity, ElementConnectivitySize, bamgmesh->ElementConnectivity, bamgmesh->ElementConnectivitySize);
     167    WriteData(NodalConnectivity, NodalConnectivitySize, bamgmesh->NodalConnectivity, bamgmesh->NodalConnectivitySize);
     168    WriteData(NodalElementConnectivity, NodalElementConnectivitySize, bamgmesh->NodalElementConnectivity, bamgmesh->NodalElementConnectivitySize);
     169    WriteData(CrackedVertices, CrackedVerticesSize, bamgmesh->CrackedVertices, bamgmesh->CrackedVerticesSize);
     170    WriteData(CrackedEdges, CrackedEdgesSize, bamgmesh->CrackedEdges, bamgmesh->CrackedEdgesSize);
     171    WriteData(PreviousNumbering, PreviousNumberingSize, bamgmesh->PreviousNumbering, bamgmesh->VerticesSize); //PreviousNumbering just resuses Vertices' Size
     172}
     173/*}}}*/
  • issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h

    r22878 r22896  
    1818#include "../../../c/shared/shared.h"
    1919
    20 void WriteData(IssmPDouble** pmatrix,int* pnel, int* matrix, int M,int N);
    21 void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, int* matrix, int M, int N);
    22 void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, IssmPDouble* matrix, int M, int N);
     20void WriteData(IssmPDouble** pmatrix, int* pnel, int* matrix, int M,int N);
     21void WriteData(IssmPDouble** pmatrix, int* pM, int* pN, int* matrix, int M, int N);
     22void WriteData(IssmPDouble** pmatrix, int* pM, int* pN, IssmPDouble* matrix, int M, int N);
     23void WriteData(IssmPDouble** pmatrix, int** pSize, IssmPDouble* matrix, int* size);
    2324void WriteData(IssmPDouble** px, int* pnods, int* vector, int M);
    2425void WriteData(IssmPDouble** px, int* pnods, double* vector, int M);
     
    2728void WriteData(IssmPDouble** pdataref, IssmSeqVec<double>* vector);
    2829void WriteData(IssmPDouble** pdouble, void*);
     30void WriteData(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, BamgGeom* bamggeom);
     31void WriteData(int** VerticesSize, double** Vertices, int** EdgesSize, double** Edges, int** TrianglesSize, double** Triangles, int** IssmEdgesSize, double** IssmEdges, int** IssmSegmentsSize, double** IssmSegments, int** VerticesOnGeomVertexSize, double** VerticesOnGeomVertex, int** VerticesOnGeomEdgeSize, double** VerticesOnGeomEdge, int** EdgesOnGeomEdgeSize, double** EdgesOnGeomEdge, int** SubDomainsSize, double** SubDomains, int** SubDomainsFromGeomSize, double** SubDomainsFromGeom, int** ElementConnectivitySize, double** ElementConnectivity, int** NodalConnectivitySize, double** NodalConnectivity, int** NodalElementConnectivitySize, double** NodalElementConnectivity, int** CrackedVerticesSize, double** CrackedVertices, int** CrackedEdgesSize, double** CrackedEdges, int** PreviousNumberingSize, double** PreviousNumbering, BamgMesh* bamgmesh);
    2932
    3033void FetchData(char** pstring, char* stringin);
Note: See TracChangeset for help on using the changeset viewer.