Changeset 16422
- Timestamp:
- 10/16/13 08:20:15 (11 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16388 r16422 10693 10693 10694 10694 /*Initialize values*/ 10695 IssmDouble* vvalues = xNew<IssmDouble>(vnumdof); 10696 IssmDouble* pvalues = xNew<IssmDouble>(pnumdof); 10695 IssmDouble* values = xNew<IssmDouble>(vnumdof+pnumdof); 10697 10696 IssmDouble* vx = xNew<IssmDouble>(vnumnodes); 10698 10697 IssmDouble* vy = xNew<IssmDouble>(vnumnodes); … … 10701 10700 IssmDouble* pressure = xNew<IssmDouble>(pnumnodes); 10702 10701 10702 /*Prepare coordinate system list*/ 10703 int* cs_list = xNew<int>(vnumnodes+pnumnodes); 10704 for(i=0;i<vnumnodes;i++) cs_list[i] = XYEnum; 10705 for(i=0;i<pnumnodes;i++) cs_list[vnumnodes+i] = PressureEnum; 10706 10703 10707 /*Get dof list: */ 10704 10708 GetDofListVelocity(&vdoflist,GsetEnum); … … 10706 10710 10707 10711 /*Use the dof list to index into the solution vector: */ 10708 for(i=0;i<vnumdof;i++) v values[i]=solution[vdoflist[i]];10709 for(i=0;i<pnumdof;i++) pvalues[i]=solution[pdoflist[i]];10712 for(i=0;i<vnumdof;i++) values[i] =solution[vdoflist[i]]; 10713 for(i=0;i<pnumdof;i++) values[vnumdof+i]=solution[pdoflist[i]]; 10710 10714 10711 10715 /*Transform solution in Cartesian Space*/ 10712 TransformSolutionCoord(&v values[0],nodes,vnumnodes,XYZEnum);10716 TransformSolutionCoord(&values[0],nodes,vnumnodes+pnumdof,cs_list); 10713 10717 10714 10718 /*Ok, we have vx and vy in values, fill in all arrays: */ 10715 10719 for(i=0;i<vnumnodes;i++){ 10716 vx[i] = v values[i*NDOF3+0];10717 vy[i] = v values[i*NDOF3+1];10718 vz[i] = v values[i*NDOF3+2];10720 vx[i] = values[i*NDOF3+0]; 10721 vy[i] = values[i*NDOF3+1]; 10722 vz[i] = values[i*NDOF3+2]; 10719 10723 if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector"); 10720 10724 if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector"); … … 10722 10726 } 10723 10727 for(i=0;i<pnumnodes;i++){ 10724 pressure[i] = pvalues[i];10728 pressure[i] = values[vnumdof+i]; 10725 10729 if(xIsNan<IssmDouble>(pressure[i])) _error_("NaN found in solution vector"); 10726 10730 } … … 10728 10732 /*Recondition pressure and compute vel: */ 10729 10733 this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 10730 for(i =0;i<pnumnodes;i++) pressure[i]=pressure[i]*FSreconditioning;10731 for(i =0;i<vnumnodes;i++) vel[i]=pow( pow(vx[i],2.0) + pow(vy[i],2.0) + pow(vz[i],2.0) , 0.5);10734 for(i = 0;i<pnumnodes;i++) pressure[i] = pressure[i]*FSreconditioning; 10735 for(i = 0;i<vnumnodes;i++) vel[i] = sqrt(vx[i]*vx[i] + vy[i]*vy[i] + vz[i]*vz[i]); 10732 10736 10733 10737 /*Now, we have to move the previous inputs to old … … 10751 10755 xDelete<IssmDouble>(vy); 10752 10756 xDelete<IssmDouble>(vx); 10753 xDelete<IssmDouble>(vvalues); 10754 xDelete<IssmDouble>(pvalues); 10757 xDelete<IssmDouble>(values); 10755 10758 xDelete<int>(vdoflist); 10756 10759 xDelete<int>(pdoflist); 10760 xDelete<int>(cs_list); 10757 10761 } 10758 10762 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16421 r16422 4417 4417 GetDofListPressure(&pdoflist,GsetEnum); 4418 4418 4419 /*Use the dof list to index into the solution vector: */ 4419 4420 for(i=0;i<vnumdof;i++) values[i] =solution[vdoflist[i]]; 4420 4421 for(i=0;i<pnumdof;i++) values[vnumdof+i]=solution[pdoflist[i]];
Note:
See TracChangeset
for help on using the changeset viewer.