Changeset 10371
- Timestamp:
- 10/31/11 11:18:22 (13 years ago)
- Location:
- issm/trunk/src/c/objects/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Tria.cpp
r10368 r10371 3177 3177 int* doflist=NULL; 3178 3178 double rho_ice,g; 3179 double values0[numdof]; 3179 3180 double values[numdof]; 3180 3181 double vx[NUMVERTICES]; … … 3189 3190 3190 3191 /*Use the dof list to index into the solution vector: */ 3191 for(i=0;i<numdof;i++) values[i]=solution[doflist[i]]; 3192 for(i=0;i<numdof;i++) values0[i]=solution[doflist[i]]; 3193 3194 /*Transform solution in Cartesian Space*/ 3195 TransformSolutionCoord(&values[0],&values0[0],2); 3192 3196 3193 3197 /*Ok, we have vx and vy in values, fill in vx and vy arrays: */ 3194 3198 for(i=0;i<NUMVERTICES;i++){ 3195 /*TEMP*/ 3196 vel[0]=values[i*NDOF2+0]; 3197 vel[1]=values[i*NDOF2+1]; 3198 TransformSolutionCoord(&vel[0],2,i); 3199 vx[i]=vel[0]; 3200 vy[i]=vel[1]; 3199 vx[i]=values[i*NDOF2+0]; 3200 vy[i]=values[i*NDOF2+1]; 3201 3201 3202 3202 /*Check solution*/ … … 3333 3333 CoordinateSystemTransform(&transform,nodes,numnodes,dim); 3334 3334 3335 /*Transform matrix: T *pe */3335 /*Transform matrix: T^t*pe */ 3336 3336 MatrixMultiply(transform,numnodes*dim,numnodes*dim,1, 3337 3337 values,pe->nrows,1,0, … … 3344 3344 /*}}}*/ 3345 3345 /*FUNCTION Tria::TransformSolutionCoord{{{1*/ 3346 void Tria::TransformSolutionCoord(double* vel,int dim,int node_index){3346 void Tria::TransformSolutionCoord(double* solution,double* solution0,int dim){ 3347 3347 3348 3348 int i,j; 3349 int numnodes = NUMVERTICES; 3349 3350 double *transform = NULL; 3350 double *values = NULL;3351 3352 /*Copy current solution vector*/3353 values=(double*)xmalloc(dim*sizeof(double));3354 for(i=0;i<dim;i++) values[i]=vel[i];3355 3351 3356 3352 /*Get Coordinate Systems transform matrix*/ 3357 CoordinateSystemTransform(&transform, &nodes[node_index],1,dim);3358 3359 /*Transform matrix: T* pe*/3360 MatrixMultiply(transform, dim,dim,0,3361 values,dim,1,0,3362 vel,0);3353 CoordinateSystemTransform(&transform,nodes,numnodes,dim); 3354 3355 /*Transform matrix: T*U */ 3356 MatrixMultiply(transform,numnodes*dim,numnodes*dim,0, 3357 solution0,numnodes*dim,1,0, 3358 &solution[0],0); 3363 3359 3364 3360 /*Free Matrix*/ 3365 3361 xfree((void**)&transform); 3366 xfree((void**)&values);3367 3362 } 3368 3363 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Tria.h
r10368 r10371 210 210 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int dim); 211 211 void TransformLoadVectorCoord(ElementVector* pe,int dim); 212 void TransformSolutionCoord(double* vel,int dim,int node_index);212 void TransformSolutionCoord(double* solution,double* solution0,int dim); 213 213 #endif 214 214
Note:
See TracChangeset
for help on using the changeset viewer.