source: issm/oecreview/Archive/16554-17801/ISSM-17706-17707.diff@ 17802

Last change on this file since 17802 was 17802, checked in by Mathieu Morlighem, 11 years ago

Added archives

File size: 3.2 KB
  • ../trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp

     
    9494                        phi[i]=-1.;
    9595                }
    9696                else{
    97                         _error_("not supported (vertexfloating="<<serial_vertexfloating[i]<<" vertexgrounded="<<serial_vertexgrounded[i]<<")");
     97                        phi[i]=9999.;
    9898                }
    9999        }
    100100
  • ../trunk-jpl/src/c/cores/transient_core.cpp

     
    166166                if(isgroundingline){
    167167                        if(VerboseSolution()) _printf0_("   computing new grounding line position\n");
    168168                        GroundinglineMigrationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     169
     170                        if(groundingline_migration==ContactEnum){
     171                                femmodel->parameters->SetParam(MaskGroundediceLevelsetEnum,InputToExtrudeEnum);
     172                                extrudefrombase_core(femmodel);
     173                        }
    169174                        if(save_results){
    170175                                int outputs[3] = {SurfaceEnum,BaseEnum,MaskGroundediceLevelsetEnum};
    171176                                femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],3);
  • ../trunk-jpl/src/c/classes/Elements/Tria.cpp

     
    43674367        density     = rho_ice/rho_water;
    43684368        oldfloating = this->IsFloating(); //figure out if element is floating before we start to change everything
    43694369
    4370         if(migration_style==ContactEnum){
    4371                 for(i=0;i<NUMVERTICES;i++) phi[i]=phi_ungrounding[vertices[i]->Pid()];
     4370        if(migration_style == ContactEnum){
     4371                for(i = 0;i < NUMVERTICES;i++) phi[i] = phi_ungrounding[vertices[i]->Pid()];
    43724372                this->inputs->AddInput(new TriaInput(MaskGroundediceLevelsetEnum,&phi[0],P1Enum));
     4373
     4374                /*go through vertices, and update inputs, considering them to be TriaVertex type: */
     4375                for(i = 0;i < NUMVERTICES;i++){
     4376                        /*Ice shelf: if bed below bathymetry, impose it at the bathymetry and update surface, elso do nothing */
     4377                        if(phi[i] >= 0.){
     4378                                if(b[i] < r[i]){
     4379                                        b[i]  = r[i];
     4380                                }
     4381                        }
     4382                }
     4383
     4384                /*Add basal melting rate if element just ungrounded*/
     4385                for(i=0;i<NUMVERTICES;i++){
     4386                        if(phi[i]<0.){
     4387                                floatingelement=true;
     4388                                break;
     4389                        }
     4390                }
     4391                if(!oldfloating && floatingelement==true){
     4392                        for(i=0;i<NUMVERTICES;i++) melting[i]=gl_melting_rate/yts;
     4393                        this->inputs->AddInput(new TriaInput(BasalforcingsMeltingRateEnum,&melting[0],P1Enum));
     4394                }
     4395
     4396                /*Update inputs*/
     4397                this->inputs->AddInput(new TriaInput(BaseEnum,&b[0],P1Enum));
    43734398                return;
    43744399        }
    43754400
     
    44374462                }
    44384463        }
    44394464
    4440    /*Add basal melting rate if element just ungrounded*/
     4465        /*Add basal melting rate if element just ungrounded*/
    44414466        if(!oldfloating && floatingelement==true){
    44424467                for(i=0;i<NUMVERTICES;i++)melting[i]=gl_melting_rate/yts;
    44434468                this->inputs->AddInput(new TriaInput(BasalforcingsMeltingRateEnum,&melting[0],P1Enum));
Note: See TracBrowser for help on using the repository browser.