Ignore:
Timestamp:
11/28/22 09:05:24 (2 years ago)
Author:
vverjans
Message:

CHG moving computation of subglacial water pressure to Element

File:
1 edited

Legend:

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

    r27354 r27439  
    207207                  IssmDouble p_water[numvertices];
    208208                                                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);
    219213                                        }
    220214                                        break;
     
    228222                  IssmDouble p_water[numvertices];
    229223                                                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);
    240228                                        }
    241229                                        break;
     
    249237                  IssmDouble p_water[numvertices];
    250238                                                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];
    258242                                                element->AddInput(FrictionCoulombWaterPressureEnum,p_water,P1DGEnum);
    259                                                 delete gauss;
    260                                                 delete friction;
    261243                                        }
    262244                                        break;
Note: See TracChangeset for help on using the changeset viewer.