Changeset 16421


Ignore:
Timestamp:
10/16/13 08:03:50 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: simplifying InputUpdateFromSolution

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16409 r16421  
    44034403        /*Initialize values*/
    44044404        IssmDouble* values   = xNew<IssmDouble>(vnumdof+pnumdof);
    4405         IssmDouble* vvalues  = xNew<IssmDouble>(vnumdof);
    4406         IssmDouble* pvalues  = xNew<IssmDouble>(pnumdof);
    44074405        IssmDouble* vx       = xNew<IssmDouble>(vnumnodes);
    44084406        IssmDouble* vy       = xNew<IssmDouble>(vnumnodes);
     
    44254423        TransformSolutionCoord(&values[0],nodes,vnumnodes+pnumdof,cs_list);
    44264424
    4427         /*Use the dof list to index into the solution vector: */
    4428         for(i=0;i<vnumdof;i++) vvalues[i]=values[i];
    4429         for(i=0;i<pnumdof;i++) pvalues[i]=values[vnumdof+i];
    4430 
    44314425        /*Ok, we have vx and vy in values, fill in all arrays: */
    44324426        for(i=0;i<vnumnodes;i++){
    4433                 vx[i] = vvalues[i*NDOF2+0];
    4434                 vy[i] = vvalues[i*NDOF2+1];
     4427                vx[i] = values[i*NDOF2+0];
     4428                vy[i] = values[i*NDOF2+1];
    44354429                if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
    44364430                if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
    44374431        }
    44384432        for(i=0;i<pnumnodes;i++){
    4439                 pressure[i] = pvalues[i];
     4433                pressure[i] = values[vnumdof+i];
    44404434                if(xIsNan<IssmDouble>(pressure[i])) _error_("NaN found in solution vector");
    44414435        }
     
    44434437        /*Recondition pressure and compute vel: */
    44444438        this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    4445         for(i=0;i<pnumnodes;i++) pressure[i]=pressure[i]*FSreconditioning;
    4446         for(i=0;i<vnumnodes;i++) vel[i]=sqrt(vx[i]*vx[i] + vy[i]*vy[i]);
     4439        for(i=0;i<pnumnodes;i++) pressure[i] = pressure[i]*FSreconditioning;
     4440        for(i=0;i<vnumnodes;i++) vel[i]      = sqrt(vx[i]*vx[i] + vy[i]*vy[i]);
    44474441
    44484442        /*Now, we have to move the previous inputs  to old
     
    44644458        xDelete<IssmDouble>(vx);
    44654459        xDelete<IssmDouble>(values);
    4466         xDelete<IssmDouble>(vvalues);
    4467         xDelete<IssmDouble>(pvalues);
    44684460        xDelete<int>(vdoflist);
    44694461        xDelete<int>(pdoflist);
Note: See TracChangeset for help on using the changeset viewer.