/[escript]/temp/finley/src/Assemble_jacobeans.c
ViewVC logotype

Diff of /temp/finley/src/Assemble_jacobeans.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 781 by gross, Fri Jul 14 08:47:38 2006 UTC revision 853 by gross, Wed Sep 20 05:56:36 2006 UTC
# Line 40  void Assemble_jacobeans_1D(double* coord Line 40  void Assemble_jacobeans_1D(double* coord
40       char error_msg[LenErrorMsg_MAX];       char error_msg[LenErrorMsg_MAX];
41       #pragma omp parallel       #pragma omp parallel
42       {       {
43         register double D,invD;         register double D,invD, X0_loc;
44         double X0[numShape];         #pragma omp for private(e,q,s,D,invD,X0_loc) schedule(static)
        #pragma omp for private(e,q,s) schedule(static)  
45         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<numShape; s++) X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
46             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
47                D=0;                D=0;
48                for (s=0;s<numShape; s++) D+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                for (s=0;s<numShape; s++) {
49                     X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
50                     D+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
51                  }
52                if (D==0.) {                if (D==0.) {
53                    sprintf(error_msg,"Assemble_jacobeans_1D: element %d (id %d) has length zero.",e,element_id[e]);                    sprintf(error_msg,"Assemble_jacobeans_1D: element %d (id %d) has length zero.",e,element_id[e]);
54                    Finley_setError(ZERO_DIVISION_ERROR,error_msg);                    Finley_setError(ZERO_DIVISION_ERROR,error_msg);
# Line 79  void Assemble_jacobeans_2D(double* coord Line 80  void Assemble_jacobeans_2D(double* coord
80       #pragma omp parallel       #pragma omp parallel
81       {       {
82         register double dXdv00,dXdv10,dXdv01,dXdv11,         register double dXdv00,dXdv10,dXdv01,dXdv11,
83                         dvdX00,dvdX10,dvdX01,dvdX11, D,invD;                         dvdX00,dvdX10,dvdX01,dvdX11, D,invD,
84         double X0[numShape], X1[numShape];                         X0_loc, X1_loc;
85         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00,dXdv10,dXdv01,dXdv11,dvdX00,dvdX10,dvdX01,dvdX11, D,invD,X0_loc, X1_loc) schedule(static)
86         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
87             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
88                dXdv00=0;                dXdv00=0;
89                dXdv10=0;                dXdv10=0;
90                dXdv01=0;                dXdv01=0;
91                dXdv11=0;                dXdv11=0;
92                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
93                   dXdv00+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
94                   dXdv10+=X1[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];
95                   dXdv01+=X0[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv00+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
96                   dXdv11+=X1[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv10+=X1_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
97                     dXdv01+=X0_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
98                     dXdv11+=X1_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
99                }                }
100                D  =  dXdv00*dXdv11 - dXdv01*dXdv10;                D  =  dXdv00*dXdv11 - dXdv01*dXdv10;
101                if (D==0.) {                if (D==0.) {
# Line 136  void Assemble_jacobeans_2D_M1D_E1D(doubl Line 135  void Assemble_jacobeans_2D_M1D_E1D(doubl
135       char error_msg[LenErrorMsg_MAX];       char error_msg[LenErrorMsg_MAX];
136       #pragma omp parallel       #pragma omp parallel
137       {       {
138         register double dXdv00,dXdv10,dvdX00,dvdX01,D,invD;         register double dXdv00,dXdv10,dvdX00,dvdX01,D,invD,
139         double X0[numShape], X1[numShape];                         X0_loc, X1_loc;
140         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00,dXdv10,dvdX00,dvdX01,D,invD,X0_loc, X1_loc) schedule(static)
141         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
142             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
143                dXdv00=0;                dXdv00=0;
144                dXdv10=0;                dXdv10=0;
145                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
146                   dXdv00+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
147                   dXdv10+=X1[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];
148                     dXdv00+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
149                     dXdv10+=X1_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
150                }                }
151                D=dXdv00*dXdv00+dXdv10*dXdv10;                D=dXdv00*dXdv00+dXdv10*dXdv10;
152                if (D==0.) {                if (D==0.) {
# Line 186  void Assemble_jacobeans_2D_M1D_E1D_C(dou Line 183  void Assemble_jacobeans_2D_M1D_E1D_C(dou
183       char error_msg[LenErrorMsg_MAX];       char error_msg[LenErrorMsg_MAX];
184       #pragma omp parallel       #pragma omp parallel
185       {       {
186         register double dXdv00_0,dXdv10_0,dvdX00_0,dvdX01_0,D_0,invD_0;         register double dXdv00_0,dXdv10_0,dvdX00_0,dvdX01_0,D_0,invD_0,
187         register double dXdv00_1,dXdv10_1,dvdX00_1,dvdX01_1,D_1,invD_1;                         dXdv00_1,dXdv10_1,dvdX00_1,dvdX01_1,D_1,invD_1,
188         double X0[2*numShape], X1[2*numShape];                         X0_loc_0, X1_loc_0, X0_loc_1, X1_loc_1;
189         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00_0,dXdv10_0,dvdX00_0,dvdX01_0,D_0,invD_0,dXdv00_1,dXdv10_1,dvdX00_1,dvdX01_1,D_1,invD_1,X0_loc_0, X1_loc_0, X0_loc_1, X1_loc_1) schedule(static)
190         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<2*numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
191             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
192                dXdv00_0=0;                dXdv00_0=0;
193                dXdv10_0=0;                dXdv10_0=0;
194                dXdv00_1=0;                dXdv00_1=0;
195                dXdv10_1=0;                dXdv10_1=0;
196                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
197                   dXdv00_0+=X0[s]         *DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc_0=coordinates[INDEX2(0,nodes[INDEX2(s         ,e,numNodes)],DIM)];
198                   dXdv10_0+=X1[s]         *DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc_0=coordinates[INDEX2(1,nodes[INDEX2(s         ,e,numNodes)],DIM)];
199                   dXdv00_1+=X0[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc_1=coordinates[INDEX2(0,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
200                   dXdv10_1+=X1[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc_1=coordinates[INDEX2(1,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
201                     dXdv00_0+=X0_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
202                     dXdv10_0+=X1_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
203                     dXdv00_1+=X0_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
204                     dXdv10_1+=X1_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
205                }                }
206                D_0=dXdv00_0*dXdv00_0+dXdv10_0*dXdv10_0;                D_0=dXdv00_0*dXdv00_0+dXdv10_0*dXdv10_0;
207                D_1=dXdv00_1*dXdv00_1+dXdv10_1*dXdv10_1;                D_1=dXdv00_1*dXdv00_1+dXdv10_1*dXdv10_1;
# Line 247  void Assemble_jacobeans_2D_M1D_E2D(doubl Line 244  void Assemble_jacobeans_2D_M1D_E2D(doubl
244       #pragma omp parallel       #pragma omp parallel
245       {       {
246         register double dXdv00,dXdv10,dXdv01,dXdv11,         register double dXdv00,dXdv10,dXdv01,dXdv11,
247                         dvdX00,dvdX10,dvdX01,dvdX11, D,invD;                         dvdX00,dvdX10,dvdX01,dvdX11, D,invD,
248         double X0[numShape], X1[numShape];                         X0_loc, X1_loc;
249         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00,dXdv10,dXdv01,dXdv11,dvdX00,dvdX10,dvdX01,dvdX11, D,invD,X0_loc, X1_loc) schedule(static)
250         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
251             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
252                dXdv00=0;                dXdv00=0;
253                dXdv10=0;                dXdv10=0;
254                dXdv01=0;                dXdv01=0;
255                dXdv11=0;                dXdv11=0;
256                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
257                   dXdv00+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
258                   dXdv10+=X1[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];
259                   dXdv01+=X0[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv00+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
260                   dXdv11+=X1[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv10+=X1_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
261                     dXdv01+=X0_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
262                     dXdv11+=X1_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
263                }                }
264                D  =  dXdv00*dXdv11 - dXdv01*dXdv10;                D  =  dXdv00*dXdv11 - dXdv01*dXdv10;
265                if (D==0.) {                if (D==0.) {
# Line 305  void Assemble_jacobeans_2D_M1D_E2D_C(dou Line 300  void Assemble_jacobeans_2D_M1D_E2D_C(dou
300       #pragma omp parallel       #pragma omp parallel
301       {       {
302         register double dXdv00_0,dXdv10_0,dXdv01_0,dXdv11_0,dvdX00_0,dvdX10_0,dvdX01_0,dvdX11_0, D_0,invD_0,         register double dXdv00_0,dXdv10_0,dXdv01_0,dXdv11_0,dvdX00_0,dvdX10_0,dvdX01_0,dvdX11_0, D_0,invD_0,
303                         dXdv00_1,dXdv10_1,dXdv01_1,dXdv11_1,dvdX00_1,dvdX10_1,dvdX01_1,dvdX11_1, D_1,invD_1;                         dXdv00_1,dXdv10_1,dXdv01_1,dXdv11_1,dvdX00_1,dvdX10_1,dvdX01_1,dvdX11_1, D_1,invD_1,
304         double X0[2*numShape], X1[2*numShape];                         X0_loc_0, X1_loc_0, X0_loc_1, X1_loc_1;
305         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00_0,dXdv10_0,dXdv01_0,dXdv11_0,dvdX00_0,dvdX10_0,dvdX01_0,dvdX11_0, D_0,invD_0,dXdv00_1,dXdv10_1,dXdv01_1,dXdv11_1,dvdX00_1,dvdX10_1,dvdX01_1,dvdX11_1, D_1,invD_1,X0_loc_0, X1_loc_0, X0_loc_1, X1_loc_1) schedule(static)
306         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<2*numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
307             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
308                dXdv00_0=0;                dXdv00_0=0;
309                dXdv10_0=0;                dXdv10_0=0;
# Line 323  void Assemble_jacobeans_2D_M1D_E2D_C(dou Line 314  void Assemble_jacobeans_2D_M1D_E2D_C(dou
314                dXdv01_1=0;                dXdv01_1=0;
315                dXdv11_1=0;                dXdv11_1=0;
316                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
317                   dXdv00_0+=X0[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc_0=coordinates[INDEX2(0,nodes[INDEX2(s         ,e,numNodes)],DIM)];
318                   dXdv10_0+=X1[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc_0=coordinates[INDEX2(1,nodes[INDEX2(s         ,e,numNodes)],DIM)];
319                   dXdv01_0+=X0[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X0_loc_1=coordinates[INDEX2(0,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
320                   dXdv11_0+=X1[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X1_loc_1=coordinates[INDEX2(1,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
321                   dXdv00_1+=X0[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv00_0+=X0_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
322                   dXdv10_1+=X1[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv10_0+=X1_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
323                   dXdv01_1+=X0[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv01_0+=X0_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
324                   dXdv11_1+=X1[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv11_0+=X1_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
325                     dXdv00_1+=X0_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
326                     dXdv10_1+=X1_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
327                     dXdv01_1+=X0_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
328                     dXdv11_1+=X1_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
329                }                }
330                D_0  =  dXdv00_0*dXdv11_0 - dXdv01_0*dXdv10_0;                D_0  =  dXdv00_0*dXdv11_0 - dXdv01_0*dXdv10_0;
331                D_1  =  dXdv00_1*dXdv11_1 - dXdv01_1*dXdv10_1;                D_1  =  dXdv00_1*dXdv11_1 - dXdv01_1*dXdv10_1;
# Line 377  void Assemble_jacobeans_3D(double* coord Line 372  void Assemble_jacobeans_3D(double* coord
372                             double* dTdX, double* volume, index_t* element_id) {                             double* dTdX, double* volume, index_t* element_id) {
373       #define DIM 3       #define DIM 3
374       #define LOCDIM 3       #define LOCDIM 3
375       register int e,q,s;       int e,q,s;
376       char error_msg[LenErrorMsg_MAX];       char error_msg[LenErrorMsg_MAX];
377       #pragma omp parallel       #pragma omp parallel
378       {       {
379         register double dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,dXdv02,dXdv12,dXdv22,         register double dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,dXdv02,dXdv12,dXdv22,
380                         dvdX00,dvdX10,dvdX20,dvdX01,dvdX11,dvdX21,dvdX02,dvdX12,dvdX22, D,invD;                         dvdX00,dvdX10,dvdX20,dvdX01,dvdX11,dvdX21,dvdX02,dvdX12,dvdX22, D,invD,
381         double X0[numShape], X1[numShape], X2[numShape];                         X0_loc,X1_loc,X2_loc;
382         #pragma omp for private(e,q,s) schedule(static)  
383         for(e=0;e<numElements;e++){        #pragma omp for private(e,q,s,dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,dXdv02,dXdv12,dXdv22,dvdX00,dvdX10,dvdX20,dvdX01,dvdX11,dvdX21,dvdX02,dvdX12,dvdX22,D,invD,X0_loc,X1_loc,X2_loc) schedule(static)
384             for (s=0;s<numShape; s++) {         for(e=0;e<numElements;e++){
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X2[s]=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
385             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
386                dXdv00=0;                dXdv00=0;
387                dXdv10=0;                dXdv10=0;
# Line 402  void Assemble_jacobeans_3D(double* coord Line 393  void Assemble_jacobeans_3D(double* coord
393                dXdv12=0;                dXdv12=0;
394                dXdv22=0;                dXdv22=0;
395                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
396                   dXdv00+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
397                   dXdv10+=X1[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];
398                   dXdv20+=X2[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X2_loc=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];
399                   dXdv01+=X0[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv00+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
400                   dXdv11+=X1[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv10+=X1_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
401                   dXdv21+=X2[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv20+=X2_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
402                   dXdv02+=X0[s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv01+=X0_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
403                   dXdv12+=X1[s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv11+=X1_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
404                   dXdv22+=X2[s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv21+=X2_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
405                     dXdv02+=X0_loc*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
406                     dXdv12+=X1_loc*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
407                     dXdv22+=X2_loc*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
408                }                }
409                D  =  dXdv00*(dXdv11*dXdv22-dXdv12*dXdv21)+ dXdv01*(dXdv20*dXdv12-dXdv10*dXdv22)+dXdv02*(dXdv10*dXdv21-dXdv20*dXdv11);                D  =  dXdv00*(dXdv11*dXdv22-dXdv12*dXdv21)+ dXdv01*(dXdv20*dXdv12-dXdv10*dXdv22)+dXdv02*(dXdv10*dXdv21-dXdv20*dXdv11);
410                if (D==0.) {                if (D==0.) {
# Line 457  void Assemble_jacobeans_3D_M2D_E3D(doubl Line 451  void Assemble_jacobeans_3D_M2D_E3D(doubl
451       #pragma omp parallel       #pragma omp parallel
452       {       {
453         register double dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,dXdv02,dXdv12,dXdv22, m0, m1, m2,         register double dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,dXdv02,dXdv12,dXdv22, m0, m1, m2,
454                         dvdX00,dvdX10,dvdX20,dvdX01,dvdX11,dvdX21,dvdX02,dvdX12,dvdX22, D,invD;                         dvdX00,dvdX10,dvdX20,dvdX01,dvdX11,dvdX21,dvdX02,dvdX12,dvdX22, D,invD,
455         double X0[numShape], X1[numShape], X2[numShape];                         X0_loc, X1_loc, X2_loc;
456         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,dXdv02,dXdv12,dXdv22, m0, m1, m2,dvdX00,dvdX10,dvdX20,dvdX01,dvdX11,dvdX21,dvdX02,dvdX12,dvdX22, D,invD,X0_loc, X1_loc, X2_loc) schedule(static)
457         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X2[s]=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
458             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
459                dXdv00=0;                dXdv00=0;
460                dXdv10=0;                dXdv10=0;
# Line 477  void Assemble_jacobeans_3D_M2D_E3D(doubl Line 466  void Assemble_jacobeans_3D_M2D_E3D(doubl
466                dXdv12=0;                dXdv12=0;
467                dXdv22=0;                dXdv22=0;
468                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
469                   dXdv00+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
470                   dXdv10+=X1[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];
471                   dXdv20+=X2[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X2_loc=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];
472                   dXdv01+=X0[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv00+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
473                   dXdv11+=X1[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv10+=X1_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
474                   dXdv21+=X2[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv20+=X2_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
475                   dXdv02+=X0[s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv01+=X0_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
476                   dXdv12+=X1[s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv11+=X1_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
477                   dXdv22+=X2[s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv21+=X2_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
478                     dXdv02+=X0_loc*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
479                     dXdv12+=X1_loc*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
480                     dXdv22+=X2_loc*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
481                }                }
482                D  =  dXdv00*(dXdv11*dXdv22-dXdv12*dXdv21)+ dXdv01*(dXdv20*dXdv12-dXdv10*dXdv22)+dXdv02*(dXdv10*dXdv21-dXdv20*dXdv11);                D  =  dXdv00*(dXdv11*dXdv22-dXdv12*dXdv21)+ dXdv01*(dXdv20*dXdv12-dXdv10*dXdv22)+dXdv02*(dXdv10*dXdv21-dXdv20*dXdv11);
483                if (D==0.) {                if (D==0.) {
# Line 540  void Assemble_jacobeans_3D_M2D_E3D_C(dou Line 532  void Assemble_jacobeans_3D_M2D_E3D_C(dou
532         register double dXdv00_0,dXdv10_0,dXdv20_0,dXdv01_0,dXdv11_0,dXdv21_0,dXdv02_0,dXdv12_0,dXdv22_0, m0_0, m1_0, m2_0,         register double dXdv00_0,dXdv10_0,dXdv20_0,dXdv01_0,dXdv11_0,dXdv21_0,dXdv02_0,dXdv12_0,dXdv22_0, m0_0, m1_0, m2_0,
533                         dvdX00_0,dvdX10_0,dvdX20_0,dvdX01_0,dvdX11_0,dvdX21_0,dvdX02_0,dvdX12_0,dvdX22_0, D_0,invD_0,                         dvdX00_0,dvdX10_0,dvdX20_0,dvdX01_0,dvdX11_0,dvdX21_0,dvdX02_0,dvdX12_0,dvdX22_0, D_0,invD_0,
534                         dXdv00_1,dXdv10_1,dXdv20_1,dXdv01_1,dXdv11_1,dXdv21_1,dXdv02_1,dXdv12_1,dXdv22_1, m0_1, m1_1, m2_1,                         dXdv00_1,dXdv10_1,dXdv20_1,dXdv01_1,dXdv11_1,dXdv21_1,dXdv02_1,dXdv12_1,dXdv22_1, m0_1, m1_1, m2_1,
535                         dvdX00_1,dvdX10_1,dvdX20_1,dvdX01_1,dvdX11_1,dvdX21_1,dvdX02_1,dvdX12_1,dvdX22_1, D_1,invD_1;                         dvdX00_1,dvdX10_1,dvdX20_1,dvdX01_1,dvdX11_1,dvdX21_1,dvdX02_1,dvdX12_1,dvdX22_1, D_1,invD_1,
536         double X0[2*numShape], X1[2*numShape], X2[2*numShape];                         X0_loc_0, X1_loc_0, X2_loc_0, X0_loc_1, X1_loc_1, X2_loc_1;
537         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00_0,dXdv10_0,dXdv20_0,dXdv01_0,dXdv11_0,dXdv21_0,dXdv02_0,dXdv12_0,dXdv22_0, m0_0, m1_0, m2_0,dvdX00_0,dvdX10_0,dvdX20_0,dvdX01_0,dvdX11_0,dvdX21_0,dvdX02_0,dvdX12_0,dvdX22_0, D_0,invD_0,dXdv00_1,dXdv10_1,dXdv20_1,dXdv01_1,dXdv11_1,dXdv21_1,dXdv02_1,dXdv12_1,dXdv22_1, m0_1, m1_1, m2_1,dvdX00_1,dvdX10_1,dvdX20_1,dvdX01_1,dvdX11_1,dvdX21_1,dvdX02_1,dvdX12_1,dvdX22_1, D_1,invD_1,X0_loc_0, X1_loc_0, X2_loc_0, X0_loc_1, X1_loc_1, X2_loc_1) schedule(static)
538         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<2*numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X2[s]=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
539             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
540                dXdv00_0=0;                dXdv00_0=0;
541                dXdv10_0=0;                dXdv10_0=0;
# Line 569  void Assemble_jacobeans_3D_M2D_E3D_C(dou Line 556  void Assemble_jacobeans_3D_M2D_E3D_C(dou
556                dXdv12_1=0;                dXdv12_1=0;
557                dXdv22_1=0;                dXdv22_1=0;
558                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
559                   dXdv00_0+=X0[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc_0=coordinates[INDEX2(0,nodes[INDEX2(s         ,e,numNodes)],DIM)];
560                   dXdv10_0+=X1[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc_0=coordinates[INDEX2(1,nodes[INDEX2(s         ,e,numNodes)],DIM)];
561                   dXdv20_0+=X2[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X2_loc_0=coordinates[INDEX2(2,nodes[INDEX2(s         ,e,numNodes)],DIM)];
562                   dXdv01_0+=X0[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X0_loc_1=coordinates[INDEX2(0,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
563                   dXdv11_0+=X1[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X1_loc_1=coordinates[INDEX2(1,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
564                   dXdv21_0+=X2[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X2_loc_1=coordinates[INDEX2(2,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
565                   dXdv02_0+=X0[         s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv00_0+=X0_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
566                   dXdv12_0+=X1[         s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv10_0+=X1_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
567                   dXdv22_0+=X2[         s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv20_0+=X2_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
568                   dXdv00_1+=X0[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv01_0+=X0_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
569                   dXdv10_1+=X1[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv11_0+=X1_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
570                   dXdv20_1+=X2[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv21_0+=X2_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
571                   dXdv01_1+=X0[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv02_0+=X0_loc_0*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
572                   dXdv11_1+=X1[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv12_0+=X1_loc_0*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
573                   dXdv21_1+=X2[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv22_0+=X2_loc_0*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
574                   dXdv02_1+=X0[numShape+s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv00_1+=X0_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
575                   dXdv12_1+=X1[numShape+s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv10_1+=X1_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
576                   dXdv22_1+=X2[numShape+s]*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];                   dXdv20_1+=X2_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
577                     dXdv01_1+=X0_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
578                     dXdv11_1+=X1_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
579                     dXdv21_1+=X2_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
580                     dXdv02_1+=X0_loc_1*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
581                     dXdv12_1+=X1_loc_1*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
582                     dXdv22_1+=X2_loc_1*DSDv[INDEX3(s,2,q,numShape,LOCDIM)];
583                }                }
584    
585                D_0=dXdv00_0*(dXdv11_0*dXdv22_0-dXdv12_0*dXdv21_0)+dXdv01_0*(dXdv20_0*dXdv12_0-dXdv10_0*dXdv22_0)+dXdv02_0*(dXdv10_0*dXdv21_0-dXdv20_0*dXdv11_0);                D_0=dXdv00_0*(dXdv11_0*dXdv22_0-dXdv12_0*dXdv21_0)+dXdv01_0*(dXdv20_0*dXdv12_0-dXdv10_0*dXdv22_0)+dXdv02_0*(dXdv10_0*dXdv21_0-dXdv20_0*dXdv11_0);
# Line 660  void Assemble_jacobeans_3D_M2D_E2D(doubl Line 653  void Assemble_jacobeans_3D_M2D_E2D(doubl
653       #pragma omp parallel       #pragma omp parallel
654       {       {
655         register double dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,m00,m01,m11,         register double dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,m00,m01,m11,
656                         dvdX00,dvdX01,dvdX02,dvdX10,dvdX11,dvdX12,D,invD;                         dvdX00,dvdX01,dvdX02,dvdX10,dvdX11,dvdX12,D,invD,
657         double X0[numShape], X1[numShape], X2[numShape];                         X0_loc, X1_loc, X2_loc;
658         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00,dXdv10,dXdv20,dXdv01,dXdv11,dXdv21,m00,m01,m11,dvdX00,dvdX01,dvdX02,dvdX10,dvdX11,dvdX12,D,invD, X0_loc, X1_loc, X2_loc) schedule(static)
659         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X2[s]=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
660             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
661                dXdv00=0;                dXdv00=0;
662                dXdv10=0;                dXdv10=0;
# Line 677  void Assemble_jacobeans_3D_M2D_E2D(doubl Line 665  void Assemble_jacobeans_3D_M2D_E2D(doubl
665                dXdv11=0;                dXdv11=0;
666                dXdv21=0;                dXdv21=0;
667                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
668                   dXdv00+=X0[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];
669                   dXdv10+=X1[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];
670                   dXdv20+=X2[s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X2_loc=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];
671                   dXdv01+=X0[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv00+=X0_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
672                   dXdv11+=X1[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv10+=X1_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
673                   dXdv21+=X2[s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv20+=X2_loc*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
674                     dXdv01+=X0_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
675                     dXdv11+=X1_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
676                     dXdv21+=X2_loc*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
677                }                }
678                m00=dXdv00*dXdv00+dXdv10*dXdv10+dXdv20*dXdv20;                m00=dXdv00*dXdv00+dXdv10*dXdv10+dXdv20*dXdv20;
679                m01=dXdv00*dXdv01+dXdv10*dXdv11+dXdv20*dXdv21;                m01=dXdv00*dXdv01+dXdv10*dXdv11+dXdv20*dXdv21;
# Line 730  void Assemble_jacobeans_3D_M2D_E2D_C(dou Line 721  void Assemble_jacobeans_3D_M2D_E2D_C(dou
721         register double dXdv00_0,dXdv10_0,dXdv20_0,dXdv01_0,dXdv11_0,dXdv21_0,m00_0,m01_0,m11_0,         register double dXdv00_0,dXdv10_0,dXdv20_0,dXdv01_0,dXdv11_0,dXdv21_0,m00_0,m01_0,m11_0,
722                         dvdX00_0,dvdX01_0,dvdX02_0,dvdX10_0,dvdX11_0,dvdX12_0,D_0,invD_0,                         dvdX00_0,dvdX01_0,dvdX02_0,dvdX10_0,dvdX11_0,dvdX12_0,D_0,invD_0,
723                         dXdv00_1,dXdv10_1,dXdv20_1,dXdv01_1,dXdv11_1,dXdv21_1,m00_1,m01_1,m11_1,                         dXdv00_1,dXdv10_1,dXdv20_1,dXdv01_1,dXdv11_1,dXdv21_1,m00_1,m01_1,m11_1,
724                         dvdX00_1,dvdX01_1,dvdX02_1,dvdX10_1,dvdX11_1,dvdX12_1,D_1,invD_1;                         dvdX00_1,dvdX01_1,dvdX02_1,dvdX10_1,dvdX11_1,dvdX12_1,D_1,invD_1,
725         double X0[2*numShape], X1[2*numShape], X2[2*numShape];                         X0_loc_0, X1_loc_0, X2_loc_0, X0_loc_1, X1_loc_1, X2_loc_1;
726         #pragma omp for private(e,q,s) schedule(static)         #pragma omp for private(e,q,s,dXdv00_0,dXdv10_0,dXdv20_0,dXdv01_0,dXdv11_0,dXdv21_0,m00_0,m01_0,m11_0,dvdX00_0,dvdX01_0,dvdX02_0,dvdX10_0,dvdX11_0,dvdX12_0,D_0,invD_0,dXdv00_1,dXdv10_1,dXdv20_1,dXdv01_1,dXdv11_1,dXdv21_1,m00_1,m01_1,m11_1,dvdX00_1,dvdX01_1,dvdX02_1,dvdX10_1,dvdX11_1,dvdX12_1,D_1,invD_1,X0_loc_0, X1_loc_0, X2_loc_0, X0_loc_1, X1_loc_1, X2_loc_1) schedule(static)
727         for(e=0;e<numElements;e++){         for(e=0;e<numElements;e++){
            for (s=0;s<2*numShape; s++) {  
              X0[s]=coordinates[INDEX2(0,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X1[s]=coordinates[INDEX2(1,nodes[INDEX2(s,e,numNodes)],DIM)];  
              X2[s]=coordinates[INDEX2(2,nodes[INDEX2(s,e,numNodes)],DIM)];  
            }  
728             for (q=0;q<numQuad;q++) {             for (q=0;q<numQuad;q++) {
729                dXdv00_0=0;                dXdv00_0=0;
730                dXdv10_0=0;                dXdv10_0=0;
# Line 753  void Assemble_jacobeans_3D_M2D_E2D_C(dou Line 739  void Assemble_jacobeans_3D_M2D_E2D_C(dou
739                dXdv11_1=0;                dXdv11_1=0;
740                dXdv21_1=0;                dXdv21_1=0;
741                for (s=0;s<numShape; s++) {                for (s=0;s<numShape; s++) {
742                   dXdv00_0+=X0[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X0_loc_0=coordinates[INDEX2(0,nodes[INDEX2(s         ,e,numNodes)],DIM)];
743                   dXdv10_0+=X1[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X1_loc_0=coordinates[INDEX2(1,nodes[INDEX2(s         ,e,numNodes)],DIM)];
744                   dXdv20_0+=X2[         s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   X2_loc_0=coordinates[INDEX2(2,nodes[INDEX2(s         ,e,numNodes)],DIM)];
745                   dXdv01_0+=X0[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X0_loc_1=coordinates[INDEX2(0,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
746                   dXdv11_0+=X1[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X1_loc_1=coordinates[INDEX2(1,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
747                   dXdv21_0+=X2[         s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   X2_loc_1=coordinates[INDEX2(2,nodes[INDEX2(s+numShape,e,numNodes)],DIM)];
748                   dXdv00_1+=X0[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv00_0+=X0_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
749                   dXdv10_1+=X1[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv10_0+=X1_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
750                   dXdv20_1+=X2[numShape+s]*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];                   dXdv20_0+=X2_loc_0*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
751                   dXdv01_1+=X0[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv01_0+=X0_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
752                   dXdv11_1+=X1[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv11_0+=X1_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
753                   dXdv21_1+=X2[numShape+s]*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];                   dXdv21_0+=X2_loc_0*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
754                     dXdv00_1+=X0_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
755                     dXdv10_1+=X1_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
756                     dXdv20_1+=X2_loc_1*DSDv[INDEX3(s,0,q,numShape,LOCDIM)];
757                     dXdv01_1+=X0_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
758                     dXdv11_1+=X1_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
759                     dXdv21_1+=X2_loc_1*DSDv[INDEX3(s,1,q,numShape,LOCDIM)];
760                }                }
761                m00_0=dXdv00_0*dXdv00_0+dXdv10_0*dXdv10_0+dXdv20_0*dXdv20_0;                m00_0=dXdv00_0*dXdv00_0+dXdv10_0*dXdv10_0+dXdv20_0*dXdv20_0;
762                m01_0=dXdv00_0*dXdv01_0+dXdv10_0*dXdv11_0+dXdv20_0*dXdv21_0;                m01_0=dXdv00_0*dXdv01_0+dXdv10_0*dXdv11_0+dXdv20_0*dXdv21_0;
# Line 816  void Assemble_jacobeans_3D_M2D_E2D_C(dou Line 808  void Assemble_jacobeans_3D_M2D_E2D_C(dou
808       #undef LOCDIM       #undef LOCDIM
809  }  }
810  /*  /*
811   * $Log$   * $Log:$
812   *   *
813   */   */

Legend:
Removed from v.781  
changed lines
  Added in v.853

  ViewVC Help
Powered by ViewVC 1.1.26