source:
issm/oecreview/Archive/19101-20495/ISSM-19489-19490.diff@
20498
Last change on this file since 20498 was 20498, checked in by , 9 years ago | |
---|---|
File size: 5.7 KB |
-
../trunk-jpl/m4/issm_options.m4
721 721 AC_SUBST([ADOLCLIB]) 722 722 fi 723 723 AM_CONDITIONAL([ADOLC], [test x$HAVE_ADOLC = xyes]) 724 AM_COND_IF(ADOLC,[CXXFLAGS+=" -std=c++11"]) 724 725 dnl }}} 725 726 dnl adolc-version{{{ 726 727 AC_ARG_WITH([adolc-version], -
../trunk-jpl/externalpackages/adolc/install-withampi.sh
4 4 #Some cleanup 5 5 rm -rf install src 6 6 7 git clone -b ampi git://git.mcs.anl.gov/adol-c.git src7 git clone https://gitlab.com/adol-c/adol-c.git src 8 8 #git reset --hard b254b2a001a1b7a024a9184cd087ae06eb975cad 9 9 10 10 #Compile ADOL-C -
../trunk-jpl/src/c/shared/Numerics/isnan.h
12 12 #endif 13 13 14 14 /*If include cmath instead of math, isnan on linux64 murdo does not work: */ 15 #include < math.h>15 #include <cmath> 16 16 17 17 template <class T> int xIsNan(const T& X) { 18 18 #ifdef _INTEL_WIN_ 19 19 return (X!=X)?1:0; 20 20 #else 21 return isnan(X);21 return std::isnan(X); 22 22 #endif 23 23 } 24 24 -
../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp
231 231 IssmDouble* adoubleEDFin=xNew<IssmDouble>(n*(n+1)); // packed inputs, i.e. matrix and right hand side 232 232 for(int i=0; i<n*n;i++)adoubleEDFin[i] =A[i]; // pack matrix 233 233 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_fct235 IssmPDouble* pdoubleEDFout=xNew<IssmPDouble>(n); // provide space to transfer outputs during call_ext_fct236 234 // call the wrapped solver through the registry entry we retrieve from parameters 237 235 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); 240 238 // for(int i=0; i<n; i++) {ADOLC_DUMP_MACRO(X[i]);} 241 239 xDelete(adoubleEDFin); 242 xDelete(pdoubleEDFin);243 xDelete(pdoubleEDFout);244 240 } 245 241 /*}}}*/ 246 242 #endif -
../trunk-jpl/src/c/cores/ad_core.cpp
115 115 /*Branch according to AD driver: */ 116 116 femmodel->parameters->FindParam(&driver,AutodiffDriverEnum); 117 117 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);121 118 122 119 if (strcmp(driver,"fos_forward")==0){ /*{{{*/ 123 120 … … 142 139 anEDF_for_solverx_p->fos_forward=EDF_fos_forward_for_solverx; 143 140 #endif 144 141 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);148 142 149 143 /*call driver: */ 150 144 fos_forward(my_rank,num_dependents,num_independents, 0, xp, tangentDir, theOutput, jacTimesTangentDir ); … … 189 183 #endif 190 184 // anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx; 191 185 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);195 186 196 187 /*seed matrix: */ 197 188 seed=xNewZeroInit<double>(num_independents,tangentDirNum); … … 251 242 anEDF_for_solverx_p->fos_reverse_iArr=fos_reverse_mumpsSolveEDF; 252 243 #endif 253 244 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);257 245 258 246 /*call driver: */ 259 247 fos_reverse(my_rank,num_dependents,num_independents, aWeightVector, weightVectorTimesJac ); … … 295 283 anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx; 296 284 #endif 297 285 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);301 286 302 287 /*seed matrix: */ 303 288 weights=xNewZeroInit<double>(weightNum,num_dependents); … … 330 315 } /*}}}*/ 331 316 else _error_("driver: " << driver << " not yet supported!"); 332 317 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);344 318 345 319 if(VerboseAutodiff())_printf0_(" end AD core\n"); 346 320
Note:
See TracBrowser
for help on using the repository browser.