Changeset 4780


Ignore:
Timestamp:
07/23/10 15:30:29 (15 years ago)
Author:
Mathieu Morlighem
Message:

Fixed big leak in InputConvergencex

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

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp

    r4778 r4780  
    1111
    1212        /*intermediary:*/
     13        int         i;
     14        int         converged = 1;
     15        int         node_converged=1;
     16        double     *eps       = NULL;
    1317        extern int  my_rank;
    14         int      i;
    15         bool     converged      = true;
    16         bool     node_converged = true;
    17         double  *eps            = NULL;
    18         int      rank_allowed;
    19         Element *element        = NULL;
    20         int      verbose        = 0;
     18        int         rank_allowed;
     19        Element*    element=NULL;
     20        int         verbose=0;
    2121
    2222        /*retrieve parameters: */
     
    5757
    5858        /*return: */
    59         return converged;
     59        if (converged){
     60                return true;}
     61        else{
     62                return false;}
    6063}
  • issm/trunk/src/c/objects/Elements/Beam.cpp

    r4778 r4780  
    405405/*}}}*/
    406406/*FUNCTION Beam::InputConvergence{{{1*/
    407 void  Beam::InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
     407void  Beam::InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
    408408
    409409        int     i;
    410410        Input** new_inputs=NULL;
    411411        Input** old_inputs=NULL;
    412         bool    converged=true;
     412        int     converged=1;
    413413
    414414        new_inputs=(Input**)xmalloc(num_enums/2*sizeof(Input*)); //half the enums are for the new inputs
     
    425425        for(i=0;i<num_criterionenums;i++){
    426426                IsInputConverged(eps+i,new_inputs,old_inputs,num_enums/2,criterionenums[i]);
    427                 if(eps[i]>criterionvalues[i]) converged=false;
    428         }
     427                if(eps[i]>criterionvalues[i]) converged=0;
     428        }
     429
     430        /*clean up*/
     431        xfree((void**)&new_inputs);
     432        xfree((void**)&old_inputs);
    429433
    430434        /*Assign output pointers:*/
  • issm/trunk/src/c/objects/Elements/Beam.h

    r4778 r4780  
    8484                void       InputAXPY(int YEnum, double scalar, int XEnum);
    8585                void       InputControlConstrain(int control_type,double cm_min, double cm_max);
    86                 void       InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
     86                void       InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
    8787                void     InputDepthAverageAtBase(int enum_type,int average_enum_type){ISSMERROR("not implemented yet");}
    8888                void       InputDuplicate(int original_enum,int new_enum);
  • issm/trunk/src/c/objects/Elements/Element.h

    r4778 r4780  
    7272                virtual void   InputAXPY(int YEnum, double scalar, int XEnum)=0;
    7373                virtual void   InputControlConstrain(int control_type,double cm_min, double cm_max)=0;
    74                 virtual void   InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums)=0;
     74                virtual void   InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums)=0;
    7575
    7676                /*Implementation: */
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r4778 r4780  
    10741074/*}}}*/
    10751075/*FUNCTION Penta::InputConvergence{{{1*/
    1076 void  Penta::InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
     1076void  Penta::InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
    10771077
    10781078        int     i;
    10791079        Input** new_inputs=NULL;
    10801080        Input** old_inputs=NULL;
    1081         bool    converged=true;
     1081        int     converged=1;
    10821082
    10831083        new_inputs=(Input**)xmalloc(num_enums/2*sizeof(Input*)); //half the enums are for the new inputs
     
    10941094        for(i=0;i<num_criterionenums;i++){
    10951095                IsInputConverged(eps+i,new_inputs,old_inputs,num_enums/2,criterionenums[i]);
    1096                 if(eps[i]>criterionvalues[i]) converged=false;
    1097         }
     1096                if(eps[i]>criterionvalues[i]) converged=0;
     1097        }
     1098
     1099        /*clean up*/
     1100        xfree((void**)&new_inputs);
     1101        xfree((void**)&old_inputs);
    10981102
    10991103        /*Assign output pointers:*/
  • issm/trunk/src/c/objects/Elements/Penta.h

    r4778 r4780  
    8787                void   InputAXPY(int YEnum, double scalar, int XEnum);
    8888                void   InputControlConstrain(int control_type,double cm_min, double cm_max);
    89                 void   InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
     89                void   InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
    9090                void   InputDepthAverageAtBase(int enum_type,int average_enum_type);
    9191                void   InputDuplicate(int original_enum,int new_enum);
  • issm/trunk/src/c/objects/Elements/Sing.cpp

    r4778 r4780  
    374374/*}}}*/
    375375/*FUNCTION Sing::InputConvergence{{{1*/
    376 void  Sing::InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
     376void  Sing::InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
    377377
    378378        int i;
    379379        Input** new_inputs=NULL;
    380380        Input** old_inputs=NULL;
    381         bool    converged=true;
     381        int     converged=1;
    382382
    383383        new_inputs=(Input**)xmalloc(num_enums/2*sizeof(Input*)); //half the enums are for the new inputs
     
    394394        for(i=0;i<num_criterionenums;i++){
    395395                IsInputConverged(eps+i,new_inputs,old_inputs,num_enums/2,criterionenums[i]);
    396                 if(eps[i]>criterionvalues[i]) converged=false;
    397         }
     396                if(eps[i]>criterionvalues[i]) converged=0;
     397        }
     398
     399        /*clean up*/
     400        xfree((void**)&new_inputs);
     401        xfree((void**)&old_inputs);
    398402
    399403        /*Assign output pointers:*/
  • issm/trunk/src/c/objects/Elements/Sing.h

    r4778 r4780  
    8484                void   InputAXPY(int YEnum, double scalar, int XEnum);
    8585                void   InputControlConstrain(int control_type,double cm_min, double cm_max);
    86                 void   InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
     86                void   InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
    8787                void   InputDepthAverageAtBase(int enum_type,int average_enum_type){ISSMERROR("not implemented yet");}
    8888                void   InputDuplicate(int original_enum,int new_enum);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r4778 r4780  
    14531453/*}}}*/
    14541454/*FUNCTION Tria::InputConvergence{{{1*/
    1455 void  Tria::InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
     1455void  Tria::InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums){
    14561456
    14571457        int i;
    14581458        Input** new_inputs=NULL;
    14591459        Input** old_inputs=NULL;
    1460         bool     converged=true;
     1460        int     converged=1;
    14611461
    14621462        new_inputs=(Input**)xmalloc(num_enums/2*sizeof(Input*)); //half the enums are for the new inputs
     
    14731473        for(i=0;i<num_criterionenums;i++){
    14741474                IsInputConverged(eps+i,new_inputs,old_inputs,num_enums/2,criterionenums[i]);
    1475                 if(eps[i]>criterionvalues[i]) converged=false;
    1476         }
     1475                if(eps[i]>criterionvalues[i]) converged=0;
     1476        }
     1477
     1478        /*clean up*/
     1479        xfree((void**)&new_inputs);
     1480        xfree((void**)&old_inputs);
    14771481
    14781482        /*Assign output pointers:*/
  • issm/trunk/src/c/objects/Elements/Tria.h

    r4778 r4780  
    8484                void   InputAXPY(int YEnum, double scalar, int XEnum);
    8585                void   InputControlConstrain(int control_type,double cm_min, double cm_max);
    86                 void   InputConvergence(bool* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
     86                void   InputConvergence(int* pconverged,double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
    8787                void   InputDepthAverageAtBase(int enum_type,int average_enum_type);
    8888                void   InputDuplicate(int original_enum,int new_enum);
Note: See TracChangeset for help on using the changeset viewer.