Changeset 15006


Ignore:
Timestamp:
05/10/13 08:17:11 (12 years ago)
Author:
bdef
Message:

BUG: Adding a SedimentHeadOld to deal with nonlinear iterations

Location:
issm/trunk-jpl/src/c
Files:
4 edited

Legend:

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

    r15001 r15006  
    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
     
    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);
  • issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp

    r14996 r15006  
    20752075                                name==GradientEnum ||
    20762076                                name==OldGradientEnum ||
    2077                  name==ConvergedEnum ||
     2077                                name==ConvergedEnum ||
     2078                                name==SedimentHeadOldEnum ||
     2079                                name==SedimentHeadEnum ||
    20782080                                name==BasisIntegralEnum ||
    20792081                                name==QmuVxEnum ||
     
    60236025                }
    60246026        }
    6025 
    60266027        /*Clean up and return*/
    60276028        delete gauss;
     
    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
     
    61906192                }
    61916193        }
    6192 
    61936194        /*Clean up and return*/
    61946195        delete gauss;
     
    63406341        this->inputs->GetInputValue(&converged,ConvergedEnum);
    63416342        GetInputListOnVertices(&intbasis[0],BasisIntegralEnum);
    6342        
     6343
    63436344        if(converged){
    63446345                this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
     
    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:*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp

    r15000 r15006  
    4343        iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
    4444        iomodel->FetchDataToInput(elements,SedimentHeadEnum);
     45        /*      iomodel->FetchDataToInput(elements,SedimentHeadOldEnum);*/
    4546
    4647        /*Free data: */
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r15002 r15006  
    1515        Vector<IssmDouble>* uf_old=NULL;
    1616        Vector<IssmDouble>* ys=NULL;
    17         IssmDouble sediment_kmax;
     17        IssmDouble sediment_kmax,time;
    1818
    1919        /*intermediary: */
     
    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);
     
    5346                femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum);
    5447                for(;;){
     48
    5549                        femmodel->SystemMatricesx(&Kff, &Kfs, &pf,&df, &sediment_kmax);
    5650                        CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCInefficientAnalysisEnum);
     
    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);
Note: See TracChangeset for help on using the changeset viewer.