Changeset 26744 for issm/trunk/src/c/classes/Elements/Element.h
- Timestamp:
- 12/22/21 10:39:44 (3 years ago)
- Location:
- issm/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 25837-25866,25868-25993,25995-26330,26332-26733,26736-26739,26741
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c
- Property svn:ignore
-
old new 20 20 issm 21 21 kriging 22 issm_slc 22 23 issm_slr 23 24 issm_ocean
-
- Property svn:ignore
-
issm/trunk/src/c/classes/Elements/Element.h
r25836 r26744 23 23 class Materials; 24 24 class Material; 25 class Matlitho; 25 26 class Inputs; 26 27 class Inputs; … … 30 31 class DatasetInput; 31 32 class IoModel; 32 class Sealevel Masks;33 class SealevelGeometry; 33 34 class Gauss; 35 class GrdLoads; 34 36 class ElementVector; 35 37 template <class doublematrix> class Matrix; … … 37 39 class ElementMatrix; 38 40 class ElementVector; 41 class BarystaticContributions; 39 42 /*}}}*/ 40 43 … … 65 68 /*bool AnyActive(void);*/ 66 69 bool AnyFSet(void); 70 void AutoregressionInit(int numbasins,int arorder,int nspin,IssmDouble starttime,IssmDouble tstep_ar,IssmDouble tinit_ar,IssmDouble* beta0,IssmDouble* beta1,IssmDouble* phi,int enum_type); 71 void Autoregression(bool isstepforar,int arorder,IssmDouble telapsed_ar,IssmDouble* beta0,IssmDouble* beta1,IssmDouble* phi,bool isfieldstochastic,int enum_type); 67 72 void ComputeLambdaS(void); 68 73 void ComputeNewDamage(); … … 78 83 void dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 79 84 void dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 85 void dViscositydBMLHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vxbase_input,Input* vybase_input, Input* vxshear_input ,Input* vyshear_input,Input* thickness_input,Input* n_input, IssmDouble zeta); 80 86 void dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 81 87 void Echo(); … … 129 135 int Id(); 130 136 void InputCreate(IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code); 137 void InputCreateP1FromConstant(Inputs* inputs,IoModel* iomodel,IssmDouble value,int vector_enum); 131 138 void ControlInputCreate(IssmDouble* doublearray,IssmDouble* independents_min,IssmDouble* independents_max,Inputs*inputs,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id); 132 139 void DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code,int input_enum); … … 134 141 void InputUpdateFromConstant(int constant, int name); 135 142 void InputUpdateFromConstant(bool constant, int name); 136 137 bool IsFloating(); 143 void InputUpdateFromConstant(IssmDouble constant, int name, int type); 144 145 bool IsAllFloating(); 138 146 bool IsGrounded(); 139 147 bool IsOnBase(); … … 142 150 bool IsIceOnlyInElement(); 143 151 bool IsOceanInElement(); 152 bool IsOceanOnlyInElement(); 144 153 bool IsLandInElement(); 145 154 void Ismip6FloatingiceMeltingRate(); … … 160 169 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm,bool issetpddfac); 161 170 void PositiveDegreeDaySicopolis(bool isfirnwarming); 171 void RignotMeltParameterization(); 162 172 void ResultInterpolation(int* pinterpolation,int*nodesperelement,int* parray_size, int output_enum); 163 173 void ResultToPatch(IssmDouble* values,int nodesperelement,int output_enum); … … 175 185 void StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 176 186 void StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 187 void StrainRateMLHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vxshear_input,Input* vyshear_input,Input* thickness_input,Input* n_input,IssmDouble zeta); 177 188 void StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 178 189 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input); … … 209 220 IssmDouble PureIceEnthalpy(IssmDouble pressure); 210 221 211 212 222 /*Virtual functions*/ 213 223 virtual void AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");}; … … 235 245 virtual void ElementResponse(IssmDouble* presponse,int response_enum)=0; 236 246 virtual void ElementSizes(IssmDouble* phx,IssmDouble* phy,IssmDouble* phz)=0; 247 virtual void ElementCoordinates(Vector<IssmDouble>* vxe,Vector<IssmDouble>* vye,Vector<IssmDouble>* vze, Vector<IssmDouble>* vareae, bool spherical=false)=0; 248 virtual void ElementCoordinates(Vector<IssmDouble>* vlonge,Vector<IssmDouble>* vlate,Vector<IssmDouble>* vareae)=0; 237 249 virtual int FiniteElement(void)=0; 238 250 virtual IssmDouble FloatingArea(bool scaled)=0; … … 243 255 virtual void GetGroundedPart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlyfloating)=0; 244 256 virtual IssmDouble GetGroundedPortion(IssmDouble* xyz_list)=0; 257 virtual void GetFractionGeometry(IssmDouble* weights, IssmDouble* pphi, int* ppoint1,IssmDouble* pfraction1,IssmDouble* pfraction2, bool* ptrapezeisnegative, IssmDouble* gl)=0; 258 virtual void GetNodalWeightsAndAreaAndCentroidsFromLeveset(IssmDouble* loadweights, IssmDouble* ploadarea, IssmDouble* platbar, IssmDouble* plongbar, IssmDouble late, IssmDouble longe, IssmDouble area, int levelsetenum)=0; 259 virtual void GetNodalWeightsAndAreaAndCentroidsFromLeveset(IssmDouble* loadweights, IssmDouble* ploadarea, IssmDouble* platbar, IssmDouble* plongbar, IssmDouble late, IssmDouble longe, IssmDouble area, int levelset1enum, int levelset2enum)=0; 260 virtual void GetBarycenterFromLevelset(IssmDouble* platbar, IssmDouble* plongbar,IssmDouble phi,IssmDouble fraction1,IssmDouble fraction2,IssmDouble late, IssmDouble longe, int point1,int istrapeze1, IssmDouble planetradius)=0; 261 245 262 virtual IssmDouble GetIcefrontArea(){_error_("not implemented");}; 246 263 virtual void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum)=0; … … 297 314 virtual IssmDouble Misfit(int modelenum,int observationenum,int weightsenum)=0; 298 315 virtual IssmDouble MisfitArea(int weightsenum)=0; 316 virtual void MovingFrontalVelocity(void){_error_("not implemented yet");}; 299 317 virtual Gauss* NewGauss(void)=0; 300 318 virtual Gauss* NewGauss(int order)=0; … … 325 343 virtual void PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding)=0; 326 344 virtual int PressureInterpolation()=0; 345 virtual void Recover3DMLHOInput(int targetVel_enum, int numnodes, IssmDouble* vb, IssmDouble* vsh, IssmDouble* n, IssmDouble* H, IssmDouble* s){_error_("not implemented yet");}; 327 346 virtual void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe)=0; 328 347 virtual void ResetFSBasalBoundaryCondition()=0; 329 348 virtual void ResetHooks()=0; 330 virtual void RignotMeltParameterization(void){_error_("not implemented yet");};331 virtual void SetElementInput(int enum_in,IssmDouble value s){_error_("not implemented yet");};349 virtual void SetElementInput(int enum_in,IssmDouble value){_error_("not implemented yet");}; 350 virtual void SetElementInput(int enum_in,IssmDouble value, int type)=0; 332 351 virtual void SetElementInput(Inputs* inputs,int enum_in,IssmDouble values){_error_("not implemented yet");}; 333 352 virtual void SetElementInput(Inputs* inputs,int numindices,int* indices,IssmDouble* values,int enum_in){_error_("not implemented yet");}; … … 337 356 virtual Element* SpawnBasalElement(bool depthaverage_materials=false)=0; 338 357 virtual Element* SpawnTopElement(void)=0; 358 virtual bool IsSpawnedElement(void)=0; 339 359 virtual IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)=0; 340 360 virtual void StabilizationParameterAnisotropic(IssmDouble* tau_parameter_anisotropic, IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble hx, IssmDouble hy, IssmDouble hz, IssmDouble kappa)=0; … … 364 384 virtual void WriteFieldIsovalueSegment(DataSet* segments,int fieldenum,IssmDouble fieldvalue){_error_("not implemented yet");}; 365 385 366 #ifdef _HAVE_GIA_367 virtual void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y)=0;368 #endif369 386 #ifdef _HAVE_ESA_ 370 387 virtual void EsaGeodetic2D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast, Vector<IssmDouble>* pX, Vector<IssmDouble>* pY,IssmDouble* xx,IssmDouble* yy)=0; 371 388 virtual void EsaGeodetic3D(Vector<IssmDouble>* pUp,Vector<IssmDouble>* pNorth,Vector<IssmDouble>* pEast,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz)=0; 372 389 #endif 373 #ifdef _HAVE_SEALEVELRISE_ 374 virtual void SetSealevelMasks(SealevelMasks* masks)=0; 390 #ifdef _HAVE_SEALEVELCHANGE_ 375 391 virtual IssmDouble GetArea3D(void)=0; 376 392 virtual IssmDouble GetAreaSpherical(void)=0; 377 virtual IssmDouble OceanAverage(IssmDouble* Sg, SealevelMasks* masks)=0; 378 virtual void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks)=0; 379 virtual IssmDouble SealevelriseEustaticIce(IssmDouble* Sgi, SealevelMasks* masks,Vector<IssmDouble>* barystatic_contribution,IssmDouble* partition,IssmDouble oceanarea)=0; 380 virtual IssmDouble SealevelriseEustaticHydro(IssmDouble* Sgi, SealevelMasks* masks,Vector<IssmDouble>* barystatic_contribution, IssmDouble* partition, IssmDouble oceanarea)=0; 381 virtual void SealevelriseEustaticBottomPressure(IssmDouble* Sgi, SealevelMasks* masks)=0; 382 virtual void SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz)=0; 383 virtual void SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* mask)=0; 384 virtual void SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks)=0; 393 virtual IssmDouble GetTriangleAreaSpherical(IssmDouble xyz_list[3][3])=0; 394 virtual void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,Matlitho* litho, IssmDouble* x,IssmDouble* y)=0; 395 396 virtual void SealevelchangeGeometrySubElementKernel(SealevelGeometry* slgeom)=0; 397 virtual void SealevelchangeMomentOfInertiaCentroid(IssmDouble* dI_list, GrdLoads* loads, SealevelGeometry* slgeom)=0; 398 virtual void SealevelchangeShift(GrdLoads* loads, IssmDouble offset, SealevelGeometry* slgeom)=0; 399 virtual void SealevelchangeGeometryInitial(IssmDouble* xxe, IssmDouble* yye, IssmDouble* zze, IssmDouble* areae)=0; 400 virtual void SealevelchangeGeometryCentroidLoads(SealevelGeometry* slgeom, IssmDouble* xxe, IssmDouble* yye, IssmDouble* zze, IssmDouble* areae)=0; 401 virtual void SealevelchangeGeometrySubElementLoads(SealevelGeometry* slgeom, IssmDouble* areae)=0; 402 virtual void SealevelchangeBarystaticLoads(GrdLoads* loads, BarystaticContributions* barycontrib, SealevelGeometry* slgeom)=0; 403 virtual void SealevelchangeConvolution(IssmDouble* sealevelpercpu, GrdLoads* loads, IssmDouble* rotationvector,SealevelGeometry* slgeom)=0; 404 virtual void SealevelchangeOceanAverage(GrdLoads* loads, Vector<IssmDouble>* oceanareas, Vector<IssmDouble>* subelementoceanareas, IssmDouble* sealevelpercpu, SealevelGeometry* slgeom)=0; 405 virtual void SealevelchangeDeformationConvolution(IssmDouble* sealevelpercpu, GrdLoads* loads, IssmDouble* rotationvector,SealevelGeometry* slgeom)=0; 406 virtual void SealevelchangeMomentOfInertiaSubElement(IssmDouble* dI_list, GrdLoads* loads, SealevelGeometry* slgeom)=0; 407 virtual void SealevelchangeUpdateViscousFields()=0; 385 408 #endif 386 409
Note:
See TracChangeset
for help on using the changeset viewer.