Ignore:
Timestamp:
07/28/22 08:11:55 (3 years ago)
Author:
vverjans
Message:

CHG: allowing stochastic water pressure for frictioncoulomb

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/StochasticForcingx/StochasticForcingx.cpp

    r27161 r27165  
    207207                                                        gauss->GaussVertex(i);
    208208                                                        p_water_deterministic[i] = friction->SubglacialWaterPressure(gauss);
    209                                                         p_water[i]               = p_water_deterministic[i] + noisefield[dimensionid]; //make sure positive (29Nov2021)
     209                                                        p_water[i]               = p_water_deterministic[i] + noisefield[dimensionid];
    210210                                                }
    211211                                                element->AddInput(FrictionWaterPressureEnum,p_water,P1DGEnum);
     
    228228                                                        gauss->GaussVertex(i);
    229229                                                        p_water_deterministic[i] = friction->SubglacialWaterPressure(gauss);
    230                                                         p_water[i]               = p_water_deterministic[i] + noisefield[dimensionid]; //make sure positive (29Nov2021)
     230                                                        p_water[i]               = p_water_deterministic[i] + noisefield[dimensionid];
    231231                                                }
    232232                                                element->AddInput(FrictionSchoofWaterPressureEnum,p_water,P1DGEnum);
     
    234234                                                delete friction;
    235235                                        }
    236                                         break;                          default:
     236                                        break;
     237                                case FrictionCoulombWaterPressureEnum:
     238                                        /*Specify that WaterPressure is stochastic*/
     239                                        femmodel->parameters->SetParam(true,StochasticForcingIsWaterPressureEnum);
     240                                        for(Object* &object:femmodel->elements->objects){
     241                  Element* element = xDynamicCast<Element*>(object);
     242                  int numvertices  = element->GetNumberOfVertices();
     243                  IssmDouble p_water_deterministic[numvertices];
     244                  IssmDouble p_water[numvertices];
     245                                                element->GetInputValue(&dimensionid,StochasticForcingDefaultIdEnum);
     246                                                Gauss* gauss=element->NewGauss();
     247                                                Friction* friction = new Friction(element);
     248                                                for(int i=0;i<numvertices;i++){
     249                                                        gauss->GaussVertex(i);
     250                                                        p_water_deterministic[i] = friction->SubglacialWaterPressure(gauss);
     251                                                        p_water[i]               = p_water_deterministic[i] + noisefield[dimensionid];
     252                                                }
     253                                                element->AddInput(FrictionCoulombWaterPressureEnum,p_water,P1DGEnum);
     254                                                delete gauss;
     255                                                delete friction;
     256                                        }
     257                                        break;
     258                                default:
    237259                                        _error_("Field "<<EnumToStringx(fields[j])<<" does not support stochasticity yet.");
    238260                        }
Note: See TracChangeset for help on using the changeset viewer.