Changeset 14951
- Timestamp:
- 05/07/13 16:19:58 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 9 deleted
- 46 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Container/Elements.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/Elements/Element.h" 22 #include "../classes/objects/ExternalResults/GenericExternalResult.h" 23 #include "../classes/Patch.h" 24 #include "../classes/toolkits/Vector.h" 21 25 22 26 using namespace std; -
issm/trunk-jpl/src/c/Container/Inputs.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/Inputs/Input.h" 21 22 22 23 using namespace std; -
issm/trunk-jpl/src/c/Container/Inputs.h
r14915 r14951 3 3 4 4 /*forward declarations */ 5 class Materials;6 5 class Parameters; 7 class Elements;8 class Vertices;9 class Loads;10 class Nodes;11 6 class DataSet; 12 7 class Input; 13 class Node;14 class GaussTria;15 class GaussPenta;16 8 #include "../shared/Numerics/types.h" 17 9 -
issm/trunk-jpl/src/c/Container/Loads.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/Loads/Load.h" 21 22 22 23 using namespace std; -
issm/trunk-jpl/src/c/Container/Materials.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/Materials/Material.h" 21 22 22 23 using namespace std; -
issm/trunk-jpl/src/c/Container/Nodes.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/Node.h" 21 22 22 23 using namespace std; -
issm/trunk-jpl/src/c/Container/Parameters.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/objects.h" 21 22 22 23 using namespace std; -
issm/trunk-jpl/src/c/Container/Results.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/ExternalResults/ExternalResult.h" 22 #include "../classes/objects/ElementResults/ElementResult.h" 21 23 22 24 using namespace std; -
issm/trunk-jpl/src/c/Container/Vertices.cpp
r14917 r14951 19 19 #include "../shared/shared.h" 20 20 #include "../EnumDefinitions/EnumDefinitions.h" 21 #include "../classes/objects/Vertex.h" 21 22 22 23 using namespace std; -
issm/trunk-jpl/src/c/Makefile.am
r14950 r14951 216 216 ./shared/Elements/Paterson.cpp\ 217 217 ./shared/Elements/Arrhenius.cpp\ 218 ./shared/Elements/GetVerticesCoordinates.cpp\219 ./shared/Elements/GetLocalDofList.cpp\220 ./shared/Elements/GetGlobalDofList.cpp\221 ./shared/Elements/GetNumberOfDofs.cpp\222 218 ./shared/Elements/PrintArrays.cpp\ 223 219 ./shared/Elements/PddSurfaceMassBalance.cpp\ … … 487 483 ./modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp \ 488 484 ./modules/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp \ 489 ./shared/Elements/CoordinateSystemTransform.cpp\490 ./shared/Elements/TransformLoadVectorCoord.cpp \491 ./shared/Elements/TransformStiffnessMatrixCoord.cpp \492 ./shared/Elements/TransformInvStiffnessMatrixCoord.cpp \493 ./shared/Elements/TransformSolutionCoord.cpp\494 485 ./solutions/diagnostic_core.cpp\ 495 486 ./solvers/solver_stokescoupling_nonlinear.cpp -
issm/trunk-jpl/src/c/classes/objects/Elements/Element.h
r14807 r14951 11 11 /*{{{*/ 12 12 #include "../Object.h" 13 #include "../../Update.h" 13 14 14 15 class DataSet; -
issm/trunk-jpl/src/c/classes/objects/Elements/PentaRef.h
r13623 r14951 7 7 #define _PENTAREF_H_ 8 8 9 class GaussPenta; 9 10 class PentaRef{ 10 11 -
issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.h
r14917 r14951 10 10 #include "./Input.h" 11 11 class GaussTria; 12 class GaussPenta; 12 13 /*}}}*/ 13 14 -
issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.h
r14917 r14951 10 10 #include "./Input.h" 11 11 class GaussTria; 12 class GaussPenta; 12 13 /*}}}*/ 13 14 -
issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.h
r14917 r14951 10 10 #include "./Input.h" 11 11 class GaussTria; 12 class GaussPenta; 12 13 /*}}}*/ 13 14 -
issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.h
r14917 r14951 10 10 #include "./Input.h" 11 11 class GaussTria; 12 class GaussPenta; 12 13 /*}}}*/ 13 14 -
issm/trunk-jpl/src/c/classes/objects/Inputs/Input.h
r14809 r14951 13 13 class GaussTria; 14 14 class Parameters; 15 class GaussPenta; 15 16 /*}}}*/ 16 17 -
issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.h
r14917 r14951 10 10 #include "./Input.h" 11 11 class GaussTria; 12 class GaussPenta; 12 13 /*}}}*/ 13 14 -
issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.h
r14809 r14951 11 11 #include "../Elements/PentaRef.h" 12 12 class GaussTria; 13 class GaussPenta; 13 14 /*}}}*/ 14 15 -
issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.h
r14809 r14951 11 11 class GaussTria; 12 12 class Parameters; 13 class GaussPenta; 13 14 /*}}}*/ 14 15 -
issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.h
r14809 r14951 11 11 #include "../Elements/TriaRef.h" 12 12 class GaussTria; 13 class GaussPenta; 13 14 /*}}}*/ 14 15 -
issm/trunk-jpl/src/c/classes/objects/Loads/Friction.h
r13623 r14951 10 10 class Inputs; 11 11 class Matpar; 12 class GaussPenta; 13 class GaussTria; 12 14 /*}}}*/ 13 15 -
issm/trunk-jpl/src/c/classes/objects/Loads/Load.h
r13925 r14951 15 15 16 16 #include "../Object.h" 17 #include "../../Update.h" 17 18 #include "../../../toolkits/toolkits.h" 18 19 #include "../../../Container/Container.h" -
issm/trunk-jpl/src/c/classes/objects/Materials/Material.h
r13623 r14951 10 10 class Object; 11 11 #include "../Object.h" 12 #include "../../Update.h" 12 13 #include "../../../toolkits/toolkits.h" 13 14 /*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Node.cpp
r14917 r14951 955 955 } 956 956 /*}}}*/ 957 958 959 /*Methods inherent to Node: */ 960 int* GetLocalDofList(Node** nodes,int numnodes,int setenum,int approximation){ /*{{{*/ 961 962 int i,j,count,numdof,numgdof; 963 int* ndof_list=NULL; 964 int* ngdof_list_cumulative=NULL; 965 int *doflist = NULL; 966 967 if(numnodes){ 968 /*allocate: */ 969 ndof_list=xNew<int>(numnodes); 970 ngdof_list_cumulative=xNew<int>(numnodes); 971 972 /*Get number of dofs per node, and total for this given set*/ 973 numdof=0; 974 numgdof=0; 975 for(i=0;i<numnodes;i++){ 976 977 /*Cumulative list= number of dofs before node i*/ 978 ngdof_list_cumulative[i]=numgdof; 979 980 /*Number of dofs for node i for given set and for the g set*/ 981 ndof_list[i]=nodes[i]->GetNumberOfDofs(approximation,setenum); 982 numgdof +=nodes[i]->GetNumberOfDofs(approximation,GsetEnum); 983 numdof +=ndof_list[i]; 984 } 985 986 if(numdof){ 987 /*Allocate: */ 988 doflist=xNew<int>(numdof); 989 990 /*Populate: */ 991 count=0; 992 for(i=0;i<numnodes;i++){ 993 nodes[i]->GetLocalDofList(&doflist[count],approximation,setenum); 994 count+=ndof_list[i]; 995 } 996 997 /*We now have something like: [0 1 0 2 1 2]. Offset by gsize, to get something like: [0 1 2 4 6 7]:*/ 998 count=0; 999 for(i=0;i<numnodes;i++){ 1000 for(j=0;j<ndof_list[i];j++){ 1001 doflist[count+j]+=ngdof_list_cumulative[i]; 1002 } 1003 count+=ndof_list[i]; 1004 } 1005 } 1006 else doflist=NULL; 1007 } 1008 1009 /*Free ressources:*/ 1010 xDelete<int>(ndof_list); 1011 xDelete<int>(ngdof_list_cumulative); 1012 1013 /*CLean-up and return*/ 1014 return doflist; 1015 } 1016 /*}}}*/ 1017 int* GetGlobalDofList(Node** nodes,int numnodes,int setenum,int approximation){/*{{{*/ 1018 1019 1020 int i,numdof,count; 1021 int* ndof_list=NULL; 1022 int *doflist = NULL; 1023 1024 if(numnodes){ 1025 1026 /*Allocate:*/ 1027 ndof_list=xNew<int>(numnodes); 1028 1029 /*First, figure out size of doflist: */ 1030 numdof=0; 1031 for(i=0;i<numnodes;i++){ 1032 ndof_list[i]=nodes[i]->GetNumberOfDofs(approximation,setenum); 1033 numdof+=ndof_list[i]; 1034 } 1035 1036 if(numdof){ 1037 /*Allocate: */ 1038 doflist=xNew<int>(numdof); 1039 1040 /*Populate: */ 1041 count=0; 1042 for(i=0;i<numnodes;i++){ 1043 nodes[i]->GetDofList(&doflist[count],approximation,setenum); 1044 count+=ndof_list[i]; 1045 } 1046 } 1047 else doflist=NULL; 1048 } 1049 /*Free ressources:*/ 1050 xDelete<int>(ndof_list); 1051 1052 return doflist; 1053 } 1054 /*}}}*/ 1055 int GetNumberOfDofs(Node** nodes,int numnodes,int setenum,int approximation){/*{{{*/ 1056 1057 1058 /*output: */ 1059 int numberofdofs=0; 1060 1061 for(int i=0;i<numnodes;i++){ 1062 numberofdofs+=nodes[i]->GetNumberOfDofs(approximation,setenum); 1063 } 1064 1065 return numberofdofs; 1066 } 1067 /*}}}*/ 1068 #ifdef _HAVE_DIAGNOSTIC_ 1069 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum){/*{{{*/ 1070 1071 1072 int* cs_array=NULL; 1073 1074 /*All nodes have the same Coordinate System*/ 1075 cs_array=xNew<int>(numnodes); 1076 for(int i=0;i<numnodes;i++) cs_array[i]=cs_enum; 1077 1078 /*Call core*/ 1079 TransformInvStiffnessMatrixCoord(Ke,nodes,numnodes,cs_array); 1080 1081 /*Clean-up*/ 1082 xDelete<int>(cs_array); 1083 } 1084 /*}}}*/ 1085 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array){/*{{{*/ 1086 1087 1088 int i,j; 1089 int numdofs = 0; 1090 IssmDouble *transform = NULL; 1091 IssmDouble *values = NULL; 1092 1093 /*Get total number of dofs*/ 1094 for(i=0;i<numnodes;i++){ 1095 switch(cs_array[i]){ 1096 case XYEnum: numdofs+=2; break; 1097 case XYZPEnum: numdofs+=4; break; 1098 default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet"); 1099 } 1100 } 1101 1102 /*Copy current stiffness matrix*/ 1103 values=xNew<IssmDouble>(Ke->nrows*Ke->ncols); 1104 for(i=0;i<Ke->nrows;i++) for(j=0;j<Ke->ncols;j++) values[i*Ke->ncols+j]=Ke->values[i*Ke->ncols+j]; 1105 1106 /*Get Coordinate Systems transform matrix*/ 1107 CoordinateSystemTransform(&transform,nodes,numnodes,cs_array); 1108 1109 /*Transform matrix: R*Ke*R^T */ 1110 TripleMultiply(transform,numdofs,numdofs,0, 1111 values,Ke->nrows,Ke->ncols,0, 1112 transform,numdofs,numdofs,1, 1113 &Ke->values[0],0); 1114 1115 /*Free Matrix*/ 1116 xDelete<IssmDouble>(transform); 1117 xDelete<IssmDouble>(values); 1118 } 1119 /*}}}*/ 1120 void TransformLoadVectorCoord(ElementVector* pe,Node** nodes,int numnodes,int cs_enum){/*{{{*/ 1121 1122 int* cs_array=NULL; 1123 1124 /*All nodes have the same Coordinate System*/ 1125 cs_array=xNew<int>(numnodes); 1126 for(int i=0;i<numnodes;i++) cs_array[i]=cs_enum; 1127 1128 /*Call core*/ 1129 TransformLoadVectorCoord(pe,nodes,numnodes,cs_array); 1130 1131 /*Clean-up*/ 1132 xDelete<int>(cs_array); 1133 } 1134 /*}}}*/ 1135 void TransformLoadVectorCoord(ElementVector* pe,Node** nodes,int numnodes,int* cs_array){/*{{{*/ 1136 1137 1138 int i; 1139 int numdofs = 0; 1140 IssmDouble *transform = NULL; 1141 IssmDouble *values = NULL; 1142 1143 /*Get total number of dofs*/ 1144 for(i=0;i<numnodes;i++){ 1145 switch(cs_array[i]){ 1146 case XYEnum: numdofs+=2; break; 1147 case XYZPEnum: numdofs+=4; break; 1148 default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet"); 1149 } 1150 } 1151 1152 /*Copy current load vector*/ 1153 values=xNew<IssmDouble>(pe->nrows); 1154 for(i=0;i<pe->nrows;i++) values[i]=pe->values[i]; 1155 1156 /*Get Coordinate Systems transform matrix*/ 1157 CoordinateSystemTransform(&transform,nodes,numnodes,cs_array); 1158 1159 /*Transform matrix: R^T*pe */ 1160 MatrixMultiply(transform,numdofs,numdofs,1, 1161 values,pe->nrows,1,0, 1162 &pe->values[0],0); 1163 1164 /*Free Matrices*/ 1165 xDelete<IssmDouble>(transform); 1166 xDelete<IssmDouble>(values); 1167 } 1168 /*}}}*/ 1169 void TransformSolutionCoord(IssmDouble* solution,Node** nodes,int numnodes,int cs_enum){/*{{{*/ 1170 1171 1172 int* cs_array=NULL; 1173 1174 /*All nodes have the same Coordinate System*/ 1175 cs_array=xNew<int>(numnodes); 1176 for(int i=0;i<numnodes;i++) cs_array[i]=cs_enum; 1177 1178 /*Call core*/ 1179 TransformSolutionCoord(solution,nodes,numnodes,cs_array); 1180 1181 /*Clean-up*/ 1182 xDelete<int>(cs_array); 1183 } 1184 /*}}}*/ 1185 void TransformSolutionCoord(IssmDouble* solution,Node** nodes,int numnodes,int* cs_array){/*{{{*/ 1186 1187 1188 int i; 1189 int numdofs = 0; 1190 IssmDouble *transform = NULL; 1191 IssmDouble *values = NULL; 1192 1193 /*Get total number of dofs*/ 1194 for(i=0;i<numnodes;i++){ 1195 switch(cs_array[i]){ 1196 case XYEnum: numdofs+=2; break; 1197 case XYZPEnum: numdofs+=4; break; 1198 default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet"); 1199 } 1200 } 1201 1202 /*Copy current solution vector*/ 1203 values=xNew<IssmDouble>(numdofs); 1204 for(i=0;i<numdofs;i++) values[i]=solution[i]; 1205 1206 /*Get Coordinate Systems transform matrix*/ 1207 CoordinateSystemTransform(&transform,nodes,numnodes,cs_array); 1208 1209 /*Transform matrix: R*U */ 1210 MatrixMultiply(transform,numdofs,numdofs,0, 1211 values,numdofs,1,0, 1212 &solution[0],0); 1213 1214 /*Free Matrices*/ 1215 xDelete<IssmDouble>(transform); 1216 xDelete<IssmDouble>(values); 1217 } 1218 /*}}}*/ 1219 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum){/*{{{*/ 1220 1221 1222 int* cs_array=NULL; 1223 1224 /*All nodes have the same Coordinate System*/ 1225 cs_array=xNew<int>(numnodes); 1226 for(int i=0;i<numnodes;i++) cs_array[i]=cs_enum; 1227 1228 /*Call core*/ 1229 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,cs_array); 1230 1231 /*Clean-up*/ 1232 xDelete<int>(cs_array); 1233 } 1234 /*}}}*/ 1235 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array){/*{{{*/ 1236 1237 1238 int i,j; 1239 int numdofs = 0; 1240 IssmDouble *transform = NULL; 1241 IssmDouble *values = NULL; 1242 1243 /*Get total number of dofs*/ 1244 for(i=0;i<numnodes;i++){ 1245 switch(cs_array[i]){ 1246 case XYEnum: numdofs+=2; break; 1247 case XYZPEnum: numdofs+=4; break; 1248 default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet"); 1249 } 1250 } 1251 1252 /*Copy current stiffness matrix*/ 1253 values=xNew<IssmDouble>(Ke->nrows*Ke->ncols); 1254 for(i=0;i<Ke->nrows;i++) for(j=0;j<Ke->ncols;j++) values[i*Ke->ncols+j]=Ke->values[i*Ke->ncols+j]; 1255 1256 /*Get Coordinate Systems transform matrix*/ 1257 CoordinateSystemTransform(&transform,nodes,numnodes,cs_array); 1258 1259 /*Transform matrix: R^T*Ke*R */ 1260 TripleMultiply(transform,numdofs,numdofs,1, 1261 values,Ke->nrows,Ke->ncols,0, 1262 transform,numdofs,numdofs,0, 1263 &Ke->values[0],0); 1264 1265 /*Free Matrix*/ 1266 xDelete<IssmDouble>(transform); 1267 xDelete<IssmDouble>(values); 1268 } 1269 /*}}}*/ 1270 void CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array){/*{{{*/ 1271 1272 1273 int i,counter; 1274 int numdofs = 0; 1275 IssmDouble norm; 1276 IssmDouble *transform = NULL; 1277 IssmDouble *values = NULL; 1278 IssmDouble coord_system[3][3]; 1279 1280 /*Some checks in debugging mode*/ 1281 _assert_(numnodes && nodes); 1282 1283 /*Get total number of dofs*/ 1284 for(i=0;i<numnodes;i++){ 1285 switch(cs_array[i]){ 1286 case XYEnum: numdofs+=2; break; 1287 case XYZPEnum: numdofs+=4; break; 1288 default: _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet"); 1289 } 1290 } 1291 1292 /*Allocate and initialize transform matrix*/ 1293 transform=xNew<IssmDouble>(numdofs*numdofs); 1294 for(i=0;i<numdofs*numdofs;i++) transform[i]=0.0; 1295 1296 /*Create transform matrix for all nodes (x,y for 2d and x,y,z for 3d). It is a block matrix 1297 *for 3 nodes: 1298 1299 * | T1 0 0 | 1300 * Q = | 0 T2 0 | 1301 * | 0 0 T3| 1302 * 1303 * Where T1 is the transform matrix for node 1. It is a simple copy of the coordinate system 1304 * associated to this node*/ 1305 counter=0; 1306 for(i=0;i<numnodes;i++){ 1307 nodes[i]->GetCoordinateSystem(&coord_system[0][0]); 1308 switch(cs_array[i]){ 1309 case XYEnum: 1310 /*We remove the z component, we need to renormalize x and y: x=[x1 x2 0] y=[-x2 x1 0]*/ 1311 norm = sqrt( coord_system[0][0]*coord_system[0][0] + coord_system[1][0]*coord_system[1][0]); _assert_(norm>1.e-4); 1312 transform[(numdofs)*(counter+0) + counter+0] = coord_system[0][0]/norm; 1313 transform[(numdofs)*(counter+0) + counter+1] = - coord_system[1][0]/norm; 1314 transform[(numdofs)*(counter+1) + counter+0] = coord_system[1][0]/norm; 1315 transform[(numdofs)*(counter+1) + counter+1] = coord_system[0][0]/norm; 1316 counter+=2; 1317 break; 1318 case XYZPEnum: 1319 /*Only the first 3 coordinates are changed (x,y,z), leave the others (P) unchanged*/ 1320 transform[(numdofs)*(counter+0) + counter+0] = coord_system[0][0]; 1321 transform[(numdofs)*(counter+0) + counter+1] = coord_system[0][1]; 1322 transform[(numdofs)*(counter+0) + counter+2] = coord_system[0][2]; 1323 transform[(numdofs)*(counter+1) + counter+0] = coord_system[1][0]; 1324 transform[(numdofs)*(counter+1) + counter+1] = coord_system[1][1]; 1325 transform[(numdofs)*(counter+1) + counter+2] = coord_system[1][2]; 1326 transform[(numdofs)*(counter+2) + counter+0] = coord_system[2][0]; 1327 transform[(numdofs)*(counter+2) + counter+1] = coord_system[2][1]; 1328 transform[(numdofs)*(counter+2) + counter+2] = coord_system[2][2]; 1329 transform[(numdofs)*(counter+3) + counter+3] = 1.0; 1330 counter+=4; 1331 break; 1332 default: 1333 _error_("Coordinate system " << EnumToStringx(cs_array[i]) << " not supported yet"); 1334 } 1335 } 1336 1337 /*Assign output pointer*/ 1338 *ptransform=transform; 1339 } 1340 /*}}}*/ 1341 #endif -
issm/trunk-jpl/src/c/classes/objects/Node.h
r14763 r14951 18 18 template <class doubletype> class Vector; 19 19 template <class doubletype> class Matrix; 20 class ElementVector; 21 class ElementMatrix; 20 22 #include "../Update.h" 21 23 /*}}}*/ … … 100 102 }; 101 103 104 /*Methods inherent to Node: */ 105 int* GetLocalDofList(Node** nodes,int numnodes,int setenum,int approximation); 106 int* GetGlobalDofList(Node** nodes,int numnodes,int setenum,int approximation); 107 int GetNumberOfDofs(Node** nodes,int numnodes,int setenum,int approximation); 108 #ifdef _HAVE_DIAGNOSTIC_ 109 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum); 110 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array); 111 void TransformLoadVectorCoord(ElementVector* pe,Node** nodes,int numnodes,int cs_enum); 112 void TransformLoadVectorCoord(ElementVector* pe,Node** nodes,int numnodes,int* cs_array); 113 void TransformSolutionCoord(IssmDouble* solution,Node** nodes,int numnodes,int cs_enum); 114 void TransformSolutionCoord(IssmDouble* solution,Node** nodes,int numnodes,int* cs_array); 115 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum); 116 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array); 117 void CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array); 118 #endif 119 102 120 #endif /* _NODE_H_ */ -
issm/trunk-jpl/src/c/classes/objects/Profiler.cpp
r13607 r14951 11 11 12 12 #include "./Profiler.h" 13 #include "./Params/DoubleParam.h" 13 14 /*}}}*/ 14 15 -
issm/trunk-jpl/src/c/classes/objects/Vertex.cpp
r14917 r14951 238 238 } 239 239 /*}}}*/ 240 241 /*Methods relating to Vertex, but not internal methods: */ 242 void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices, int numvertices){ /*{{{*/ 243 244 _assert_(vertices); 245 _assert_(xyz); 246 247 for(int i=0;i<numvertices;i++) { 248 xyz[i*3+0]=vertices[i]->GetX(); 249 xyz[i*3+1]=vertices[i]->GetY(); 250 xyz[i*3+2]=vertices[i]->GetZ(); 251 } 252 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Vertex.h
r14917 r14951 59 59 void VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz); 60 60 }; 61 62 /*Methods relating to Vertex object: */ 63 void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices, int numvertices); 64 61 65 #endif /* _VERTEX_H */ -
issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp
r14950 r14951 8 8 #include "../../shared/io/io.h" 9 9 #include "../../toolkits/toolkits.h" 10 #include "../../classes/classes.h" 10 11 #include "../../EnumDefinitions/EnumDefinitions.h" 11 12 -
issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp
r14950 r14951 8 8 #include "../../EnumDefinitions/EnumDefinitions.h" 9 9 #include "../../Container/Container.h" 10 #include "../../classes/classes.h" 10 11 #include "./GroundinglineMigrationx.h" 11 12 -
issm/trunk-jpl/src/c/modules/InputControlUpdatex/InputControlUpdatex.cpp
r14917 r14951 5 5 #include "./InputControlUpdatex.h" 6 6 #include "../../shared/shared.h" 7 #include "../../classes/classes.h" 7 8 #include "../../toolkits/toolkits.h" 8 9 #include "../../EnumDefinitions/EnumDefinitions.h" -
issm/trunk-jpl/src/c/modules/InputConvergencex/InputConvergencex.cpp
r14950 r14951 5 5 #include "../../shared/shared.h" 6 6 #include "../../shared/io/io.h" 7 #include "../../classes/classes.h" 7 8 #include "../../toolkits/toolkits.h" 8 9 #include "../../EnumDefinitions/EnumDefinitions.h" -
issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp
r14917 r14951 5 5 #include "./InputDuplicatex.h" 6 6 #include "../../shared/shared.h" 7 #include "../../classes/classes.h" 7 8 #include "../../toolkits/toolkits.h" 8 9 #include "../../EnumDefinitions/EnumDefinitions.h" -
issm/trunk-jpl/src/c/modules/InputScalex/InputScalex.cpp
r14917 r14951 6 6 #include "../../shared/shared.h" 7 7 #include "../../toolkits/toolkits.h" 8 #include "../../classes/classes.h" 8 9 #include "../../EnumDefinitions/EnumDefinitions.h" 9 10 -
issm/trunk-jpl/src/c/modules/InputToResultx/InputToResultx.cpp
r14917 r14951 5 5 #include "./InputToResultx.h" 6 6 #include "../../shared/shared.h" 7 #include "../../classes/classes.h" 7 8 #include "../../toolkits/toolkits.h" 8 9 #include "../../EnumDefinitions/EnumDefinitions.h" -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp
r14950 r14951 10 10 11 11 #include "../../shared/shared.h" 12 #include "../../classes/classes.h" 12 13 #include "../../shared/io/io.h" 13 14 #include "./ModelProcessorx.h" -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp
r14950 r14951 11 11 #include "../../shared/shared.h" 12 12 #include "../../shared/io/io.h" 13 #include "../../classes/classes.h" 13 14 #include "./ModelProcessorx.h" 14 15 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
r14917 r14951 4 4 5 5 #include "../../shared/shared.h" 6 #include "../../classes/classes.h" 6 7 #include "../../EnumDefinitions/EnumDefinitions.h" 7 8 -
issm/trunk-jpl/src/c/shared/Elements/Arrhenius.cpp
r12475 r14951 3 3 */ 4 4 5 #include <math.h> 5 6 #include "./elements.h" 6 #include <math.h>7 #include "../Exceptions/exceptions.h" 7 8 8 9 IssmDouble Arrhenius(IssmDouble temperature,IssmDouble depth,IssmDouble n){ -
issm/trunk-jpl/src/c/shared/Elements/ComputeDelta18oTemperaturePrecipitation.cpp
r12923 r14951 5 5 6 6 #include "./elements.h" 7 #include "../Numerics/numerics.h" 7 8 8 9 void ComputeDelta18oTemperaturePrecipitation(IssmDouble Delta18oSurfacePresent, IssmDouble Delta18oSurfaceLgm, IssmDouble Delta18oSurfaceTime, -
issm/trunk-jpl/src/c/shared/Elements/Paterson.cpp
r14915 r14951 7 7 #include <math.h> 8 8 9 #include "../ ../shared/Numerics/types.h"9 #include "../Numerics/types.h" 10 10 11 11 IssmDouble Paterson(IssmDouble temperature){ -
issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp
r14735 r14951 4 4 5 5 #include "./elements.h" 6 #include "../Numerics/numerics.h" 6 7 7 8 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water, IssmDouble desfac, IssmDouble s0p){ -
issm/trunk-jpl/src/c/shared/Elements/PrintArrays.cpp
r14914 r14951 1 1 2 2 #include "./elements.h" 3 #include "../io/Print/Print.h" 3 4 using namespace std; 4 5 -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r14763 r14951 6 6 #define _SHARED_ELEMENTS_H_ 7 7 8 #include "../../classes/objects/objects.h" 9 #include "../../Container/Container.h" 8 #include "../Numerics/types.h" 10 9 class ElementMatrix; 11 10 class ElementVector; 12 11 class Vertex; 12 class Node; 13 13 14 14 IssmDouble Paterson(IssmDouble temperature); … … 22 22 IssmDouble* TemperaturesLgm, IssmDouble* TemperaturesPresentday, 23 23 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout); 24 void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices,int numvertices);25 int GetNumberOfDofs( Node** nodes,int numnodes,int setenum,int approximation_enum);26 int* GetLocalDofList( Node** nodes,int numnodes,int setenum,int approximation_enum);27 int* GetGlobalDofList(Node** nodes,int numnodes,int setenum,int approximation_enum);28 29 #ifdef _HAVE_DIAGNOSTIC_30 void CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array);31 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum);32 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array);33 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum);34 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array);35 void TransformLoadVectorCoord(ElementVector* pe,Node** nodes,int numnodes,int cs_enum);36 void TransformLoadVectorCoord(ElementVector* pe,Node** nodes,int numnodes,int* cs_array);37 void TransformSolutionCoord(IssmDouble* solution,Node** nodes,int numnodes,int cs_enum);38 void TransformSolutionCoord(IssmDouble* solution,Node** nodes,int numnodes,int* cs_array);39 #endif40 24 41 25 /*Print arrays*/ -
issm/trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp
r14917 r14951 9 9 #endif 10 10 11 #include "../shared.h" 11 #include "./exceptions.h" 12 #include "../io/Print/Print.h" 13 #include "../io/Comm/Comm.h" 12 14 13 15 ErrorException::ErrorException(const string &what_arg){/*{{{*/
Note:
See TracChangeset
for help on using the changeset viewer.