Changeset 10529 for issm/trunk


Ignore:
Timestamp:
11/08/11 12:19:09 (13 years ago)
Author:
Mathieu Morlighem
Message:

Fixed pattyn stokes coupling terms

Location:
issm/trunk/src/c
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r10440 r10529  
    487487                                                        ./shared/Elements/TransformLoadVectorCoord.cpp \
    488488                                                        ./shared/Elements/TransformStiffnessMatrixCoord.cpp \
     489                                                        ./shared/Elements/TransformInvStiffnessMatrixCoord.cpp \
    489490                                                        ./shared/Elements/TransformSolutionCoord.cpp
    490491diagnostic_psources =./solutions/diagnostic_core.cpp\
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r10527 r10529  
    55655565ElementMatrix* Penta::CreateKMatrixCouplingPattynStokes(void){
    55665566
     5567        /*Constants*/
     5568        const int numnodes  = 2 *NUMVERTICES;
     5569        const int numdofp     = NDOF2 *NUMVERTICES;
     5570        const int numdofs     = NDOF4 *NUMVERTICES;
     5571        const int numdoftotal = (NDOF2+NDOF4) *NUMVERTICES;
     5572
     5573        /*Intermediaries*/
     5574        Node     *node_list[numnodes];
     5575        int       cs_list[numnodes];
     5576        int       i,j;
     5577
     5578        /*Prepare node list*/
     5579        for(i=0;i<NUMVERTICES;i++){
     5580                node_list[i+0*NUMVERTICES] = this->nodes[i];
     5581                node_list[i+1*NUMVERTICES] = this->nodes[i];
     5582                cs_list[i+0*NUMVERTICES] = XYEnum;
     5583                cs_list[i+1*NUMVERTICES] = XYZPEnum;
     5584        }
     5585
    55675586        /*compute all stiffness matrices for this element*/
    55685587        ElementMatrix* Ke1=new ElementMatrix(this->nodes,NUMVERTICES,this->parameters,PattynApproximationEnum);
     
    55715590        delete Ke1;
    55725591        delete Ke2;
    5573         Ke1=CreateKMatrixDiagnosticPattyn();
    5574         Ke2=CreateKMatrixDiagnosticStokes();
    5575 
    5576         /*Constants*/
    5577         const int numdofp     = NDOF2 *NUMVERTICES;
    5578         const int numdofs     = NDOF4 *NUMVERTICES;
    5579         const int numdoftotal = (NDOF2+NDOF4) *NUMVERTICES;
    5580         int       i,j;
     5592        Ke1=CreateKMatrixDiagnosticPattyn(); TransformInvStiffnessMatrixCoord(Ke1,this->nodes,NUMVERTICES,XYEnum);
     5593        Ke2=CreateKMatrixDiagnosticStokes(); TransformInvStiffnessMatrixCoord(Ke2,this->nodes,NUMVERTICES,XYZPEnum);
    55815594
    55825595        for(i=0;i<numdofs;i++) for(j=0;j<NUMVERTICES;j++){
     
    55885601                Ke->values[i*numdoftotal+numdofp+NDOF4*j+1]+=Ke1->values[i*numdofp+NDOF2*j+1];
    55895602        }
     5603
     5604        /*Transform Coordinate System*/
     5605        TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
    55905606
    55915607        /*clean-up and return*/
  • issm/trunk/src/c/shared/Elements/elements.h

    r10523 r10529  
    1919void   CoordinateSystemTransform(double** ptransform,Node** nodes,int numnodes,int* cs_array);
    2020#ifdef _HAVE_DIAGNOSTIC_
     21void   TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum);
     22void   TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array);
    2123void   TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum);
    2224void   TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array);
Note: See TracChangeset for help on using the changeset viewer.