Changeset 27439
- Timestamp:
- 11/28/22 09:05:24 (2 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r27436 r27439 4711 4711 } 4712 4712 /*}}}*/ 4713 void Element::SubglacialWaterPressure(int output_enum){/*{{{*/ 4714 4715 int numvertices = this->GetNumberOfVertices(); 4716 IssmDouble p_water[numvertices]; 4717 Gauss* gauss=this->NewGauss(); 4718 Friction* friction = new Friction(this); 4719 for(int i=0;i<numvertices;i++){ 4720 gauss->GaussVertex(i); 4721 p_water[i] = friction->SubglacialWaterPressure(gauss); 4722 } 4723 this->AddInput(output_enum,p_water,P1DGEnum); 4724 delete gauss; 4725 delete friction; 4726 4727 }/*}}}*/ 4713 4728 void Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 4714 4729 -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r27437 r27439 196 196 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input); 197 197 void StressMaxPrincipalCreateInput(void); 198 void SubglacialWaterPressure(int output_enum); 198 199 IssmDouble TotalFloatingBmb(IssmDouble* mask, bool scaled); 199 200 IssmDouble TotalGroundedBmb(IssmDouble* mask, bool scaled); -
issm/trunk-jpl/src/c/modules/StochasticForcingx/StochasticForcingx.cpp
r27354 r27439 207 207 IssmDouble p_water[numvertices]; 208 208 element->GetInputValue(&dimensionid,StochasticForcingDefaultIdEnum); 209 Gauss* gauss=element->NewGauss(); 210 Friction* friction = new Friction(element); 211 for(int i=0;i<numvertices;i++){ 212 gauss->GaussVertex(i); 213 p_water_deterministic[i] = friction->SubglacialWaterPressure(gauss); 214 p_water[i] = p_water_deterministic[i] + noisefield[dimensionid]; 215 } 216 element->AddInput(FrictionWaterPressureEnum,p_water,P1DGEnum); 217 delete gauss; 218 delete friction; 209 element->SubglacialWaterPressure(FrictionWaterPressureEnum); 210 element->GetInputListOnVertices(&p_water_deterministic[0],FrictionWaterPressureEnum); 211 for(int i=0;i<numvertices;i++) p_water[i] = p_water_deterministic[i] + noisefield[dimensionid]; 212 element->AddInput(FrictionWaterPressureEnum,p_water,P1DGEnum); 219 213 } 220 214 break; … … 228 222 IssmDouble p_water[numvertices]; 229 223 element->GetInputValue(&dimensionid,StochasticForcingDefaultIdEnum); 230 Gauss* gauss=element->NewGauss(); 231 Friction* friction = new Friction(element); 232 for(int i=0;i<numvertices;i++){ 233 gauss->GaussVertex(i); 234 p_water_deterministic[i] = friction->SubglacialWaterPressure(gauss); 235 p_water[i] = p_water_deterministic[i] + noisefield[dimensionid]; 236 } 237 element->AddInput(FrictionSchoofWaterPressureEnum,p_water,P1DGEnum); 238 delete gauss; 239 delete friction; 224 element->SubglacialWaterPressure(FrictionSchoofWaterPressureEnum); 225 element->GetInputListOnVertices(&p_water_deterministic[0],FrictionSchoofWaterPressureEnum); 226 for(int i=0;i<numvertices;i++) p_water[i] = p_water_deterministic[i] + noisefield[dimensionid]; 227 element->AddInput(FrictionSchoofWaterPressureEnum,p_water,P1DGEnum); 240 228 } 241 229 break; … … 249 237 IssmDouble p_water[numvertices]; 250 238 element->GetInputValue(&dimensionid,StochasticForcingDefaultIdEnum); 251 Gauss* gauss=element->NewGauss(); 252 Friction* friction = new Friction(element); 253 for(int i=0;i<numvertices;i++){ 254 gauss->GaussVertex(i); 255 p_water_deterministic[i] = friction->SubglacialWaterPressure(gauss); 256 p_water[i] = p_water_deterministic[i] + noisefield[dimensionid]; 257 } 239 element->SubglacialWaterPressure(FrictionCoulombWaterPressureEnum); 240 element->GetInputListOnVertices(&p_water_deterministic[0],FrictionCoulombWaterPressureEnum); 241 for(int i=0;i<numvertices;i++) p_water[i] = p_water_deterministic[i] + noisefield[dimensionid]; 258 242 element->AddInput(FrictionCoulombWaterPressureEnum,p_water,P1DGEnum); 259 delete gauss;260 delete friction;261 243 } 262 244 break;
Note:
See TracChangeset
for help on using the changeset viewer.