Changeset 5785


Ignore:
Timestamp:
09/13/10 15:59:12 (15 years ago)
Author:
seroussi
Message:

some modifications for PattynStokes

Location:
issm/trunk/src/c/objects/Elements
Files:
2 edited

Legend:

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

    r5772 r5785  
    35773577        double du[3];
    35783578        double dv[3];
    3579         double dudx,dvdy;
     3579        double dw[3];
     3580        double dudx,dvdy,dwdz;
     3581
     3582        /*Get some parameters*/
     3583        int approximation;
    35803584
    35813585        /*If on water, skip: */
    35823586        if(IsOnWater())return;
     3587        inputs->GetParameterValue(&approximation,ApproximationEnum);
    35833588
    35843589        /*If we are on the bedrock, spawn a tria on the bedrock, and use it to build the
     
    35983603        Input* vx_input=inputs->GetInput(VxEnum); ISSMASSERT(vx_input);
    35993604        Input* vy_input=inputs->GetInput(VyEnum); ISSMASSERT(vy_input);
     3605        Input* vz_input=NULL;
     3606        if(approximation==PattynStokesApproximationEnum){
     3607                vz_input=inputs->GetInput(VzEnum); ISSMASSERT(vz_input);
     3608        }
    36003609
    36013610        /* Start  looping on the number of gaussian points: */
     
    36083617                vx_input->GetParameterDerivativeValue(&du[0],&xyz_list[0][0],gauss);
    36093618                vy_input->GetParameterDerivativeValue(&dv[0],&xyz_list[0][0],gauss);
     3619                if(approximation==PattynStokesApproximationEnum){
     3620                        vz_input->GetParameterDerivativeValue(&dw[0],&xyz_list[0][0],gauss);
     3621                        dwdz=dw[2];
     3622                }
     3623                else dwdz=0;
    36103624                dudx=du[0];
    36113625                dvdy=dv[1];
     
    36193633                /*Build pe_g_gaussian vector: */
    36203634                for (i=0;i<NUMVERTICES;i++){
    3621                         pe_g_gaussian[i]=(dudx+dvdy)*Jdet*gauss->weight*l1l6[i];
     3635                        pe_g_gaussian[i]=(dudx+dvdy+dwdz)*Jdet*gauss->weight*l1l6[i];
    36223636                }
    36233637
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r5780 r5785  
    41374137
    41384138        /*input parameters for structural analysis (diagnostic): */
    4139         double  vx,vy;
     4139        double  vx,vy,vz;
    41404140        double  meltingvalue;
    41414141        double  slope[2];
    41424142        double  dbdx,dbdy;
     4143        int     approximation;
    41434144
    41444145        /* Get node coordinates and dof list: */
     
    41474148
    41484149        /*Retrieve all inputs we will be needing: */
     4150        inputs->GetParameterValue(&approximation,ApproximationEnum);
    41494151        Input* melting_input=inputs->GetInput(MeltingRateEnum); ISSMASSERT(melting_input);
    41504152        Input* vx_input=inputs->GetInput(VxEnum);               ISSMASSERT(vx_input);
    41514153        Input* vy_input=inputs->GetInput(VyEnum);               ISSMASSERT(vy_input);
     4154        Input* vz_input=NULL;
     4155        if(approximation==PattynStokesApproximationEnum){
     4156                vz_input=inputs->GetInput(VzEnum);            ISSMASSERT(vz_input);
     4157        }
    41524158        Input* bed_input=inputs->GetInput(BedEnum);             ISSMASSERT(bed_input);
    41534159
     
    41654171                vx_input->GetParameterValue(&vx, gauss);
    41664172                vy_input->GetParameterValue(&vy, gauss);
     4173                if(approximation==PattynStokesApproximationEnum){
     4174                        vz_input->GetParameterValue(&vz, gauss);
     4175                }
     4176                else vz=0;
    41674177
    41684178                /*Get bed slope: */
     
    41794189                /*Build gaussian vector: */
    41804190                for(i=0;i<NUMVERTICES;i++){
    4181                         pe_g_gaussian[i]=-Jdet*gauss->weight*(vx*dbdx+vy*dbdy-meltingvalue)*L[i];
     4191                        pe_g_gaussian[i]=-Jdet*gauss->weight*(vx*dbdx+vy*dbdy-vz-meltingvalue)*L[i];
    41824192                }
    41834193
Note: See TracChangeset for help on using the changeset viewer.