Changeset 19490


Ignore:
Timestamp:
08/13/15 12:32:28 (10 years ago)
Author:
snarayan
Message:

Patches to use latest ADOL-C

Location:
issm/trunk-jpl
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/externalpackages/adolc/install-withampi.sh

    r17292 r19490  
    55rm -rf install src
    66
    7 git clone -b ampi git://git.mcs.anl.gov/adol-c.git src
     7git clone https://gitlab.com/adol-c/adol-c.git src
    88#git reset --hard b254b2a001a1b7a024a9184cd087ae06eb975cad
    99
  • issm/trunk-jpl/m4/issm_options.m4

    r19407 r19490  
    722722        fi
    723723        AM_CONDITIONAL([ADOLC], [test x$HAVE_ADOLC = xyes])
     724        AM_COND_IF(ADOLC,[CXXFLAGS+=" -std=c++11"])
    724725        dnl }}}
    725726        dnl adolc-version{{{
  • issm/trunk-jpl/src/c/cores/ad_core.cpp

    r19344 r19490  
    116116                        femmodel->parameters->FindParam(&driver,AutodiffDriverEnum);
    117117
    118                         /* these are always needed regardless of the interpreter */
    119                         anEDF_for_solverx_p->dp_x=xNew<double>(anEDF_for_solverx_p->max_n);
    120                         anEDF_for_solverx_p->dp_y=xNew<double>(anEDF_for_solverx_p->max_m);
    121118
    122119                        if (strcmp(driver,"fos_forward")==0){ /*{{{*/
     
    143140#endif
    144141
    145                                 /*allocate the space for the parameters to invoke the EDF fos_forward:*/
    146                                 anEDF_for_solverx_p->dp_X=xNew<double>(anEDF_for_solverx_p->max_n);
    147                                 anEDF_for_solverx_p->dp_Y=xNew<double>(anEDF_for_solverx_p->max_m);
    148142
    149143                                /*call driver: */
     
    190184                                // anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx;
    191185
    192                                 /*allocate the space for the parameters to invoke EDF fov_forward:*/
    193                                 anEDF_for_solverx_p->dpp_X=xNew<double>(anEDF_for_solverx_p->max_n, tangentDirNum);
    194                                 anEDF_for_solverx_p->dpp_Y=xNew<double>(anEDF_for_solverx_p->max_m, tangentDirNum);
    195186
    196187                                /*seed matrix: */
     
    252243#endif
    253244
    254                                 /*allocate the space for the parameters to invoke the EDF fos_reverse :*/
    255                                 anEDF_for_solverx_p->dp_U=xNew<double>(anEDF_for_solverx_p->max_m);
    256                                 anEDF_for_solverx_p->dp_Z=xNew<double>(anEDF_for_solverx_p->max_n);
    257245
    258246                                /*call driver: */
     
    296284                                #endif
    297285
    298                                 /*allocate the space for the parameters to invoke the EDF fos_reverse :*/
    299                                 anEDF_for_solverx_p->dpp_U=xNew<double>(weightNum,anEDF_for_solverx_p->max_m);
    300                                 anEDF_for_solverx_p->dpp_Z=xNew<double>(weightNum,anEDF_for_solverx_p->max_n);
    301286
    302287                                /*seed matrix: */
     
    331316                        else _error_("driver: " << driver << " not yet supported!");
    332317
    333                         /* delete the allocated space for the parameters:*/
    334                         xDelete(anEDF_for_solverx_p->dp_x);
    335                         xDelete(anEDF_for_solverx_p->dp_X);
    336                         xDelete(anEDF_for_solverx_p->dpp_X);
    337                         xDelete(anEDF_for_solverx_p->dp_y);
    338                         xDelete(anEDF_for_solverx_p->dp_Y);
    339                         xDelete(anEDF_for_solverx_p->dpp_Y);
    340                         xDelete(anEDF_for_solverx_p->dp_U);
    341                         xDelete(anEDF_for_solverx_p->dpp_U);
    342                         xDelete(anEDF_for_solverx_p->dp_Z);
    343                         xDelete(anEDF_for_solverx_p->dpp_Z);
    344318
    345319                        if(VerboseAutodiff())_printf0_("   end AD core\n");
  • issm/trunk-jpl/src/c/shared/Numerics/isnan.h

    r18125 r19490  
    1313
    1414/*If include cmath instead of math, isnan on linux64 murdo does not work: */
    15 #include <math.h>
     15#include <cmath>
    1616
    1717template <class T> int xIsNan(const T& X) {
     
    1919                return (X!=X)?1:0;
    2020#else
    21                 return isnan(X);
     21                return std::isnan(X);
    2222#endif
    2323}
  • issm/trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp

    r18521 r19490  
    232232        for(int i=0; i<n*n;i++)adoubleEDFin[i]    =A[i];      // pack matrix
    233233        for(int i=0; i<n;  i++)adoubleEDFin[i+n*n]=B[i];      // pack the right hand side
    234         IssmPDouble* pdoubleEDFin=xNew<IssmPDouble>(n*(n+1)); // provide space to transfer inputs during call_ext_fct
    235         IssmPDouble* pdoubleEDFout=xNew<IssmPDouble>(n);           // provide space to transfer outputs during call_ext_fct
    236234        // call the wrapped solver through the registry entry we retrieve from parameters
    237235        call_ext_fct(xDynamicCast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p,
    238                      n*(n+1), pdoubleEDFin, adoubleEDFin,
    239                      n, pdoubleEDFout,X);
     236                     n*(n+1), adoubleEDFin,
     237                     n, X);
    240238        // for(int i=0; i<n;  i++) {ADOLC_DUMP_MACRO(X[i]);}
    241239        xDelete(adoubleEDFin);
    242         xDelete(pdoubleEDFin);
    243         xDelete(pdoubleEDFout);
    244 }
    245 /*}}}*/
    246 #endif
     240}
     241/*}}}*/
     242#endif
Note: See TracChangeset for help on using the changeset viewer.