Changeset 17585
- Timestamp:
- 03/27/14 18:14:43 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 33 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp
r17212 r17585 59 59 break; 60 60 case Mesh3DEnum: 61 if(!element->IsOnB ed()) return NULL;61 if(!element->IsOnBase()) return NULL; 62 62 basalelement = element->SpawnBasalElement(); 63 63 break; -
issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp
r17516 r17585 65 65 break; 66 66 case Mesh3DEnum: 67 if(!element->IsOnB ed()) return NULL;67 if(!element->IsOnBase()) return NULL; 68 68 basalelement = element->SpawnBasalElement(); 69 69 break; … … 694 694 break; 695 695 case Mesh3DEnum: 696 if(!element->IsOnB ed()) return NULL;696 if(!element->IsOnBase()) return NULL; 697 697 basalelement = element->SpawnBasalElement(); 698 698 break; -
issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp
r17555 r17585 126 126 ElementMatrix* BalancethicknessAnalysis::CreateKMatrix(Element* element){/*{{{*/ 127 127 128 if(!element->IsOnB ed()) return NULL;128 if(!element->IsOnBase()) return NULL; 129 129 Element* basalelement = element->SpawnBasalElement(); 130 130 … … 318 318 ElementVector* BalancethicknessAnalysis::CreatePVector(Element* element){/*{{{*/ 319 319 320 if(!element->IsOnB ed()) return NULL;320 if(!element->IsOnBase()) return NULL; 321 321 Element* basalelement = element->SpawnBasalElement(); 322 322 -
issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp
r17564 r17585 158 158 break; 159 159 case Mesh3DEnum: 160 if(!element->IsOnB ed()) return NULL;160 if(!element->IsOnBase()) return NULL; 161 161 basalelement = element->SpawnBasalElement(); 162 162 break; -
issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
r17516 r17585 123 123 break; 124 124 case Mesh3DEnum: 125 if(!element->IsOnB ed()) return NULL;125 if(!element->IsOnBase()) return NULL; 126 126 basalelement = element->SpawnBasalElement(); 127 127 dim = 2; … … 271 271 break; 272 272 case Mesh3DEnum: 273 if(!element->IsOnB ed()) return NULL;273 if(!element->IsOnBase()) return NULL; 274 274 basalelement = element->SpawnBasalElement(); 275 275 break; … … 384 384 element->FindParam(&meshtype,MeshTypeEnum); 385 385 if(meshtype!=Mesh2DhorizontalEnum){ 386 if(!element->IsOnB ed()) return;386 if(!element->IsOnBase()) return; 387 387 basalelement=element->SpawnBasalElement(); 388 388 } -
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r17555 r17585 354 354 355 355 /*Initialize Element matrix and return if necessary*/ 356 if(!element->IsOnB ed() || !element->IsFloating()) return NULL;356 if(!element->IsOnBase() || !element->IsFloating()) return NULL; 357 357 358 358 /*Intermediaries*/ … … 539 539 540 540 /* implementation of the basal condition decision chart of Aschwanden 2012, Fig.5 */ 541 if(!element->IsOnB ed() || element->IsFloating()) return NULL;541 if(!element->IsOnBase() || element->IsFloating()) return NULL; 542 542 543 543 IssmDouble dt,Jdet,enthalpy,pressure,watercolumn,geothermalflux,vx,vy,vz; … … 629 629 630 630 /*Get basal element*/ 631 if(!element->IsOnB ed() || !element->IsFloating()) return NULL;631 if(!element->IsOnBase() || !element->IsFloating()) return NULL; 632 632 633 633 IssmDouble h_pmp,dt,Jdet,scalar_ocean,pressure; … … 902 902 903 903 /* Only compute melt rates at the base of grounded ice*/ 904 if(!element->IsOnB ed() || element->IsFloating()) return;904 if(!element->IsOnBase() || element->IsFloating()) return; 905 905 906 906 /* Intermediaries */ … … 1048 1048 1049 1049 /* Only drain waterfraction of ice column from element at base*/ 1050 if(!element->IsOnB ed()) return; //FIXME: allow freeze on for floating elements1050 if(!element->IsOnBase()) return; //FIXME: allow freeze on for floating elements 1051 1051 1052 1052 /* Intermediaries*/ … … 1150 1150 1151 1151 /* Only update Constraints at the base of grounded ice*/ 1152 if(!(element->IsOnB ed()) || element->IsFloating()) return;1152 if(!(element->IsOnBase()) || element->IsFloating()) return; 1153 1153 1154 1154 /*Intermediary*/ -
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
r17463 r17585 84 84 ElementMatrix* ExtrapolationAnalysis::CreateKMatrix(Element* element){/*{{{*/ 85 85 86 if(!element->IsOnB ed()) return NULL;86 if(!element->IsOnBase()) return NULL; 87 87 Element* basalelement = element->SpawnBasalElement(); 88 88 … … 219 219 ElementVector* ExtrapolationAnalysis::CreatePVector(Element* element){/*{{{*/ 220 220 221 if(!element->IsOnB ed()) return NULL;221 if(!element->IsOnBase()) return NULL; 222 222 Element* basalelement = element->SpawnBasalElement(); 223 223 -
issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.cpp
r17212 r17585 163 163 ElementMatrix* ExtrudeFromBaseAnalysis::CreateKMatrixBed(Element* element){/*{{{*/ 164 164 165 if(!element->IsOnB ed()) return NULL;165 if(!element->IsOnBase()) return NULL; 166 166 167 167 /*Intermediaries */ -
issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.cpp
r17212 r17585 163 163 ElementMatrix* ExtrudeFromTopAnalysis::CreateKMatrixBed(Element* element){/*{{{*/ 164 164 165 if(!element->IsOnB ed()) return NULL;165 if(!element->IsOnBase()) return NULL; 166 166 167 167 /*Intermediaries */ -
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
r17584 r17585 119 119 break; 120 120 case Mesh2DverticalEnum: 121 if(!element->IsOnB ed()) return NULL;121 if(!element->IsOnBase()) return NULL; 122 122 basalelement = element->SpawnBasalElement(); 123 123 dim = 1; 124 124 break; 125 125 case Mesh3DEnum: 126 if(!element->IsOnB ed()) return NULL;126 if(!element->IsOnBase()) return NULL; 127 127 basalelement = element->SpawnBasalElement(); 128 128 dim = 2; … … 242 242 break; 243 243 case Mesh2DverticalEnum: 244 if(!element->IsOnB ed()) return NULL;244 if(!element->IsOnBase()) return NULL; 245 245 basalelement = element->SpawnBasalElement(); 246 246 dim = 1; 247 247 break; 248 248 case Mesh3DEnum: 249 if(!element->IsOnB ed()) return NULL;249 if(!element->IsOnBase()) return NULL; 250 250 basalelement = element->SpawnBasalElement(); 251 251 dim = 2; … … 373 373 374 374 Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 375 if(!element->IsOnB ed()) continue;375 if(!element->IsOnBase()) continue; 376 376 377 377 int numnodes = element->GetNumberOfNodes(); -
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
r17564 r17585 121 121 break; 122 122 case Mesh3DEnum: 123 if(!element->IsOnB ed()) return NULL;123 if(!element->IsOnBase()) return NULL; 124 124 basalelement = element->SpawnBasalElement(); 125 125 break; … … 225 225 break; 226 226 case Mesh3DEnum: 227 if(!element->IsOnB ed()) return NULL;227 if(!element->IsOnBase()) return NULL; 228 228 basalelement = element->SpawnBasalElement(); 229 229 break; … … 323 323 324 324 if(meshtype!=Mesh2DhorizontalEnum){ 325 if(!element->IsOnB ed()) return;325 if(!element->IsOnBase()) return; 326 326 basalelement=element->SpawnBasalElement(); 327 327 } … … 494 494 switch(meshtype){ 495 495 case Mesh2DhorizontalEnum: 496 if(!element->IsOnB ed()) return;496 if(!element->IsOnBase()) return; 497 497 B = element->GetMaterialParameter(MaterialsRheologyBbarEnum); 498 498 break; … … 614 614 break; 615 615 case Mesh3DEnum: 616 if(!element->IsOnB ed()) return;616 if(!element->IsOnBase()) return; 617 617 basalelement = element->SpawnBasalElement(); 618 618 break; … … 694 694 break; 695 695 case Mesh3DEnum: 696 if(!element->IsOnB ed()) return;696 if(!element->IsOnBase()) return; 697 697 basalelement = element->SpawnBasalElement(); 698 698 break; -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r17564 r17585 165 165 break; 166 166 case Mesh3DEnum: 167 if(!element->IsOnB ed()) return NULL;167 if(!element->IsOnBase()) return NULL; 168 168 basalelement = element->SpawnBasalElement(); 169 169 break; … … 270 270 break; 271 271 case Mesh3DEnum: 272 if(!element->IsOnB ed()) return NULL;272 if(!element->IsOnBase()) return NULL; 273 273 basalelement = element->SpawnBasalElement(); 274 274 break; … … 399 399 element->FindParam(&meshtype,MeshTypeEnum); 400 400 if(meshtype!=Mesh2DhorizontalEnum){ 401 if(!element->IsOnB ed()) return;401 if(!element->IsOnBase()) return; 402 402 basalelement=element->SpawnBasalElement(); 403 403 } -
issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp
r17555 r17585 78 78 break; 79 79 case Mesh2DverticalEnum: 80 if(!element->IsOnB ed()) return NULL;80 if(!element->IsOnBase()) return NULL; 81 81 basalelement = element->SpawnBasalElement(); 82 82 break; 83 83 case Mesh3DEnum: 84 if(!element->IsOnB ed()) return NULL;84 if(!element->IsOnBase()) return NULL; 85 85 basalelement = element->SpawnBasalElement(); 86 86 break; 87 87 case Mesh3DtetrasEnum: 88 if(!element->IsOnB ed()) return NULL;88 if(!element->IsOnBase()) return NULL; 89 89 basalelement = element->SpawnBasalElement(); 90 90 break; … … 141 141 break; 142 142 case Mesh2DverticalEnum: 143 if(!element->IsOnB ed()) return NULL;143 if(!element->IsOnBase()) return NULL; 144 144 basalelement = element->SpawnBasalElement(); 145 145 break; 146 146 case Mesh3DEnum: 147 if(!element->IsOnB ed()) return NULL;147 if(!element->IsOnBase()) return NULL; 148 148 basalelement = element->SpawnBasalElement(); 149 149 break; 150 150 case Mesh3DtetrasEnum: 151 if(!element->IsOnB ed()) return NULL;151 if(!element->IsOnBase()) return NULL; 152 152 basalelement = element->SpawnBasalElement(); 153 153 break; -
issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.cpp
r17362 r17585 94 94 break; 95 95 case Mesh2DverticalEnum: 96 if(!element->IsOnB ed()) return NULL;96 if(!element->IsOnBase()) return NULL; 97 97 basalelement = element->SpawnBasalElement(); 98 98 break; 99 99 case Mesh3DEnum: 100 if(!element->IsOnB ed()) return NULL;100 if(!element->IsOnBase()) return NULL; 101 101 basalelement = element->SpawnBasalElement(); 102 102 break; … … 166 166 break; 167 167 case Mesh3DEnum: 168 if(!element->IsOnB ed()) return NULL;168 if(!element->IsOnBase()) return NULL; 169 169 basalelement = element->SpawnBasalElement(); 170 170 break; -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r17463 r17585 84 84 ElementMatrix* LevelsetAnalysis::CreateKMatrix(Element* element){/*{{{*/ 85 85 86 if(!element->IsOnB ed()) return NULL;86 if(!element->IsOnBase()) return NULL; 87 87 Element* basalelement = element->SpawnBasalElement(); 88 88 … … 253 253 ElementVector* LevelsetAnalysis::CreatePVector(Element* element){/*{{{*/ 254 254 255 if(!element->IsOnB ed()) return NULL;255 if(!element->IsOnBase()) return NULL; 256 256 Element* basalelement = element->SpawnBasalElement(); 257 257 -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r17555 r17585 244 244 if(!element->IsIceInElement()) return NULL; 245 245 246 if(!element->IsOnB ed()) return NULL;246 if(!element->IsOnBase()) return NULL; 247 247 Element* basalelement = element->SpawnBasalElement(); 248 248 … … 490 490 if(!element->IsIceInElement()) return NULL; 491 491 492 if(!element->IsOnB ed()) return NULL;492 if(!element->IsOnBase()) return NULL; 493 493 Element* basalelement = element->SpawnBasalElement(); 494 494 … … 677 677 element->FindParam(&meshtype,MeshTypeEnum); 678 678 if(meshtype!=Mesh2DhorizontalEnum){ 679 if(!element->IsOnB ed()) return;679 if(!element->IsOnBase()) return; 680 680 basalelement=element->SpawnBasalElement(); 681 681 } -
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
r17555 r17585 85 85 86 86 /*Get basal element*/ 87 if(!element->IsOnB ed()) return NULL;87 if(!element->IsOnBase()) return NULL; 88 88 Element* basalelement = element->SpawnBasalElement(); 89 89 -
issm/trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeXAnalysis.cpp
r17564 r17585 115 115 break; 116 116 case Mesh3DEnum: 117 if(!element->IsOnB ed()) return NULL;117 if(!element->IsOnBase()) return NULL; 118 118 basalelement = element->SpawnBasalElement(); 119 119 break; -
issm/trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeYAnalysis.cpp
r17564 r17585 115 115 break; 116 116 case Mesh3DEnum: 117 if(!element->IsOnB ed()) return NULL;117 if(!element->IsOnBase()) return NULL; 118 118 basalelement = element->SpawnBasalElement(); 119 119 break; -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r17555 r17585 1085 1085 break; 1086 1086 case Mesh3DEnum: 1087 if(!element->IsOnB ed()) return NULL;1087 if(!element->IsOnBase()) return NULL; 1088 1088 basalelement = element->SpawnBasalElement(); 1089 1089 break; … … 1171 1171 break; 1172 1172 case Mesh3DEnum: case Mesh2DverticalEnum: 1173 if(!element->IsOnB ed()) return NULL;1173 if(!element->IsOnBase()) return NULL; 1174 1174 basalelement = element->SpawnBasalElement(); 1175 1175 break; … … 1374 1374 break; 1375 1375 case Mesh3DEnum: case Mesh2DverticalEnum: 1376 if(!element->IsOnB ed()) return NULL;1376 if(!element->IsOnBase()) return NULL; 1377 1377 basalelement = element->SpawnBasalElement(); 1378 1378 break; … … 1692 1692 break; 1693 1693 case Mesh3DEnum: case Mesh2DverticalEnum: 1694 if(!element->IsOnB ed()){xDelete<IssmDouble>(xyz_list); return;}1694 if(!element->IsOnBase()){xDelete<IssmDouble>(xyz_list); return;} 1695 1695 basalelement=element->SpawnBasalElement(); 1696 1696 break; … … 1773 1773 ElementMatrix* StressbalanceAnalysis::CreateKMatrixL1L2Friction(Element* element){/*{{{*/ 1774 1774 1775 if(!element->IsOnB ed() || element->IsFloating()) return NULL;1775 if(!element->IsOnBase() || element->IsFloating()) return NULL; 1776 1776 Element* basalelement = element->SpawnBasalElement(); 1777 1777 ElementMatrix* Ke = CreateKMatrixSSAFriction(basalelement); … … 1854 1854 break; 1855 1855 case Mesh3DEnum: 1856 if(!element->IsOnB ed()) return NULL;1856 if(!element->IsOnBase()) return NULL; 1857 1857 basalelement = element->SpawnBasalElement(); 1858 1858 break; … … 2018 2018 break; 2019 2019 case Mesh3DEnum: 2020 if(!element->IsOnB ed()){xDelete<IssmDouble>(xyz_list); return;}2020 if(!element->IsOnBase()){xDelete<IssmDouble>(xyz_list); return;} 2021 2021 basalelement=element->SpawnBasalElement(); 2022 2022 break; … … 2236 2236 if(!element->IsIceInElement()) return NULL; 2237 2237 2238 if(element->IsFloating() || !element->IsOnB ed()) return NULL;2238 if(element->IsFloating() || !element->IsOnBase()) return NULL; 2239 2239 2240 2240 /*Intermediaries*/ … … 3041 3041 ElementMatrix* StressbalanceAnalysis::CreateKMatrixFSFriction(Element* element){/*{{{*/ 3042 3042 3043 if(element->IsFloating() || !element->IsOnB ed()) return NULL;3043 if(element->IsFloating() || !element->IsOnBase()) return NULL; 3044 3044 3045 3045 /*If on water or not FS, skip stiffness: */ … … 3134 3134 ElementMatrix* StressbalanceAnalysis::CreateKMatrixFSShelf(Element* element){/*{{{*/ 3135 3135 3136 if(!element->IsFloating() || !element->IsOnB ed()) return NULL;3136 if(!element->IsFloating() || !element->IsOnBase()) return NULL; 3137 3137 3138 3138 /*If on not water or not FS, skip stiffness: */ … … 3565 3565 3566 3566 /*Get basal element*/ 3567 if(!element->IsOnB ed() || !element->IsFloating()) return NULL;3567 if(!element->IsOnBase() || !element->IsFloating()) return NULL; 3568 3568 3569 3569 /*Get problem dimension*/ … … 4509 4509 4510 4510 /*Initialize Element matrix and return if necessary*/ 4511 if(element->IsFloating() || !element->IsOnB ed()) return NULL;4511 if(element->IsFloating() || !element->IsOnBase()) return NULL; 4512 4512 4513 4513 /*Build a tria element using the 3 nodes of the base of the penta. Then use … … 4733 4733 ElementMatrix* StressbalanceAnalysis::CreateKMatrixCouplingSSAHOFriction(Element* element){/*{{{*/ 4734 4734 4735 if(element->IsFloating() || !element->IsOnB ed()) return NULL;4735 if(element->IsFloating() || !element->IsOnBase()) return NULL; 4736 4736 4737 4737 /*Constants*/ … … 4939 4939 /*If on water or not FS, skip stiffness: */ 4940 4940 element->GetInputValue(&approximation,ApproximationEnum); 4941 if(element->IsFloating() || !element->IsOnB ed()) return NULL;4941 if(element->IsFloating() || !element->IsOnBase()) return NULL; 4942 4942 4943 4943 int vnumnodes = element->NumberofNodesVelocity(); … … 5224 5224 5225 5225 /*Initialize Element vector and return if necessary*/ 5226 if(!element->IsOnB ed() || element->IsFloating()) return NULL;5226 if(!element->IsOnBase() || element->IsFloating()) return NULL; 5227 5227 element->GetInputValue(&approximation,ApproximationEnum); 5228 5228 if(approximation!=HOFSApproximationEnum) return NULL; … … 5388 5388 5389 5389 /*Initialize Element vector and return if necessary*/ 5390 if(!element->IsOnB ed() || element->IsFloating()) return NULL;5390 if(!element->IsOnBase() || element->IsFloating()) return NULL; 5391 5391 element->GetInputValue(&approximation,ApproximationEnum); 5392 5392 if(approximation!=SSAFSApproximationEnum) return NULL; -
issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
r17560 r17585 227 227 228 228 /*Create matrix for these two nodes*/ 229 if(element->IsOnB ed() && element->IsOnSurface()){229 if(element->IsOnBase() && element->IsOnSurface()){ 230 230 Ke->values[i0*numdof+i0] = +one0; 231 231 Ke->values[i1*numdof+i1] = +one0; … … 235 235 Ke->values[j1*numdof+j1] = +one1; 236 236 } 237 else if(element->IsOnB ed()){237 else if(element->IsOnBase()){ 238 238 Ke->values[i0*numdof+i0] = one0; 239 239 Ke->values[i1*numdof+i1] = one0; … … 419 419 420 420 /*Deal with basal velocities*/ 421 if(element->IsOnB ed()){421 if(element->IsOnBase()){ 422 422 drag_input->GetInputValue(&drag,gauss); 423 423 -
issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
r17555 r17585 278 278 IssmDouble vx,vy,vz=0.,dbdx,dbdy,basalmeltingvalue; 279 279 280 if(!element->IsOnB ed()) return NULL;280 if(!element->IsOnBase()) return NULL; 281 281 282 282 /*Fetch number of nodes for this finite element*/ -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
r17555 r17585 281 281 282 282 /*Initialize Element matrix and return if necessary*/ 283 if(!element->IsOnB ed() || !element->IsFloating()) return NULL;283 if(!element->IsOnBase() || !element->IsFloating()) return NULL; 284 284 285 285 IssmDouble dt,Jdet,D; … … 287 287 288 288 /*Get basal element*/ 289 if(!element->IsOnB ed() || !element->IsFloating()) return NULL;289 if(!element->IsOnBase() || !element->IsFloating()) return NULL; 290 290 291 291 /*Fetch number of nodes for this finite element*/ … … 434 434 435 435 /* Geothermal flux on ice sheet base and basal friction */ 436 if(!element->IsOnB ed() || element->IsFloating()) return NULL;436 if(!element->IsOnBase() || element->IsFloating()) return NULL; 437 437 438 438 IssmDouble dt,Jdet,geothermalflux,vx,vy,vz; … … 499 499 500 500 /*Get basal element*/ 501 if(!element->IsOnB ed() || !element->IsFloating()) return NULL;501 if(!element->IsOnBase() || !element->IsFloating()) return NULL; 502 502 503 503 /*Fetch number of nodes for this finite element*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r17555 r17585 549 549 } 550 550 /*}}}*/ 551 bool Element::HasNodeOnB ed(){/*{{{*/551 bool Element::HasNodeOnBase(){/*{{{*/ 552 552 return (this->inputs->Max(MeshVertexonbedEnum)>0.); 553 553 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r17579 r17585 89 89 void GetVerticesSidList(int* sidlist); 90 90 void GetVerticesConnectivityList(int* connectivitylist); 91 bool HasNodeOnB ed();91 bool HasNodeOnBase(); 92 92 bool HasNodeOnSurface(); 93 93 int Id(); … … 183 183 184 184 virtual bool IsNodeOnShelfFromFlags(IssmDouble* flags)=0; 185 virtual bool IsOnB ed()=0;185 virtual bool IsOnBase()=0; 186 186 virtual bool IsOnSurface()=0; 187 187 virtual void GetGroundedPart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlyfloating)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r17555 r17585 119 119 120 120 _assert_(this->inputs); 121 if(!IsOnB ed()) return;121 if(!IsOnBase()) return; 122 122 else{ 123 123 if(interpolation_enum==P1Enum){ … … 152 152 153 153 /* Basal friction can only be found at the base of an ice sheet: */ 154 if (!IsOnB ed() || IsFloating()){154 if (!IsOnBase() || IsFloating()){ 155 155 //empty friction: 156 156 this->inputs->AddInput(new PentaInput(BasalFrictionEnum,&basalfriction[0],P1Enum)); … … 219 219 this->parameters->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 220 220 221 if(!IsOnB ed()){221 if(!IsOnBase()){ 222 222 //put zero 223 223 sigma_b->SetValue(id-1,0.0,INS_VAL); … … 374 374 void Penta::Delta18oParameterization(void){ 375 375 /*Are we on the base? If not, return*/ 376 if(!IsOnB ed()) return;376 if(!IsOnBase()) return; 377 377 378 378 int i; … … 544 544 for(;;){ 545 545 /*Stop if we have reached the surface, else, take lower penta*/ 546 if (penta->IsOnB ed()) break;546 if (penta->IsOnBase()) break; 547 547 548 548 /* get lower Penta*/ … … 1125 1125 1126 1126 /*Are we on the base? If not, return*/ 1127 if(!IsOnB ed()) return;1127 if(!IsOnBase()) return; 1128 1128 1129 1129 /*OK, we are on bed. Initialize global inputs as 0*/ … … 1225 1225 1226 1226 /*Are we on the base, not on the surface?:*/ 1227 if(!IsOnB ed()) return;1227 if(!IsOnBase()) return; 1228 1228 1229 1229 /*Step1: Get and Extrude original input: */ … … 1415 1415 1416 1416 /*If not on bed, return*/ 1417 if (!IsOnB ed()) return;1417 if (!IsOnBase()) return; 1418 1418 1419 1419 /*Get dof list: */ … … 1504 1504 } 1505 1505 /*}}}*/ 1506 /*FUNCTION Penta::IsOnB ed{{{*/1507 bool Penta::IsOnB ed(void){1506 /*FUNCTION Penta::IsOnBase{{{*/ 1507 bool Penta::IsOnBase(void){ 1508 1508 1509 1509 bool onbed; … … 1913 1913 /*For FS only: we want the CS to be tangential to the bedrock*/ 1914 1914 inputs->GetInputValue(&approximation,ApproximationEnum); 1915 if(!IsOnB ed() || (approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum)) return;1915 if(!IsOnBase() || (approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum)) return; 1916 1916 1917 1917 /*Get number of nodes for velocity only and base*/ … … 2022 2022 Element* Penta::SpawnBasalElement(void){ 2023 2023 2024 _assert_(this->IsOnB ed());2024 _assert_(this->IsOnBase()); 2025 2025 2026 2026 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); … … 2109 2109 * -> Non SSA not on the surface 2110 2110 * -> SSA (2d model) and not on bed) */ 2111 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnB ed())){2111 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBase())){ 2112 2112 return 0; 2113 2113 } … … 2490 2490 void Penta::UpdateConstraintsExtrudeFromBase(void){ 2491 2491 2492 if(!IsOnB ed()) return;2492 if(!IsOnBase()) return; 2493 2493 2494 2494 int extrusioninput; … … 2665 2665 IssmDouble xyz_list[NUMVERTICES][3]; 2666 2666 2667 if(!IsIceInElement() || IsFloating() || !IsOnB ed())return 0;2667 if(!IsIceInElement() || IsFloating() || !IsOnBase())return 0; 2668 2668 2669 2669 rho_ice=matpar->GetRhoIce(); … … 2733 2733 IssmDouble mass_flux=0; 2734 2734 2735 if(!IsOnB ed()) return mass_flux;2735 if(!IsOnBase()) return mass_flux; 2736 2736 2737 2737 /*Depth Averaging Vx and Vy*/ … … 2757 2757 IssmDouble mass_flux=0; 2758 2758 2759 if(!IsOnB ed()) return mass_flux;2759 if(!IsOnBase()) return mass_flux; 2760 2760 2761 2761 /*Depth Averaging Vx and Vy*/ … … 2923 2923 2924 2924 if(enum_type==MaterialsRheologyBbarEnum){ 2925 if(!IsOnB ed()) return;2925 if(!IsOnBase()) return; 2926 2926 input=(Input*)inputs->GetInput(MaterialsRheologyBEnum); 2927 2927 } 2928 2928 else if(enum_type==DamageDbarEnum){ 2929 if(!IsOnB ed()) return;2929 if(!IsOnBase()) return; 2930 2930 input=(Input*)inputs->GetInput(DamageDEnum); 2931 2931 } … … 3115 3115 break; 3116 3116 case DragCoefficientAbsGradientEnum: 3117 if(IsOnB ed()){3117 if(IsOnBase()){ 3118 3118 tria=(Tria*)SpawnTria(0,1,2); 3119 3119 tria->GradjDragGradient(gradient,control_index); … … 3122 3122 break; 3123 3123 case RheologyBbarAbsGradientEnum: 3124 if(IsOnB ed()){3124 if(IsOnBase()){ 3125 3125 tria=(Tria*)SpawnTria(0,1,2); 3126 3126 tria->GradjBGradient(gradient,control_index); … … 3138 3138 3139 3139 /*Gradient is 0 if on shelf or not on bed*/ 3140 if(IsFloating() || !IsOnB ed()) return;3140 if(IsFloating() || !IsOnBase()) return; 3141 3141 3142 3142 /*Spawn tria*/ … … 3164 3164 3165 3165 /*Gradient is 0 if on shelf or not on bed*/ 3166 if(IsFloating() || !IsOnB ed()) return;3166 if(IsFloating() || !IsOnBase()) return; 3167 3167 3168 3168 /*Retrieve all inputs and parameters*/ … … 3237 3237 3238 3238 /*Gradient is 0 if on shelf or not on bed*/ 3239 if(IsFloating() || !IsOnB ed()) return;3239 if(IsFloating() || !IsOnBase()) return; 3240 3240 3241 3241 /*Retrieve all inputs and parameters*/ … … 3313 3313 3314 3314 /*This element should be collapsed into a tria element at its base*/ 3315 if (!IsOnB ed()) return;3315 if (!IsOnBase()) return; 3316 3316 3317 3317 /*Depth Average B*/ … … 3333 3333 3334 3334 /*Gradient is computed on bed only (Bbar)*/ 3335 if (!IsOnB ed()) return;3335 if (!IsOnBase()) return; 3336 3336 3337 3337 /*Depth Average B and D*/ … … 3352 3352 3353 3353 /*Gradient is computed on bed only (Bbar)*/ 3354 if (!IsOnB ed()) return;3354 if (!IsOnBase()) return; 3355 3355 3356 3356 /*Depth Average B and D*/ … … 3382 3382 3383 3383 if(control_type[i]==MaterialsRheologyBbarEnum){ 3384 if (!IsOnB ed()) goto cleanup_and_return;3384 if (!IsOnBase()) goto cleanup_and_return; 3385 3385 input=(Input*)this->inputs->GetInput(MaterialsRheologyBEnum); _assert_(input); 3386 3386 } 3387 3387 else if(control_type[i]==DamageDbarEnum){ 3388 if (!IsOnB ed()) goto cleanup_and_return;3388 if (!IsOnBase()) goto cleanup_and_return; 3389 3389 input=(Input*)this->inputs->GetInput(DamageDEnum); _assert_(input); 3390 3390 } … … 3427 3427 * -> Non SSA and not on the surface 3428 3428 * -> SSA (2d model) and not on bed) */ 3429 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnB ed())){3429 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBase())){ 3430 3430 return 0; 3431 3431 } … … 3464 3464 * -> Non SSA and not on the surface 3465 3465 * -> SSA (2d model) and not on bed) */ 3466 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnB ed())){3466 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBase())){ 3467 3467 return 0; 3468 3468 } … … 3501 3501 * -> Non SSA and not on the surface 3502 3502 * -> SSA (2d model) and not on bed) */ 3503 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnB ed())){3503 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBase())){ 3504 3504 return 0; 3505 3505 } … … 3540 3540 * -> Non SSA and not on the surface 3541 3541 * -> SSA (2d model) and not on bed) */ 3542 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnB ed())){3542 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBase())){ 3543 3543 return 0; 3544 3544 } … … 3577 3577 * -> Non SSA and not on the surface 3578 3578 * -> SSA (2d model) and not on bed) */ 3579 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnB ed())){3579 if ((approximation!=SSAApproximationEnum && !IsOnSurface()) || (approximation==SSAApproximationEnum && !IsOnBase())){ 3580 3580 return 0; 3581 3581 } … … 3631 3631 3632 3632 /*If on water, on shelf or not on bed, skip: */ 3633 if(!IsIceInElement()|| IsFloating() || !IsOnB ed()) return 0;3633 if(!IsIceInElement()|| IsFloating() || !IsOnBase()) return 0; 3634 3634 3635 3635 tria=(Tria*)SpawnTria(0,1,2); //lower face is 0, upper face is 1 … … 3646 3646 3647 3647 /*If on water, on shelf or not on bed, skip: */ 3648 if(!IsIceInElement() || !IsOnB ed()) return 0;3648 if(!IsIceInElement() || !IsOnBase()) return 0; 3649 3649 3650 3650 tria=(Tria*)SpawnTria(0,1,2); … … 3891 3891 IssmDouble melting[NUMVERTICES],phi[NUMVERTICES]; 3892 3892 3893 if(!IsOnB ed()) return;3893 if(!IsOnBase()) return; 3894 3894 3895 3895 /*Recover info at the vertices: */ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r17579 r17585 187 187 void InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solutiong,int enum_type); 188 188 bool IsOnSurface(void); 189 bool IsOnB ed(void);189 bool IsOnBase(void); 190 190 bool IsNodeOnShelfFromFlags(IssmDouble* flags); 191 191 void JacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r17579 r17585 72 72 void GetVerticesCoordinatesBase(IssmDouble** pxyz_list){_error_("not implemented yet");}; 73 73 void GetVerticesCoordinatesTop(IssmDouble** pxyz_list){_error_("not implemented yet");}; 74 bool IsOnB ed(){_error_("not implemented yet");};74 bool IsOnBase(){_error_("not implemented yet");}; 75 75 bool IsOnSurface(){_error_("not implemented yet");}; 76 76 bool IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
r17536 r17585 103 103 } 104 104 /*}}}*/ 105 /*FUNCTION Tetra::FaceOnB edIndices{{{*/106 void Tetra::FaceOnB edIndices(int* pindex1,int* pindex2,int* pindex3){105 /*FUNCTION Tetra::FaceOnBaseIndices{{{*/ 106 void Tetra::FaceOnBaseIndices(int* pindex1,int* pindex2,int* pindex3){ 107 107 108 108 IssmDouble values[NUMVERTICES]; … … 187 187 /*Allocate Output*/ 188 188 IssmDouble* xyz_list_edge = xNew<IssmDouble>(3*3); 189 this->FaceOnB edIndices(&indices[0],&indices[1],&indices[2]);189 this->FaceOnBaseIndices(&indices[0],&indices[1],&indices[2]); 190 190 for(int i=0;i<3;i++) for(int j=0;j<3;j++) xyz_list_edge[i*3+j]=xyz_list[indices[i]][j]; 191 191 … … 227 227 } 228 228 /*}}}*/ 229 /*FUNCTION Tetra::HasFaceOnB ed{{{*/230 bool Tetra::HasFaceOnB ed(){229 /*FUNCTION Tetra::HasFaceOnBase{{{*/ 230 bool Tetra::HasFaceOnBase(){ 231 231 232 232 IssmDouble values[NUMVERTICES]; … … 398 398 } 399 399 /*}}}*/ 400 /*FUNCTION Tetra::IsOnB ed{{{*/401 bool Tetra::IsOnB ed(){402 return HasFaceOnB ed();400 /*FUNCTION Tetra::IsOnBase {{{*/ 401 bool Tetra::IsOnBase(){ 402 return HasFaceOnBase(); 403 403 } 404 404 /*}}}*/ … … 476 476 477 477 int indices[3]; 478 this->FaceOnB edIndices(&indices[0],&indices[1],&indices[2]);478 this->FaceOnBaseIndices(&indices[0],&indices[1],&indices[2]); 479 479 return new GaussTetra(indices[0],indices[1],indices[2],order); 480 480 } … … 660 660 /*For FS only: we want the CS to be tangential to the bedrock*/ 661 661 inputs->GetInputValue(&approximation,ApproximationEnum); 662 if(IsFloating() || !HasNodeOnB ed() || approximation!=FSApproximationEnum) return;662 if(IsFloating() || !HasNodeOnBase() || approximation!=FSApproximationEnum) return; 663 663 664 664 //printf("element number %i \n",this->id); … … 727 727 Element* Tetra::SpawnBasalElement(void){ 728 728 729 _assert_(HasFaceOnB ed());729 _assert_(HasFaceOnBase()); 730 730 731 731 int index1,index2,index3; 732 this->FaceOnB edIndices(&index1,&index2,&index3);732 this->FaceOnBaseIndices(&index1,&index2,&index3); 733 733 return SpawnTria(index1,index2,index3); 734 734 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r17579 r17585 61 61 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");}; 62 62 void FaceOnFrontIndices(int* pindex1,int* pindex2,int* pindex3); 63 void FaceOnB edIndices(int* pindex1,int* pindex2,int* pindex3);63 void FaceOnBaseIndices(int* pindex1,int* pindex2,int* pindex3); 64 64 void FaceOnSurfaceIndices(int* pindex1,int* pindex2,int* pindex3); 65 65 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");}; … … 74 74 void GetVerticesCoordinatesBase(IssmDouble** pxyz_list); 75 75 void GetVerticesCoordinatesTop(IssmDouble** pxyz_list); 76 bool HasFaceOnB ed();76 bool HasFaceOnBase(); 77 77 bool HasFaceOnSurface(); 78 bool IsOnB ed();78 bool IsOnBase(); 79 79 bool IsOnSurface(); 80 80 bool IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r17583 r17585 112 112 int numindices; 113 113 int *indices = NULL; 114 int index = this->EdgeOnB edIndex();114 int index = this->EdgeOnBaseIndex(); 115 115 NodeOnEdgeIndices(&numindices,&indices,index,this->FiniteElement()); 116 116 for(int i=0;i<numindices;i++){ … … 476 476 477 477 if(meshtype==Mesh2DverticalEnum){ 478 this->EdgeOnB edIndices(&index1,&index2);478 this->EdgeOnBaseIndices(&index1,&index2); 479 479 if(gl[index1]>0 && gl[index2]>0) phi=1; // All grounded 480 480 else if(gl[index1]<0 && gl[index2]<0) phi=0; // All floating … … 585 585 /*Allocate Output*/ 586 586 IssmDouble* xyz_list_edge = xNew<IssmDouble>(2*3); 587 this->EdgeOnB edIndices(&indices[0],&indices[1]);587 this->EdgeOnBaseIndices(&indices[0],&indices[1]); 588 588 for(int i=0;i<2;i++) for(int j=0;j<2;j++) xyz_list_edge[i*3+j]=xyz_list[indices[i]][j]; 589 589 … … 1132 1132 } 1133 1133 /*}}}*/ 1134 /*FUNCTION Tria::IsOnB ed{{{*/1135 bool Tria::IsOnB ed(){1134 /*FUNCTION Tria::IsOnBase {{{*/ 1135 bool Tria::IsOnBase(){ 1136 1136 1137 1137 int meshtype; … … 1139 1139 switch(meshtype){ 1140 1140 case Mesh2DverticalEnum: 1141 return HasEdgeOnB ed();1141 return HasEdgeOnBase(); 1142 1142 case Mesh2DhorizontalEnum: 1143 1143 return true; … … 1192 1192 } 1193 1193 /*}}}*/ 1194 /*FUNCTION Tria::HasEdgeOnB ed{{{*/1195 bool Tria::HasEdgeOnB ed(){1194 /*FUNCTION Tria::HasEdgeOnBase {{{*/ 1195 bool Tria::HasEdgeOnBase(){ 1196 1196 1197 1197 IssmDouble values[NUMVERTICES]; … … 1236 1236 } 1237 1237 /*}}}*/ 1238 /*FUNCTION Tria::EdgeOnB edIndices{{{*/1239 void Tria::EdgeOnB edIndices(int* pindex1,int* pindex2){1238 /*FUNCTION Tria::EdgeOnBaseIndices{{{*/ 1239 void Tria::EdgeOnBaseIndices(int* pindex1,int* pindex2){ 1240 1240 1241 1241 IssmDouble values[NUMVERTICES]; … … 1278 1278 } 1279 1279 /*}}}*/ 1280 /*FUNCTION Tria::EdgeOnB edIndex{{{*/1281 int Tria::EdgeOnB edIndex(void){1280 /*FUNCTION Tria::EdgeOnBaseIndex{{{*/ 1281 int Tria::EdgeOnBaseIndex(void){ 1282 1282 1283 1283 IssmDouble values[NUMVERTICES]; … … 1319 1319 void Tria::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){ 1320 1320 1321 if(!IsOnB ed()) return;1321 if(!IsOnBase()) return; 1322 1322 1323 1323 /*Intermediaries*/ … … 1398 1398 1399 1399 int indices[2]; 1400 this->EdgeOnB edIndices(&indices[0],&indices[1]);1400 this->EdgeOnBaseIndices(&indices[0],&indices[1]); 1401 1401 return new GaussTria(indices[0],indices[1],order); 1402 1402 } … … 1644 1644 /*For FS only: we want the CS to be tangential to the bedrock*/ 1645 1645 inputs->GetInputValue(&approximation,ApproximationEnum); 1646 if(!HasNodeOnB ed() || approximation!=FSApproximationEnum) return;1646 if(!HasNodeOnBase() || approximation!=FSApproximationEnum) return; 1647 1647 1648 1648 //printf("element number %i \n",this->id); … … 1774 1774 return this; 1775 1775 case Mesh2DverticalEnum: 1776 _assert_(HasEdgeOnB ed());1777 this->EdgeOnB edIndices(&index1,&index2);1776 _assert_(HasEdgeOnBase()); 1777 this->EdgeOnBaseIndices(&index1,&index2); 1778 1778 return SpawnSeg(index1,index2); 1779 1779 default: … … 1987 1987 void Tria::UpdateConstraintsExtrudeFromBase(void){ 1988 1988 1989 if(!HasEdgeOnB ed()) return;1989 if(!HasEdgeOnBase()) return; 1990 1990 1991 1991 int extrusioninput; -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r17582 r17585 70 70 int GetNumberOfNodes(void); 71 71 int GetNumberOfVertices(void); 72 bool IsOnB ed();72 bool IsOnBase(); 73 73 bool IsOnSurface(); 74 bool HasEdgeOnB ed();74 bool HasEdgeOnBase(); 75 75 bool HasEdgeOnSurface(); 76 76 void EdgeOnSurfaceIndices(int* pindex1,int* pindex); 77 void EdgeOnB edIndices(int* pindex1,int* pindex);78 int EdgeOnB edIndex();77 void EdgeOnBaseIndices(int* pindex1,int* pindex); 78 int EdgeOnBaseIndex(); 79 79 int EdgeOnSurfaceIndex(); 80 80 bool IsNodeOnShelfFromFlags(IssmDouble* flags); -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
r17516 r17585 614 614 return; 615 615 } 616 if(!element->IsOnB ed()){616 if(!element->IsOnBase()){ 617 617 unstable=0; 618 618 active=0;
Note:
See TracChangeset
for help on using the changeset viewer.