Changeset 13268
- Timestamp:
- 09/05/12 14:47:20 (13 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 6 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
r13215 r13268 13 13 /*Model fields {{{1*/ 14 14 AutodiffIsautodiffEnum, 15 AutodiffDependentsEnum, 16 AutodiffNumDependentsEnum, 17 AutodiffIndependentsEnum, 18 AutodiffNumIndependentsEnum, 15 19 BalancethicknessSpcthicknessEnum, 16 20 BalancethicknessStabilizationEnum, -
issm/trunk-jpl/src/c/Makefile.am
r13220 r13268 429 429 ./modules/ModelProcessorx/Control/CreateParametersControl.cpp\ 430 430 ./modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp\ 431 ./modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp\ 431 432 ./modules/InputControlUpdatex/InputControlUpdatex.h\ 432 433 ./modules/InputControlUpdatex/InputControlUpdatex.cpp\ -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r13267 r13268 889 889 case 3: {//IssmDouble 890 890 GenericOption<IssmDouble>* option; 891 Issm PDouble value;891 IssmDouble value; 892 892 FetchData(&value,index+1); 893 893 option = new GenericOption<IssmDouble>(); -
issm/trunk-jpl/src/c/classes/IoModel.h
r12835 r13268 64 64 void LastIndex(int *pindex); 65 65 FILE* SetFilePointerToData(int* pcode,int* pvector_type, int data_enum); 66 #ifdef _HAVE_ADOLC_ 67 void FetchIndependentVariable(IssmDouble** pscalarmatrix,int* pM,int* pN,int data_enum); 68 #endif 66 69 }; 67 70 -
issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
r13216 r13268 18 18 19 19 case AutodiffIsautodiffEnum : return "AutodiffIsautodiff"; 20 case AutodiffDependentsEnum : return "AutodiffDependents"; 21 case AutodiffNumDependentsEnum : return "AutodiffNumDependents"; 22 case AutodiffIndependentsEnum : return "AutodiffIndependents"; 23 case AutodiffNumIndependentsEnum : return "AutodiffNumIndependents"; 20 24 case BalancethicknessSpcthicknessEnum : return "BalancethicknessSpcthickness"; 21 25 case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization"; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r13083 r13268 92 92 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum)); 93 93 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIssmbgradientsEnum)); 94 parameters->AddObject(iomodel->CopyConstantObject(AutodiffIsautodiffEnum)); 94 95 95 96 iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum); … … 145 146 #endif 146 147 148 #ifdef _HAVE_ADOLC_ 149 CreateParametersAutodiff(¶meters,iomodel,solution_type,analysis_type); 150 #endif 151 147 152 /*Go through all parameters, and convert units to SI: */ 148 153 parameters->UnitConversion(ExtToIuEnum); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h
r13216 r13268 23 23 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 24 24 void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 25 void CreateParametersAutodiff(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 25 26 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel); 26 27 -
issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
r13216 r13268 19 19 if(stage==1){ 20 20 if (strcmp(name,"AutodiffIsautodiff")==0) return AutodiffIsautodiffEnum; 21 else if (strcmp(name,"AutodiffDependents")==0) return AutodiffDependentsEnum; 22 else if (strcmp(name,"AutodiffNumDependents")==0) return AutodiffNumDependentsEnum; 23 else if (strcmp(name,"AutodiffIndependents")==0) return AutodiffIndependentsEnum; 24 else if (strcmp(name,"AutodiffNumIndependents")==0) return AutodiffNumIndependentsEnum; 21 25 else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum; 22 26 else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum; … … 134 138 else if (strcmp(name,"MeshX")==0) return MeshXEnum; 135 139 else if (strcmp(name,"MeshY")==0) return MeshYEnum; 136 else if (strcmp(name,"MeshZ")==0) return MeshZEnum; 140 else stage=2; 141 } 142 if(stage==2){ 143 if (strcmp(name,"MeshZ")==0) return MeshZEnum; 137 144 else if (strcmp(name,"MiscellaneousName")==0) return MiscellaneousNameEnum; 138 145 else if (strcmp(name,"PrognosticHydrostaticAdjustment")==0) return PrognosticHydrostaticAdjustmentEnum; 139 146 else if (strcmp(name,"PrognosticMinThickness")==0) return PrognosticMinThicknessEnum; 140 else stage=2; 141 } 142 if(stage==2){ 143 if (strcmp(name,"PrognosticPenaltyFactor")==0) return PrognosticPenaltyFactorEnum; 147 else if (strcmp(name,"PrognosticPenaltyFactor")==0) return PrognosticPenaltyFactorEnum; 144 148 else if (strcmp(name,"PrognosticSpcthickness")==0) return PrognosticSpcthicknessEnum; 145 149 else if (strcmp(name,"PrognosticStabilization")==0) return PrognosticStabilizationEnum; … … 257 261 else if (strcmp(name,"Parameters")==0) return ParametersEnum; 258 262 else if (strcmp(name,"Vertices")==0) return VerticesEnum; 259 else if (strcmp(name,"Results")==0) return ResultsEnum; 263 else stage=3; 264 } 265 if(stage==3){ 266 if (strcmp(name,"Results")==0) return ResultsEnum; 260 267 else if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum; 261 268 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; 262 269 else if (strcmp(name,"BoolParam")==0) return BoolParamEnum; 263 else stage=3; 264 } 265 if(stage==3){ 266 if (strcmp(name,"Contour")==0) return ContourEnum; 270 else if (strcmp(name,"Contour")==0) return ContourEnum; 267 271 else if (strcmp(name,"ControlInput")==0) return ControlInputEnum; 268 272 else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum; … … 380 384 else if (strcmp(name,"VzPicard")==0) return VzPicardEnum; 381 385 else if (strcmp(name,"VzStokes")==0) return VzStokesEnum; 382 else if (strcmp(name,"VxMesh")==0) return VxMeshEnum; 386 else stage=4; 387 } 388 if(stage==4){ 389 if (strcmp(name,"VxMesh")==0) return VxMeshEnum; 383 390 else if (strcmp(name,"VyMesh")==0) return VyMeshEnum; 384 391 else if (strcmp(name,"VzMesh")==0) return VzMeshEnum; 385 392 else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum; 386 else stage=4; 387 } 388 if(stage==4){ 389 if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum; 393 else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum; 390 394 else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum; 391 395 else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum; -
issm/trunk-jpl/src/c/solutions/issm.cpp
r13185 r13268 124 124 femmodel->parameters->AddObject(theAdolcEDF_p); 125 125 if(autodiff) trace_on(1); 126 #else 127 if(autodiff) _error_("ISSM was not compiled with ADOLC support, cannot carry out autodiff analysis!"); 126 128 #endif 127 129 -
issm/trunk-jpl/src/m/classes/autodiff.m
r13083 r13268 7 7 properties (SetAccess=public) 8 8 isautodiff = false; 9 dependents = {''}; 10 independents = {''}; 9 11 end 10 12 methods … … 25 27 function disp(obj) % {{{ 26 28 disp(sprintf(' automatic differentiation parameters:')); 27 28 29 fielddisplay(obj,'isautodiff','indicates if the automatic differentiation is activated'); 29 30 fielddisplay(obj,'dependents','list of dependent variables ; ex: {''Thickness'',''FrictionCoefficient''}'); 31 fielddisplay(obj,'independents','list of independent variables ; ex: {''IceVolume'',''MassFlux''}'); 30 32 end % }}} 31 33 function marshall(obj,fid) % {{{ 32 34 WriteData(fid,'object',obj,'fieldname','isautodiff','format','Boolean'); 35 36 %process dependent variables 37 num_dependents=numel(obj.dependents); 38 data=zeros(1,num_dependents); 39 for i=1:num_dependents, 40 data(i)=StringToEnum(obj.dependents{i}); 41 end 42 WriteData(fid,'data',data,'enum',AutodiffDependentsEnum(),'format','DoubleMat','mattype',3); 43 WriteData(fid,'data',num_dependents,'enum',AutodiffNumDependentsEnum(),'format','Integer'); 44 45 %process independent variables 46 num_independents=numel(obj.independents); 47 data=zeros(1,num_independents); 48 for i=1:num_independents, 49 data(i)=StringToEnum(obj.independents{i}); 50 end 51 WriteData(fid,'data',data,'enum',AutodiffIndependentsEnum(),'format','DoubleMat','mattype',3); 52 WriteData(fid,'data',num_independents,'enum',AutodiffNumIndependentsEnum(),'format','Integer'); 53 33 54 end % }}} 34 55 end -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r13215 r13268 19 19 return StringToEnum('AutodiffIsautodiff')[0] 20 20 21 def AutodiffDependentsEnum(): 22 """ 23 AUTODIFFDEPENDENTSENUM - Enum of AutodiffDependents 24 25 Usage: 26 macro=AutodiffDependentsEnum() 27 """ 28 29 return StringToEnum('AutodiffDependents')[0] 30 31 def AutodiffNumDependentsEnum(): 32 """ 33 AUTODIFFNUMDEPENDENTSENUM - Enum of AutodiffNumDependents 34 35 Usage: 36 macro=AutodiffNumDependentsEnum() 37 """ 38 39 return StringToEnum('AutodiffNumDependents')[0] 40 41 def AutodiffIndependentsEnum(): 42 """ 43 AUTODIFFINDEPENDENTSENUM - Enum of AutodiffIndependents 44 45 Usage: 46 macro=AutodiffIndependentsEnum() 47 """ 48 49 return StringToEnum('AutodiffIndependents')[0] 50 51 def AutodiffNumIndependentsEnum(): 52 """ 53 AUTODIFFNUMINDEPENDENTSENUM - Enum of AutodiffNumIndependents 54 55 Usage: 56 macro=AutodiffNumIndependentsEnum() 57 """ 58 59 return StringToEnum('AutodiffNumIndependents')[0] 60 21 61 def BalancethicknessSpcthicknessEnum(): 22 62 """ … … 4677 4717 """ 4678 4718 4679 return 4 664680 4719 return 470 4720 -
issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
r13215 r13268 9 9 % macro=MaximumNumberOfEnums() 10 10 11 macro=4 66;11 macro=470;
Note:
See TracChangeset
for help on using the changeset viewer.