Changeset 17812
- Timestamp:
- 04/22/14 12:19:15 (11 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r17795 r17812 279 279 void Penta::ComputeStrainRate(Vector<IssmDouble>* eps){ 280 280 281 _error_("Not implemented yet"); 282 281 IssmDouble xyz_list[NUMVERTICES][3]; 282 IssmDouble epsilon[6]; /* epsilon=[exx,eyy,exy];*/ 283 IssmDouble eps_xx[NUMVERTICES]; 284 IssmDouble eps_yy[NUMVERTICES]; 285 IssmDouble eps_zz[NUMVERTICES]; 286 IssmDouble eps_xy[NUMVERTICES]; 287 IssmDouble eps_xz[NUMVERTICES]; 288 IssmDouble eps_yz[NUMVERTICES]; 289 GaussPenta* gauss=NULL; 290 291 /* Get node coordinates and dof list: */ 292 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 293 294 /*Retrieve all inputs we will be needing: */ 295 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 296 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 297 Input* vz_input=inputs->GetInput(VzEnum); _assert_(vz_input); 298 299 /* Start looping on the number of vertices: */ 300 gauss=new GaussPenta(); 301 for (int iv=0;iv<NUMVERTICES;iv++){ 302 gauss->GaussVertex(iv); 303 304 /*Compute strain rate viscosity and pressure: */ 305 this->StrainRateFS(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input); 306 307 eps_xx[iv]=epsilon[0]; 308 eps_yy[iv]=epsilon[1]; 309 eps_zz[iv]=epsilon[2]; 310 eps_xy[iv]=epsilon[3]; 311 eps_xz[iv]=epsilon[4]; 312 eps_yz[iv]=epsilon[5]; 313 } 314 315 /*Add Stress tensor components into inputs*/ 316 this->inputs->AddInput(new PentaInput(StrainRatexxEnum,&eps_xx[0],P1Enum)); 317 this->inputs->AddInput(new PentaInput(StrainRatexyEnum,&eps_xy[0],P1Enum)); 318 this->inputs->AddInput(new PentaInput(StrainRatexzEnum,&eps_xz[0],P1Enum)); 319 this->inputs->AddInput(new PentaInput(StrainRateyyEnum,&eps_yy[0],P1Enum)); 320 this->inputs->AddInput(new PentaInput(StrainRateyzEnum,&eps_yz[0],P1Enum)); 321 this->inputs->AddInput(new PentaInput(StrainRatezzEnum,&eps_zz[0],P1Enum)); 322 323 /*Clean up and return*/ 324 delete gauss; 283 325 } 284 326 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r17797 r17812 204 204 /*FUNCTION Tria::ComputeStrainRate {{{*/ 205 205 void Tria::ComputeStrainRate(Vector<IssmDouble>* eps){ 206 _error_("Not Implemented yet"); 206 207 IssmDouble xyz_list[NUMVERTICES][3]; 208 IssmDouble epsilon[6]; /* epsilon=[exx,eyy,exy];*/ 209 IssmDouble eps_xx[NUMVERTICES]; 210 IssmDouble eps_yy[NUMVERTICES]; 211 IssmDouble eps_zz[NUMVERTICES]={0,0,0}; 212 IssmDouble eps_xy[NUMVERTICES]; 213 IssmDouble eps_xz[NUMVERTICES]={0,0,0}; 214 IssmDouble eps_yz[NUMVERTICES]={0,0,0}; 215 GaussPenta* gauss=NULL; 216 217 /* Get node coordinates and dof list: */ 218 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 219 220 /*Retrieve all inputs we will be needing: */ 221 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 222 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 223 224 /* Start looping on the number of vertices: */ 225 gauss=new GaussPenta(); 226 for (int iv=0;iv<NUMVERTICES;iv++){ 227 gauss->GaussVertex(iv); 228 229 /*Compute strain rate viscosity and pressure: */ 230 this->StrainRateSSA(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input); 231 232 eps_xx[iv]=epsilon[0]; 233 eps_yy[iv]=epsilon[1]; 234 eps_xy[iv]=epsilon[2]; 235 } 236 237 /*Add Stress tensor components into inputs*/ 238 this->inputs->AddInput(new TriaInput(StrainRatexxEnum,&eps_xx[0],P1Enum)); 239 this->inputs->AddInput(new TriaInput(StrainRatexyEnum,&eps_xy[0],P1Enum)); 240 this->inputs->AddInput(new TriaInput(StrainRatexzEnum,&eps_xz[0],P1Enum)); 241 this->inputs->AddInput(new TriaInput(StrainRateyyEnum,&eps_yy[0],P1Enum)); 242 this->inputs->AddInput(new TriaInput(StrainRateyzEnum,&eps_yz[0],P1Enum)); 243 this->inputs->AddInput(new TriaInput(StrainRatezzEnum,&eps_zz[0],P1Enum)); 244 245 /*Clean up and return*/ 246 delete gauss; 247 207 248 } 208 249 /*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.