/[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 3209 by jfenwick, Fri Sep 24 03:49:36 2010 UTC revision 3210 by jfenwick, Mon Sep 27 04:13:19 2010 UTC
# Line 59  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 59  Dudley_ElementFile_Jacobeans* Dudley_Ele
59                                                                   bool_t reducedIntegrationOrder) {                                                                   bool_t reducedIntegrationOrder) {
60    Dudley_ElementFile_Jacobeans *out = NULL;    Dudley_ElementFile_Jacobeans *out = NULL;
61  //  Dudley_ShapeFunction /* *shape=NULL, */ *basis;  //  Dudley_ShapeFunction /* *shape=NULL, */ *basis;
62    Dudley_ReferenceElement*  refElement=NULL;  //  Dudley_ReferenceElement*  refElement=NULL;
63    double *dBdv;  //  double *dBdv;
64        
65    dim_t numNodes=self->numNodes;    dim_t numNodes=self->numNodes;
66        
# Line 75  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 75  Dudley_ElementFile_Jacobeans* Dudley_Ele
75    if (out->status < nodes->status)    if (out->status < nodes->status)
76    {    {
77  //     basis=out->BasisFunctions;  //     basis=out->BasisFunctions;
78       refElement= Dudley_ReferenceElementSet_borrowReferenceElement(self->referenceElementSet, reducedIntegrationOrder);  //     refElement= Dudley_ReferenceElementSet_borrowReferenceElement(self->referenceElementSet, reducedIntegrationOrder);
79    
80       out->numDim=nodes->numDim;       out->numDim=nodes->numDim;
81       out->numQuad=QuadNums[self->numDim][!reducedIntegrationOrder];       out->numQuad=QuadNums[self->numDim][!reducedIntegrationOrder];
# Line 86  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 86  Dudley_ElementFile_Jacobeans* Dudley_Ele
86  //      if (reducedShapefunction) {  //      if (reducedShapefunction) {
87  //         dBdv=basis->dSdv;  //         dBdv=basis->dSdv;
88  //      } else {  //      } else {
89          dBdv=refElement->DBasisFunctionDv;  //        dBdv=refElement->DBasisFunctionDv;
90  //      }  //      }
91            
92  //      if (out->numQuad != basis->numQuadNodes) {  //      if (out->numQuad != basis->numQuadNodes) {
93  //         Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: Incorrect total number of quadrature points.");  //         Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: Incorrect total number of quadrature points.");
94  //         return NULL;  //         return NULL;
95  //      }  //      }
96       if (refElement->numNodes> numNodes) {  //      if (refElement->numNodes> numNodes) {
97             Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: Too many nodes expected.");  //            Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: Too many nodes expected.");
98             return NULL;  //            return NULL;
99       }  //      }
100    
101       if (out->DSDX==NULL) out->DSDX=MEMALLOC((out->numElements)       if (out->DSDX==NULL) out->DSDX=MEMALLOC((out->numElements)
102                                              *(out->numShapes)                                              *(out->numShapes)
# Line 109  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 109  Dudley_ElementFile_Jacobeans* Dudley_Ele
109           Dudley_setError(SYSTEM_ERROR, "Dudley does not support 1D domains.");           Dudley_setError(SYSTEM_ERROR, "Dudley does not support 1D domains.");
110            /*========================== dim = 2 ============================================== */            /*========================== dim = 2 ============================================== */
111            } else if (out->numDim==2) {            } else if (out->numDim==2) {
112               if (refElement->numLocalDim==0) {               if (self->numLocalDim==0) {
113                   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.");
114               } else if (refElement->numLocalDim==1) {               } else if (self->numLocalDim==1) {
115  //        if (out->BasisFunctions->Type->numDim==1) {  //        if (out->BasisFunctions->Type->numDim==1) {
116    
117                          Assemble_jacobeans_2D_M1D_E1D(nodes->Coordinates, out->numQuad, self->numElements, numNodes,self->Nodes, out->DSDX,out->absD, &(out->quadweight), self->Id);                          Assemble_jacobeans_2D_M1D_E1D(nodes->Coordinates, out->numQuad, self->numElements, numNodes,self->Nodes, out->DSDX,out->absD, &(out->quadweight), self->Id);
118  //                  } else {  //                  } else {
119  //                    Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 1 in a 2D domain has to be 1.");  //                    Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 1 in a 2D domain has to be 1.");
120  //                  }  //                  }
121               } else if (refElement->numLocalDim==2) {               } else if (self->numLocalDim==2) {
122                       Assemble_jacobeans_2D(nodes->Coordinates,out->numQuad, self->numElements,numNodes,self->Nodes,                       Assemble_jacobeans_2D(nodes->Coordinates,out->numQuad, self->numElements,numNodes,self->Nodes,
123                                             out->DSDX, out->absD, &(out->quadweight), self->Id);                                             out->DSDX, out->absD, &(out->quadweight), self->Id);
124               } else {               } else {
# Line 125  Dudley_ElementFile_Jacobeans* Dudley_Ele Line 126  Dudley_ElementFile_Jacobeans* Dudley_Ele
126               }               }
127            /*========================== dim = 3 ============================================== */            /*========================== dim = 3 ============================================== */
128            } else if (out->numDim==3) {            } else if (out->numDim==3) {
129               if (refElement->numLocalDim==0) {               if (self->numLocalDim==0) {
130            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.");
131               } else if (refElement->numLocalDim==2) {               } else if (self->numLocalDim==2) {
132  //        if (out->BasisFunctions->Type->numDim==2) {  //        if (out->BasisFunctions->Type->numDim==2) {
133                          Assemble_jacobeans_3D_M2D_E2D(nodes->Coordinates,out->numQuad,self->numElements,numNodes,self->Nodes,                          Assemble_jacobeans_3D_M2D_E2D(nodes->Coordinates,out->numQuad,self->numElements,numNodes,self->Nodes,
134                                                        out->DSDX,out->absD, &(out->quadweight), self->Id);                                                        out->DSDX,out->absD, &(out->quadweight), self->Id);
135  //                  } else {  //                  } else {
136  //                    Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 2 in a 3D domain has to be 2.");  //                    Dudley_setError(SYSTEM_ERROR,"Dudley_ElementFile_borrowJacobeans: element dimension for local dimenion 2 in a 3D domain has to be 2.");
137  //                  }  //                  }
138               } else if (refElement->numLocalDim==3) {               } else if (self->numLocalDim==3) {
139                       Assemble_jacobeans_3D(nodes->Coordinates,out->numQuad,self->numElements,numNodes,self->Nodes,                       Assemble_jacobeans_3D(nodes->Coordinates,out->numQuad,self->numElements,numNodes,self->Nodes,
140                                             out->DSDX,out->absD, &(out->quadweight), self->Id);                                             out->DSDX,out->absD, &(out->quadweight), self->Id);
141               } else {               } else {

Legend:
Removed from v.3209  
changed lines
  Added in v.3210

  ViewVC Help
Powered by ViewVC 1.1.26