Changeset 21388


Ignore:
Timestamp:
11/17/16 16:13:30 (8 years ago)
Author:
hongjuy
Message:

CHG: Use the right coordinate system and bed slope for shelf dampending

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r21140 r21388  
    30453045        IssmDouble  rho_water     = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
    30463046        IssmDouble  gravity       = element->GetMaterialParameter(ConstantsGEnum);
    3047         Input*      surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);
     3047        Input*      base_input = element->GetInput(BaseEnum); _assert_(base_input);
    30483048
    30493049        /* Start  looping on the number of gaussian points: */
     
    30523052                gauss->GaussPoint(ig);
    30533053
    3054                 surface_input->GetInputDerivativeValue(&slope[0],xyz_list,gauss);
     3054                base_input->GetInputDerivativeValue(&slope[0],xyz_list,gauss);
    30553055                element->NodalFunctionsVelocity(vbasis,gauss);
    30563056                element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
     
    39423942
    39433943                for(i=0;i<vnumnodes;i++){
    3944                         pe->values[i*dim+0] += water_pressure*gauss->weight*Jdet*vbasis[i]*normal[0];
    3945                         pe->values[i*dim+1] += water_pressure*gauss->weight*Jdet*vbasis[i]*normal[1];
    3946                         if(dim==3){
    3947                                 pe->values[i*dim+2]+=water_pressure*gauss->weight*Jdet*vbasis[i]*normal[2];
    3948                         }
    3949                 }
    3950         }
    3951 
    3952         /*Transform coordinate system*/
    3953         element->TransformLoadVectorCoord(pe,cs_list);
     3944                                pe->values[i*dim+(dim-1)]+=-water_pressure*gauss->weight*Jdet*vbasis[i];
     3945                }
     3946        }
    39543947
    39553948        /* shelf dampening*/
     
    39643957                        element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
    39653958                        element->NodalFunctionsVelocity(vbasis,gauss);
    3966                         element->NormalBase(&normal[0],xyz_list_base);
    3967                         if (dim==2) normal_b=normal[1];
    3968                         else if (dim==3) normal_b=sqrt(normal[0]*normal[0]+normal[1]*normal[1]);
    39693959                        mb_input->GetInputValue(&mb, gauss);
    39703960                        for(i=0;i<vnumnodes;i++){
    3971                                 pe->values[i*dim+1] += dt*rho_water*gravity*mb*gauss->weight*Jdet*vbasis[i]*normal_b;
     3961                                pe->values[i*dim+(dim-1)] += -dt*rho_water*gravity*mb*gauss->weight*Jdet*vbasis[i];
    39723962                        }
    39733963                }
    39743964        }
     3965
     3966        /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/
    39753967
    39763968        /*Clean up and return*/
Note: See TracChangeset for help on using the changeset viewer.