Changeset 10381


Ignore:
Timestamp:
10/31/11 15:42:06 (13 years ago)
Author:
Mathieu Morlighem
Message:

rotating spc working now for Pattyn

Location:
issm/trunk/src/c/objects
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r10377 r10381  
    55795579        }
    55805580
     5581        /*Transform Coordinate System*/
     5582        tria->TransformStiffnessMatrixCoord(Ke,2);
     5583
    55815584        /*Clean up and return*/
    55825585        delete tria->matice;
     
    57075710                                        &Ke->values[0],1);
    57085711        }
     5712
     5713        /*Transform Coordinate System*/
     5714        TransformStiffnessMatrixCoord(Ke,2);
    57095715
    57105716        /*Clean up and return*/
     
    57785784                                        &Ke->values[0],1);
    57795785        }
     5786
     5787        /*Transform Coordinate System*/
     5788        TransformStiffnessMatrixCoord(Ke,2);
    57805789
    57815790        /*Clean up and return*/
     
    65736582        }
    65746583
     6584        /*Transform coordinate system*/
     6585        TransformLoadVectorCoord(pe,2);
     6586
    65756587        /*Clean up and return*/
    65766588        delete gauss;
     
    73297341        double rho_ice,g;
    73307342        double values[numdof];
     7343        double values0[numdof];
    73317344        double vx[NUMVERTICES];
    73327345        double vy[NUMVERTICES];
     
    73457358
    73467359        /*Use the dof list to index into the solution vector: */
    7347         for(i=0;i<numdof;i++) values[i]=solution[doflist[i]];
     7360        for(i=0;i<numdof;i++) values0[i]=solution[doflist[i]];
     7361
     7362        /*Transform solution in Cartesian Space*/
     7363        TransformSolutionCoord(&values[0],&values0[0],2);
    73487364
    73497365        /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
     
    77637779        int     i,j;
    77647780        int     numnodes;
    7765         double *transform         = NULL;
     7781        double *transform = NULL;
    77667782
    77677783        /*Get Coordinate Systems transform matrix*/
    7768         if(is2d) numnodes=NUMVERTICES;
    7769         else     numnodes=NUMVERTICES2D;
     7784        if(is2d) numnodes=NUMVERTICES2D;
     7785        else     numnodes=NUMVERTICES;
    77707786        CoordinateSystemTransform(&transform,nodes,numnodes,dim);
    77717787
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r10377 r10381  
    26432643        ElementMatrix* Ke2=CreateKMatrixDiagnosticMacAyealFriction();
    26442644        ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
    2645         TransformStiffnessMatrixCoord(Ke,2);
    26462645       
    26472646        /*clean-up and return*/
     
    27062705                                        &Ke->values[0],1);
    27072706        }
     2707
     2708        /*Transform Coordinate System*/
     2709        TransformStiffnessMatrixCoord(Ke,2);
    27082710
    27092711        /*Clean up and return*/
     
    27712773                                        &Ke->values[0],1);
    27722774        }
     2775
     2776        /*Transform Coordinate System*/
     2777        TransformStiffnessMatrixCoord(Ke,2);
    27732778
    27742779        /*Clean up and return*/
  • issm/trunk/src/c/objects/Loads/Icefront.cpp

    r10367 r10381  
    528528                }
    529529        }
     530
    530531        /*Transform load vector*/
    531         TransformLoadVectorCoord(pe,2);
     532        TransformLoadVectorCoord(pe,NUMVERTICESSEG,2);
    532533
    533534        /*Clean up and return*/
     
    537538/*}}}*/
    538539/*FUNCTION Icefront::TransformLoadVectorCoord{{{1*/
    539 void Icefront::TransformLoadVectorCoord(ElementVector* pe,int dim){
    540 
    541         int     numnodes          = 2;
     540void Icefront::TransformLoadVectorCoord(ElementVector* pe,int numnodes,int dimension){
     541
    542542        double *transform         = NULL;
    543543        double *values            = NULL;
     
    548548
    549549        /*Get Coordinate Systems transform matrix*/
    550         CoordinateSystemTransform(&transform,nodes,numnodes,dim);
     550        CoordinateSystemTransform(&transform,nodes,numnodes,dimension);
    551551
    552552        /*Transform matrix: T*pe */
    553         MatrixMultiply(transform,numnodes*dim,numnodes*dim,1,
     553        MatrixMultiply(transform,numnodes*dimension,numnodes*dimension,1,
    554554                                values,pe->nrows,1,0,
    555555                                &pe->values[0],0);
     
    668668        }
    669669
     670        /*Transform load vector*/
     671        TransformLoadVectorCoord(pe,NUMVERTICESQUA,2);
     672
    670673        /*Clean up and return*/
    671674        delete gauss;
     
    743746        }
    744747
     748        /*Transform load vector*/
     749        TransformLoadVectorCoord(pe,NUMVERTICESQUA,3);
     750
    745751        /*Clean up and return*/
    746752        delete gauss;
  • issm/trunk/src/c/objects/Loads/Icefront.h

    r10367 r10381  
    8383                void GetSegmentNormal(double* normal,double xyz_list[2][3]);
    8484                void GetQuadNormal(double* normal,double xyz_list[4][3]);
    85                 void TransformLoadVectorCoord(ElementVector* pe,int dim);
     85                void TransformLoadVectorCoord(ElementVector* pe,int numnodes,int dimension);
    8686                #ifdef _HAVE_CONTROL_
    8787                ElementVector* CreatePVectorAdjointHoriz(void);
Note: See TracChangeset for help on using the changeset viewer.