Ignore:
Timestamp:
02/11/16 19:26:22 (9 years ago)
Author:
Eric.Larour
Message:

CHG: InputUpateFromSolution now computes delta thickness and inputs it as SealevelriseDeltathickness. This is used
to force the sea level rise core if it is run.

File:
1 edited

Legend:

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

    r19528 r20123  
    670670        /*Fetch dof list and allocate solution vector*/
    671671        basalelement->GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    672         IssmDouble* newthickness = xNew<IssmDouble>(numnodes);
    673         IssmDouble* newbed       = xNew<IssmDouble>(numnodes);
    674         IssmDouble* newsurface   = xNew<IssmDouble>(numnodes);
    675         IssmDouble* oldthickness = xNew<IssmDouble>(numnodes);
    676         IssmDouble* oldbed       = xNew<IssmDouble>(numnodes);
    677         IssmDouble* oldsurface   = xNew<IssmDouble>(numnodes);
    678         IssmDouble* phi          = xNew<IssmDouble>(numnodes);
     672        IssmDouble* newthickness   = xNew<IssmDouble>(numnodes);
     673        IssmDouble* deltathickness = xNew<IssmDouble>(numnodes);
     674        IssmDouble* newbed         = xNew<IssmDouble>(numnodes);
     675        IssmDouble* newsurface     = xNew<IssmDouble>(numnodes);
     676        IssmDouble* oldthickness   = xNew<IssmDouble>(numnodes);
     677        IssmDouble* oldbed         = xNew<IssmDouble>(numnodes);
     678        IssmDouble* oldsurface     = xNew<IssmDouble>(numnodes);
     679        IssmDouble* phi            = xNew<IssmDouble>(numnodes);
    679680
    680681        /*Use the dof list to index into the solution vector: */
     
    692693        basalelement->GetInputListOnNodes(&oldthickness[0],ThicknessEnum);
    693694        basalelement->GetInputListOnNodes(&phi[0],MaskGroundediceLevelsetEnum);
     695
     696       
     697        /*What is the delta thickness, useful for Sea-level rise:*/
     698        for(i=0;i<numnodes;i++) deltathickness[i]=newthickness[i]-oldthickness[i];
    694699
    695700        /*Find MasstransportHydrostaticAdjustment to figure out how to update the geometry:*/
     
    719724        /*Add input to the element: */
    720725        element->AddBasalInput(ThicknessEnum,newthickness,P1Enum);
     726        element->AddBasalInput(SealevelriseDeltathicknessEnum,deltathickness,P1Enum);
    721727        element->AddBasalInput(SurfaceEnum,newsurface,P1Enum);
    722728        element->AddBasalInput(BaseEnum,newbed,P1Enum);
     
    727733        xDelete<IssmDouble>(newsurface);
    728734        xDelete<IssmDouble>(oldthickness);
     735        xDelete<IssmDouble>(deltathickness);
    729736        xDelete<IssmDouble>(oldbed);
    730737        xDelete<IssmDouble>(oldsurface);
Note: See TracChangeset for help on using the changeset viewer.