Changeset 25388


Ignore:
Timestamp:
08/13/20 08:56:22 (5 years ago)
Author:
Mathieu Morlighem
Message:

NEW: allow for varying err when adapting meshes

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

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

    r23066 r25388  
    10071007                int Hessiantype=bamgopts->Hessiantype;
    10081008
     1009                /*Check err, we need to make sure it has the right size!*/
     1010                if(bamgopts->errSize[0]==1){
     1011                        /*Let's copy this value for all vertices*/
     1012                        double* newerr =  new double[nbv*bamgopts->errSize[1]];
     1013                        for(int i=0;i<nbv;i++){
     1014                                for(int j=0;j<bamgopts->errSize[1];j++){
     1015                                        newerr[i*bamgopts->errSize[1]+j] = bamgopts->err[j];
     1016                                }
     1017                        }
     1018                        delete bamgopts->err;
     1019                        bamgopts->err = newerr;
     1020                        bamgopts->errSize[0] = nbv;
     1021                }
     1022                else if(bamgopts->errSize[0]==this->nbv){
     1023                        /*Nothing to do, already right size*/
     1024                }
     1025                else{
     1026                        _error_("number of rows in 'err' not supported");
     1027                }
     1028
    10091029                if (Hessiantype==0){
    10101030                        BuildMetric0(bamgopts);
     
    18191839                        /*Compute Metric from Hessian*/
    18201840                        for ( iv=0;iv<nbv;iv++){
    1821                                 vertices[iv].MetricFromHessian(dxdx_vertex[iv],dxdy_vertex[iv],dydy_vertex[iv],smin,smax,ss[iv*nbsol+nusol],bamgopts->err[nusol],bamgopts);
     1841                                vertices[iv].MetricFromHessian(dxdx_vertex[iv],dxdy_vertex[iv],dydy_vertex[iv],smin,smax,ss[iv*nbsol+nusol],bamgopts->err[iv*nbsol+nusol],bamgopts);
    18221842                        }
    18231843
     
    21292149                                /*Compute Metric from Hessian*/
    21302150                                for ( iv=0;iv<nbv;iv++){
    2131                                         vertices[iv].MetricFromHessian(dxdx[iv],dxdy[iv],dydy[iv],smin,smax,ss[iv*nbsol+nusol],bamgopts->err[nusol],bamgopts);
     2151                                        vertices[iv].MetricFromHessian(dxdx[iv],dxdy[iv],dydy[iv],smin,smax,ss[iv*nbsol+nusol],bamgopts->err[iv*nbsol+nusol],bamgopts);
    21322152                                }
    21332153
  • issm/trunk-jpl/src/c/cores/controladm1qn3_core.cpp

    r25341 r25388  
    260260        solutioncore(femmodel);
    261261
    262         /*Reset the time to zero for next optimization*/
     262        /*Reset the time to zero for next optimization (FIXME: this may actually not be needed)*/
    263263        if(solution_type==TransientSolutionEnum){
    264264                IssmDouble restart_time;
Note: See TracChangeset for help on using the changeset viewer.