Changeset 17405
- Timestamp:
- 03/10/14 16:21:37 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/TetraRef.cpp
r17398 r17405 18 18 #define NUMNODESP0 1 19 19 #define NUMNODESP1 4 20 #define NUMNODESP2 10 20 21 21 22 /*Object constructors and destructor*/ … … 63 64 64 65 switch(element_type){ 66 case P0Enum: 67 basis[0]=1.; 68 return; 69 case P1Enum: case P1DGEnum: 70 basis[0]=gauss->coord1; 71 basis[1]=gauss->coord2; 72 basis[2]=gauss->coord3; 73 basis[3]=gauss->coord4; 74 return; 75 case P2Enum: 76 /*Vertices*/ 77 basis[0]=gauss->coord1*(2.*gauss->coord1-1.); 78 basis[1]=gauss->coord2*(2.*gauss->coord2-1.); 79 basis[2]=gauss->coord3*(2.*gauss->coord3-1.); 80 basis[3]=gauss->coord4*(2.*gauss->coord4-1.); 81 /*Edges*/ 82 basis[4]=4.*gauss->coord2*gauss->coord3; 83 basis[5]=4.*gauss->coord1*gauss->coord3; 84 basis[6]=4.*gauss->coord1*gauss->coord2; 85 basis[7]=4.*gauss->coord2*gauss->coord4; 86 basis[8]=4.*gauss->coord3*gauss->coord4; 87 basis[9]=4.*gauss->coord1*gauss->coord4; 88 return; 65 89 default: 66 90 _error_("Element type "<<EnumToStringx(element_type)<<" not supported yet"); … … 105 129 /*Clean up*/ 106 130 xDelete<IssmDouble>(dbasis_ref); 107 108 131 } 109 132 /*}}}*/ … … 125 148 126 149 switch(finiteelement){ 150 case P0Enum: 151 /*Nodal function 1*/ 152 dbasis[NUMNODESP0*0+0] = 0.; 153 dbasis[NUMNODESP0*1+0] = 0.; 154 dbasis[NUMNODESP0*2+0] = 0.; 155 return; 156 case P1Enum: case P1DGEnum: 157 dbasis[NUMNODESP1*0+0] = -1.; 158 dbasis[NUMNODESP1*1+0] = -1.; 159 dbasis[NUMNODESP1*2+0] = -1.; 160 161 dbasis[NUMNODESP1*0+1] = 1.; 162 dbasis[NUMNODESP1*1+1] = 0.; 163 dbasis[NUMNODESP1*2+1] = 0.; 164 165 dbasis[NUMNODESP1*0+2] = 0.; 166 dbasis[NUMNODESP1*1+2] = 1.; 167 dbasis[NUMNODESP1*2+2] = 0.; 168 169 dbasis[NUMNODESP1*0+3] = 0.; 170 dbasis[NUMNODESP1*1+3] = 0.; 171 dbasis[NUMNODESP1*2+3] = 1.; 172 return; 173 case P2Enum: 174 dbasis[NUMNODESP2*0+0] = -4.*gauss->coord1+1.; 175 dbasis[NUMNODESP2*1+0] = -4.*gauss->coord1+1.; 176 dbasis[NUMNODESP2*2+0] = -4.*gauss->coord1+1.; 177 178 dbasis[NUMNODESP2*0+1] = 4.*gauss->coord2-1.; 179 dbasis[NUMNODESP2*1+1] = 0.; 180 dbasis[NUMNODESP2*2+1] = 0.; 181 182 dbasis[NUMNODESP2*0+2] = 0.; 183 dbasis[NUMNODESP2*1+2] = 4.*gauss->coord3-1.; 184 dbasis[NUMNODESP2*2+2] = 0.; 185 186 dbasis[NUMNODESP2*0+3] = 0.; 187 dbasis[NUMNODESP2*1+3] = 0.; 188 dbasis[NUMNODESP2*2+3] = 4.*gauss->coord4-1.; 189 190 dbasis[NUMNODESP2*0+4] = 4.*gauss->coord3; 191 dbasis[NUMNODESP2*1+4] = 4.*gauss->coord2; 192 dbasis[NUMNODESP2*2+4] = 0.; 193 194 dbasis[NUMNODESP2*0+5] = -4.*gauss->coord3; 195 dbasis[NUMNODESP2*1+5] = 4.*(gauss->coord1-gauss->coord3); 196 dbasis[NUMNODESP2*2+5] = -4.*gauss->coord3; 197 198 dbasis[NUMNODESP2*0+6] = 4.*(gauss->coord1-gauss->coord2); 199 dbasis[NUMNODESP2*1+6] = -4.*gauss->coord2; 200 dbasis[NUMNODESP2*2+6] = -4.*gauss->coord2; 201 202 dbasis[NUMNODESP2*0+7] = 4.*gauss->coord4; 203 dbasis[NUMNODESP2*1+7] = 0.; 204 dbasis[NUMNODESP2*2+7] = 4.*gauss->coord2; 205 206 dbasis[NUMNODESP2*0+8] = 0.; 207 dbasis[NUMNODESP2*1+8] = 4.*gauss->coord4; 208 dbasis[NUMNODESP2*2+8] = 4.*gauss->coord3; 209 210 dbasis[NUMNODESP2*0+9] = -4.*gauss->coord4; 211 dbasis[NUMNODESP2*1+9] = -4.*gauss->coord4; 212 dbasis[NUMNODESP2*2+9] = 4.*(gauss->coord1-gauss->coord4); 213 return; 127 214 default: 128 215 _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet"); … … 199 286 * J is assumed to have been allocated of size 1*/ 200 287 288 IssmDouble x1=xyz_list[3*0+0]; 289 IssmDouble x2=xyz_list[3*1+0]; 290 IssmDouble x3=xyz_list[3*2+0]; 291 IssmDouble x4=xyz_list[3*3+0]; 292 293 IssmDouble y1=xyz_list[3*0+1]; 294 IssmDouble y2=xyz_list[3*1+1]; 295 IssmDouble y3=xyz_list[3*2+1]; 296 IssmDouble y4=xyz_list[3*3+1]; 297 298 IssmDouble z1=xyz_list[3*0+2]; 299 IssmDouble z2=xyz_list[3*1+2]; 300 IssmDouble z3=xyz_list[3*2+2]; 301 IssmDouble z4=xyz_list[3*3+2]; 302 201 303 _error_("Not implemented yet"); 202 304 } … … 240 342 241 343 switch(finiteelement){ 242 case P0Enum: return NUMNODESP0; 243 case P1Enum: return NUMNODESP1; 244 case P1DGEnum: return NUMNODESP1; 344 case P0Enum: return NUMNODESP0; 345 case P1Enum: return NUMNODESP1; 346 case P1DGEnum: return NUMNODESP1; 347 case P2Enum: return NUMNODESP2; 245 348 default: _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet"); 246 349 } -
issm/trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp
r17173 r17405 46 46 file_line= what_line; 47 47 /*When error messages are not shown properly, uncomment the following line*/ 48 //this->Report();48 this->Report(); 49 49 50 50 }/*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.