Changeset 22877


Ignore:
Timestamp:
06/26/18 19:33:59 (7 years ago)
Author:
dlcheng
Message:

ADD (JS): BAMG integration for JS, including bamggeom, bamgmesh, and bamg functions, as well as BamgMesher.js wrapper. CHG: BamgMesh.h JS wrapper declaration. FetchData overrides for BamgMesh/BamgGeom/BamgOpts. Additional array operations to emulate Matlab matrix operations.

Location:
issm/trunk-jpl/src
Files:
4 added
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/Makefile.am

    r22834 r22877  
    8282if !DEVELOPMENT
    8383
    84 js_scripts = ${ISSM_DIR}/src/m/array/arrayoperations.js \
    85                                 ${ISSM_DIR}/src/m/boundaryconditions/SetIceSheetBC.js \
    86                                 ${ISSM_DIR}/src/m/boundaryconditions/SetIceShelfBC.js \
    87                                 ${ISSM_DIR}/src/m/classes/amr.js \
    88                                 ${ISSM_DIR}/src/m/classes/autodiff.js \
    89                                 ${ISSM_DIR}/src/m/classes/balancethickness.js \
    90                                 ${ISSM_DIR}/src/m/classes/basalforcings.js \
    91                                 ${ISSM_DIR}/src/m/classes/calving.js \
    92                                 ${ISSM_DIR}/src/m/classes/clusters/generic.js \
    93                                 ${ISSM_DIR}/src/m/classes/clusters/local.js \
    94                                 ${ISSM_DIR}/src/m/classes/constants.js \
    95                                 ${ISSM_DIR}/src/m/classes/damage.js \
    96                                 ${ISSM_DIR}/src/m/classes/debug.js \
    97                                 ${ISSM_DIR}/src/m/classes/flowequation.js \
    98                                 ${ISSM_DIR}/src/m/classes/friction.js \
    99                                 ${ISSM_DIR}/src/m/classes/geometry.js \
    100                                 ${ISSM_DIR}/src/m/classes/giaivins.js \
    101                                 ${ISSM_DIR}/src/m/classes/fourierlove.js \
    102                                 ${ISSM_DIR}/src/m/classes/esa.js \
    103                                 ${ISSM_DIR}/src/m/classes/groundingline.js \
    104                                 ${ISSM_DIR}/src/m/classes/hydrologyshreve.js \
    105                                 ${ISSM_DIR}/src/m/classes/initialization.js \
    106                                 ${ISSM_DIR}/src/m/classes/inversion.js \
    107                                 ${ISSM_DIR}/src/m/classes/mask.js \
    108                                 ${ISSM_DIR}/src/m/classes/maskpsl.js \
    109                                 ${ISSM_DIR}/src/m/classes/masstransport.js \
    110                                 ${ISSM_DIR}/src/m/classes/matice.js \
    111                                 ${ISSM_DIR}/src/m/classes/mesh2d.js \
    112                                 ${ISSM_DIR}/src/m/classes/mesh3dprisms.js \
    113                                 ${ISSM_DIR}/src/m/classes/mesh3dsurface.js \
    114                                 ${ISSM_DIR}/src/m/classes/miscellaneous.js \
    115                                 ${ISSM_DIR}/src/m/classes/model.js \
    116                                 ${ISSM_DIR}/src/m/classes/outputdefinition.js \
    117                                 ${ISSM_DIR}/src/m/classes/pairoptions.js \
    118                                 ${ISSM_DIR}/src/m/classes/plotoptions.js \
    119                                 ${ISSM_DIR}/src/m/classes/priv.js \
    120                                 ${ISSM_DIR}/src/m/classes/qmu.js \
    121                                 ${ISSM_DIR}/src/m/classes/radaroverlay.js \
    122                                 ${ISSM_DIR}/src/m/classes/rifts.js \
    123                                 ${ISSM_DIR}/src/m/classes/slr.js \
    124                                 ${ISSM_DIR}/src/m/classes/issmsettings.js \
    125                                 ${ISSM_DIR}/src/m/classes/SMBforcing.js \
    126                                 ${ISSM_DIR}/src/m/classes/steadystate.js \
    127                                 ${ISSM_DIR}/src/m/classes/stressbalance.js \
    128                                 ${ISSM_DIR}/src/m/classes/template.js \
    129                                 ${ISSM_DIR}/src/m/classes/thermal.js \
    130                                 ${ISSM_DIR}/src/m/classes/timestepping.js \
    131                                 ${ISSM_DIR}/src/m/classes/toolkits.js \
    132                                 ${ISSM_DIR}/src/m/classes/levelset.js \
    133                                 ${ISSM_DIR}/src/m/classes/trans.js \
    134                                 ${ISSM_DIR}/src/m/classes/verbose.js \
    135                                 ${ISSM_DIR}/src/m/consistency/checkfield.js \
    136                                 ${ISSM_DIR}/src/m/consistency/ismodelselfconsistent.js \
     84js_scripts = ${ISSM_DIR}/src/m/array/*.js \
     85                                ${ISSM_DIR}/src/m/boundaryconditions/*.js \
     86                                ${ISSM_DIR}/src/m/classes/*.js \
     87                ${ISSM_DIR}/src/m/classes/clusters/*.js \
     88                                ${ISSM_DIR}/src/m/consistency/*.js \
    13789                                ${ISSM_DIR}/src/m/extrusion/*.js \
    138                                 ${ISSM_DIR}/src/m/geometry/FlagElements.js \
    139                                 ${ISSM_DIR}/src/m/inversions/marshallcostfunctions.js \
     90                                ${ISSM_DIR}/src/m/geometry/*.js \
     91                                ${ISSM_DIR}/src/m/inversions/*.js \
    14092                                ${ISSM_DIR}/src/m/io/*.js \
    141                                 ${ISSM_DIR}/src/m/materials/paterson.js \
    142                                 ${ISSM_DIR}/src/m/mesh/triangle.js \
    143                                 ${ISSM_DIR}/src/m/miscellaneous/colorbars.js \
    144                                 ${ISSM_DIR}/src/m/miscellaneous/fielddisplay.js \
    145                                 ${ISSM_DIR}/src/m/miscellaneous/rgbcolor.js \
    146                                 ${ISSM_DIR}/src/m/parameterization/setflowequation.js \
    147                                 ${ISSM_DIR}/src/m/parameterization/setmask.js \
     93                                ${ISSM_DIR}/src/m/materials/*.js \
     94                                ${ISSM_DIR}/src/m/mesh/*.js \
     95                                ${ISSM_DIR}/src/m/miscellaneous/*.js \
     96                                ${ISSM_DIR}/src/m/parameterization/*.js \
    14897                                ${ISSM_DIR}/src/m/plot/*.js \
    149                                 ${ISSM_DIR}/src/m/print/sprintf.js \
    150                                 ${ISSM_DIR}/src/m/solve/loadresultsfrombuffer.js \
    151                                 ${ISSM_DIR}/src/m/solve/marshall.js \
    152                                 ${ISSM_DIR}/src/m/solve/parseresultsfrombuffer.js \
    153                                 ${ISSM_DIR}/src/m/solve/solve.js \
    154                                 ${ISSM_DIR}/src/m/solve/WriteData.js \
    155                                 ${ISSM_DIR}/src/m/solvers/issmgslsolver.js \
    156                                 ${ISSM_DIR}/src/m/solvers/issmmumpssolver.js
     98                                ${ISSM_DIR}/src/m/print/*.js \
     99                                ${ISSM_DIR}/src/m/solve/*.js \
     100                                ${ISSM_DIR}/src/m/solvers/*.js
    157101bin_SCRIPTS +=  issm-bin.js
    158102
  • issm/trunk-jpl/src/m/array/arrayoperations.js

    r22098 r22877  
    4747        for(var i=0;i<array.length;i++)sum+=array[i];
    4848        return sum;
     49} //}}}
     50
     51function ArrayAdd(array1, array2){ //{{{
     52    if(array1.length!=array2.length)throw Error("ArrayAdd error message: arrays provided as arguments are not of the same length!");
     53
     54    //do the subtraction:
     55    var result = array1.slice();
     56    for(var i = 0; i < array1.length; i++){
     57        result[i] = array1[i] + array2[i];
     58    }
     59    return result;
     60
     61} //}}}
     62function ArraySubtract(array1, array2){ //{{{
     63    if(array1.length!=array2.length)throw Error("ArraySubtract error message: arrays provided as arguments are not of the same length!");
     64
     65    //do the subtraction:
     66    var result = array1.slice();
     67    for(var i = 0; i < array1.length; i++){
     68        result[i] = array1[i] - array2[i];
     69    }
     70    return result;
     71
     72} //}}}
     73function ArrayMultiply(array1, array2){ //{{{
     74    if(array1.length!=array2.length)throw Error("ArrayMultiply error message: arrays provided as arguments are not of the same length!");
     75
     76    //do the subtraction:
     77    var result = array1.slice();
     78    for(var i = 0; i < array1.length; i++){
     79        result[i] = array1[i] * array2[i];
     80    }
     81    return result;
     82
     83} //}}}
     84function ArrayDivide(array1, array2){ //{{{
     85    if(array1.length!=array2.length)throw Error("ArrayDivide error message: arrays provided as arguments are not of the same length!");
     86
     87    //do the subtraction:
     88    var result = array1.slice();
     89    for(var i = 0; i < array1.length; i++){
     90        result[i] = array1[i] / array2[i];
     91    }
     92    return result;
     93
     94} //}}}
     95function ArrayMean(array){ //{{{
     96    //Calculate the mean:
     97    var sum = ArraySum(array);
     98    return sum / array.length;
     99
     100} //}}}
     101function ArraySTD(array){ //{{{
     102    //Calculate the standard deviation:
     103    var sum = ArraySum(array);
     104    var differences = 0;
     105    for(var i = 0; i < array.length; i++){
     106        differences += (array[i] - sum) ** 2;
     107    }
     108    var variance = differences / array.length;
     109    return Math.sqrt(variance);
     110
     111} //}}}
     112function ArrayLerp(array1, array2, weight1, weight2, alpha){ //{{{
     113    //Returns linear combination of array1 and array2, based on lerp coefficients weight1, weight2, and alpha.
     114    //Parameters:
     115    //  array1  - array
     116    //  array2  - array
     117    //  weight1 - value associated with array1.
     118    //  weight2 - value associated with array2
     119    //  alpha   - value associated with output array
     120    //Output:
     121    //  result - linear combination of array1 and array2 based on the equation array1 * alpha +
     122   
     123    var range = weight2 - weight1;
     124    var normalizedAlpha = (alpha - weight1) / range;
     125    var result = array1.slice();
     126    for(var i = 0; i < array1.length; i++){
     127        result[i]  = array1[i] * normalizedAlpha + array2[i] * (1 - normalizedAlpha);
     128    }
     129    return result;
     130
     131} //}}}
     132function ArrayTranspose(array){ //{{{
     133    //Transposes 2d array.
     134    var rows = array.length;
     135    var cols = array[0].length;
     136    var result = Create2DArray(cols, rows);
     137
     138    for(var i = 0; i < rows; i++) {
     139        for(var j = 0; j < cols; j++) {
     140            result[j][i]  = array[i][j];
     141        }
     142    }
     143    return result;
     144
    49145} //}}}
    50146function ArrayXPY(){ //{{{
     
    93189        return or;
    94190
    95 } //}}}
    96 function ArrayTranspose(array) { //{{{
    97         return Object.keys(array[0]).map(function(column) {
    98                 return array.map(function(row) {
    99                         return row[column];
    100                 });
    101         });
    102191} //}}}
    103192function ArrayConcat(a, b) { //{{{
     
    227316        });
    228317
     318} //}}}
     319function ArrayAny(array) { //{{{
     320    //Emulates Matlab 'any' function
     321   
     322    for(var i=0;i<array.length;i++){
     323        if (array[i]!=0)return 1;
     324    }
     325    return 0;
    229326} //}}}
    230327function ArrayAnyEqual(array,value) { //{{{
  • issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.h

    r14996 r22877  
    4545#endif
    4646
     47#ifdef _HAVE_JAVASCRIPT_MODULES_
     48/* 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
     52/* 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)
     56#define _DO_NOT_LOAD_GLOBALS_//we only load globals for TriangleModule.js, not other modules!
     57#endif
     58
    4759/* serial arg counts: */
    4860#undef NLHS
  • issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp

    r19768 r22877  
    122122       
    123123        *pcontours=contours;
     124}
     125/*}}}*/
     126/*FUNCTION FetchData(BamgGeom** pbamggeom, double* vertices, int nods){{{*/
     127void 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){
     128
     129        /*Initialize output*/
     130        BamgGeom* bamggeom = new BamgGeom();
     131
     132        /*Fetch all fields*/
     133        FetchData(&bamggeom->Vertices, &bamggeom->VerticesSize[0], &bamggeom->VerticesSize[1], Vertices, VerticesSize[0], VerticesSize[1]);
     134        FetchData(&bamggeom->Edges, &bamggeom->EdgesSize[0], &bamggeom->EdgesSize[1], Edges, EdgesSize[0], EdgesSize[1]);
     135        FetchData(&bamggeom->Corners, &bamggeom->CornersSize[0], &bamggeom->CornersSize[1], Corners, CornersSize[0], CornersSize[1]);
     136        FetchData(&bamggeom->RequiredVertices, &bamggeom->RequiredVerticesSize[0], &bamggeom->RequiredVerticesSize[1], RequiredVertices, RequiredVerticesSize[0], RequiredVerticesSize[1]);
     137        FetchData(&bamggeom->RequiredEdges, &bamggeom->RequiredEdgesSize[0], &bamggeom->RequiredEdgesSize[1], RequiredEdges, RequiredEdgesSize[0], RequiredEdgesSize[1]);
     138        FetchData(&bamggeom->CrackedEdges, &bamggeom->CrackedEdgesSize[0], &bamggeom->CrackedEdgesSize[1], CrackedEdges, CrackedEdgesSize[0], CrackedEdgesSize[1]);
     139        FetchData(&bamggeom->SubDomains, &bamggeom->SubDomainsSize[0], &bamggeom->SubDomainsSize[1], SubDomains, SubDomainsSize[0], SubDomainsSize[1]);
     140
     141        /*Assign output pointers:*/
     142        *pbamggeom = bamggeom;
     143}
     144/*}}}*/
     145/*FUNCTION FetchData(BamgMesh** pbamgmesh, double* vertices, int nods){{{*/
     146void 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){
     147
     148        /*Initialize output*/
     149        BamgMesh* bamgmesh = new BamgMesh();
     150
     151        /*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]);
     160
     161        /*Assign output pointers:*/
     162        *pbamgmesh = bamgmesh;
     163}
     164/*}}}*/
     165/*FUNCTION FetchData(BamgMesh** pbamgopts, double* vertices, int nods){{{*/
     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, double* hminVertices, double* hmaxVertices, double* hVertices, double* metric, double* field, double err){
     167
     168        BamgOpts *bamgopts      = new BamgOpts();
     169
     170    /*Parameters*/
     171    bamgopts->anisomax      = anisomax;
     172    bamgopts->coeff             = coeff;
     173    bamgopts->cutoff            = cutoff;
     174    bamgopts->errg              = errg;
     175    bamgopts->gradation     = gradation;
     176    bamgopts->Hessiantype       = Hessiantype;
     177    bamgopts->maxnbv        = maxnbv;
     178    bamgopts->maxsubdiv     = maxsubdiv;
     179    bamgopts->Metrictype        = Metrictype;
     180    bamgopts->nbjacobi      = nbjacobi;
     181    bamgopts->nbsmooth      = nbsmooth;
     182    bamgopts->omega             = omega;
     183    bamgopts->power             = power;
     184    bamgopts->verbose       = verbose;
     185
     186    /*Flags*/
     187    bamgopts->Crack             = Crack;
     188    bamgopts->KeepVertices      = KeepVertices;
     189    bamgopts->splitcorners      = splitcorners;
     190       
     191    /*Metric related*/
     192    bamgopts->hmin              = hmin;
     193    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
     201        *pbamgopts              = bamgopts;
    124202}
    125203/*}}}*/
  • issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h

    r22689 r22877  
    3737void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
    3838void FetchData(Contours** pcontours,double* x, double* y, int nods);
     39void 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);
     40void 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);
     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, double* hminVertices, double* hmaxVertices, double* hVertices, double* metric, double* field, double err);
    3942void FetchData(Options** poptions,int NRHS, int nrhs, const char* optionname, double optionvalue);
    4043void FetchData(int* pinteger,int integer);
Note: See TracChangeset for help on using the changeset viewer.