Changeset 6221
- Timestamp:
- 10/11/10 08:13:30 (14 years ago)
- Location:
- issm/trunk/src/c/objects/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk/src/c/objects/Elements/Penta.cpp ¶
r6216 r6221 2962 2962 D[2][0]=0; D[2][1]=0; D[2][2]=D_scalar; 2963 2963 2964 MatrixMultiply(&B_conduct[0][0],3,numdof,1,&D[0][0],3,3,0,&tBD_conduct[0][0],0); 2965 MatrixMultiply(&tBD_conduct[0][0],numdof,3,0,&B_conduct[0][0],3,numdof,0,&Ke_gaussian_conduct[0][0],0); 2964 TripleMultiply(&B_conduct[0][0],3,numdof,1, 2965 &D[0][0],3,3,0, 2966 &B_conduct[0][0],3,numdof,0, 2967 &Ke_gaussian_conduct[0][0],0); 2966 2968 2967 2969 /*Advection: */ … … 2981 2983 D[2][0]=0; D[2][1]=0; D[2][2]=D_scalar*w; 2982 2984 2983 MatrixMultiply(&B_advec[0][0],3,numdof,1,&D[0][0],3,3,0,&tBD_advec[0][0],0); 2984 MatrixMultiply(&tBD_advec[0][0],numdof,3,0,&Bprime_advec[0][0],3,numdof,0,&Ke_gaussian_advec[0][0],0); 2985 TripleMultiply(&B_advec[0][0],3,numdof,1, 2986 &D[0][0],3,3,0, 2987 &Bprime_advec[0][0],3,numdof,0, 2988 &Ke_gaussian_advec[0][0],0); 2985 2989 2986 2990 /*Transient: */ … … 2991 2995 D_scalar=D_scalar; 2992 2996 2993 MatrixMultiply(&L[0],numdof,1,0,&D_scalar,1,1,0,&tLD[0],0); 2994 MatrixMultiply(&tLD[0],numdof,1,0,&L[0],1,numdof,0,&Ke_gaussian_transient[0][0],0); 2997 TripleMultiply(&L[0],numdof,1,0, 2998 &D_scalar,1,1,0, 2999 &L[0],1,numdof,0, 3000 &Ke_gaussian_transient[0][0],0); 2995 3001 } 2996 3002 else{ … … 3009 3015 GetBArtdiff(&B_artdiff[0][0],&xyz_list[0][0],gauss); 3010 3016 3011 MatrixMultiply(&B_artdiff[0][0],2,numdof,1,&K[0][0],2,2,0,&tBD_artdiff[0][0],0); 3012 MatrixMultiply(&tBD_artdiff[0][0],numdof,2,0,&B_artdiff[0][0],2,numdof,0,&Ke_gaussian_artdiff[0][0],0); 3017 TripleMultiply(&B_artdiff[0][0],2,numdof,1, 3018 &K[0][0],2,2,0, 3019 &B_artdiff[0][0],2,numdof,0, 3020 &Ke_gaussian_artdiff[0][0],0); 3013 3021 } 3014 3022 else if(artdiff==2){ … … 3575 3583 for (i=6;i<8;i++) D[i][i]=-D_scalar*stokesreconditioning; 3576 3584 3577 MatrixMultiply(&B[0][0],8,numdofbubble,1,&D[0][0],8,8,0,&tBD[0][0],0); 3578 MatrixMultiply(&tBD[0][0],numdofbubble,8,0,&B_prime_bubble[0][0],8,3,0,&Ke_gaussian[0][0],0); 3585 TripleMultiply(&B[0][0],8,numdofbubble,1, 3586 &D[0][0],8,8,0, 3587 &B_prime_bubble[0][0],8,3,0, 3588 &Ke_gaussian[0][0],0); 3579 3589 3580 3590 for(i=0;i<numdofbubble;i++) for(j=0;j<NDOF3;j++) Ke_temp[i][j]+=Ke_gaussian[i][j]; … … 5578 5588 5579 5589 /*Multiply matrices to create the reduce matrix Ke_reduced */ 5580 MatrixMultiply(&Kib[0][0],24,3,0,&Kbbinv[0][0],3,3,0,&KibKbbinv[0][0],0); 5581 MatrixMultiply(&KibKbbinv[0][0],24,3,0,&Kbi[0][0],3,24,0,&Kright[0][0],0); 5590 TripleMultiply(&Kib[0][0],24,3,0, 5591 &Kbbinv[0][0],3,3,0, 5592 &Kbi[0][0],3,24,0, 5593 &Kright[0][0],0); 5582 5594 5583 5595 /*Affect value to the reduced matrix */ … … 5622 5634 5623 5635 /*Multiply matrices to create the reduce matrix Ke_reduced */ 5624 MatrixMultiply(&Kib[0][0],24,3,0,&Kbbinv[0][0],3,3,0,&KibKbbinv[0][0],0); 5625 MatrixMultiply(&KibKbbinv[0][0],24,3,0,&Pb[0],3,1,0,&Pright[0],0); 5636 TripleMultiply(&Kib[0][0],24,3,0, 5637 &Kbbinv[0][0],3,3,0, 5638 &Pb[0],3,1,0,&Pright[0],0); 5626 5639 5627 5640 /*Affect value to the reduced matrix */ -
TabularUnified issm/trunk/src/c/objects/Elements/Tria.cpp ¶
r6216 r6221 3164 3164 D_scalar=latentheat/heatcapacity*gauss->weight*Jdet; 3165 3165 3166 MatrixMultiply(&L[0],numdof,1,0,&D_scalar,1,1,0,&tLD[0],0); 3167 MatrixMultiply(&tLD[0],numdof,1,0,&L[0],1,numdof,0,&Ke_gaussian[0][0],0); 3166 TripleMultiply(&L[0],numdof,1,0, 3167 &D_scalar,1,1,0, 3168 &L[0],1,numdof,0, 3169 &Ke_gaussian[0][0],0); 3168 3170 3169 3171 for(i=0;i<numdof;i++) for(j=0;j<numdof;j++) Ke->values[i*numdof+j]+=Ke_gaussian[i][j]; … … 3482 3484 if(dt) D_scalar=dt*D_scalar; 3483 3485 3484 MatrixMultiply(&l1l2l3[0],numdof,1,0,&D_scalar,1,1,0,&tl1l2l3D[0],0); 3485 MatrixMultiply(&tl1l2l3D[0],numdof,1,0,&l1l2l3[0],1,numdof,0,&Ke_gaussian[0][0],0); 3486 TripleMultiply(&l1l2l3[0],numdof,1,0, 3487 &D_scalar,1,1,0, 3488 &l1l2l3[0],1,numdof,0, 3489 &Ke_gaussian[0][0],0); 3486 3490 3487 3491 for(i=0;i<numdof;i++) for(j=0;j<numdof;j++) Ke->values[i*numdof+j]+=Ke_gaussian[i][j];
Note:
See TracChangeset
for help on using the changeset viewer.