Page 331 - The Combined Finite-Discrete Element Method
P. 331

314    ALGORITHM IMPLEMENTATION

             { DBL nx,ny,nz,voli,volc;
              DBL B[3][3]; /* left Cauchy-Green strain tensor */
              DBL D[3][3]; /* rate of deformation (stretching) tensor */
              DBL E[3][3]; /* strain tensor (small strains) */
              DBL F[3][3];
              /* deformation gradient in global base delta ux/delta x */
              DBL F0[3][3]; /* initial local base */
              DBL FX[3][3]; /* current local base also delta ux/delta X */
              DBL F0inv[3][3]; /* global base in initial local base */
              DBL FXinv[3][3]; /* global base in current local base */
              DBL L[3][3];
              /* velocity gradient in global base delta vx/delta x  */
              DBL LX[3][3];
              /* velocity gradient in current local base = delta x/delta X */
              DBL T[3][3]; /* Cauchy stress */
              INT ielem;
              INT i,j,k,l;
            Listing 10.37 Local variables used in processing deformability with finite rotation for a four-noded
            solid tetrahedron finite element.


                       .........continued from previous listing.............
              for(ielem=0;ielem<nelem;ielem++)
              { for(i=1;i<4;i++)
                { /* initial base */
                 F0[0][i-1]=d1ncix[(i2elto[i][ielem])]-d1ncix[(i2elto[0][ielem])];
                 F0[1][i-1]=d1nciy[(i2elto[i][ielem])]-d1nciy[(i2elto[0][ielem])];
                 F0[2][i-1]=d1nciz[(i2elto[i][ielem])]-d1nciz[(i2elto[0][ielem])];
                 /* current base */
                 FX[0][i-1]=d1nccx[(i2elto[i][ielem])]-
                         d1nccx[(i2elto[0][ielem])];
                 FX[1][i-1]=d1nccy[(i2elto[i][ielem])]-
                         d1nccy[(i2elto[0][ielem])];
                 FX[2][i-1]=d1nccz[(i2elto[i][ielem])]-d1nccz[(i2elto[0][ielem])];
                 /* velocity gradient */
                 LX[0][i-1]=d1nvcx[(i2elto[i][ielem])]-
                         d1nvcx[(i2elto[0][ielem])];
                 LX[1][i-1]=d1nvcy[(i2elto[i][ielem])]-d1nvcy[(i2elto[0][ielem])];
                 LX[2][i-1]=d1nvcz[(i2elto[i][ielem])]-d1nvcz[(i2elto[0][ielem])];
                /* global base in initial local coordinates  */
                YMATINV3(F0,F0inv,voli);
                /* global base in current local coordinates  *
                /YMATINV3(FX,FXinv,volc);

                }
              Listing 10.38 Global components of the base vectors of initial and deformed initial frames.
   326   327   328   329   330   331   332   333   334   335   336