Changeset 22000
- Timestamp:
- 08/24/17 14:29:30 (8 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/m4/analyses.m4
r21982 r22000 868 868 869 869 dnl }}} 870 dnl with-Meshdeformation{{{871 872 AC_ARG_WITH([Meshdeformation],873 874 AS_HELP_STRING([--with-Meshdeformation = YES], [compile with Meshdeformation capabilities (default is yes)]),875 876 [MESHDEFORMATION=$withval],[MESHDEFORMATION=yes])877 878 AC_MSG_CHECKING(for Meshdeformation capability compilation)879 880 881 HAVE_MESHDEFORMATION=no882 883 if test "x$MESHDEFORMATION" = "xyes"; then884 885 HAVE_MESHDEFORMATION=yes886 887 AC_DEFINE([_HAVE_MESHDEFORMATION_],[1],[with Meshdeformation capability])888 889 fi890 891 AM_CONDITIONAL([MESHDEFORMATION], [test x$HAVE_MESHDEFORMATION = xyes])892 893 AC_MSG_RESULT($HAVE_MESHDEFORMATION)894 895 dnl }}}896 870 dnl with-Levelset{{{ 897 871 -
issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
r21931 r22000 110 110 case EsaAnalysisEnum : return new EsaAnalysis(); 111 111 #endif 112 #ifdef _HAVE_LOVE_ 113 case LoveAnalysisEnum : return new LoveAnalysis(); 114 #endif 112 115 #ifdef _HAVE_LEVELSET_ 113 116 case LevelsetAnalysisEnum : return new LevelsetAnalysis(); -
issm/trunk-jpl/src/c/classes/Options/GenericOption.h
r20827 r22000 102 102 }; 103 103 104 #if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_) //We hook off this specific specialization when not running ADOLC, otherwise we get a redeclaration with the next specialization. 104 #if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_) 105 /*We hook off this specific specialization when not running ADOLC, otherwise we get a redeclaration with the next specialization*/ 105 106 template <> inline void GenericOption<IssmPDouble*>::Get(IssmPDouble** pvalue){ /*{{{*/ 106 107 -
issm/trunk-jpl/src/c/classes/Options/Options.cpp
r18521 r22000 79 79 _printf_("The dynamic_cast from Object* to Option* is failing.\n"); 80 80 _printf_("\n"); 81 _printf_("A quick qorkaround consists of using a C-like cast\n");81 _printf_("A quick workaround consists of using a C-like cast\n"); 82 82 _printf_("\n"); 83 83 _printf_("Open Options.cpp and change the dynamic_cast in Options::GetOption by a C-like cast\n"); … … 94 94 } 95 95 else{ 96 /*If the object is a Cell, recursive call to its options*/ 97 if(option->ObjectEnum()==OptionCellEnum){ 98 GenericOption<Options*>* celloption=(GenericOption<Options*>*)option; 99 return celloption->value->GetOption(name); 100 } 101 /*If the object is a Struct loop over its size and recursive call*/ 102 else if(option->ObjectEnum()==OptionStructEnum){ 103 for(int i=0;i<option->NumEl();i++){ 104 GenericOption<Options**>* structoption=(GenericOption<Options**>*)option; 105 _assert_(structoption->value[i]); 106 return structoption->value[i]->GetOption(name); 107 } 108 } 109 /*Else: not supported*/ 110 else{ 111 _error_("Cannot recover field \"" << name << "\" for an option of type " << EnumToStringx(option->ObjectEnum())); 112 } 96 _error_("Cannot recover field \"" << name << "\" for an option of type " << EnumToStringx(option->ObjectEnum())); 113 97 } 114 98 } -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r21977 r22000 953 953 OptionEnum, 954 954 GenericOptionEnum, 955 OptionCellEnum,956 OptionStructEnum,957 955 /*}}}*/ 958 956 /*Solutions and Analyses{{{ */ … … 1007 1005 LoveSolutionEnum, 1008 1006 LoveAnalysisEnum, 1009 MeshdeformationAnalysisEnum,1010 1007 LevelsetAnalysisEnum, 1011 1008 ExtrapolationAnalysisEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r21977 r22000 920 920 case OptionEnum : return "Option"; 921 921 case GenericOptionEnum : return "GenericOption"; 922 case OptionCellEnum : return "OptionCell";923 case OptionStructEnum : return "OptionStruct";924 922 case AdjointBalancethicknessAnalysisEnum : return "AdjointBalancethicknessAnalysis"; 925 923 case AdjointBalancethickness2AnalysisEnum : return "AdjointBalancethickness2Analysis"; … … 972 970 case LoveSolutionEnum : return "LoveSolution"; 973 971 case LoveAnalysisEnum : return "LoveAnalysis"; 974 case MeshdeformationAnalysisEnum : return "MeshdeformationAnalysis";975 972 case LevelsetAnalysisEnum : return "LevelsetAnalysis"; 976 973 case ExtrapolationAnalysisEnum : return "ExtrapolationAnalysis"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r21977 r22000 941 941 else if (strcmp(name,"Option")==0) return OptionEnum; 942 942 else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum; 943 else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;944 else if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;945 943 else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum; 946 944 else if (strcmp(name,"AdjointBalancethickness2Analysis")==0) return AdjointBalancethickness2AnalysisEnum; … … 993 991 else if (strcmp(name,"LoveSolution")==0) return LoveSolutionEnum; 994 992 else if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum; 995 else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;996 993 else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum; 997 994 else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum; 998 995 else if (strcmp(name,"Approximation")==0) return ApproximationEnum; 999 996 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 997 else if (strcmp(name,"SIAApproximation")==0) return SIAApproximationEnum; 998 else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum; 999 else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum; 1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"SIAApproximation")==0) return SIAApproximationEnum; 1004 else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum; 1005 else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum; 1006 else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum; 1003 if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum; 1007 1004 else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum; 1008 1005 else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum; -
issm/trunk-jpl/src/wrappers/matlab/io/FetchMatlabData.cpp
r21881 r22000 1093 1093 return(ochar); 1094 1094 }/*}}}*/ 1095 GenericOption<Options**>* OptionStructParse( char* name, const mxArray* prhs[]){ /*{{{*/1096 1097 int i;1098 char namei[161];1099 Option* option = NULL;1100 GenericOption<Options**> *ostruct = NULL;1101 const mwSize *ipt = NULL;1102 const mxArray *structi;1103 mwIndex sindex;1104 1105 /*check and parse the name */1106 ostruct=new GenericOption<Options**>();1107 ostruct->name =xNew<char>(strlen(name)+1);1108 memcpy(ostruct->name,name,(strlen(name)+1)*sizeof(char));1109 1110 /*check and parse the value */1111 if (!mxIsClass(prhs[0],"struct")){1112 _error_("Value of option \"" << ostruct->name << "\" must be class \"struct\", not class \"" << mxGetClassName(prhs[0]) <<"\".");1113 }1114 ostruct->numel=mxGetNumberOfElements(prhs[0]);1115 ostruct->ndims=mxGetNumberOfDimensions(prhs[0]);1116 ipt =mxGetDimensions(prhs[0]);1117 ostruct->size =xNew<int>(ostruct->ndims);1118 for (i=0; i<ostruct->ndims; i++) ostruct->size[i]=(int)ipt[i];1119 if (ostruct->numel) ostruct->value=xNew<Options*>(ostruct->numel);1120 1121 /*loop through and process each element of the struct array */1122 for (sindex=0; sindex<ostruct->numel; sindex++) {1123 ostruct->value[sindex]=new Options;1124 1125 /*loop through and process each field for the element */1126 for (i=0; i<mxGetNumberOfFields(prhs[0]); i++) {1127 sprintf(namei,"%s.%s",name,mxGetFieldNameByNumber(prhs[0],i));1128 structi=mxGetFieldByNumber(prhs[0],sindex,i);1129 1130 option=(Option*)OptionParse(namei,&structi);1131 ostruct->value[sindex]->AddObject((Object*)option);1132 option=NULL;1133 }1134 }1135 1136 return(ostruct);1137 }/*}}}*/1138 GenericOption<Options*>* OptionCellParse( char* name, const mxArray* prhs[]){ /*{{{*/1139 1140 int i;1141 int *dims;1142 char namei[161];1143 char cstr[81];1144 GenericOption<Options*> *ocell = NULL;1145 Option *option = NULL;1146 const mwSize *ipt = NULL;1147 const mxArray *celli;1148 mwIndex cindex;1149 1150 /*check and parse the name */1151 ocell=new GenericOption<Options*>();1152 ocell->name =xNew<char>(strlen(name)+1);1153 memcpy(ocell->name,name,(strlen(name)+1)*sizeof(char));1154 1155 /*check and parse the value */1156 if (!mxIsClass(prhs[0],"cell")){1157 _error_("Value of option \"" << ocell->name << "\" must be class \"cell\", not class \"" << mxGetClassName(prhs[0]) <<"\".");1158 }1159 1160 ocell->numel=mxGetNumberOfElements(prhs[0]);1161 ocell->ndims=mxGetNumberOfDimensions(prhs[0]);1162 ipt =mxGetDimensions(prhs[0]);1163 ocell->size =xNew<int>(ocell->ndims);1164 for (i=0; i<ocell->ndims; i++) ocell->size[i]=(int)ipt[i];1165 ocell->value=new Options;1166 1167 /*loop through and process each element of the cell array */1168 dims=xNew<int>(ocell->ndims);1169 for (cindex=0; cindex<ocell->numel; cindex++) {1170 ColumnWiseDimsFromIndex(dims,(int)cindex,ocell->size,ocell->ndims);1171 StringFromDims(cstr,dims,ocell->ndims);1172 #ifdef _INTEL_WIN_1173 _snprintf(namei,161,"%s%s",name,cstr);1174 #else1175 snprintf(namei,161,"%s%s",name,cstr);1176 #endif1177 celli=mxGetCell(prhs[0],cindex);1178 1179 option=(Option*)OptionParse(namei,&celli);1180 ocell->value->AddObject((Object*)option);1181 option=NULL;1182 }1183 xDelete<int>(dims);1184 1185 return(ocell);1186 }/*}}}*/1187 1095 Option* OptionParse(char* name, const mxArray* prhs[]){ /*{{{*/ 1188 1096 … … 1199 1107 else if(mxIsClass(prhs[0],"char")) 1200 1108 option=(Option*)OptionCharParse(name,prhs); 1201 else if(mxIsClass(prhs[0],"struct"))1202 option=(Option*)OptionStructParse(name,prhs);1203 else if(mxIsClass(prhs[0],"cell"))1204 option=(Option*)OptionCellParse(name,prhs);1205 1109 else { 1206 _printf0_(" Converting value of option \"" << name << "\" from unrecognized class \"" << mxGetClassName(prhs[0]) << "\" to class \"" << "struct" << "\".\n"); 1207 if (!mexCallMATLAB(1,lhs,1,(mxArray**)prhs,"struct")) { 1208 option=(Option*)OptionStructParse(name,(const mxArray**)lhs); 1209 mxDestroyArray(lhs[0]); 1210 } 1211 else _error_("Second argument value of option \""<< name <<"\" is of unrecognized class \""<< mxGetClassName(prhs[0]) <<"\"."); 1110 _error_("Second argument value of option \""<< name <<"\" is of unrecognized class \""<< mxGetClassName(prhs[0]) <<"\"."); 1212 1111 } 1213 1112 -
issm/trunk-jpl/src/wrappers/matlab/io/matlabio.h
r21070 r22000 59 59 GenericOption<bool*>* OptionLogicalParse( char* name, const mxArray* prhs[]); 60 60 GenericOption<char*>* OptionCharParse( char* name, const mxArray* prhs[]); 61 GenericOption<Options**>* OptionStructParse( char* name, const mxArray* prhs[]);62 GenericOption<Options*>* OptionCellParse( char* name, const mxArray* prhs[]);63 61 64 62 mxArray* mxGetAssignedField(const mxArray* pmxa_array,int number, const char* field);
Note:
See TracChangeset
for help on using the changeset viewer.