/[escript]/branches/domexper/dudley/src/ElementFile_jacobeans.c
ViewVC logotype

Diff of /branches/domexper/dudley/src/ElementFile_jacobeans.c

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

revision 3133 by jfenwick, Wed Sep 1 01:30:28 2010 UTC revision 3134 by jfenwick, Thu Sep 2 03:01:29 2010 UTC
# Line 83  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 83  Dudley_ElementFile_Jacobeans* Dudley_Ele
83    
84       out->numDim=nodes->numDim;       out->numDim=nodes->numDim;
85       out->numQuadTotal=shape->numQuadNodes;       out->numQuadTotal=shape->numQuadNodes;
86       out->numSides=1;       out->numShapesTotal=basis->Type->numShapes;
      out->numShapesTotal=basis->Type->numShapes * out->numSides;  
87       out->numElements=self->numElements;       out->numElements=self->numElements;
88            
89       if (reducedShapefunction) {       if (reducedShapefunction) {
# Line 119  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 118  Dudley_ElementFile_Jacobeans* Dudley_Ele
118               if (refElement->numLocalDim==0) {               if (refElement->numLocalDim==0) {
119            Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 1D does not support local dimension 0.");            Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 1D does not support local dimension 0.");
120               } else if (refElement->numLocalDim==1) {               } else if (refElement->numLocalDim==1) {
                   if (out->numSides==2) {  
121                         Assemble_jacobeans_1D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                         Assemble_jacobeans_1D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
122                                              shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                              shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
123                                              shape->dSdv,basis->Type->numShapes,dBdv, out->DSDX,out->volume,self->Id);                                              shape->dSdv,basis->Type->numShapes,dBdv, out->DSDX,out->volume,self->Id);
124    
                   } else {  
                       Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 1D supports one sided elements only.");  
                   }  
125               } else {               } else {
126                    Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: local dimenion in a 1D domain has to be 0 or 1.");                    Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: local dimenion in a 1D domain has to be 0 or 1.");
127               }               }
# Line 136  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 131  Dudley_ElementFile_Jacobeans* Dudley_Ele
131                   Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 2D does not support local dimension 0.");                   Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 2D does not support local dimension 0.");
132               } else if (refElement->numLocalDim==1) {               } else if (refElement->numLocalDim==1) {
133                    if (out->BasisFunctions->Type->numDim==2) {                    if (out->BasisFunctions->Type->numDim==2) {
                      if (out->numSides==1) {  
134                          Assemble_jacobeans_2D_M1D_E2D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                          Assemble_jacobeans_2D_M1D_E2D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
135                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
136                                                        shape->dSdv,basis->Type->numShapes,dBdv,                                                        shape->dSdv,basis->Type->numShapes,dBdv,
137                                                        out->DSDX,out->volume,self->Id);                                                        out->DSDX,out->volume,self->Id);
                      } else if (out->numSides==2) {  
                         Assemble_jacobeans_2D_M1D_E2D_C(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,  
                                                         shape->Type->numShapes,self->numElements,numNodes,self->Nodes,  
                                                         shape->dSdv,basis->Type->numShapes,dBdv,  
                                                         out->DSDX,out->volume,self->Id);  
                      } else {  
                           Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 2D supports one or two sided elements only.");  
                       }  
138                    }  else if (out->BasisFunctions->Type->numDim==1) {                    }  else if (out->BasisFunctions->Type->numDim==1) {
                      if (out->numSides==1) {  
139                          Assemble_jacobeans_2D_M1D_E1D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                          Assemble_jacobeans_2D_M1D_E1D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
140                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
141                                                        shape->dSdv,basis->Type->numShapes,dBdv,                                                        shape->dSdv,basis->Type->numShapes,dBdv,
142                                                        out->DSDX,out->volume,self->Id);                                                        out->DSDX,out->volume,self->Id);
                      } else if (out->numSides==2) {  
                         Assemble_jacobeans_2D_M1D_E1D_C(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,  
                                                         shape->Type->numShapes,self->numElements,numNodes,self->Nodes,  
                                                         shape->dSdv,basis->Type->numShapes,dBdv,  
                                                         out->DSDX,out->volume,self->Id);  
                      } else {  
                           Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 2D supports one or two sided elements only.");  
                       }  
143                    } else {                    } else {
144                      Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 1 in a 2D domain has to be 1 or 2.");                      Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 1 in a 2D domain has to be 1 or 2.");
145                    }                    }
146               } else if (refElement->numLocalDim==2) {               } else if (refElement->numLocalDim==2) {
                   if (out->numSides==1) {  
147                       Assemble_jacobeans_2D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                       Assemble_jacobeans_2D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
148                                             shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                             shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
149                                             shape->dSdv,basis->Type->numShapes,dBdv,                                             shape->dSdv,basis->Type->numShapes,dBdv,
150                                             out->DSDX,out->volume,self->Id);                                             out->DSDX,out->volume,self->Id);
                   } else {  
                       Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 2D volume supports one sided elements only.");  
                   }  
   
151               } else {               } else {
152                 Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: local dimenion in a 2D domain has to be  1 or 2.");                 Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: local dimenion in a 2D domain has to be  1 or 2.");
153               }               }
# Line 185  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 157  Dudley_ElementFile_Jacobeans* Dudley_Ele
157            Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 3D does not support local dimension 0.");            Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 3D does not support local dimension 0.");
158               } else if (refElement->numLocalDim==2) {               } else if (refElement->numLocalDim==2) {
159                    if (out->BasisFunctions->Type->numDim==3) {                    if (out->BasisFunctions->Type->numDim==3) {
                      if (out->numSides==1) {  
160                          Assemble_jacobeans_3D_M2D_E3D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                          Assemble_jacobeans_3D_M2D_E3D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
161                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
162                                                        shape->dSdv,basis->Type->numShapes,dBdv,                                                        shape->dSdv,basis->Type->numShapes,dBdv,
163                                                        out->DSDX,out->volume,self->Id);                                                        out->DSDX,out->volume,self->Id);
                      } else if (out->numSides==2) {  
                         Assemble_jacobeans_3D_M2D_E3D_C(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,  
                                                         shape->Type->numShapes,self->numElements,numNodes,self->Nodes,  
                                                         shape->dSdv,basis->Type->numShapes,dBdv,  
                                                         out->DSDX,out->volume,self->Id);  
                      } else {  
                           Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 3D supports one or two sided elements only.");  
                       }  
164                    }  else if (out->BasisFunctions->Type->numDim==2) {                    }  else if (out->BasisFunctions->Type->numDim==2) {
                      if (out->numSides==1) {  
165                          Assemble_jacobeans_3D_M2D_E2D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                          Assemble_jacobeans_3D_M2D_E2D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
166                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                                        shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
167                                                        shape->dSdv,basis->Type->numShapes,dBdv,                                                        shape->dSdv,basis->Type->numShapes,dBdv,
168                                                        out->DSDX,out->volume,self->Id);                                                        out->DSDX,out->volume,self->Id);
                      } else if (out->numSides==2) {  
                         Assemble_jacobeans_3D_M2D_E2D_C(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,  
                                                         shape->Type->numShapes,self->numElements,numNodes,self->Nodes,  
                                                         shape->dSdv,basis->Type->numShapes,dBdv,  
                                                         out->DSDX,out->volume,self->Id);  
                      } else {  
                           Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 3D supports one or two sided elements only.");  
                       }  
169                    } else {                    } else {
170                      Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 2 in a 3D domain has to be 3 or 2.");                      Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 2 in a 3D domain has to be 3 or 2.");
171                    }                    }
172               } else if (refElement->numLocalDim==3) {               } else if (refElement->numLocalDim==3) {
                   if (out->numSides==1) {  
173                       Assemble_jacobeans_3D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,                       Assemble_jacobeans_3D(nodes->Coordinates,out->numQuadTotal,shape->QuadWeights,
174                                             shape->Type->numShapes,self->numElements,numNodes,self->Nodes,                                             shape->Type->numShapes,self->numElements,numNodes,self->Nodes,
175                                             shape->dSdv,basis->Type->numShapes,dBdv,                                             shape->dSdv,basis->Type->numShapes,dBdv,
176                                             out->DSDX,out->volume,self->Id);                                             out->DSDX,out->volume,self->Id);
                   } else {  
                       Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: 3D volume supports one sided elements only..");  
                   }  
177               } else {               } else {
178                 Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: local dimenion in a 3D domain has to be 2 or 3.");                 Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: local dimenion in a 3D domain has to be 2 or 3.");
179               }               }

Legend:
Removed from v.3133  
changed lines
  Added in v.3134

  ViewVC Help
Powered by ViewVC 1.1.26