Changeset 13516
- Timestamp:
- 10/03/12 09:09:23 (12 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 4 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/configs/config-macosx64-larour-bothapis.sh
r12157 r13516 12 12 --with-python-dir=$ISSM_DIR/externalpackages/python/install\ 13 13 --with-python-version=$pythonversion \ 14 --with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/ Python.framework/Versions/$pythonversion/lib/python$pythonversion/site-packages/numpy/core/include/numpy\14 --with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/Library/Frameworks/Python.framework/Versions/$pythonversion/lib/python$pythonversion/site-packages/numpy/core/include/numpy\ 15 15 --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \ 16 16 --with-mpi-include=$ISSM_DIR/externalpackages/mpich2/install/include \ -
issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
r13505 r13516 31 31 AutodiffFosReverseIndexEnum, 32 32 AutodiffMassFluxSegmentsPresentEnum, 33 AutodiffKeepEnum, 33 34 BalancethicknessSpcthicknessEnum, 34 35 BalancethicknessStabilizationEnum, -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r13505 r13516 212 212 int numberofvertices; 213 213 int dummy; 214 char* driver=NULL;214 bool keep=false; 215 215 216 216 … … 226 226 #ifdef _HAVE_ADOLC_ 227 227 228 /*Start the trace: {{{ 229 * to do so, figure out what kind of driver we are running. Then, according to ADOLC documentation, 230 * we'll need to activate keep. 231 * 232 * From ADOLC userdoc: 233 * The optional integer argument keep of trace on determines whether the numerical values of all active variables are 234 * recorded in a buffered temporary array or file called the taylor stack. This option takes effect if keep = 1 and 235 * prepares the scene for an immediately following gradient evaluation by a call to a routine implementing the reverse 236 * mode as described in the Section 4 and Section 5. 237 * 238 */ 239 this->FetchData(&driver,AutodiffDriverEnum); 240 if (strlen(driver)<=3){ 241 /*there is no "_reverse" string within the driver string: */ 242 if(VerboseAutodiff())_pprintLine_(" trace activated with keep off"); 243 trace_on(1); 244 } 245 else{ 246 if (strncmp((const char*)(driver+3),"_reverse",8)==0){ 247 if(VerboseAutodiff())_pprintLine_(" trace activated with keep on"); 248 trace_on(1,1); 249 } 250 else{ 251 if(VerboseAutodiff())_pprintLine_(" trace activated with keep off"); 252 trace_on(1); 253 } 254 } 255 xDelete<char>(driver); 228 /*Start trace: {{{*/ 229 this->FetchData(&keep,AutodiffKeepEnum); 230 if(keep)trace_on(1,1); 231 else trace_on(1); 232 256 233 /*}}}*/ 257 234 /*build dataset made of independent objects: {{{*/ -
issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
r13506 r13516 36 36 case AutodiffFosReverseIndexEnum : return "AutodiffFosReverseIndex"; 37 37 case AutodiffMassFluxSegmentsPresentEnum : return "AutodiffMassFluxSegmentsPresent"; 38 case AutodiffKeepEnum : return "AutodiffKeep"; 38 39 case BalancethicknessSpcthicknessEnum : return "BalancethicknessSpcthickness"; 39 40 case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization"; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
r13509 r13516 38 38 39 39 if(autodiff_analysis){ 40 41 /*Copy some parameters from IoModel to parameters dataset: */ 42 parameters->AddObject(iomodel->CopyConstantObject(AutodiffKeepEnum)); 40 43 41 /*retrieve driver: */44 /*retrieve driver: {{{*/ 42 45 iomodel->Constant(&autodiff_driver,AutodiffDriverEnum); 43 46 parameters->AddObject(iomodel->CopyConstantObject(AutodiffDriverEnum)); … … 55 58 xDelete<int>(indices); 56 59 } 57 60 /*}}}*/ 58 61 /*Deal with dependents first: {{{*/ 59 62 iomodel->Constant(&num_dependent_objects,AutodiffNumDependentObjectsEnum); -
issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
r13506 r13516 37 37 else if (strcmp(name,"AutodiffFosReverseIndex")==0) return AutodiffFosReverseIndexEnum; 38 38 else if (strcmp(name,"AutodiffMassFluxSegmentsPresent")==0) return AutodiffMassFluxSegmentsPresentEnum; 39 else if (strcmp(name,"AutodiffKeep")==0) return AutodiffKeepEnum; 39 40 else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum; 40 41 else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum; … … 137 138 else if (strcmp(name,"MeshDimension")==0) return MeshDimensionEnum; 138 139 else if (strcmp(name,"MeshEdges")==0) return MeshEdgesEnum; 139 else if (strcmp(name,"MeshElementconnectivity")==0) return MeshElementconnectivityEnum;140 140 else stage=2; 141 141 } 142 142 if(stage==2){ 143 if (strcmp(name,"MeshElementonbed")==0) return MeshElementonbedEnum; 143 if (strcmp(name,"MeshElementconnectivity")==0) return MeshElementconnectivityEnum; 144 else if (strcmp(name,"MeshElementonbed")==0) return MeshElementonbedEnum; 144 145 else if (strcmp(name,"MeshElementonsurface")==0) return MeshElementonsurfaceEnum; 145 146 else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum; … … 260 261 else if (strcmp(name,"SurfaceSlopeAnalysis")==0) return SurfaceSlopeAnalysisEnum; 261 262 else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum; 262 else if (strcmp(name,"SurfaceSlopeXAnalysis")==0) return SurfaceSlopeXAnalysisEnum;263 263 else stage=3; 264 264 } 265 265 if(stage==3){ 266 if (strcmp(name,"SurfaceSlopeYAnalysis")==0) return SurfaceSlopeYAnalysisEnum; 266 if (strcmp(name,"SurfaceSlopeXAnalysis")==0) return SurfaceSlopeXAnalysisEnum; 267 else if (strcmp(name,"SurfaceSlopeYAnalysis")==0) return SurfaceSlopeYAnalysisEnum; 267 268 else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; 268 269 else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum; … … 383 384 else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum; 384 385 else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum; 385 else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;386 386 else stage=4; 387 387 } 388 388 if(stage==4){ 389 if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum; 389 if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum; 390 else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum; 390 391 else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum; 391 392 else if (strcmp(name,"Temperature")==0) return TemperatureEnum; … … 506 507 else if (strcmp(name,"Verbose")==0) return VerboseEnum; 507 508 else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum; 508 else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;509 509 else stage=5; 510 510 } 511 511 if(stage==5){ 512 if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum; 512 if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum; 513 else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum; 513 514 else if (strcmp(name,"XY")==0) return XYEnum; 514 515 else if (strcmp(name,"XYZP")==0) return XYZPEnum; -
issm/trunk-jpl/src/m/classes/autodiff.m
r13509 r13516 58 58 if ~obj.isautodiff, 59 59 WriteData(fid,'data',false,'enum',AutodiffMassFluxSegmentsPresentEnum,'format','Boolean'); 60 WriteData(fid,'data',false,'enum',AutodiffKeepEnum,'format','Boolean'); 60 61 return; 61 62 end … … 180 181 WriteData(fid,'data',flag,'enum',AutodiffMassFluxSegmentsPresentEnum,'format','Boolean'); 181 182 %}}} 183 %deal with trace keep on: {{{ 184 keep=false; 185 186 %From ADOLC userdoc: 187 % The optional integer argument keep of trace on determines whether the numerical values of all active variables are 188 % recorded in a buffered temporary array or file called the taylor stack. This option takes effect if keep = 1 and 189 % prepares the scene for an immediately following gradient evaluation by a call to a routine implementing the reverse 190 % mode as described in the Section 4 and Section 5. 191 % 192 193 if length(obj.driver)<=3, 194 keep=false; %there is no "_reverse" string within the driver string: 195 else 196 if strncmpi(obj.driver(4:end),'_reverse',8), 197 keep=true; 198 else 199 keep=false; 200 end 201 end 202 WriteData(fid,'data',keep,'enum',AutodiffKeepEnum,'format','Boolean'); 203 %}}} 182 204 183 205 end % }}} -
issm/trunk-jpl/src/m/classes/autodiff.py
r13490 r13516 40 40 WriteData(fid,'object',self,'fieldname','isautodiff','format','Boolean') 41 41 WriteData(fid,'data',False,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean'); 42 WriteData(fid,'data',False,'enum',AutodiffKeepEnum(),'format','Boolean'); 42 43 # }}} 43 44 -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r13505 r13516 199 199 return StringToEnum('AutodiffMassFluxSegmentsPresent')[0] 200 200 201 def AutodiffKeepEnum(): 202 """ 203 AUTODIFFKEEPENUM - Enum of AutodiffKeep 204 205 Usage: 206 macro=AutodiffKeepEnum() 207 """ 208 209 return StringToEnum('AutodiffKeep')[0] 210 201 211 def BalancethicknessSpcthicknessEnum(): 202 212 """ … … 4937 4947 """ 4938 4948 4939 return 49 24940 4949 return 493 4950 -
issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
r13505 r13516 9 9 % macro=MaximumNumberOfEnums() 10 10 11 macro=49 2;11 macro=493; -
issm/trunk-jpl/test/NightlyRun/test3019.m
r13508 r13516 1 %test reverse scalar vs forward vectorial drivers in ADOLC, using the test3009 setup, equivalent to test109 setup. 1 2 md=triangle(model,'../Exp/Square.exp',100000); 2 3 md=setmask(md,'all','');
Note:
See TracChangeset
for help on using the changeset viewer.