Changeset 25471


Ignore:
Timestamp:
08/25/20 14:24:03 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: some cleanup of AD stuff

Location:
issm/trunk-jpl/src/c/classes
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Cfdragcoeffabsgrad.cpp

    r25437 r25471  
    3131        this->weights_enum = UNDEF;
    3232        this->misfit=0;
    33         this->lock=0;
    3433        this->timepassedflag = false;
    35         this->last_time = 0.;
    36 
    3734}
    3835/*}}}*/
     
    4845
    4946        this->misfit=0;
    50         this->lock=0;
    5147}
    5248/*}}}*/
     
    5450        if(this->name)xDelete(this->name);
    5551        this->misfit=0;
    56         this->lock=0;
    5752}
    5853/*}}}*/
     
    6156        Cfdragcoeffabsgrad* mf = new Cfdragcoeffabsgrad(this->name,this->definitionenum, this->weights_enum,this->timepassedflag);
    6257        mf->misfit=this->misfit;
    63         mf->lock=this->lock;
    6458        return (Object*) mf;
    6559}
     
    10094/*}}}*/
    10195IssmDouble Cfdragcoeffabsgrad::Response(FemModel* femmodel){/*{{{*/
    102          /*diverse: */
    103          IssmDouble time;
    10496
    105          /*recover time parameters: */
    106                  int i;
    107                  IssmDouble J=0.;
    108                  IssmDouble J_sum=0.;
     97        /*recover parameters: */
     98        IssmDouble J=0.;
     99        IssmDouble J_sum=0.;
    109100
    110                  for(i=0;i<femmodel->elements->Size();i++){
    111                          Element* element=(Element*)femmodel->elements->GetObjectByOffset(i);
    112                          J+=this->Cfdragcoeffabsgrad_Calculation(element,weights_enum);
    113                  }
     101        for(int i=0;i<femmodel->elements->Size();i++){
     102                Element* element=(Element*)femmodel->elements->GetObjectByOffset(i);
     103                J+=this->Cfdragcoeffabsgrad_Calculation(element,weights_enum);
     104        }
    114105
    115                  ISSM_MPI_Allreduce ( (void*)&J,(void*)&J_sum,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,IssmComm::GetComm());
    116                  ISSM_MPI_Bcast(&J_sum,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
    117                  J=J_sum;
     106        ISSM_MPI_Allreduce ( (void*)&J,(void*)&J_sum,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,IssmComm::GetComm());
     107        ISSM_MPI_Bcast(&J_sum,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     108        J=J_sum;
    118109
    119                  timepassedflag = true;
    120                  return J;
    121  }
    122         /*}}}*/
     110        timepassedflag = true;
     111        return J;
     112}/*}}}*/
    123113IssmDouble Cfdragcoeffabsgrad::Cfdragcoeffabsgrad_Calculation(Element* element, int weights_enum){/*{{{*/
    124114
  • issm/trunk-jpl/src/c/classes/Cfdragcoeffabsgrad.h

    r22971 r25471  
    2121                int         weights_enum;
    2222                bool                    timepassedflag;
    23                 IssmDouble      last_time;
    2423               
    25                 int         lock; // if lock is on, we just return the value stored in "misfit".  this is used so we don't compute misfit past the final_time
    2624                IssmDouble  misfit; //value carried over in time.
    2725               
  • issm/trunk-jpl/src/c/classes/Cfsurfacelogvel.cpp

    r25446 r25471  
    3030        this->name = NULL;
    3131        this->misfit=0;
    32         this->lock=0;
    3332        this->datatime=0.;
    3433        this->timepassedflag = false;
    35         this->last_time=0.;
    3634
    3735}
     
    4846
    4947        this->misfit=0;
    50         this->lock=0;
    5148}
    5249/*}}}*/
     
    5451        if(this->name)xDelete(this->name);
    5552        this->misfit=0;
    56         this->lock=0;
    5753}
    5854/*}}}*/
     
    6157        Cfsurfacelogvel* mf = new Cfsurfacelogvel(this->name,this->definitionenum,this->datatime,this->timepassedflag);
    6258        mf->misfit=this->misfit;
    63         mf->lock=this->lock;
    6459        return (Object*) mf;
    6560}
     
    105100        IssmDouble time;
    106101        femmodel->parameters->FindParam(&time,TimeEnum);
    107         if(time < last_time) this->timepassedflag = false; //FIXME: do we really need this? looks like an old piece of code before copy
    108         this->last_time = time;
    109102
    110103        IssmDouble J=0.;
  • issm/trunk-jpl/src/c/classes/Cfsurfacelogvel.h

    r22612 r25471  
    2121                IssmDouble      datatime;
    2222                bool                    timepassedflag;
    23                 IssmDouble      last_time;
    2423               
    25                 int         lock; // if lock is on, we just return the value stored in "misfit".  this is used so we don't compute misfit past the final_time
    2624                IssmDouble  misfit; //value carried over in time.
    2725               
  • issm/trunk-jpl/src/c/classes/Cfsurfacesquare.cpp

    r25446 r25471  
    3333        this->weights_enum = UNDEF;
    3434        this->misfit=0;
    35         this->lock=0;
    3635        this->datatime=0.;
    3736        this->timepassedflag = false;
    38         this->last_time = 0.;
    39 
    4037}
    4138/*}}}*/
     
    5451
    5552        this->misfit=0;
    56         this->lock=0;
    5753}
    5854/*}}}*/
     
    6056        if(this->name)xDelete(this->name);
    6157        this->misfit=0;
    62         this->lock=0;
    6358}
    6459/*}}}*/
     
    6762        Cfsurfacesquare* mf = new Cfsurfacesquare(this->name,this->definitionenum, this->model_enum,this->observation_enum,this->weights_enum,this->datatime,this->timepassedflag);
    6863        mf->misfit=this->misfit;
    69         mf->lock=this->lock;
    7064        return (Object*) mf;
    7165}
     
    114108         /*recover time parameters: */
    115109         femmodel->parameters->FindParam(&time,TimeEnum);
    116          if(time < last_time) timepassedflag = false;
    117          last_time = time;
    118110
    119                  int i;
    120                  IssmDouble J=0.;
    121                  IssmDouble J_sum=0.;
     111         IssmDouble J=0.;
     112         IssmDouble J_sum=0.;
    122113
    123114         if(datatime<=time && !timepassedflag){
    124                  for(i=0;i<femmodel->elements->Size();i++){
     115                 for(int i=0;i<femmodel->elements->Size();i++){
    125116                         Element* element=(Element*)femmodel->elements->GetObjectByOffset(i);
    126117                         J+=this->Cfsurfacesquare_Calculation(element,model_enum,observation_enum,weights_enum);
     
    133124                 timepassedflag = true;
    134125                 return J;
    135         }
     126         }
    136127         else return J;
    137128 }
  • issm/trunk-jpl/src/c/classes/Cfsurfacesquare.h

    r22612 r25471  
    2626                IssmDouble      datatime;
    2727                bool                    timepassedflag;
    28                 IssmDouble      last_time;
    2928               
    30                 int         lock; // if lock is on, we just return the value stored in "misfit".  this is used so we don't compute misfit past the final_time
    3129                IssmDouble  misfit; //value carried over in time.
    3230               
  • issm/trunk-jpl/src/c/classes/Misfit.cpp

    r25379 r25471  
    229229
    230230                 /*If we are locked, return time average: */
    231                  if(this->lock)return misfit/(time-starttime);
     231                 if(this->lock) return misfit/(time-starttime);
    232232
    233233                 /*First, the global  model response: */
Note: See TracChangeset for help on using the changeset viewer.