Changeset 18241
- Timestamp:
- 07/14/14 14:07:50 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r18237 r18241 7 7 #include "../cores/cores.h" 8 8 9 //#define FSANALYTICAL 249 //#define FSANALYTICAL 12 10 10 11 11 /*Model processing*/ … … 3246 3246 /*Initialize Element matrix and vectors*/ 3247 3247 ElementMatrix* Ke = element->NewElementMatrix(FSvelocityEnum); 3248 IssmDouble* B = xNew<IssmDouble>( (dim-1)*numdof);3249 IssmDouble* D = xNewZeroInit<IssmDouble>( (dim-1)*(dim-1));3248 IssmDouble* B = xNew<IssmDouble>(dim*numdof); 3249 IssmDouble* D = xNewZeroInit<IssmDouble>(dim*dim); 3250 3250 3251 3251 /*Retrieve all inputs and parameters*/ … … 3271 3271 this->GetBFSFriction(B,element,dim,xyz_list_base,gauss); 3272 3272 element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss); 3273 for(int i=0;i<dim -1;i++) D[i*(dim-1)+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y)3274 3275 TripleMultiply(B,dim -1,numdof,1,3276 D,dim -1,dim-1,0,3277 B,dim -1,numdof,0,3273 for(int i=0;i<dim;i++) D[i*dim+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y) 3274 3275 TripleMultiply(B,dim,numdof,1, 3276 D,dim,dim,0, 3277 B,dim,numdof,0, 3278 3278 &Ke->values[0],1); 3279 3279 } … … 3394 3394 /*Initialize Element matrix and vectors*/ 3395 3395 ElementMatrix* Ke = element->NewElementMatrix(FSvelocityEnum); 3396 IssmDouble* B = xNew<IssmDouble>( (dim-1)*numdof);3397 IssmDouble* D = xNewZeroInit<IssmDouble>( (dim-1)*(dim-1));3396 IssmDouble* B = xNew<IssmDouble>(dim*numdof); 3397 IssmDouble* D = xNewZeroInit<IssmDouble>(dim*dim); 3398 3398 3399 3399 /*Retrieve all inputs and parameters*/ … … 3431 3431 this->GetBFSFriction(B,element,dim,xyz_list_base,gauss); 3432 3432 element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss); 3433 for(int i=0;i<dim -1;i++) D[i*(dim-1)+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y)3434 3435 TripleMultiply(B,dim -1,numdof,1,3436 D,dim -1,dim-1,0,3437 B,dim -1,numdof,0,3433 for(int i=0;i<dim;i++) D[i*dim+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y) 3434 3435 TripleMultiply(B,dim,numdof,1, 3436 D,dim,dim,0, 3437 B,dim,numdof,0, 3438 3438 &Ke->values[0],1); 3439 3439 } … … 4429 4429 B[(vnumdof+pnumdof)*1+3*i+1] = vbasis[i]; 4430 4430 B[(vnumdof+pnumdof)*1+3*i+2] = 0.; 4431 4432 B[(vnumdof+pnumdof)*2+3*i+0] = 0.; 4433 B[(vnumdof+pnumdof)*2+3*i+1] = 0.; 4434 B[(vnumdof+pnumdof)*2+3*i+2] = vbasis[i]; 4431 4435 } 4432 4436 for(int i=0;i<pnumnodes;i++){ … … 4437 4441 else{ 4438 4442 for(int i=0;i<vnumnodes;i++){ 4439 B[2*i+0] = vbasis[i]; 4440 B[2*i+1] = 0.; 4443 B[(vnumdof+pnumdof)*0+2*i+0] = vbasis[i]; 4444 B[(vnumdof+pnumdof)*0+2*i+1] = 0.; 4445 4446 B[(vnumdof+pnumdof)*1+2*i+0] = 0.; 4447 B[(vnumdof+pnumdof)*1+2*i+1] = vbasis[i]; 4441 4448 } 4442 4449
Note:
See TracChangeset
for help on using the changeset viewer.