source: issm/oecreview/Archive/14312-15392/ISSM-15005-15006.diff@ 15393

Last change on this file since 15393 was 15393, checked in by Mathieu Morlighem, 12 years ago

NEW: adding Archive/14312-15392 for oecreview

File size: 5.7 KB
  • ../trunk-jpl/src/c/analyses/hydrology_core.cpp

     
    6262                        solutionsequence_nonlinear(femmodel,modify_loads);
    6363
    6464                        /*transfer water column thickness to old water column thickness: */
     65                       
    6566                        InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,WaterColumnOldEnum);
    6667
    6768                        if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){
     
    7778                }
    7879
    7980                else if (hydrology_model==HydrologydcEnum){
     81                                InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SedimentHeadEnum,SedimentHeadOldEnum);
    8082                        femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
     83                       
    8184                        if(VerboseSolution()) _pprintLine_("   computing water head");
    8285                        solutionsequence_hydro_nonlinear(femmodel);
    8386                        if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){
  • ../trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp

     
    4242        iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
    4343        iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
    4444        iomodel->FetchDataToInput(elements,SedimentHeadEnum);
     45        /*      iomodel->FetchDataToInput(elements,SedimentHeadOldEnum);*/
    4546
    4647        /*Free data: */
    4748        iomodel->DeleteData(1,MeshElementsEnum);
  • ../trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

     
    1414        Vector<IssmDouble>* uf=NULL;
    1515        Vector<IssmDouble>* uf_old=NULL;
    1616        Vector<IssmDouble>* ys=NULL;
    17         IssmDouble sediment_kmax;
     17        IssmDouble sediment_kmax,time;
    1818
    1919        /*intermediary: */
    2020        Matrix<IssmDouble>* Kff=NULL;
     
    3636        count=1;
    3737        converged=false;
    3838
     39        femmodel->parameters->FindParam(&time,TimeEnum);
    3940        for(;;){
    40                
    41                 /*Computing the transfer term
    42                        
    43 
    44                  */
    45 
    46                
    47 
    4841                /*First layer*/
    4942                femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
    5043                InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,true,ResetPenaltiesEnum);
     
    5245                femmodel->UpdateConstraintsx();
    5346                femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum);
    5447                for(;;){
     48
    5549                        femmodel->SystemMatricesx(&Kff, &Kfs, &pf,&df, &sediment_kmax);
    5650                        CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCInefficientAnalysisEnum);
    5751                        Reduceloadx(pf,Kfs,ys); delete Kfs; delete uf;
     
    7468
    7569                        if(converged){
    7670                                femmodel->parameters->SetParam(sediment_kmax,HydrologySedimentKmaxEnum);
    77 
    7871                                InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,converged,ConvergedEnum);
    7972                                InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug);
    8073                                InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,sediment_kmax,HydrologySedimentKmaxEnum);
  • ../trunk-jpl/src/c/classes/objects/Elements/Tria.cpp

     
    20742074                                name==MaterialsRheologyZbarEnum ||
    20752075                                name==GradientEnum ||
    20762076                                name==OldGradientEnum ||
    2077                  name==ConvergedEnum ||
     2077                                name==ConvergedEnum ||
     2078                                name==SedimentHeadOldEnum ||
     2079                                name==SedimentHeadEnum ||
    20782080                                name==BasisIntegralEnum ||
    20792081                                name==QmuVxEnum ||
    20802082                                name==QmuVyEnum ||
     
    60226024                                                                                 &Ke->values[0],1);
    60236025                }
    60246026        }
    6025 
    60266027        /*Clean up and return*/
    60276028        delete gauss;
    60286029        return Ke;
     
    61646165        Input* old_wh_input=NULL;
    61656166
    61666167        if(reCast<bool,IssmDouble>(dt)){
    6167                 old_wh_input=inputs->GetInput(SedimentHeadEnum); _assert_(old_wh_input);
     6168                old_wh_input=inputs->GetInput(SedimentHeadOldEnum); _assert_(old_wh_input);
    61686169        }
    61696170
    61706171        /* Start  looping on the number of gaussian points: */
    61716172        gauss=new GaussTria(2);
     6173       
    61726174        for(int ig=gauss->begin();ig<gauss->end();ig++){
    61736175
    61746176                gauss->GaussPoint(ig);
     
    61896191                        for(int i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i];
    61906192                }
    61916193        }
    6192 
    61936194        /*Clean up and return*/
    61946195        delete gauss;
    61956196        return pe;
     
    63396340        /*If converged keep the residual in mind*/
    63406341        this->inputs->GetInputValue(&converged,ConvergedEnum);
    63416342        GetInputListOnVertices(&intbasis[0],BasisIntegralEnum);
    6342        
     6343
    63436344        if(converged){
    63446345                this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    63456346                this->parameters->FindParam(&kmax,HydrologySedimentKmaxEnum);
     
    63566357        }       
    63576358
    63586359        /*Add input to the element: */
     6360
    63596361        this->inputs->AddInput(new TriaP1Input(SedimentHeadEnum,values));
    63606362        this->inputs->AddInput(new TriaP1Input(SedimentHeadResidualEnum,residual));
     6363        if(converged)this->inputs->AddInput(new TriaP1Input(SedimentHeadOldEnum,values));
    63616364
    63626365        /*Free ressources:*/
    63636366        xDelete<int>(doflist);
Note: See TracBrowser for help on using the repository browser.