Changeset 16373
- Timestamp:
- 10/10/13 16:39:59 (11 years ago)
- Location:
- issm/trunk-jpl/src/c/classes
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16359 r16373 8186 8186 int analysis_type,approximation; 8187 8187 IssmDouble alpha2,Jdet2d; 8188 IssmDouble FSreconditioning,viscosity;8189 IssmDouble epsilon[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/8190 8188 IssmDouble xyz_list[NUMVERTICES][3]; 8191 8189 IssmDouble xyz_list_tria[NUMVERTICES2D][3]; … … 8213 8211 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 8214 8212 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 8215 parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);8216 8213 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 8217 8214 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 8230 8227 GetTriaJacobianDeterminant(&Jdet2d, &xyz_list_tria[0][0],gauss); 8231 8228 GetLFS(BFriction,gauss); 8232 8233 this->GetStrainRate3d(&epsilon[0],&xyz_list[0][0],gauss,vx_input,vy_input,vz_input);8234 material->GetViscosity3dFS(&viscosity,&epsilon[0]);8235 8229 8236 8230 friction->GetAlpha2(&alpha2,gauss,VxEnum,VyEnum,VzEnum); -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16371 r16373 3208 3208 /*Intermediaries */ 3209 3209 int i,j; 3210 int analysis_type ,approximation;3210 int analysis_type; 3211 3211 int indices[2]; 3212 3212 IssmDouble alpha2,Jdet; 3213 IssmDouble FSreconditioning,viscosity;3214 IssmDouble epsilon[3]; /* epsilon=[exx,eyy,exy];*/3215 3213 IssmDouble xyz_list[NUMVERTICES][3]; 3216 3214 IssmDouble xyz_list_seg[NUMVERTICES1D][3]; … … 3232 3230 /*Initialize Element matrix and vectors*/ 3233 3231 ElementMatrix* Ke = new ElementMatrix(nodes,vnumnodes+pnumnodes,this->parameters,FSvelocityEnum); 3234 IssmDouble* BFriction = xNew<IssmDouble>( 2*numdof);3235 IssmDouble * D = xNewZeroInit<IssmDouble>(2*2);3232 IssmDouble* BFriction = xNew<IssmDouble>(1*numdof); 3233 IssmDouble D; 3236 3234 3237 3235 /*Retrieve all inputs and parameters*/ 3238 3236 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 3239 3237 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 3240 parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);3241 3238 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 3242 3239 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 3256 3253 3257 3254 GetSegmentJacobianDeterminant(&Jdet,&xyz_list_seg[0][0],gauss); 3258 3259 _error_("STOP"); 3255 GetLFS(BFriction,gauss); 3256 3257 friction->GetAlpha2(&alpha2,gauss,VxEnum,VyEnum,VzEnum); 3258 D = +alpha2*gauss->weight*Jdet; //taub_x = -alpha2 vx 3259 3260 TripleMultiply(BFriction,1,numdof,1, 3261 &D,1,1,0, 3262 BFriction,1,numdof,0, 3263 Ke->values,1); 3260 3264 } 3261 3265 … … 3267 3271 delete friction; 3268 3272 xDelete<IssmDouble>(BFriction); 3269 xDelete<IssmDouble>(D);3270 3273 xDelete<int>(cs_list); 3271 3274 return Ke; -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp
r16371 r16373 469 469 /*Clean-up*/ 470 470 xDelete<IssmDouble>(basis); 471 } 472 /*}}}*/ 473 /*FUNCTION TriaRef::GetLFS{{{*/ 474 void TriaRef::GetLFS(IssmDouble* LFS, GaussTria* gauss){ 475 /* Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. 476 * For node i, Li can be expressed in the actual coordinate system 477 * by: 478 * Li=[ h 0 0 ] 479 * where h is the interpolation function for node i. 480 */ 481 482 /*Fetch number of nodes for this finite element*/ 483 int pnumnodes = this->NumberofNodesPressure(); 484 int vnumnodes = this->NumberofNodesVelocity(); 485 int pnumdof = pnumnodes; 486 int vnumdof = vnumnodes*NDOF2; 487 488 /*Get nodal functions derivatives*/ 489 IssmDouble* vbasis=xNew<IssmDouble>(vnumnodes); 490 GetNodalFunctionsVelocity(vbasis,gauss); 491 492 /*Build LFS: */ 493 for(int i=0;i<vnumnodes;i++){ 494 LFS[2*i+0] = vbasis[i]; 495 LFS[2*i+1] = 0.; 496 } 497 498 for(int i=0;i<pnumnodes;i++){ 499 LFS[i+vnumdof+0] = 0.; 500 } 501 502 /*Clean-up*/ 503 xDelete<IssmDouble>(vbasis); 471 504 } 472 505 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.h
r16371 r16373 37 37 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss); 38 38 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,GaussTria* gauss); 39 void GetLFS(IssmDouble* LFS, GaussTria* gauss); 39 40 void GetNodalFunctions(IssmDouble* basis,GaussTria* gauss); 40 41 void GetNodalFunctions(IssmDouble* basis,GaussTria* gauss,int finiteelement); -
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r15224 r16373 91 91 if (Neff<0)Neff=0; 92 92 93 if(strcmp(element_type,"2d")==0){ 93 if(strcmp(element_type,"1d")==0){ 94 this->GetInputValue(&vx, gauss,vxenum); 95 vmag=sqrt(vx*vx); 96 } 97 else if(strcmp(element_type,"2d")==0){ 94 98 this->GetInputValue(&vx, gauss,vxenum); 95 99 this->GetInputValue(&vy, gauss,vyenum);
Note:
See TracChangeset
for help on using the changeset viewer.