Changeset 15407
- Timestamp:
- 07/03/13 08:47:27 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r15401 r15407 9336 9336 if(values[i]>h_max){ 9337 9337 residual[i]=kappa*(values[i]-h_max); 9338 residual[i+numdof2d]=residual[i]; 9338 9339 } 9339 9340 else{ 9340 9341 residual[i]=0.0; 9342 residual[i+numdof2d]=residual[i]; 9341 9343 } 9342 9344 } -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15401 r15407 6036 6036 } 6037 6037 } 6038 this->inputs->AddInput(new TriaInput(SedimentHeadResidualEnum,residual,P1Enum)); 6038 6039 } 6039 6040 6040 6041 /*Add input to the element: */ 6041 6042 this->inputs->AddInput(new TriaInput(SedimentHeadEnum,values,P1Enum)); 6042 this->inputs->AddInput(new TriaInput(SedimentHeadResidualEnum,residual,P1Enum));6043 6043 6044 6044 /*Free ressources:*/ -
issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
r15352 r15407 10 10 void solutionsequence_hydro_nonlinear(FemModel* femmodel){ 11 11 /*solution : */ 12 Vector<IssmDouble>* ug_sed=NULL; 12 Vector<IssmDouble>* ug_sed=NULL; 13 Vector<IssmDouble>* uf_sed=NULL; 14 Vector<IssmDouble>* uf_sed_sub_iter=NULL; 15 Vector<IssmDouble>* ug_sed_main_iter=NULL; 16 13 17 Vector<IssmDouble>* ug_epl=NULL; 14 Vector<IssmDouble>* uf =NULL;15 Vector<IssmDouble>* uf_ int_iter=NULL;16 Vector<IssmDouble>* ug_ sed_main_iter=NULL;17 Vector<IssmDouble>* ug_epl_main_iter=NULL;18 Vector<IssmDouble>* uf_epl=NULL; 19 Vector<IssmDouble>* uf_epl_sub_iter=NULL; 20 Vector<IssmDouble>* ug_epl_main_iter=NULL; 21 18 22 Vector<IssmDouble>* ys=NULL; 19 Vector<IssmDouble>* dug=NULL; 20 Vector<IssmDouble>* old_ug=NULL; 23 Vector<IssmDouble>* dug=NULL; 21 24 22 25 Matrix<IssmDouble>* Kff=NULL; … … 47 50 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 48 51 GetSolutionFromInputsx(&ug_sed, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 52 Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters); 49 53 if(isefficientlayer) { 50 54 femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum); 51 55 GetSolutionFromInputsx(&ug_epl, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 56 Reducevectorgtofx(&uf_epl, ug_epl, femmodel->nodes,femmodel->parameters); 52 57 } 53 58 … … 58 63 //save pointer to old velocity 59 64 delete ug_sed_main_iter; 65 delete uf_sed_sub_iter; 60 66 ug_sed_main_iter=ug_sed; 67 uf_sed_sub_iter=uf_sed; 61 68 if(isefficientlayer){ 62 69 delete ug_epl_main_iter; 70 delete uf_sed_sub_iter; 63 71 ug_epl_main_iter=ug_epl; 72 uf_sed_sub_iter=uf_epl; 64 73 } 65 74 … … 74 83 for(;;){ 75 84 femmodel->HydrologyTransferx(); 76 femmodel->SystemMatricesx(&Kff, &Kfs, &pf,&df,&sediment_kmax);85 femmodel->SystemMatricesx(&Kff,&Kfs,&pf,&df,&sediment_kmax); 77 86 CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCInefficientAnalysisEnum); 78 87 Reduceloadx(pf,Kfs,ys); delete Kfs; 79 delete uf; 80 Solverx(&uf, Kff, pf,uf_int_iter, df, femmodel->parameters); 81 delete uf_int_iter; uf_int_iter=uf->Duplicate(); 88 if(sedcount>1)delete uf_sed; 89 Solverx(&uf_sed,Kff,pf,uf_sed_sub_iter,df,femmodel->parameters); 90 delete uf_sed_sub_iter; 91 uf_sed_sub_iter=uf_sed->Duplicate(); 92 uf_sed->Copy(uf_sed_sub_iter); 82 93 if(sedcount>1)delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/ 83 94 delete Kff; delete pf; delete df; 84 95 85 Mergesolutionfromftogx(&ug_sed,uf ,ys,femmodel->nodes,femmodel->parameters); delete ys;96 Mergesolutionfromftogx(&ug_sed,uf_sed,ys,femmodel->nodes,femmodel->parameters); delete ys; 86 97 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_sed); 87 98 ConstraintsStatex(&constraints_converged,&num_unstable_constraints, femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); … … 116 127 for(;;){ 117 128 femmodel->HydrologyTransferx(); 118 femmodel->SystemMatricesx(&Kff, &Kfs,&pf,&df,NULL);129 femmodel->SystemMatricesx(&Kff,&Kfs,&pf,&df,NULL); 119 130 CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCEfficientAnalysisEnum); 120 131 Reduceloadx(pf,Kfs,ys); delete Kfs; 121 delete uf; 122 Solverx(&uf, Kff, pf,uf_int_iter, df, femmodel->parameters); 123 delete uf_int_iter; uf_int_iter=uf->Duplicate(); 132 if(eplcount>1) delete uf_epl; 133 Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters); 134 delete uf_epl_sub_iter; 135 uf_epl_sub_iter=uf_epl->Duplicate(); 136 uf_epl->Copy(uf_epl_sub_iter); 124 137 if(eplcount>1) delete ug_epl; 125 138 delete Kff;delete pf; 126 139 delete df; 127 Mergesolutionfromftogx(&ug_epl,uf ,ys,femmodel->nodes,femmodel->parameters); delete ys;140 Mergesolutionfromftogx(&ug_epl,uf_epl,ys,femmodel->nodes,femmodel->parameters); delete ys; 128 141 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_epl); 129 142 ConstraintsStatex(&constraints_converged,&num_unstable_constraints, femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); … … 200 213 delete ug_epl; 201 214 delete ug_sed; 202 delete uf; 203 delete uf_int_iter; 215 delete uf_sed; 216 // delete uf_epl; 217 delete uf_sed_sub_iter; 218 delete uf_epl_sub_iter; 204 219 delete ug_sed_main_iter; 205 220 delete ug_epl_main_iter;
Note:
See TracChangeset
for help on using the changeset viewer.