Changeset 17261
- Timestamp:
- 02/12/14 13:32:28 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
r17212 r17261 49 49 /* Intermediaries */ 50 50 bool save_results; 51 int extvar_enum; 52 femmodel->parameters->FindParam(&extvar_enum, ExtrapolationVariableEnum); 53 51 54 /*activate formulation: */ 52 55 femmodel->SetCurrentConfiguration(ExtrapolationAnalysisEnum); 53 56 54 if(VerboseSolution()) _printf0_("extrapolation : call computational core:\n");57 if(VerboseSolution()) _printf0_("extrapolation of " << EnumToStringx(extvar_enum) << ": call computational core:\n"); 55 58 solutionsequence_linear(femmodel); 56 59 57 /*recover parameters: */58 femmodel->parameters->FindParam(&save_results,SaveResultsEnum);59 if(save_results){60 if(VerboseSolution()) _printf0_(" Warning: Adding extrapolated variable to results\n");61 62 int outputs;63 femmodel->parameters->FindParam(&outputs, ExtrapolationVariableEnum);64 femmodel->RequestedOutputsx(&femmodel->results,&outputs,1);65 }66 60 67 61 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r17250 r17261 66 66 /*parameters: */ 67 67 bool save_results; 68 69 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 68 70 69 71 /*activate formulation: */ 70 72 femmodel->SetCurrentConfiguration(LevelsetAnalysisEnum); 71 72 /*recover parameters: */73 femmodel->parameters->FindParam(&save_results,SaveResultsEnum);74 73 75 74 if(VerboseSolution()) _printf0_("call computational core:\n"); … … 199 198 xDelete<IssmDouble>(Bprime); 200 199 delete gauss; 200 201 // Ke->Echo(); 201 202 return Ke; 202 203 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r17212 r17261 231 231 ElementMatrix* MasstransportAnalysis::CreateKMatrix(Element* element){/*{{{*/ 232 232 233 /* Check if ice in element */ 234 if(!element->IsIceInElement()) return NULL; 235 233 236 if(!element->IsOnBed()) return NULL; 234 237 Element* basalelement = element->SpawnBasalElement(); … … 252 255 }/*}}}*/ 253 256 ElementMatrix* MasstransportAnalysis::CreateKMatrixCG(Element* element){/*{{{*/ 257 258 /* Check if ice in element */ 259 if(!element->IsIceInElement()) return NULL; 254 260 255 261 /*Intermediaries */ … … 365 371 ElementMatrix* MasstransportAnalysis::CreateKMatrixDG(Element* element){/*{{{*/ 366 372 373 /* Check if ice in element */ 374 if(!element->IsIceInElement()) return NULL; 375 367 376 /*Intermediaries */ 368 377 int meshtype; … … 437 446 }/*}}}*/ 438 447 ElementVector* MasstransportAnalysis::CreatePVector(Element* element){/*{{{*/ 448 449 /* Check if ice in element */ 450 if(!element->IsIceInElement()) return NULL; 439 451 440 452 if(!element->IsOnBed()) return NULL; … … 460 472 ElementVector* MasstransportAnalysis::CreatePVectorCG(Element* element){/*{{{*/ 461 473 474 /* Check if ice in element */ 475 if(!element->IsIceInElement()) return NULL; 476 462 477 /*Intermediaries */ 463 478 IssmDouble Jdet,dt; … … 505 520 }/*}}}*/ 506 521 ElementVector* MasstransportAnalysis::CreatePVectorDG(Element* element){/*{{{*/ 522 523 /* Check if ice in element */ 524 if(!element->IsIceInElement()) return NULL; 507 525 508 526 /*Intermediaries */ … … 693 711 }/*}}}*/ 694 712 void MasstransportAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/ 695 /*Default, do nothing*/ 713 // _printf0_(" Updating active and non-active nodes for MasstransportAnalysis \n"); 714 // SetActiveNodesLSMx(femmodel->elements); 696 715 return; 697 716 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r17253 r17261 1045 1045 /*Default, do nothing*/ 1046 1046 _printf0_(" Updating active and non-active nodes for StressbalanceAnalysis \n"); 1047 //SetActiveNodesLSMx(femmodel->elements);1047 // SetActiveNodesLSMx(femmodel->elements); 1048 1048 return; 1049 1049 }/*}}}*/ … … 1393 1393 1394 1394 /*If no front, return NULL*/ 1395 if(!element->Is ZeroLevelset(MaskIceLevelsetEnum)) return NULL;1395 if(!element->IsIcefront()) return NULL; 1396 1396 1397 1397 /*Intermediaries*/ … … 1416 1416 IssmDouble gravity = element->GetMaterialParameter(ConstantsGEnum); 1417 1417 element->GetVerticesCoordinates(&xyz_list); 1418 element->ZeroLevelsetCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); 1418 // element->ZeroLevelsetCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); 1419 element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); 1419 1420 element->NormalSection(&normal[0],xyz_list_front); 1420 1421 … … 1806 1807 1807 1808 /*If no front, return NULL*/ 1808 if(!element->Is ZeroLevelset(MaskIceLevelsetEnum)) return NULL;1809 if(!element->IsIcefront()) return NULL; 1809 1810 1810 1811 /*Intermediaries*/ … … 2262 2263 2263 2264 /*If no front, return NULL*/ 2264 if(!element->Is ZeroLevelset(MaskIceLevelsetEnum)) return NULL;2265 if(!element->IsIcefront()) return NULL; 2265 2266 2266 2267 /*Intermediaries*/ … … 3079 3080 3080 3081 /*If no front, return NULL*/ 3081 if(!element->Is ZeroLevelset(MaskIceLevelsetEnum)) return NULL;3082 if(!element->IsIcefront()) return NULL; 3082 3083 3083 3084 /*Intermediaries*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r17248 r17261 1976 1976 name==MaskGroundediceLevelsetEnum || 1977 1977 name==MaskIceLevelsetEnum || 1978 name==IceMaskNodeActivationEnum || 1978 1979 name==GradientEnum || 1979 1980 name==OldGradientEnum || -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r17257 r17261 1621 1621 name==MaskGroundediceLevelsetEnum || 1622 1622 name==MaskIceLevelsetEnum || 1623 name==IceMaskNodeActivationEnum || 1623 1624 name==SurfaceSlopeXEnum || 1624 1625 name==SurfaceSlopeYEnum || -
issm/trunk-jpl/src/c/cores/transient_core.cpp
r17250 r17261 122 122 stressbalance_core(femmodel); 123 123 } 124 125 if(ismasstransport){ 126 if(VerboseSolution()) _printf0_(" computing new thickness\n"); 127 masstransport_core(femmodel); 128 if(VerboseSolution()) _printf0_(" updating vertices positions\n"); 129 femmodel->UpdateVertexPositionsx(); 130 } 131 124 132 125 if(isgroundingline){ 133 126 if(VerboseSolution()) _printf0_(" computing new grounding line position\n"); … … 153 146 /* extrapolate required variables */ 154 147 Analysis* extanalysis = new ExtrapolationAnalysis(); 155 int vars[2] = {VxEnum, VyEnum}; 156 for(int iv=0;iv<2;iv++){ 148 const int nvars=2; 149 int vars[nvars] = {VxEnum, VyEnum}; 150 for(int iv=0;iv<nvars;iv++){ 157 151 femmodel->parameters->SetParam(vars[iv],ExtrapolationVariableEnum); 158 152 extanalysis->Core(femmodel); … … 166 160 /* update vertices included for next calculation */ 167 161 GetMaskOfIceVerticesLSMx(femmodel); 162 163 /* add computation domain mask to outputs */ 164 int outputs[1] = {IceMaskNodeActivationEnum}; 165 femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1); 166 167 } 168 169 if(ismasstransport){ 170 if(VerboseSolution()) _printf0_(" computing new thickness\n"); 171 masstransport_core(femmodel); 172 if(VerboseSolution()) _printf0_(" updating vertices positions\n"); 173 femmodel->UpdateVertexPositionsx(); 168 174 } 169 175
Note:
See TracChangeset
for help on using the changeset viewer.