Ignore:
Timestamp:
01/22/16 10:47:46 (9 years ago)
Author:
Eric.Larour
Message:

CHG: added precomputation of legendre polynomials.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp

    r19984 r19986  
    3838void SealevelriseAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
    3939
    40         int nl;
     40        int         nl;
    4141        IssmDouble* love_h=NULL;
    4242        IssmDouble* love_k=NULL;
     43       
     44        bool        legendre_precompute=false;
     45        IssmDouble* legendre_coefficients=NULL;
     46        int         M;
    4347
     48        /*some constant parameters: */
    4449        parameters->AddObject(iomodel->CopyConstantObject(SealevelriseReltolEnum));
    4550        parameters->AddObject(iomodel->CopyConstantObject(SealevelriseAbstolEnum));
     
    4853        parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
    4954        parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
     55        parameters->AddObject(iomodel->CopyConstantObject(SealevelriseLegendrePrecomputeEnum));
     56
    5057       
     58        /*love numbers: */
    5159        iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
    5260        iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
    53        
    5461        parameters->AddObject(new DoubleVecParam(SealevelriseLoveHEnum,love_h,nl));
    5562        parameters->AddObject(new DoubleVecParam(SealevelriseLoveKEnum,love_k,nl));
     63
     64        /*legendre coefficients: */
     65        iomodel->Constant(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
     66        if(legendre_precompute){
     67                iomodel->FetchData(&legendre_coefficients,&M,&nl,SealevelriseLoveKEnum);
     68                parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,M,nl));
     69        }
    5670
    5771        /*free ressources: */
    5872        xDelete<IssmDouble>(love_h);
    5973        xDelete<IssmDouble>(love_k);
     74        xDelete<IssmDouble>(legendre_coefficients);
    6075
    6176}/*}}}*/
Note: See TracChangeset for help on using the changeset viewer.