Changeset 6221


Ignore:
Timestamp:
10/11/10 08:13:30 (14 years ago)
Author:
Mathieu Morlighem
Message:

moved all MatrixMultiply to TripleMultiply

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  
    29622962                D[2][0]=0; D[2][1]=0; D[2][2]=D_scalar;
    29632963
    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);
    29662968
    29672969                /*Advection: */
     
    29812983                D[2][0]=0;         D[2][1]=0;         D[2][2]=D_scalar*w;
    29822984
    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);
    29852989
    29862990                /*Transient: */
     
    29912995                        D_scalar=D_scalar;
    29922996
    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);
    29953001                }
    29963002                else{
     
    30093015                        GetBArtdiff(&B_artdiff[0][0],&xyz_list[0][0],gauss);
    30103016
    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);
    30133021                }
    30143022                else if(artdiff==2){
     
    35753583                for (i=6;i<8;i++) D[i][i]=-D_scalar*stokesreconditioning;
    35763584
    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);
    35793589
    35803590                for(i=0;i<numdofbubble;i++) for(j=0;j<NDOF3;j++) Ke_temp[i][j]+=Ke_gaussian[i][j];
     
    55785588
    55795589        /*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);
    55825594
    55835595        /*Affect value to the reduced matrix */
     
    56225634
    56235635        /*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);
    56265639
    56275640        /*Affect value to the reduced matrix */
  • TabularUnified issm/trunk/src/c/objects/Elements/Tria.cpp

    r6216 r6221  
    31643164                D_scalar=latentheat/heatcapacity*gauss->weight*Jdet;
    31653165
    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);
    31683170
    31693171                for(i=0;i<numdof;i++) for(j=0;j<numdof;j++) Ke->values[i*numdof+j]+=Ke_gaussian[i][j];
     
    34823484                if(dt) D_scalar=dt*D_scalar;
    34833485
    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);
    34863490
    34873491                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.