Changeset 1973


Ignore:
Timestamp:
08/26/09 17:03:57 (15 years ago)
Author:
Eric.Larour
Message:

Humongous leaks fixed

Location:
issm/trunk/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/BuildNodeSetsx/PartitionSets.cpp

    r1967 r1973  
    105105        *ppartitionc=partitionc;
    106106
    107 
    108107}
  • issm/trunk/src/c/parallel/diagnostic_core.cpp

    r1964 r1973  
    5656        int dof012[3]={0,1,2};
    5757        int dof3[1]={3};
     58        double* dofset=NULL;
    5859
    5960
     
    136137                VecFree(&ug); ug=NewVec(numberofnodes*3);
    137138
    138                 VecMerge(ug,ug_horiz,dofsetgen(2,&dof01[0],3,numberofnodes*3),numberofnodes*2);
    139                 VecMerge(ug,ug_vert,dofsetgen(1,&dof2[0],3,numberofnodes*3),numberofnodes*1);
     139                xfree((void**)&dofset); dofset=dofsetgen(2,&dof01[0],3,numberofnodes*3); VecMerge(ug,ug_horiz,dofset,numberofnodes*2);
     140                xfree((void**)&dofset); dofset=dofsetgen(1,&dof2[0],3,numberofnodes*3); VecMerge(ug,ug_vert,dofset,numberofnodes*1);
    140141                VecFree(&ug_horiz); VecFree(&ug_vert);
    141142
     
    160161                        //recombine ug and pg:
    161162                        ug_stokes=NewVec(fem_ds->nodesets->GetGSize());
    162                         VecMerge(ug_stokes,ug,dofsetgen(3,dof012,4,numberofnodes*4),numberofnodes*3);
    163                         VecMerge(ug_stokes,pg,dofsetgen(1,dof3,4,numberofnodes*4),numberofnodes);
     163                        xfree((void**)&dofset);dofset=dofsetgen(3,dof012,4,numberofnodes*4); VecMerge(ug_stokes,ug,dofset,numberofnodes*3);
     164                        xfree((void**)&dofset); dofset=dofsetgen(1,dof3,4,numberofnodes*4); VecMerge(ug_stokes,pg,dofset,numberofnodes);
    164165
    165166                        inputs->Add("velocity",ug_stokes,numberofdofspernode_ds,numberofnodes);
     
    167168
    168169                        if(debug)_printf_("%s\n"," update boundary conditions for stokes using velocities previously computed...");
    169                         VecMerge(fem_ds->yg,ug,dofsetgen(3,dof012,4,numberofnodes*4),3*numberofnodes);
     170                        xfree((void**)&dofset);dofset=dofsetgen(3,dof012,4,numberofnodes*4); VecMerge(fem_ds->yg,ug,dofset,3*numberofnodes);
    170171                        VecFree(&fem_ds->ys); VecFree(&fem_ds->ys0);
    171172                        Reducevectorgtosx(&fem_ds->ys,&fem_ds->ys0, fem_ds->yg,fem_ds->nodesets);
     
    177178                        //decondition" pressure
    178179                        VecFree(&pg);
    179                         VecPartition(&pg, ug, dofsetgen(1,dof3,4,numberofnodes*4), numberofnodes*1);
     180                        xfree((void**)&dofset);dofset=dofsetgen(1,dof3,4,numberofnodes*4); VecPartition(&pg, ug, dofset, numberofnodes*1);
    180181                        VecScale(pg,stokesreconditioning);
    181182                }
     
    197198        VecFree(&ug);
    198199        VecFree(&pg);
     200        xfree((void**)&dofset);
    199201
    200202}
  • issm/trunk/src/c/parallel/diagnostic_core_linear.cpp

    r571 r1973  
    4949        /*!Reduce matrix from g to f size:*/
    5050        if (debug) _printf_("   reducing matrix from g to f set\n");
    51         Reducematrixfromgtofx(&Kff,&Kfs,Kgg,fem->Gmn,fem->nodesets);
     51        Reducematrixfromgtofx(&Kff,&Kfs,Kgg,fem->Gmn,fem->nodesets); MatFree(&Kgg);
    5252
    5353
    5454        /*!Reduce load from g to f size: */
    5555        if (debug) _printf_("   reducing load from g to f set\n");
    56         Reduceloadfromgtofx(&pf, pg, fem->Gmn, Kfs, fem->ys, fem->nodesets);
     56        Reduceloadfromgtofx(&pf, pg, fem->Gmn, Kfs, fem->ys, fem->nodesets);VecFree(&pg); MatFree(&Kfs);
    5757
    5858        /*Solve: */
    5959        if (debug) _printf_("   solving\n");
    60         Solverx(&uf, Kff, pf, NULL, solver_string);
     60        Solverx(&uf, Kff, pf, NULL, solver_string); MatFree(&Kff); VecFree(&pf);
    6161
    6262        //Merge back to g set
    6363        if (debug) _printf_("   merging solution from f to g set\n");
    64         Mergesolutionfromftogx(&ug, uf,fem->Gmn,fem->ys,fem->nodesets);
     64        Mergesolutionfromftogx(&ug, uf,fem->Gmn,fem->ys,fem->nodesets);VecFree(&uf);
    6565
    6666        /*Assign output pointers:*/
Note: See TracChangeset for help on using the changeset viewer.