Changeset 15410


Ignore:
Timestamp:
07/03/13 13:32:00 (12 years ago)
Author:
bdef
Message:

BUG:Leak Fixing

File:
1 edited

Legend:

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

    r15409 r15410  
    5151        //femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
    5252        GetSolutionFromInputsx(&ug_sed, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters);
    53         Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters);
    5453       
    5554        if(isefficientlayer) {
    5655                femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum);
    5756                GetSolutionFromInputsx(&ug_epl, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters);
    58                 Reducevectorgtofx(&uf_epl, ug_epl, femmodel->nodes,femmodel->parameters);
    5957        }
    6058
     
    6462                eplcount=1;
    6563                //save pointer to old velocity
    66                 delete uf_sed_sub_iter;
    6764                ug_sed_main_iter=ug_sed;
    68                 uf_sed_sub_iter=uf_sed;
    6965                if(isefficientlayer){
    70                         delete uf_epl_sub_iter;
    7166                        ug_epl_main_iter=ug_epl;
    72                         uf_epl_sub_iter=uf_epl;
    7367                }
    7468
     
    8680                        CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCInefficientAnalysisEnum);
    8781                        Reduceloadx(pf,Kfs,ys); delete Kfs;
    88                         if(sedcount>1)delete uf_sed;
     82                        delete uf_sed;
    8983                        Solverx(&uf_sed,Kff,pf,uf_sed_sub_iter,df,femmodel->parameters);
    90                         delete Kff; delete pf; delete uf_sed_sub_iter; delete df;
     84                        delete Kff; delete pf; delete df;
     85                        if(sedcount>1) delete uf_sed_sub_iter;
    9186                        uf_sed_sub_iter=uf_sed->Duplicate();
    9287                        uf_sed->Copy(uf_sed_sub_iter);
    93                         if(sedcount>1)delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/
     88                        if(sedcount>1) delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/
    9489                        Mergesolutionfromftogx(&ug_sed,uf_sed,ys,femmodel->nodes,femmodel->parameters); delete ys;
    9590                        InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_sed);
     
    129124                                CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCEfficientAnalysisEnum);
    130125                                Reduceloadx(pf,Kfs,ys); delete Kfs;
    131                                 if(sedcount>1) delete uf_epl;
     126                                delete uf_epl;
    132127                                Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters);
    133                                 delete Kff; delete pf; delete uf_epl_sub_iter; delete df;
     128                                delete Kff; delete pf; delete df;
     129                                if(eplcount>1) delete uf_epl_sub_iter;
    134130                                uf_epl_sub_iter=uf_epl->Duplicate();
    135131                                uf_epl->Copy(uf_epl_sub_iter);
     
    163159                        ug_sed_main_iter->Copy(dug);   
    164160                        dug->AYPX(ug_sed,-1.0);
    165                         ndu_sed=dug->Norm(NORM_TWO); nu_sed=ug_sed_main_iter->Norm(NORM_TWO);
     161                        ndu_sed=dug->Norm(NORM_TWO);
     162                        delete dug;
     163                        nu_sed=ug_sed_main_iter->Norm(NORM_TWO);
    166164                        if (xIsNan<IssmDouble>(ndu_sed) || xIsNan<IssmDouble>(nu_sed)) _error_("Sed convergence criterion is NaN!");
    167165                        if (!xIsNan<IssmDouble>(eps_hyd)){
     
    181179                                        dug->AYPX(ug_epl,-1.0);
    182180                                        ndu_epl=dug->Norm(NORM_TWO);
     181                                        delete dug;
    183182                                        nu_epl=ug_epl_main_iter->Norm(NORM_TWO);
    184183
     
    215214        delete uf_sed_sub_iter;
    216215        delete uf_epl_sub_iter;
    217         delete dug;
     216        //delete dug;
    218217}
Note: See TracChangeset for help on using the changeset viewer.