Changeset 16021


Ignore:
Timestamp:
08/29/13 15:31:28 (12 years ago)
Author:
seroussi
Message:

CHG: starting to add Subelement2 migration in Penta

Location:
issm/trunk-jpl/src/c/classes/Elements
Files:
2 edited

Legend:

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

    r15986 r16021  
    80218021        int         i,j;
    80228022        int         analysis_type,migration_style;
     8023        int         point1;
    80238024        IssmDouble  xyz_list[NUMVERTICES][3];
    80248025        IssmDouble  xyz_list_tria[NUMVERTICES2D][3];
    80258026        IssmDouble  alpha2,Jdet;
     8027        IssmDouble fraction1,fraction2;
     8028        IssmDouble gllevelset;
    80268029        IssmDouble  phi=1.0;
    80278030        IssmDouble  DL_scalar;
     
    80508053        Input* vy_input=inputs->GetInput(VyEnum);           _assert_(vy_input);
    80518054        Input* vz_input=inputs->GetInput(VzEnum);           _assert_(vz_input);
     8055        Input* gllevelset_input=NULL;
    80528056
    80538057        /*build friction object, used later on: */
     
    80568060        /*Recover portion of element that is grounded*/
    80578061        if(migration_style==SubelementMigrationEnum) phi=this->GetGroundedPortion(&xyz_list_tria[0][0]);
     8062        if(migration_style==SubelementMigration2Enum){
     8063                gllevelset_input=inputs->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
     8064                //this->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
     8065                //gauss=new GaussPenta(point1,fraction1,fraction2,mainlyfloating,2);
     8066                gauss=new GaussPenta(0,1,2,2);
     8067        }
     8068        else{
     8069                gauss=new GaussPenta(0,1,2,2);
     8070        }
    80588071
    80598072        /* Start  looping on the number of gaussian points: */
    8060         gauss=new GaussPenta(0,1,2,2);
    80618073        for(int ig=gauss->begin();ig<gauss->end();ig++){
    80628074
     
    80688080                friction->GetAlpha2(&alpha2, gauss,VxEnum,VyEnum,VzEnum);
    80698081                if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
     8082                if(migration_style==SubelementMigration2Enum){
     8083                        gllevelset_input->GetInputValue(&gllevelset, gauss);
     8084                        if(gllevelset<0) alpha2=0;
     8085                }
    80708086
    80718087                DL_scalar=alpha2*gauss->weight*Jdet;
     
    1122711243                        if(bed_hydro>r[i]){
    1122811244                                /*Unground only if the element is connected to the ice shelf*/
    11229                                 if(migration_style==AgressiveMigrationEnum || migration_style==SubelementMigrationEnum){
     11245                                if(migration_style==AgressiveMigrationEnum || migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){
    1123011246                                        s[i]        = (1-density)*h[i];
    1123111247                                        b[i]        = -density*h[i];
     
    1126011276
    1126111277        /*SubelementMigrationEnum: if one grounded, all grounded*/
    11262         if(migration_style==SubelementMigrationEnum){
     11278        if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){
    1126311279                for(i=0;i<NUMVERTICES;i++){
    1126411280                        if(phi[i]>0.){
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16019 r16021  
    30473047        int        analysis_type,migration_style;
    30483048        int        point1;
    3049         IssmDouble alpha2;
    3050         IssmDouble Jdet;
     3049        IssmDouble alpha2,Jdet;
    30513050        IssmDouble fraction1,fraction2;
    30523051        IssmDouble phi=1.0;
Note: See TracChangeset for help on using the changeset viewer.