Changeset 15412


Ignore:
Timestamp:
07/03/13 14:51:41 (12 years ago)
Author:
bdef
Message:

BUG:fixing Leaks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r15410 r15412  
    6262                eplcount=1;
    6363                //save pointer to old velocity
    64                 ug_sed_main_iter=ug_sed;
     64                ug_sed_main_iter=ug_sed->Duplicate();
     65                ug_sed->Copy(ug_sed_main_iter);
    6566                if(isefficientlayer){
    66                         ug_epl_main_iter=ug_epl;
     67                        ug_epl_main_iter=ug_epl->Duplicate();
     68                        ug_epl->Copy(ug_epl_main_iter);
    6769                }
    6870
     
    8385                        Solverx(&uf_sed,Kff,pf,uf_sed_sub_iter,df,femmodel->parameters);
    8486                        delete Kff; delete pf; delete df;
    85                         if(sedcount>1) delete uf_sed_sub_iter;
     87                        delete uf_sed_sub_iter;
    8688                        uf_sed_sub_iter=uf_sed->Duplicate();
    8789                        uf_sed->Copy(uf_sed_sub_iter);
    88                         if(sedcount>1) delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/
     90                        delete ug_sed;
    8991                        Mergesolutionfromftogx(&ug_sed,uf_sed,ys,femmodel->nodes,femmodel->parameters); delete ys;
    9092                        InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_sed);
     
    127129                                Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters);
    128130                                delete Kff; delete pf; delete df;
    129                                 if(eplcount>1) delete uf_epl_sub_iter;
     131                                delete uf_epl_sub_iter;
    130132                                uf_epl_sub_iter=uf_epl->Duplicate();
    131133                                uf_epl->Copy(uf_epl_sub_iter);
    132                                 if(eplcount>1) delete ug_epl;
     134                                delete ug_epl;
    133135                                Mergesolutionfromftogx(&ug_epl,uf_epl,ys,femmodel->nodes,femmodel->parameters); delete ys;
    134136                                InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_epl);
     
    162164                        delete dug;
    163165                        nu_sed=ug_sed_main_iter->Norm(NORM_TWO);
     166                        delete ug_sed_main_iter;
    164167                        if (xIsNan<IssmDouble>(ndu_sed) || xIsNan<IssmDouble>(nu_sed)) _error_("Sed convergence criterion is NaN!");
    165168                        if (!xIsNan<IssmDouble>(eps_hyd)){
     
    181184                                        delete dug;
    182185                                        nu_epl=ug_epl_main_iter->Norm(NORM_TWO);
    183 
     186                                        delete ug_epl_main_iter;
    184187                                        if (xIsNan<IssmDouble>(ndu_epl) || xIsNan<IssmDouble>(nu_epl)) _error_("EPL convergence criterion is NaN!");
    185188                                        if (ndu_epl==0.0 && nu_epl==0.0) nu_epl=1.0e-6; /*Hacking the case where the EPL is used but empty*/
Note: See TracChangeset for help on using the changeset viewer.