source:
issm/oecreview/Archive/14312-15392/ISSM-15005-15006.diff@
15393
Last change on this file since 15393 was 15393, checked in by , 12 years ago | |
---|---|
File size: 5.7 KB |
-
../trunk-jpl/src/c/analyses/hydrology_core.cpp
62 62 solutionsequence_nonlinear(femmodel,modify_loads); 63 63 64 64 /*transfer water column thickness to old water column thickness: */ 65 65 66 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,WaterColumnOldEnum); 66 67 67 68 if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){ … … 77 78 } 78 79 79 80 else if (hydrology_model==HydrologydcEnum){ 81 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SedimentHeadEnum,SedimentHeadOldEnum); 80 82 femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 83 81 84 if(VerboseSolution()) _pprintLine_(" computing water head"); 82 85 solutionsequence_hydro_nonlinear(femmodel); 83 86 if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){ -
../trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp
42 42 iomodel->FetchDataToInput(elements,MaskElementonwaterEnum); 43 43 iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum); 44 44 iomodel->FetchDataToInput(elements,SedimentHeadEnum); 45 /* iomodel->FetchDataToInput(elements,SedimentHeadOldEnum);*/ 45 46 46 47 /*Free data: */ 47 48 iomodel->DeleteData(1,MeshElementsEnum); -
../trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
14 14 Vector<IssmDouble>* uf=NULL; 15 15 Vector<IssmDouble>* uf_old=NULL; 16 16 Vector<IssmDouble>* ys=NULL; 17 IssmDouble sediment_kmax ;17 IssmDouble sediment_kmax,time; 18 18 19 19 /*intermediary: */ 20 20 Matrix<IssmDouble>* Kff=NULL; … … 36 36 count=1; 37 37 converged=false; 38 38 39 femmodel->parameters->FindParam(&time,TimeEnum); 39 40 for(;;){ 40 41 /*Computing the transfer term42 43 44 */45 46 47 48 41 /*First layer*/ 49 42 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 50 43 InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,true,ResetPenaltiesEnum); … … 52 45 femmodel->UpdateConstraintsx(); 53 46 femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum); 54 47 for(;;){ 48 55 49 femmodel->SystemMatricesx(&Kff, &Kfs, &pf,&df, &sediment_kmax); 56 50 CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCInefficientAnalysisEnum); 57 51 Reduceloadx(pf,Kfs,ys); delete Kfs; delete uf; … … 74 68 75 69 if(converged){ 76 70 femmodel->parameters->SetParam(sediment_kmax,HydrologySedimentKmaxEnum); 77 78 71 InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,converged,ConvergedEnum); 79 72 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug); 80 73 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
2074 2074 name==MaterialsRheologyZbarEnum || 2075 2075 name==GradientEnum || 2076 2076 name==OldGradientEnum || 2077 name==ConvergedEnum || 2077 name==ConvergedEnum || 2078 name==SedimentHeadOldEnum || 2079 name==SedimentHeadEnum || 2078 2080 name==BasisIntegralEnum || 2079 2081 name==QmuVxEnum || 2080 2082 name==QmuVyEnum || … … 6022 6024 &Ke->values[0],1); 6023 6025 } 6024 6026 } 6025 6026 6027 /*Clean up and return*/ 6027 6028 delete gauss; 6028 6029 return Ke; … … 6164 6165 Input* old_wh_input=NULL; 6165 6166 6166 6167 if(reCast<bool,IssmDouble>(dt)){ 6167 old_wh_input=inputs->GetInput(SedimentHead Enum); _assert_(old_wh_input);6168 old_wh_input=inputs->GetInput(SedimentHeadOldEnum); _assert_(old_wh_input); 6168 6169 } 6169 6170 6170 6171 /* Start looping on the number of gaussian points: */ 6171 6172 gauss=new GaussTria(2); 6173 6172 6174 for(int ig=gauss->begin();ig<gauss->end();ig++){ 6173 6175 6174 6176 gauss->GaussPoint(ig); … … 6189 6191 for(int i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i]; 6190 6192 } 6191 6193 } 6192 6193 6194 /*Clean up and return*/ 6194 6195 delete gauss; 6195 6196 return pe; … … 6339 6340 /*If converged keep the residual in mind*/ 6340 6341 this->inputs->GetInputValue(&converged,ConvergedEnum); 6341 6342 GetInputListOnVertices(&intbasis[0],BasisIntegralEnum); 6342 6343 6343 6344 if(converged){ 6344 6345 this->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 6345 6346 this->parameters->FindParam(&kmax,HydrologySedimentKmaxEnum); … … 6356 6357 } 6357 6358 6358 6359 /*Add input to the element: */ 6360 6359 6361 this->inputs->AddInput(new TriaP1Input(SedimentHeadEnum,values)); 6360 6362 this->inputs->AddInput(new TriaP1Input(SedimentHeadResidualEnum,residual)); 6363 if(converged)this->inputs->AddInput(new TriaP1Input(SedimentHeadOldEnum,values)); 6361 6364 6362 6365 /*Free ressources:*/ 6363 6366 xDelete<int>(doflist);
Note:
See TracBrowser
for help on using the repository browser.