Changeset 16401


Ignore:
Timestamp:
10/11/13 15:16:56 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixed coordinate system in inputupdatefromsolution

File:
1 edited

Legend:

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

    r16388 r16401  
    24562456
    24572457                gauss->GaussNode(this->VelocityInterpolation(),indices[i]);
    2458 
    24592458                slope_input->GetInputValue(&slope,gauss);
    2460 
    24612459                IssmDouble theta = atan(slope);
    24622460
     
    44044402
    44054403        /*Initialize values*/
     4404        IssmDouble* values   = xNew<IssmDouble>(vnumdof+pnumdof);
    44064405        IssmDouble* vvalues  = xNew<IssmDouble>(vnumdof);
    44074406        IssmDouble* pvalues  = xNew<IssmDouble>(pnumdof);
     
    44114410        IssmDouble* pressure = xNew<IssmDouble>(pnumnodes);
    44124411
     4412        /*Prepare coordinate system list*/
     4413        int* cs_list = xNew<int>(vnumnodes+pnumnodes);
     4414        for(i=0;i<vnumnodes;i++) cs_list[i]           = XYEnum;
     4415        for(i=0;i<pnumnodes;i++) cs_list[vnumnodes+i] = PressureEnum;
     4416
    44134417        /*Get dof list: */
    44144418        GetDofListVelocity(&vdoflist,GsetEnum);
    44154419        GetDofListPressure(&pdoflist,GsetEnum);
    44164420
     4421        for(i=0;i<vnumdof;i++) values[i]        =solution[vdoflist[i]];
     4422        for(i=0;i<pnumdof;i++) values[vnumdof+i]=solution[pdoflist[i]];
     4423
     4424        /*Transform solution in Cartesian Space*/
     4425        TransformSolutionCoord(&values[0],nodes,vnumnodes+pnumdof,cs_list);
     4426
    44174427        /*Use the dof list to index into the solution vector: */
    4418         for(i=0;i<vnumdof;i++) vvalues[i]=solution[vdoflist[i]];
    4419         for(i=0;i<pnumdof;i++) pvalues[i]=solution[pdoflist[i]];
    4420 
    4421         /*Transform solution in Cartesian Space*/
    4422         TransformSolutionCoord(&vvalues[0],nodes,vnumnodes,XYEnum);
     4428        for(i=0;i<vnumdof;i++) vvalues[i]=values[i];
     4429        for(i=0;i<pnumdof;i++) pvalues[i]=values[vnumnodes+i];
    44234430
    44244431        /*Ok, we have vx and vy in values, fill in all arrays: */
     
    44564463        xDelete<IssmDouble>(vy);
    44574464        xDelete<IssmDouble>(vx);
     4465        xDelete<IssmDouble>(values);
    44584466        xDelete<IssmDouble>(vvalues);
    44594467        xDelete<IssmDouble>(pvalues);
    44604468        xDelete<int>(vdoflist);
    44614469        xDelete<int>(pdoflist);
     4470        xDelete<int>(cs_list);
    44624471}
    44634472/*}}}*/
Note: See TracChangeset for help on using the changeset viewer.