Changeset 22108


Ignore:
Timestamp:
09/19/17 13:16:19 (8 years ago)
Author:
Eric.Larour
Message:

CHG: ingtroducing new loop counter.

Location:
issm/branches/trunk-larour-NatGeoScience2016/src/c
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp

    r21759 r22108  
    8484        parameters->AddObject(iomodel->CopyConstantObject("md.slr.abstol",SealevelriseAbstolEnum));
    8585        parameters->AddObject(iomodel->CopyConstantObject("md.slr.maxiter",SealevelriseMaxiterEnum));
     86        parameters->AddObject(iomodel->CopyConstantObject("md.slr.loop_increment",SealevelriseLoopIncrementEnum));
    8687        parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum));
    8788        parameters->AddObject(iomodel->CopyConstantObject("md.slr.elastic",SealevelriseElasticEnum));
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.cpp

    r22106 r22108  
    24222422#endif
    24232423#ifdef _HAVE_SEALEVELRISE_
    2424 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius) { /*{{{*/
     2424void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop) { /*{{{*/
    24252425
    24262426        /*serialized vectors:*/
     
    24642464                        eustatic_cpu+=eustatic_cpu_e;
    24652465                }
    2466                 if(i%100==0)pSgi->Assemble();
     2466                if(i%loop==0)pSgi->Assemble();
    24672467        }
    24682468        if(VerboseConvergence())_printf0_("\n");
     
    24812481}
    24822482/*}}}*/
    2483 void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution){/*{{{*/
     2483void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution,int loop){/*{{{*/
    24842484
    24852485        /*serialized vectors:*/
     
    25172517                        element->SealevelriseNonEustatic(pSgo,Sg_old,latitude,longitude,radius,eartharea);
    25182518                }
    2519                 if(i%100==0)pSgo->Assemble();
     2519                if(i%loop==0)pSgo->Assemble();
    25202520        }
    25212521        if(verboseconvolution)if(VerboseConvergence())_printf_("\n");
     
    26062606}
    26072607/*}}}*/
    2608 void FemModel::SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){/*{{{*/
     2608void FemModel::SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop){/*{{{*/
    26092609
    26102610        /*serialized vectors:*/
     
    26412641                        element->SealevelriseGeodetic(pUp,pNorth,pEast,Sg,latitude,longitude,radius,xx,yy,zz,eartharea);
    26422642                }
    2643                 if(i%100==0){
     2643                if(i%loop==0){
    26442644                        pUp->Assemble();
    26452645                        pNorth->Assemble();
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.h

    r21759 r22108  
    126126                #endif
    127127                #ifdef _HAVE_SEALEVELRISE_
    128                 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
    129                 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution);
     128                void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop);
     129                void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop);
    130130                void SealevelriseRotationalFeedback(Vector<IssmDouble>* pSgo_rot, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
    131                 void SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz);
     131                void SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop);
    132132                IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg);
    133133                #endif
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core.cpp

    r21761 r22108  
    3636        IssmDouble          dt,steric_rate;
    3737        int                 frequency;
     38        int  loop;
    3839
    3940        /*Recover some parameters: */
     
    4344        femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
    4445        femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum);
     46        femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
    4547       
    4648        /*first, recover lat,long and radius vectors from vertices: */
     
    104106               
    105107                /*call the geodetic main modlule:*/
    106                 femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz);
     108                femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz,loop);
    107109                               
    108110                /*Now deal with steric ocean expansion by just shifting Sg by a spatial rate pattern : */
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_eustatic.cpp

    r21079 r22108  
    2222        IssmDouble *longitude = NULL;
    2323        IssmDouble *radius    = NULL;
     24        int         loop;
    2425
    2526        /*outputs:*/
     
    2829        /*recover parameters:*/
    2930        femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
     31        femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
    3032
    3133        /*first, recover lat,long and radius vectors from vertices: */
     
    3941
    4042        /*call the eustatic main module: */
    41         femmodel->SealevelriseEustatic(Sgi,&eustatic, latitude, longitude, radius); //this computes
     43        femmodel->SealevelriseEustatic(Sgi,&eustatic, latitude, longitude, radius,loop); //this computes
    4244
    4345        /*we need to average Sgi over the ocean: RHS term  4 in Eq.4 of Farrel and clarke. Only the elements can do that: */
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_noneustatic.cpp

    r21759 r22108  
    3737        IssmDouble          *radius    = NULL;
    3838        IssmDouble           eustatic;
     39        int                      loop;
    3940
    4041        /*Recover some parameters: */
     
    4344        femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum);
    4445        femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
     46        femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
    4547       
    4648        /*computational flag: */
     
    7577
    7678                /*call the non eustatic module: */
    77                 femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution);
     79                femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution,loop);
    7880       
    7981                /*assemble solution vector: */
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h

    r21756 r22108  
    793793        SealevelriseSpcthicknessEnum,
    794794        SealevelriseMaxiterEnum,
     795        SealevelriseLoopIncrementEnum,
    795796        SealevelriseReltolEnum,
    796797        SealevelriseAbstolEnum,
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp

    r21756 r22108  
    773773                case SealevelriseSpcthicknessEnum : return "SealevelriseSpcthickness";
    774774                case SealevelriseMaxiterEnum : return "SealevelriseMaxiter";
     775                case SealevelriseLoopIncrementEnum : return "SealevelriseLoopIncrement";
    775776                case SealevelriseReltolEnum : return "SealevelriseReltol";
    776777                case SealevelriseAbstolEnum : return "SealevelriseAbstol";
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp

    r21756 r22108  
    791791              else if (strcmp(name,"SealevelriseSpcthickness")==0) return SealevelriseSpcthicknessEnum;
    792792              else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
     793              else if (strcmp(name,"SealevelriseLoopIncrement")==0) return SealevelriseLoopIncrementEnum;
    793794              else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
    794795              else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum;
     
    874875              else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
    875876              else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
    876               else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Segment")==0) return SegmentEnum;
     880              if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
     881              else if (strcmp(name,"Segment")==0) return SegmentEnum;
    881882              else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
    882883              else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
     
    997998              else if (strcmp(name,"P2")==0) return P2Enum;
    998999              else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum;
    999               else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
     1003              if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
     1004              else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
    10041005              else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
    10051006              else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
Note: See TracChangeset for help on using the changeset viewer.