vortex-nwp 2.0.0b1__py3-none-any.whl → 2.0.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vortex/__init__.py +59 -45
- vortex/algo/__init__.py +3 -2
- vortex/algo/components.py +940 -614
- vortex/algo/mpitools.py +802 -497
- vortex/algo/serversynctools.py +34 -33
- vortex/config.py +19 -22
- vortex/data/__init__.py +9 -3
- vortex/data/abstractstores.py +593 -655
- vortex/data/containers.py +217 -162
- vortex/data/contents.py +65 -39
- vortex/data/executables.py +93 -102
- vortex/data/flow.py +40 -34
- vortex/data/geometries.py +228 -132
- vortex/data/handlers.py +428 -225
- vortex/data/outflow.py +15 -15
- vortex/data/providers.py +185 -163
- vortex/data/resources.py +48 -42
- vortex/data/stores.py +544 -413
- vortex/gloves.py +114 -87
- vortex/layout/__init__.py +1 -8
- vortex/layout/contexts.py +150 -84
- vortex/layout/dataflow.py +353 -202
- vortex/layout/monitor.py +264 -128
- vortex/nwp/__init__.py +5 -2
- vortex/nwp/algo/__init__.py +14 -5
- vortex/nwp/algo/assim.py +205 -151
- vortex/nwp/algo/clim.py +683 -517
- vortex/nwp/algo/coupling.py +447 -225
- vortex/nwp/algo/eda.py +437 -229
- vortex/nwp/algo/eps.py +403 -231
- vortex/nwp/algo/forecasts.py +420 -271
- vortex/nwp/algo/fpserver.py +683 -307
- vortex/nwp/algo/ifsnaming.py +205 -145
- vortex/nwp/algo/ifsroot.py +210 -122
- vortex/nwp/algo/monitoring.py +132 -76
- vortex/nwp/algo/mpitools.py +321 -191
- vortex/nwp/algo/odbtools.py +617 -353
- vortex/nwp/algo/oopsroot.py +449 -273
- vortex/nwp/algo/oopstests.py +90 -56
- vortex/nwp/algo/request.py +287 -206
- vortex/nwp/algo/stdpost.py +878 -522
- vortex/nwp/data/__init__.py +22 -4
- vortex/nwp/data/assim.py +125 -137
- vortex/nwp/data/boundaries.py +121 -68
- vortex/nwp/data/climfiles.py +193 -211
- vortex/nwp/data/configfiles.py +73 -69
- vortex/nwp/data/consts.py +426 -401
- vortex/nwp/data/ctpini.py +59 -43
- vortex/nwp/data/diagnostics.py +94 -66
- vortex/nwp/data/eda.py +50 -51
- vortex/nwp/data/eps.py +195 -146
- vortex/nwp/data/executables.py +440 -434
- vortex/nwp/data/fields.py +63 -48
- vortex/nwp/data/gridfiles.py +183 -111
- vortex/nwp/data/logs.py +250 -217
- vortex/nwp/data/modelstates.py +180 -151
- vortex/nwp/data/monitoring.py +72 -99
- vortex/nwp/data/namelists.py +254 -202
- vortex/nwp/data/obs.py +400 -308
- vortex/nwp/data/oopsexec.py +22 -20
- vortex/nwp/data/providers.py +90 -65
- vortex/nwp/data/query.py +71 -82
- vortex/nwp/data/stores.py +49 -36
- vortex/nwp/data/surfex.py +136 -137
- vortex/nwp/syntax/__init__.py +1 -1
- vortex/nwp/syntax/stdattrs.py +173 -111
- vortex/nwp/tools/__init__.py +2 -2
- vortex/nwp/tools/addons.py +22 -17
- vortex/nwp/tools/agt.py +24 -12
- vortex/nwp/tools/bdap.py +16 -5
- vortex/nwp/tools/bdcp.py +4 -1
- vortex/nwp/tools/bdm.py +3 -0
- vortex/nwp/tools/bdmp.py +14 -9
- vortex/nwp/tools/conftools.py +728 -378
- vortex/nwp/tools/drhook.py +12 -8
- vortex/nwp/tools/grib.py +65 -39
- vortex/nwp/tools/gribdiff.py +22 -17
- vortex/nwp/tools/ifstools.py +82 -42
- vortex/nwp/tools/igastuff.py +167 -143
- vortex/nwp/tools/mars.py +14 -2
- vortex/nwp/tools/odb.py +234 -125
- vortex/nwp/tools/partitioning.py +61 -37
- vortex/nwp/tools/satrad.py +27 -12
- vortex/nwp/util/async.py +83 -55
- vortex/nwp/util/beacon.py +10 -10
- vortex/nwp/util/diffpygram.py +174 -86
- vortex/nwp/util/ens.py +144 -63
- vortex/nwp/util/hooks.py +30 -19
- vortex/nwp/util/taskdeco.py +28 -24
- vortex/nwp/util/usepygram.py +278 -172
- vortex/nwp/util/usetnt.py +31 -17
- vortex/sessions.py +72 -39
- vortex/syntax/__init__.py +1 -1
- vortex/syntax/stdattrs.py +410 -171
- vortex/syntax/stddeco.py +31 -22
- vortex/toolbox.py +327 -192
- vortex/tools/__init__.py +11 -2
- vortex/tools/actions.py +125 -59
- vortex/tools/addons.py +111 -92
- vortex/tools/arm.py +42 -22
- vortex/tools/compression.py +72 -69
- vortex/tools/date.py +11 -4
- vortex/tools/delayedactions.py +242 -132
- vortex/tools/env.py +75 -47
- vortex/tools/folder.py +342 -171
- vortex/tools/grib.py +311 -149
- vortex/tools/lfi.py +423 -216
- vortex/tools/listings.py +109 -40
- vortex/tools/names.py +218 -156
- vortex/tools/net.py +632 -298
- vortex/tools/parallelism.py +93 -61
- vortex/tools/prestaging.py +55 -31
- vortex/tools/schedulers.py +172 -105
- vortex/tools/services.py +402 -333
- vortex/tools/storage.py +293 -358
- vortex/tools/surfex.py +24 -24
- vortex/tools/systems.py +1211 -631
- vortex/tools/targets.py +156 -100
- vortex/util/__init__.py +1 -1
- vortex/util/config.py +377 -327
- vortex/util/empty.py +2 -2
- vortex/util/helpers.py +56 -24
- vortex/util/introspection.py +18 -12
- vortex/util/iosponge.py +8 -4
- vortex/util/roles.py +4 -6
- vortex/util/storefunctions.py +39 -13
- vortex/util/structs.py +3 -3
- vortex/util/worker.py +29 -17
- vortex_nwp-2.0.0b2.dist-info/METADATA +66 -0
- vortex_nwp-2.0.0b2.dist-info/RECORD +142 -0
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.0.0b2.dist-info}/WHEEL +1 -1
- vortex/layout/appconf.py +0 -109
- vortex/layout/jobs.py +0 -1276
- vortex/layout/nodes.py +0 -1424
- vortex/layout/subjobs.py +0 -464
- vortex_nwp-2.0.0b1.dist-info/METADATA +0 -50
- vortex_nwp-2.0.0b1.dist-info/RECORD +0 -146
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.0.0b2.dist-info}/LICENSE +0 -0
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.0.0b2.dist-info}/top_level.txt +0 -0
vortex/nwp/data/__init__.py
CHANGED
|
@@ -3,10 +3,28 @@ Data resources (mostly NWP).
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
# Recursive inclusion of packages with potential FootprintBase classes
|
|
6
|
-
from . import boundaries
|
|
7
|
-
from . import
|
|
8
|
-
from . import
|
|
9
|
-
from . import
|
|
6
|
+
from . import boundaries as boundaries
|
|
7
|
+
from . import climfiles as climfiles
|
|
8
|
+
from . import consts as consts
|
|
9
|
+
from . import diagnostics as diagnostics
|
|
10
|
+
from . import executables as executables
|
|
11
|
+
from . import fields as fields
|
|
12
|
+
from . import assim as assim
|
|
13
|
+
from . import gridfiles as gridfiles
|
|
14
|
+
from . import logs as logs
|
|
15
|
+
from . import modelstates as modelstates
|
|
16
|
+
from . import namelists as namelists
|
|
17
|
+
from . import obs as obs
|
|
18
|
+
from . import surfex as surfex
|
|
19
|
+
from . import eps as eps
|
|
20
|
+
from . import eda as eda
|
|
21
|
+
from . import providers as providers
|
|
22
|
+
from . import stores as stores
|
|
23
|
+
from . import query as query
|
|
24
|
+
from . import monitoring as monitoring
|
|
25
|
+
from . import ctpini as ctpini
|
|
26
|
+
from . import oopsexec as oopsexec
|
|
27
|
+
from . import configfiles as configfiles
|
|
10
28
|
|
|
11
29
|
#: No automatic export
|
|
12
30
|
__all__ = []
|
vortex/nwp/data/assim.py
CHANGED
|
@@ -18,7 +18,9 @@ __all__ = []
|
|
|
18
18
|
logger = loggers.getLogger(__name__)
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
@namebuilding_insert(
|
|
21
|
+
@namebuilding_insert(
|
|
22
|
+
"geo", lambda s: s._geo2basename_info(add_stretching=False)
|
|
23
|
+
)
|
|
22
24
|
class _BackgroundErrorInfo(GeoFlowResource):
|
|
23
25
|
"""
|
|
24
26
|
A generic class for data in grib format related to the background error.
|
|
@@ -29,25 +31,20 @@ class _BackgroundErrorInfo(GeoFlowResource):
|
|
|
29
31
|
term_deco,
|
|
30
32
|
gvar,
|
|
31
33
|
dict(
|
|
32
|
-
info=
|
|
34
|
+
info="Background standard deviation",
|
|
33
35
|
attr=dict(
|
|
34
|
-
term=dict(
|
|
35
|
-
optional=True,
|
|
36
|
-
default=3
|
|
37
|
-
),
|
|
36
|
+
term=dict(optional=True, default=3),
|
|
38
37
|
nativefmt=dict(
|
|
39
|
-
default=
|
|
40
|
-
),
|
|
41
|
-
gvar = dict(
|
|
42
|
-
default = 'errgrib_t[geometry:truncation]'
|
|
38
|
+
default="grib",
|
|
43
39
|
),
|
|
40
|
+
gvar=dict(default="errgrib_t[geometry:truncation]"),
|
|
44
41
|
),
|
|
45
|
-
)
|
|
42
|
+
),
|
|
46
43
|
]
|
|
47
44
|
|
|
48
45
|
@property
|
|
49
46
|
def realkind(self):
|
|
50
|
-
return
|
|
47
|
+
return "bgstdinfo"
|
|
51
48
|
|
|
52
49
|
|
|
53
50
|
class BackgroundStdError(_BackgroundErrorInfo):
|
|
@@ -66,77 +63,73 @@ class BackgroundStdError(_BackgroundErrorInfo):
|
|
|
66
63
|
"""
|
|
67
64
|
|
|
68
65
|
_footprint = dict(
|
|
69
|
-
info=
|
|
66
|
+
info="Background error standard deviation",
|
|
70
67
|
attr=dict(
|
|
71
68
|
kind=dict(
|
|
72
|
-
values=[
|
|
73
|
-
remap=dict(autoremap=
|
|
69
|
+
values=["bgstderr", "bg_stderr", "bgerrstd"],
|
|
70
|
+
remap=dict(autoremap="first"),
|
|
74
71
|
),
|
|
75
72
|
stage=dict(
|
|
76
73
|
optional=True,
|
|
77
|
-
default=
|
|
78
|
-
values=[
|
|
79
|
-
remap=dict(vor=
|
|
74
|
+
default="unbal",
|
|
75
|
+
values=["scr", "vor", "full", "unbal", "profile"],
|
|
76
|
+
remap=dict(vor="unbal"),
|
|
80
77
|
),
|
|
81
78
|
origin=dict(
|
|
82
79
|
optional=True,
|
|
83
|
-
values=[
|
|
84
|
-
default
|
|
85
|
-
),
|
|
86
|
-
gvar = dict(
|
|
87
|
-
default = 'errgrib_vor_monthly'
|
|
80
|
+
values=["ens", "diag"],
|
|
81
|
+
default="ens",
|
|
88
82
|
),
|
|
83
|
+
gvar=dict(default="errgrib_vor_monthly"),
|
|
89
84
|
nativefmt=dict(
|
|
90
|
-
values=[
|
|
91
|
-
default=
|
|
85
|
+
values=["grib", "ascii"],
|
|
86
|
+
default="grib",
|
|
92
87
|
),
|
|
93
88
|
),
|
|
94
89
|
)
|
|
95
90
|
|
|
96
91
|
@property
|
|
97
92
|
def realkind(self):
|
|
98
|
-
return
|
|
93
|
+
return "bgstderr"
|
|
99
94
|
|
|
100
95
|
def namebuilding_info(self):
|
|
101
96
|
"""Generic information for names fabric, with radical = ``bcor``."""
|
|
102
97
|
infos = super().namebuilding_info()
|
|
103
|
-
infos[
|
|
104
|
-
if self.stage !=
|
|
105
|
-
infos[
|
|
98
|
+
infos["src"].append(self.stage)
|
|
99
|
+
if self.stage != "scr":
|
|
100
|
+
infos["src"].append(self.origin)
|
|
106
101
|
return infos
|
|
107
102
|
|
|
108
103
|
def archive_basename(self):
|
|
109
104
|
"""OP ARCHIVE specific naming convention."""
|
|
110
|
-
if self.stage in (
|
|
111
|
-
return
|
|
105
|
+
if self.stage in ("unbal",):
|
|
106
|
+
return "(errgribfix:igakey)"
|
|
112
107
|
else:
|
|
113
|
-
return
|
|
108
|
+
return "errgrib_" + self.stage
|
|
114
109
|
|
|
115
110
|
def olive_basename(self):
|
|
116
111
|
"""OLIVE specific naming convention."""
|
|
117
|
-
if self.stage in (
|
|
118
|
-
return
|
|
112
|
+
if self.stage in ("unbal",):
|
|
113
|
+
return "errgribvor"
|
|
119
114
|
else:
|
|
120
|
-
return
|
|
115
|
+
return "sigma_b"
|
|
121
116
|
|
|
122
117
|
def gget_basename(self):
|
|
123
118
|
"""GGET specific naming convention."""
|
|
124
|
-
return dict(suffix=
|
|
119
|
+
return dict(suffix=".m{:02d}".format(self.date.month))
|
|
125
120
|
|
|
126
121
|
|
|
127
|
-
@namebuilding_append(
|
|
122
|
+
@namebuilding_append("src", lambda s: s.variable)
|
|
128
123
|
class SplitBackgroundStdError(BackgroundStdError):
|
|
129
124
|
"""Background error standard deviation, for a given variable."""
|
|
130
125
|
|
|
131
126
|
_footprint = dict(
|
|
132
|
-
info=
|
|
127
|
+
info="Background error standard deviation",
|
|
133
128
|
attr=dict(
|
|
134
129
|
variable=dict(
|
|
135
|
-
info
|
|
136
|
-
),
|
|
137
|
-
gvar = dict(
|
|
138
|
-
default = 'errgrib_vor_[variable]_monthly'
|
|
130
|
+
info="Variable contained in this resource.",
|
|
139
131
|
),
|
|
132
|
+
gvar=dict(default="errgrib_vor_[variable]_monthly"),
|
|
140
133
|
),
|
|
141
134
|
)
|
|
142
135
|
|
|
@@ -146,30 +139,28 @@ class BackgroundErrorNorm(_BackgroundErrorInfo):
|
|
|
146
139
|
|
|
147
140
|
_footprint = [
|
|
148
141
|
dict(
|
|
149
|
-
info=
|
|
142
|
+
info="Background error normalisation data for wavelet covariances",
|
|
150
143
|
attr=dict(
|
|
151
144
|
kind=dict(
|
|
152
|
-
values=[
|
|
153
|
-
remap=dict(autoremap=
|
|
154
|
-
),
|
|
155
|
-
gvar = dict(
|
|
156
|
-
default = 'srenorm_t[geometry:truncation]'
|
|
145
|
+
values=["bgstdrenorm", "bgerrnorm"],
|
|
146
|
+
remap=dict(autoremap="first"),
|
|
157
147
|
),
|
|
148
|
+
gvar=dict(default="srenorm_t[geometry:truncation]"),
|
|
158
149
|
),
|
|
159
150
|
)
|
|
160
151
|
]
|
|
161
152
|
|
|
162
153
|
@property
|
|
163
154
|
def realkind(self):
|
|
164
|
-
return
|
|
155
|
+
return "bgstdrenorm"
|
|
165
156
|
|
|
166
157
|
def archive_basename(self):
|
|
167
158
|
"""OP ARCHIVE specific naming convention."""
|
|
168
|
-
return
|
|
159
|
+
return "srenorm.{!s}".format(self.geometry.truncation)
|
|
169
160
|
|
|
170
161
|
def olive_basename(self):
|
|
171
162
|
"""OLIVE specific naming convention."""
|
|
172
|
-
return
|
|
163
|
+
return "srenorm.t{!s}".format(self.geometry.truncation)
|
|
173
164
|
|
|
174
165
|
def archive_pathinfo(self):
|
|
175
166
|
"""Op Archive specific pathname needs."""
|
|
@@ -178,11 +169,13 @@ class BackgroundErrorNorm(_BackgroundErrorInfo):
|
|
|
178
169
|
model=self.model,
|
|
179
170
|
date=self.date,
|
|
180
171
|
cutoff=self.cutoff,
|
|
181
|
-
arpege_aearp_directory=
|
|
172
|
+
arpege_aearp_directory="wavelet",
|
|
182
173
|
)
|
|
183
174
|
|
|
184
175
|
|
|
185
|
-
@namebuilding_insert(
|
|
176
|
+
@namebuilding_insert(
|
|
177
|
+
"geo", lambda s: s._geo2basename_info(add_stretching=False)
|
|
178
|
+
)
|
|
186
179
|
class Wavelet(GeoFlowResource):
|
|
187
180
|
"""Background error wavelet covariances."""
|
|
188
181
|
|
|
@@ -190,34 +183,29 @@ class Wavelet(GeoFlowResource):
|
|
|
190
183
|
term_deco,
|
|
191
184
|
gvar,
|
|
192
185
|
dict(
|
|
193
|
-
info
|
|
194
|
-
attr
|
|
195
|
-
kind
|
|
196
|
-
values
|
|
197
|
-
remap
|
|
198
|
-
),
|
|
199
|
-
gvar = dict(
|
|
200
|
-
default = 'wavelet_cv_t[geometry:truncation]'
|
|
201
|
-
),
|
|
202
|
-
term=dict(
|
|
203
|
-
optional=True,
|
|
204
|
-
default=3
|
|
186
|
+
info="Background error wavelet covariances",
|
|
187
|
+
attr=dict(
|
|
188
|
+
kind=dict(
|
|
189
|
+
values=["wavelet", "waveletcv"],
|
|
190
|
+
remap=dict(autoremap="first"),
|
|
205
191
|
),
|
|
206
|
-
|
|
207
|
-
|
|
192
|
+
gvar=dict(default="wavelet_cv_t[geometry:truncation]"),
|
|
193
|
+
term=dict(optional=True, default=3),
|
|
194
|
+
),
|
|
195
|
+
),
|
|
208
196
|
]
|
|
209
197
|
|
|
210
198
|
@property
|
|
211
199
|
def realkind(self):
|
|
212
|
-
return
|
|
200
|
+
return "wavelet"
|
|
213
201
|
|
|
214
202
|
def archive_basename(self):
|
|
215
203
|
"""OP ARCHIVE specific naming convention."""
|
|
216
|
-
return
|
|
204
|
+
return "wavelet.cv.{!s}".format(self.geometry.truncation)
|
|
217
205
|
|
|
218
206
|
def olive_basename(self):
|
|
219
207
|
"""OLIVE specific naming convention."""
|
|
220
|
-
return
|
|
208
|
+
return "wavelet.cv.t{!s}".format(self.geometry.truncation)
|
|
221
209
|
|
|
222
210
|
def archive_pathinfo(self):
|
|
223
211
|
"""Op Archive specific pathname needs."""
|
|
@@ -230,139 +218,143 @@ class Wavelet(GeoFlowResource):
|
|
|
230
218
|
)
|
|
231
219
|
|
|
232
220
|
|
|
233
|
-
@namebuilding_insert(
|
|
221
|
+
@namebuilding_insert(
|
|
222
|
+
"geo", lambda s: s._geo2basename_info(add_stretching=False)
|
|
223
|
+
)
|
|
234
224
|
class RawControlVector(GeoFlowResource):
|
|
235
225
|
"""Raw Control Vector as issued by minimisation, playing the role of an Increment."""
|
|
236
226
|
|
|
237
227
|
_footprint = dict(
|
|
238
|
-
info
|
|
239
|
-
attr
|
|
240
|
-
kind
|
|
241
|
-
values
|
|
242
|
-
remap
|
|
228
|
+
info="Raw Control Vector",
|
|
229
|
+
attr=dict(
|
|
230
|
+
kind=dict(
|
|
231
|
+
values=["rawcv", "rcv", "increment", "minimcv"],
|
|
232
|
+
remap=dict(autoremap="first"),
|
|
243
233
|
),
|
|
244
|
-
)
|
|
234
|
+
),
|
|
245
235
|
)
|
|
246
236
|
|
|
247
237
|
@property
|
|
248
238
|
def realkind(self):
|
|
249
|
-
return
|
|
239
|
+
return "rawcv"
|
|
250
240
|
|
|
251
241
|
def olive_basename(self):
|
|
252
242
|
"""OLIVE specific naming convention."""
|
|
253
|
-
return
|
|
243
|
+
return "MININCR"
|
|
254
244
|
|
|
255
245
|
|
|
256
|
-
@namebuilding_insert(
|
|
246
|
+
@namebuilding_insert(
|
|
247
|
+
"geo", lambda s: s._geo2basename_info(add_stretching=False)
|
|
248
|
+
)
|
|
257
249
|
class InternalMinim(GeoFlowResource):
|
|
258
250
|
"""Generic class for resources internal to minimisation."""
|
|
259
251
|
|
|
260
252
|
_abstract = True
|
|
261
253
|
_footprint = dict(
|
|
262
|
-
attr
|
|
263
|
-
nativefmt
|
|
264
|
-
values
|
|
265
|
-
default
|
|
254
|
+
attr=dict(
|
|
255
|
+
nativefmt=dict(
|
|
256
|
+
values=["fa", "lfi", "grib"],
|
|
257
|
+
default="fa",
|
|
266
258
|
),
|
|
267
|
-
term
|
|
268
|
-
type
|
|
269
|
-
optional
|
|
270
|
-
default
|
|
259
|
+
term=dict(
|
|
260
|
+
type=Time,
|
|
261
|
+
optional=True,
|
|
262
|
+
default=Time(-3),
|
|
271
263
|
),
|
|
272
264
|
)
|
|
273
265
|
)
|
|
274
266
|
|
|
275
267
|
def olive_suffixtr(self):
|
|
276
268
|
"""Return BR or HR specific OLIVE suffix according to geo streching."""
|
|
277
|
-
return
|
|
269
|
+
return "HR" if self.geometry.stretching > 1 else "BR"
|
|
278
270
|
|
|
279
271
|
|
|
280
272
|
class StartingPointMinim(InternalMinim):
|
|
281
273
|
"""Guess as reprocessed by the minimisation."""
|
|
282
274
|
|
|
283
275
|
_footprint = dict(
|
|
284
|
-
info
|
|
285
|
-
attr
|
|
286
|
-
kind
|
|
287
|
-
values
|
|
276
|
+
info="Starting Point Output Minim",
|
|
277
|
+
attr=dict(
|
|
278
|
+
kind=dict(
|
|
279
|
+
values=["stpmin"],
|
|
288
280
|
),
|
|
289
|
-
)
|
|
281
|
+
),
|
|
290
282
|
)
|
|
291
283
|
|
|
292
284
|
@property
|
|
293
285
|
def realkind(self):
|
|
294
|
-
return
|
|
286
|
+
return "stpmin"
|
|
295
287
|
|
|
296
288
|
def olive_basename(self):
|
|
297
289
|
"""OLIVE specific naming convention."""
|
|
298
|
-
return
|
|
290
|
+
return "STPMIN" + self.olive_suffixtr()
|
|
299
291
|
|
|
300
292
|
|
|
301
293
|
class AnalysedStateMinim(InternalMinim):
|
|
302
294
|
"""Analysed state as produced by the minimisation."""
|
|
303
295
|
|
|
304
296
|
_footprint = dict(
|
|
305
|
-
info
|
|
306
|
-
attr
|
|
307
|
-
kind
|
|
308
|
-
values
|
|
297
|
+
info="Analysed Output Minim",
|
|
298
|
+
attr=dict(
|
|
299
|
+
kind=dict(
|
|
300
|
+
values=["anamin"],
|
|
309
301
|
),
|
|
310
|
-
)
|
|
302
|
+
),
|
|
311
303
|
)
|
|
312
304
|
|
|
313
305
|
@property
|
|
314
306
|
def realkind(self):
|
|
315
|
-
return
|
|
307
|
+
return "anamin"
|
|
316
308
|
|
|
317
309
|
def olive_basename(self):
|
|
318
310
|
"""OLIVE specific naming convention."""
|
|
319
|
-
return
|
|
311
|
+
return "ANAMIN" + self.olive_suffixtr()
|
|
320
312
|
|
|
321
313
|
|
|
322
314
|
class PrecevMap(FlowResource):
|
|
323
315
|
"""Map of the precondionning eigenvectors as produced by minimisation."""
|
|
324
316
|
|
|
325
317
|
_footprint = dict(
|
|
326
|
-
info
|
|
327
|
-
attr
|
|
328
|
-
kind
|
|
329
|
-
values
|
|
318
|
+
info="Prec EV Map",
|
|
319
|
+
attr=dict(
|
|
320
|
+
kind=dict(
|
|
321
|
+
values=["precevmap"],
|
|
330
322
|
),
|
|
331
|
-
clscontents
|
|
332
|
-
default
|
|
323
|
+
clscontents=dict(
|
|
324
|
+
default=JsonDictContent,
|
|
333
325
|
),
|
|
334
|
-
nativefmt
|
|
335
|
-
values
|
|
336
|
-
default
|
|
326
|
+
nativefmt=dict(
|
|
327
|
+
values=["json"],
|
|
328
|
+
default="json",
|
|
337
329
|
),
|
|
338
|
-
)
|
|
330
|
+
),
|
|
339
331
|
)
|
|
340
332
|
|
|
341
333
|
@property
|
|
342
334
|
def realkind(self):
|
|
343
|
-
return
|
|
335
|
+
return "precevmap"
|
|
344
336
|
|
|
345
337
|
|
|
346
|
-
@namebuilding_append(
|
|
338
|
+
@namebuilding_append("src", lambda s: str(s.evnum))
|
|
347
339
|
class Precev(FlowResource):
|
|
348
340
|
"""Precondionning eigenvectors as produced by minimisation."""
|
|
349
341
|
|
|
350
342
|
_footprint = dict(
|
|
351
|
-
info
|
|
352
|
-
attr
|
|
353
|
-
kind
|
|
354
|
-
values
|
|
343
|
+
info="Starting Point Output Minim",
|
|
344
|
+
attr=dict(
|
|
345
|
+
kind=dict(
|
|
346
|
+
values=["precev"],
|
|
355
347
|
),
|
|
356
|
-
evnum
|
|
357
|
-
type
|
|
358
|
-
args
|
|
348
|
+
evnum=dict(
|
|
349
|
+
type=FmtInt,
|
|
350
|
+
args=dict(fmt="03"),
|
|
359
351
|
),
|
|
360
|
-
)
|
|
352
|
+
),
|
|
361
353
|
)
|
|
362
354
|
|
|
363
355
|
@property
|
|
364
356
|
def realkind(self):
|
|
365
|
-
return
|
|
357
|
+
return "precev"
|
|
366
358
|
|
|
367
359
|
|
|
368
360
|
class IOassignScript(Script):
|
|
@@ -371,22 +363,18 @@ class IOassignScript(Script):
|
|
|
371
363
|
_footprint = [
|
|
372
364
|
gvar,
|
|
373
365
|
dict(
|
|
374
|
-
info
|
|
375
|
-
attr
|
|
376
|
-
kind
|
|
377
|
-
|
|
378
|
-
),
|
|
379
|
-
gvar = dict(
|
|
380
|
-
default = 'ioassign_script_[purpose]'
|
|
381
|
-
),
|
|
366
|
+
info="Script for IOASSIGN",
|
|
367
|
+
attr=dict(
|
|
368
|
+
kind=dict(values=["ioassign_script"]),
|
|
369
|
+
gvar=dict(default="ioassign_script_[purpose]"),
|
|
382
370
|
purpose=dict(
|
|
383
|
-
info
|
|
384
|
-
values
|
|
371
|
+
info="The purpose of the script",
|
|
372
|
+
values=["merge", "create"],
|
|
385
373
|
),
|
|
386
|
-
)
|
|
387
|
-
)
|
|
374
|
+
),
|
|
375
|
+
),
|
|
388
376
|
]
|
|
389
377
|
|
|
390
378
|
@property
|
|
391
379
|
def realkind(self):
|
|
392
|
-
return
|
|
380
|
+
return "ioassign_script"
|