Free Electron
planetAS.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __planet_planetAS_h__
8 #define __planet_planetAS_h__
9 namespace fe
10 {
11 namespace ext
12 {
13 
14 class FE_DL_EXPORT AsPlanet :
15  public AccessorSet,
16  public Initialize<AsPlanet>
17 {
18  public:
19  void initialize(void)
20  {
21  add(organics, FE_SPEC("planet:organics", "planet organics"));
22  add(surface, FE_SPEC("planet:surface", "planet surface"));
23  add(atmosphere, FE_SPEC("planet:atmosphere", "planet atmosphere"));
24  }
25 
26  Accessor< Record > organics;
27  Accessor< Record > surface;
28  Accessor< Record > atmosphere;
29 };
30 
31 
32 // TODO: deprecate this flora approach. break up into the cycle approach
33 class FE_DL_EXPORT AsFlora :
34  public AccessorSet,
35  public Initialize<AsFlora>
36 {
37  public:
38  void initialize(void)
39  {
40  add(home, FE_SPEC("planet:home", "home planet or domain"));
41  add(location, FE_USE("spc:at"));
42  add(radius, FE_USE("bnd:radius"));
43  add(maxRadius, FE_USE("bnd:maxradius"));
44  add(age, FE_USE("planet:age"));
45  add(lifespan, FE_USE("planet:lifespan"));
46  add(reprospan, FE_USE("planet:reprospan"));
47  add(repronext, FE_USE("planet:repronext"));
48  }
49 
50  Accessor< Record > home;
51  Accessor< SpatialVector > location;
52  Accessor< Real > radius;
53  Accessor< Real > maxRadius;
54  Accessor< Real > age;
55  Accessor< Real > lifespan;
56  Accessor< Real > reprospan;
57  Accessor< Real > repronext;
58 };
59 
60 class FE_DL_EXPORT AsLife :
61  public AccessorSet,
62  public Initialize<AsLife>
63 {
64  public:
65  void initialize(void)
66  {
67  add(home, FE_SPEC("planet:home", "home planet or domain"));
68  add(location, FE_USE("spc:at"));
69  add(age, FE_USE("life:age"));
70  add(lifespan, FE_USE("life:lifespan"));
71  add(reprospan, FE_USE("life:reprospan"));
72  add(repronext, FE_USE("life:repronext"));
73  }
74 
75  Accessor< Record > home;
76  Accessor< SpatialVector > location;
77  Accessor< Real > radius;
78  Accessor< Real > maxRadius;
79  Accessor< Real > age;
80  Accessor< Real > lifespan;
81  Accessor< Real > reprospan;
82  Accessor< Real > repronext;
83 };
84 
85 #if 0
86 class FE_DL_EXPORT AsPhotoSynthesis :
87  public AccessorSet,
88  public Initialize<AsPhotoSynthesis>
89 {
90  public:
91  void initialize(void)
92  {
93  add(o2absorp, FE_USE("life:o2absorp"));
94  add(co2absorp, FE_USE("life:co2absorp"));
95  add(h2oabsorp, FE_USE("life:h20absorp"));
96  add(co2, FE_USE("life:co2"));
97  add(o2, FE_USE("life:o2"));
98  add(h20, FE_USE("life:h2o"));
99  add(carbs, FE_USE("life:carbs"));
100  add(photons, FE_USE("life:photons"));
101  add(photosyntheff, FE_USE("life:photosyntheff"));
102  }
103 };
104 #endif
105 
106 
107 
108 } /* namespace ext */
109 } /* namespace fe */
110 
111 #endif /* __planet_planetAS_h__ */
112 
kernel
Definition: namespace.dox:3