Changeset 17949


Ignore:
Timestamp:
05/06/14 13:45:41 (11 years ago)
Author:
hongjuy
Message:

ADD: shelf dampening force for basal melting

File:
1 edited

Legend:

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

    r17946 r17949  
    212212        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    213213        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
     214        iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
    214215        iomodel->FetchDataToInput(elements,VxEnum,0.);
    215216        if(dakota_analysis)elements->InputDuplicate(VxEnum,QmuVxEnum);
     
    35973598        element->TransformLoadVectorCoord(pe,cs_list);
    35983599
     3600        /* shelf dampening*/
     3601        int shelf_dampening;
     3602        element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum);
     3603        if(shelf_dampening) {
     3604                Input*      mb_input=element->GetInput(BasalforcingsMeltingRateEnum); _assert_(mb_input);
     3605                IssmDouble dt,mb,normal_b;
     3606                element->FindParam(&dt,TimesteppingTimeStepEnum);
     3607                for(int ig=gauss->begin();ig<gauss->end();ig++){
     3608                        gauss->GaussPoint(ig);
     3609                        element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
     3610                        element->NodalFunctionsVelocity(vbasis,gauss);
     3611                        element->NormalBase(&normal[0],xyz_list_base);
     3612                        if (dim==2) normal_b=normal[1];
     3613                        else if (dim==3) normal_b=sqrt(normal[0]*normal[0]+normal[1]*normal[1]);
     3614                        mb_input->GetInputValue(&mb, gauss);
     3615                        for(i=0;i<vnumnodes;i++){
     3616                                pe->values[i*dim+1] += dt*rho_water*gravity*mb*gauss->weight*Jdet*vbasis[i]*normal_b;
     3617                        }
     3618                }
     3619        }
     3620
    35993621        /*Clean up and return*/
    36003622        delete gauss;
Note: See TracChangeset for help on using the changeset viewer.