source: issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h@ 14656

Last change on this file since 14656 was 14656, checked in by Eric.Larour, 12 years ago

CHG: implementation of revised ISSM toolkit.
We now have the following objects in the ISSM toolkit:
IssmMat and IssmVec: these are the wrappers to all our toolkit objects. These are hooked up to the
src/c/objects/matrix/Matrix.h and Vector.h objects.
We need of course enums that go with them, which map into Petsc constructs, such as MpiDenseEnum, DenseEnum,
etc ...
The toolkit now implements a MatDense matrix, and a future MatMpiDense matrix, as well as a SeqVec and
future MpiVec vector.
There is also an abstract class, called IssmAbsMat and IssmAbsVec, from which all our matrix and vector objects,
except for IssmMat and IssmVec, derive.
Updated all the wrappers and modules to use these new objects.
The toolkit options database is derived from the .toolkit file which is read at the beginning of any run. Very similar
to what Petsc does with its options database. Created a static class to hold this options database, in src/c/classes/ToolkitOptions.h
very similar to our static class holding the IssmComm.

File size: 12.4 KB
Line 
1/*
2 * \file EnumDefinitions.h:
3 * \brief: enum functions for our objects
4 */
5
6#ifndef _ENUM_DEFINITIONS_
7#define _ENUM_DEFINITIONS_
8
9#include "../modules/EnumToStringx/EnumToStringx.h"
10#include "../modules/StringToEnumx/StringToEnumx.h"
11
12enum definitions{
13 /*Model fields {{{1*/
14 AutodiffIsautodiffEnum,
15 AutodiffNumDependentsEnum,
16 AutodiffNumDependentObjectsEnum,
17 AutodiffDependentObjectNamesEnum,
18 AutodiffDependentObjectTypesEnum,
19 AutodiffDependentObjectIndicesEnum,
20 AutodiffDependentObjectsEnum,
21 AutodiffNumIndependentsEnum,
22 AutodiffNumIndependentObjectsEnum,
23 AutodiffIndependentObjectNamesEnum,
24 AutodiffIndependentObjectTypesEnum,
25 AutodiffIndependentObjectsEnum,
26 AutodiffJacobianEnum,
27 AutodiffXpEnum,
28 AutodiffDriverEnum,
29 AutodiffFosForwardIndexEnum,
30 AutodiffFovForwardIndicesEnum,
31 AutodiffFosReverseIndexEnum,
32 AutodiffMassFluxSegmentsPresentEnum,
33 AutodiffKeepEnum,
34 BalancethicknessSpcthicknessEnum,
35 BalancethicknessStabilizationEnum,
36 BalancethicknessThickeningRateEnum,
37 BasalforcingsGeothermalfluxEnum,
38 BasalforcingsMeltingRateCorrectionEnum,
39 BasalforcingsMeltingRateEnum,
40 BathymetryEnum,
41 BedEnum,
42 ConstantsGEnum,
43 ConstantsReferencetemperatureEnum,
44 ConstantsYtsEnum,
45 DependentObjectEnum,
46 DiagnosticAbstolEnum,
47 DiagnosticIcefrontEnum,
48 DiagnosticIsnewtonEnum,
49 DiagnosticMaxiterEnum,
50 DiagnosticNumRequestedOutputsEnum,
51 DiagnosticPenaltyFactorEnum,
52 DiagnosticReferentialEnum,
53 DiagnosticReltolEnum,
54 DiagnosticRequestedOutputsEnum,
55 DiagnosticRestolEnum,
56 DiagnosticRiftPenaltyLockEnum,
57 DiagnosticRiftPenaltyThresholdEnum,
58 DiagnosticShelfDampeningEnum,
59 DiagnosticSpcvxEnum,
60 DiagnosticSpcvyEnum,
61 DiagnosticSpcvzEnum,
62 DiagnosticStokesreconditioningEnum,
63 DiagnosticVertexPairingEnum,
64 DiagnosticViscosityOvershootEnum,
65 LoadingforceXEnum,
66 LoadingforceYEnum,
67 LoadingforceZEnum,
68 FlowequationBordermacayealEnum,
69 FlowequationBorderpattynEnum,
70 FlowequationBorderstokesEnum,
71 FlowequationElementEquationEnum,
72 FlowequationIshutterEnum,
73 FlowequationIsl1l2Enum,
74 FlowequationIsmacayealpattynEnum,
75 FlowequationIsstokesEnum,
76 FlowequationVertexEquationEnum,
77 FrictionCoefficientEnum,
78 FrictionPEnum,
79 FrictionQEnum,
80 GeometryHydrostaticRatioEnum,
81 HydrologyEnum,
82 HydrologyshreveEnum,
83 HydrologyshreveCREnum,
84 HydrologyshreveKnEnum,
85 HydrologyshreveNEnum,
86 HydrologyshrevePEnum,
87 HydrologyshreveQEnum,
88 HydrologyshreveSpcwatercolumnEnum,
89 HydrologyshreveStabilizationEnum,
90 HydrologydcEnum,
91 SedimentHeadEnum,
92 HydrologydcSpcsedimentHeadEnum,
93 HydrologydcSedimentCompressibilityEnum,
94 HydrologydcSedimentPorosityEnum,
95 HydrologydcSedimentThicknessEnum,
96 HydrologydcSedimentTransmitivityEnum,
97 HydrologydcWaterCompressibilityEnum,
98 IndependentObjectEnum,
99 InversionControlParametersEnum,
100 InversionCostFunctionThresholdEnum,
101 InversionCostFunctionsCoefficientsEnum,
102 InversionCostFunctionsEnum,
103 InversionGradientOnlyEnum,
104 InversionGradientScalingEnum,
105 InversionIscontrolEnum,
106 InversionTaoEnum,
107 InversionIncompleteAdjointEnum,
108 InversionMaxParametersEnum,
109 InversionMaxiterPerStepEnum,
110 InversionMinParametersEnum,
111 InversionNstepsEnum,
112 InversionNumControlParametersEnum,
113 InversionNumCostFunctionsEnum,
114 InversionStepThresholdEnum,
115 InversionThicknessObsEnum,
116 InversionVelObsEnum,
117 InversionVxObsEnum,
118 InversionVyObsEnum,
119 InversionVzObsEnum,
120 MaskElementonfloatingiceEnum,
121 MaskElementongroundediceEnum,
122 MaskElementonwaterEnum,
123 MaskVertexonfloatingiceEnum,
124 MaskVertexongroundediceEnum,
125 MaskVertexonwaterEnum,
126 MaterialsBetaEnum,
127 MaterialsHeatcapacityEnum,
128 MaterialsLatentheatEnum,
129 MaterialsMeltingpointEnum,
130 MaterialsMixedLayerCapacityEnum,
131 MaterialsRheologyBEnum,
132 MaterialsRheologyBbarEnum,
133 MaterialsRheologyLawEnum,
134 MaterialsRheologyNEnum,
135 MaterialsRheologyZEnum,
136 MaterialsRheologyZbarEnum,
137 MaterialsRhoIceEnum,
138 MaterialsRhoWaterEnum,
139 MaterialsRhoFreshwaterEnum,
140 MaterialsMuWaterEnum,
141 MaterialsThermalExchangeVelocityEnum,
142 MaterialsThermalconductivityEnum,
143 MeshAverageVertexConnectivityEnum,
144 MeshDimensionEnum,
145 MeshEdgesEnum,
146 MeshElementconnectivityEnum,
147 MeshElementonbedEnum,
148 MeshElementonsurfaceEnum,
149 MeshElements2dEnum,
150 MeshElementsEnum,
151 MeshLowerelementsEnum,
152 MeshNumberofedgesEnum,
153 MeshNumberofelements2dEnum,
154 MeshNumberofelementsEnum,
155 MeshNumberoflayersEnum,
156 MeshNumberofvertices2dEnum,
157 MeshNumberofverticesEnum,
158 MeshUpperelementsEnum,
159 MeshVertexonbedEnum,
160 MeshVertexonsurfaceEnum,
161 MeshXEnum,
162 MeshYEnum,
163 MeshZEnum,
164 MiscellaneousNameEnum, //FIXME: only used by qmu, should not be marshalled (already in queueing script)
165 PrognosticHydrostaticAdjustmentEnum,
166 PrognosticMinThicknessEnum,
167 PrognosticPenaltyFactorEnum,
168 PrognosticSpcthicknessEnum,
169 PrognosticStabilizationEnum,
170 PrognosticVertexPairingEnum,
171 PrognosticNumRequestedOutputsEnum,
172 PrognosticRequestedOutputsEnum,
173 QmuIsdakotaEnum,
174 MassFluxSegmentsEnum,
175 MassFluxSegmentsPresentEnum,
176 QmuMassFluxSegmentsPresentEnum,
177 QmuNumberofpartitionsEnum,
178 QmuNumberofresponsesEnum,
179 QmuPartitionEnum,
180 QmuResponsedescriptorsEnum,
181 QmuVariabledescriptorsEnum,
182 RiftsNumriftsEnum,
183 RiftsRiftstructEnum,
184 SettingsIoGatherEnum,
185 SettingsLowmemEnum,
186 SettingsOutputFrequencyEnum,
187 SettingsResultsAsPatchesEnum,
188 SettingsWaitonlockEnum,
189 SurfaceforcingsDelta18oEnum,
190 SurfaceforcingsDelta18oSurfaceEnum,
191 SurfaceforcingsIsdelta18oEnum,
192 SurfaceforcingsPrecipitationsPresentdayEnum,
193 SurfaceforcingsTemperaturesPresentdayEnum,
194 SurfaceforcingsTemperaturesLgmEnum,
195 DebugProfilingEnum,
196 ProfilingCurrentMemEnum,
197 ProfilingCurrentFlopsEnum,
198 ProfilingSolutionTimeEnum,
199 MaxIterationConvergenceFlagEnum,
200 SteadystateMaxiterEnum,
201 SteadystateNumRequestedOutputsEnum,
202 SteadystateReltolEnum,
203 SteadystateRequestedOutputsEnum,
204 SurfaceEnum,
205 SurfaceforcingsPrecipitationEnum,
206 SurfaceforcingsMassBalanceEnum,
207 SurfaceforcingsIspddEnum,
208 SurfaceforcingsIssmbgradientsEnum,
209 SurfaceforcingsMonthlytemperaturesEnum,
210 SurfaceforcingsHrefEnum,
211 SurfaceforcingsSmbrefEnum,
212 SurfaceforcingsBPosEnum,
213 SurfaceforcingsBNegEnum,
214 ThermalMaxiterEnum,
215 ThermalPenaltyFactorEnum,
216 ThermalPenaltyLockEnum,
217 ThermalPenaltyThresholdEnum,
218 ThermalSpctemperatureEnum,
219 ThermalStabilizationEnum,
220 ThermalIsenthalpyEnum,
221 ThicknessEnum,
222 TimesteppingStartTimeEnum,
223 TimesteppingFinalTimeEnum,
224 TimesteppingCflCoefficientEnum,
225 TimesteppingTimeAdaptEnum,
226 TimesteppingTimeStepEnum,
227 TransientIsdiagnosticEnum,
228 TransientIsgroundinglineEnum,
229 TransientIsprognosticEnum,
230 TransientIsthermalEnum,
231 TransientIsgiaEnum,
232 TransientNumRequestedOutputsEnum,
233 TransientRequestedOutputsEnum,
234 /*}}}*/
235 /*Solutions and Analyses{{{1 */
236 SolutionTypeEnum,
237 AnalysisTypeEnum,
238 ConfigurationTypeEnum,
239 AdjointBalancethicknessAnalysisEnum,
240 AdjointHorizAnalysisEnum,
241 AdjointSolutionEnum,
242 AnalysisCounterEnum,
243 BalancethicknessAnalysisEnum,
244 BalancethicknessSolutionEnum,
245 WeakBalancethicknessAnalysisEnum,
246 WeakBalancethicknessSolutionEnum,
247 BedSlopeAnalysisEnum,
248 BedSlopeSolutionEnum,
249 BedSlopeXAnalysisEnum,
250 BedSlopeYAnalysisEnum,
251 DiagnosticHorizAnalysisEnum,
252 DiagnosticHutterAnalysisEnum,
253 DiagnosticSolutionEnum,
254 DiagnosticVertAnalysisEnum,
255 EnthalpyAnalysisEnum,
256 EnthalpySolutionEnum,
257 FlaimAnalysisEnum,
258 FlaimSolutionEnum,
259 HydrologyAnalysisEnum,
260 HydrologySolutionEnum,
261 MeltingAnalysisEnum,
262 NoneAnalysisEnum,
263 PrognosticAnalysisEnum,
264 PrognosticSolutionEnum,
265 SteadystateSolutionEnum,
266 SurfaceSlopeAnalysisEnum,
267 SurfaceSlopeSolutionEnum,
268 SurfaceSlopeXAnalysisEnum,
269 SurfaceSlopeYAnalysisEnum,
270 ThermalAnalysisEnum,
271 ThermalSolutionEnum,
272 TransientSolutionEnum,
273 GiaSolutionEnum,
274 GiaAnalysisEnum,
275 /*}}}*/
276 /*Approximations {{{1*/
277 ApproximationEnum,
278 NoneApproximationEnum,
279 HutterApproximationEnum,
280 MacAyealApproximationEnum,
281 MacAyealPattynApproximationEnum,
282 MacAyealStokesApproximationEnum,
283 L1L2ApproximationEnum,
284 PattynApproximationEnum,
285 PattynStokesApproximationEnum,
286 StokesApproximationEnum,
287 /*}}}*/
288 /*Datasets {{{1*/
289 ConstraintsEnum,
290 LoadsEnum,
291 MaterialsEnum,
292 NodesEnum,
293 ParametersEnum,
294 VerticesEnum,
295 ResultsEnum,
296 /*}}}*/
297 /*Objects {{{1*/
298 GenericParamEnum,
299 AdolcParamEnum,
300 BoolInputEnum,
301 BoolParamEnum,
302 ContourEnum,
303 ControlInputEnum,
304 DatasetInputEnum,
305 DofIndexingEnum,
306 DoubleInputEnum,
307 DataSetParamEnum,
308 DoubleMatArrayParamEnum,
309 DoubleMatParamEnum,
310 DoubleParamEnum,
311 DoubleVecParamEnum,
312 ElementEnum,
313 ElementResultEnum,
314 ExternalResultEnum,
315 FileParamEnum,
316 HookEnum,
317 IcefrontEnum,
318 InputEnum,
319 IntInputEnum,
320 IntParamEnum,
321 IntVecParamEnum,
322 TransientParamEnum,
323 MacAyeal2dIceFrontEnum,
324 MacAyeal3dIceFrontEnum,
325 MaticeEnum,
326 MatdamageiceEnum,
327 MatparEnum,
328 NodeEnum,
329 NumericalfluxEnum,
330 ParamEnum,
331 L1L2IceFrontEnum,
332 PattynIceFrontEnum,
333 PengridEnum,
334 PenpairEnum,
335 PentaEnum,
336 PentaP1InputEnum,
337 ProfilerEnum,
338 MatrixParamEnum,
339 VectorParamEnum,
340 RiftfrontEnum,
341 SegmentEnum,
342 SegmentRiftfrontEnum,
343 SpcDynamicEnum,
344 SpcStaticEnum,
345 SpcTransientEnum,
346 StokesIceFrontEnum,
347 StringArrayParamEnum,
348 StringParamEnum,
349 TriaEnum,
350 TriaP1InputEnum,
351 VertexEnum,
352 /*}}}*/
353 /*Fill {{{1*/
354 AirEnum,
355 IceEnum,
356 MelangeEnum,
357 WaterEnum,
358 /*}}}*/
359 /*Rift state {{{1*/
360 ClosedEnum,
361 FreeEnum,
362 OpenEnum,
363 /*}}}*/
364 /*Inputs {{{1*/
365 AdjointpEnum,
366 AdjointxEnum,
367 AdjointyEnum,
368 AdjointzEnum,
369 BalancethicknessMisfitEnum,
370 BedSlopeXEnum,
371 BedSlopeYEnum,
372 BoundaryEnum,
373 ConstantEnum,
374 ConvergedEnum,
375 ExtToIuEnum,
376 FillEnum,
377 FractionIncrementEnum,
378 FrictionEnum,
379 GroundinglineMeltingRateEnum,
380 InternalEnum,
381 IuToExtEnum,
382 MassFluxEnum,
383 MaxPenetrationEnum,
384 MeltingOffsetEnum,
385 MisfitEnum,
386 NumberNodeToElementConnectivityEnum,
387 PressureEnum,
388 PressurePicardEnum,
389 QmuPressureEnum,
390 QmuVxEnum,
391 QmuVyEnum,
392 QmuVzEnum,
393 QmuThicknessEnum,
394 QmuBedEnum,
395 QmuSurfaceEnum,
396 QmuMeltingEnum,
397 AndroidFrictionCoefficientEnum,
398 ResetPenaltiesEnum,
399 SegmentOnIceShelfEnum,
400 SurfaceAbsVelMisfitEnum,
401 SurfaceAreaEnum,
402 SurfaceAverageVelMisfitEnum,
403 SurfaceLogVelMisfitEnum,
404 SurfaceLogVxVyMisfitEnum,
405 SurfaceRelVelMisfitEnum,
406 SurfaceSlopeXEnum,
407 SurfaceSlopeYEnum,
408 TemperatureEnum,
409 TemperatureOldEnum,
410 TemperaturePicardEnum,
411 ThicknessAbsMisfitEnum,
412 TypeEnum,
413 VelEnum,
414 VelocityEnum,
415 VxAverageEnum,
416 VxEnum,
417 VxPicardEnum,
418 VyAverageEnum,
419 VyEnum,
420 VyPicardEnum,
421 VzEnum,
422 VzMacAyealEnum,
423 VzPattynEnum,
424 VzPicardEnum,
425 VzStokesEnum,
426 VxMeshEnum,
427 VyMeshEnum,
428 VzMeshEnum,
429 EnthalpyEnum,
430 EnthalpyPicardEnum,
431 ThicknessAbsGradientEnum,
432 ThicknessAlongGradientEnum,
433 ThicknessAcrossGradientEnum,
434 StepResponsesEnum,
435 IntMatParamEnum,
436 RheologyBbarAbsGradientEnum,
437 DragCoefficientAbsGradientEnum,
438 TransientInputEnum,
439 WaterfractionEnum,
440 WatercolumnEnum,
441 BasalFrictionEnum,
442 ViscousHeatingEnum,
443 QmuTemperatureEnum,
444 HydrologyWaterVxEnum,
445 HydrologyWaterVyEnum,
446 StressTensorEnum,
447 StressTensorxxEnum,
448 StressTensorxyEnum,
449 StressTensorxzEnum,
450 StressTensoryyEnum,
451 StressTensoryzEnum,
452 StressTensorzzEnum,
453 GiaWEnum,
454 /*}}}*/
455 /*Element Interpolations{{{1*/
456 P0Enum,
457 P1Enum,
458 P1DGEnum,
459 /*}}}*/
460 /*Results{{{1*/
461 SaveResultsEnum,
462 BoolElementResultEnum,
463 BoolExternalResultEnum,
464 DoubleElementResultEnum,
465 DoubleExternalResultEnum,
466 DoubleMatExternalResultEnum,
467 IntExternalResultEnum,
468 JEnum,
469 PatchEnum,
470 PatchNodesEnum,
471 PatchVerticesEnum,
472 PentaP1ElementResultEnum,
473 StringExternalResultEnum,
474 StepEnum,
475 TimeEnum,
476 TriaP1ElementResultEnum,
477 WaterColumnOldEnum,
478 /*}}}*/
479 /*Responses{{{1*/
480 MinVelEnum,
481 MaxVelEnum,
482 MinVxEnum,
483 MaxVxEnum,
484 MaxAbsVxEnum,
485 MinVyEnum,
486 MaxVyEnum,
487 MaxAbsVyEnum,
488 MinVzEnum,
489 MaxVzEnum,
490 MaxAbsVzEnum,
491 IceVolumeEnum,
492 TotalSmbEnum,
493 /*}}}*/
494 /*Convergence{{{1*/
495 RelativeEnum,
496 AbsoluteEnum,
497 IncrementalEnum,
498 /*}}}*/
499 /*Grounding Line{{{1*/
500 AgressiveMigrationEnum,
501 NoneEnum,
502 SoftMigrationEnum,
503 SubelementMigrationEnum,
504 SubelementMigration2Enum,
505 GLlevelsetEnum,
506 /*}}}*/
507 /*Solver{{{1*/
508 StokesSolverEnum,
509 /*}}}*/
510 /*Parameters{{{1*/
511 AdjointEnum,
512 ColinearEnum,
513 ControlSteadyEnum,
514 FsetEnum,
515 Gradient1Enum,
516 Gradient2Enum,
517 Gradient3Enum,
518 GradientEnum,
519 GroundinglineMigrationEnum,
520 GsetEnum,
521 IndexEnum,
522 IndexedEnum,
523 IntersectEnum,
524 NodalEnum,
525 OldGradientEnum,
526 OutputFilePointerEnum,
527 OutputFileNameEnum,
528 LockFileNameEnum,
529 ToolkitsOptionsAnalysesEnum,
530 ToolkitsOptionsStringsEnum,
531 QmuErrNameEnum,
532 QmuInNameEnum,
533 QmuOutNameEnum,
534 RegularEnum,
535 ScaledEnum,
536 SeparateEnum,
537 SsetEnum,
538 VerboseEnum,
539 /*}}}*/
540 /*Interpolation {{{1*/
541 TriangleInterpEnum,
542 BilinearInterpEnum,
543 NearestInterpEnum,
544 /*}}}*/
545 /*Coordinate Systems{{{1*/
546 XYEnum,
547 XYZPEnum,
548 /*}}}*/
549 /*Toolkits{{{1*/
550 DenseEnum,
551 MpiDenseEnum,
552 SeqEnum,
553 MpiEnum,
554 /*}}}*/
555 /*Options{{{1*/
556 OptionEnum,
557 GenericOptionEnum,
558 OptionCellEnum,
559 OptionCharEnum,
560 OptionStructEnum,
561 OptionDoubleEnum,
562 OptionLogicalEnum,
563 /*}}}*/
564 /*Rheology law (move too Material) {{{1*/
565 PatersonEnum,
566 ArrheniusEnum,
567 /*}}}*/
568 MaximumNumberOfEnums
569};
570
571#endif
Note: See TracBrowser for help on using the repository browser.