fmdtools 2.1.1__tar.gz → 2.1.2__tar.gz
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.
- {fmdtools-2.1.1 → fmdtools-2.1.2}/LICENSE +1 -1
- {fmdtools-2.1.1 → fmdtools-2.1.2}/PKG-INFO +7 -6
- {fmdtools-2.1.1 → fmdtools-2.1.2}/README.md +5 -4
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_rural.py +1 -2
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/__init__.py +1 -1
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/style.py +26 -26
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/PKG-INFO +7 -6
- {fmdtools-2.1.1 → fmdtools-2.1.2}/pyproject.toml +1 -1
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/asg_demo/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/asg_demo/demo_model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/eps/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/eps/eps.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/eps/test_eps.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multiflow_demo/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multiflow_demo/multiflow_demo.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multiflow_demo/test_multiflow.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_dynamic.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_hierarchical.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_static.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_urban.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/opt_drone_rural.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/test_multirotor.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/ex_pump.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/jointfaults_ex.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/parallelism_methods.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/pump_indiv.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/pump_stochastic.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/test_pump.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/test_pump_example.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/test_pump_stochastic.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/optimization/ea_analysis.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/optimization/search_rover.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_degradation.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_mode_space.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_model_human.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/test_rover.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/tank_model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/tank_optimization_model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/test_tank.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/ATC.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/asset.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/common.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/test_asset.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/test_model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/common.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/label.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/model.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/history.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/phases.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/result.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/tabulate.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/action.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/component.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/function.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/geom.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/action.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/component.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/function.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/mode.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/parameter.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/rand.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/state.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/time.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/environment.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/commsflow.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/multiflow.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/base.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/coords.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/geom.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/timer.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/__init__.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/propagate.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/sample.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/scenario.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/search.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/SOURCES.txt +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/dependency_links.txt +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/requires.txt +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/top_level.txt +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/setup.cfg +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/tests/test_graph.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/tests/test_hierarchical.py +0 -0
- {fmdtools-2.1.1 → fmdtools-2.1.2}/tests/test_packages.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmdtools
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.2
|
|
4
4
|
Summary: System resilience modelling, simulation, and assessment in Python
|
|
5
5
|
Author: fmdtools Developers
|
|
6
6
|
Maintainer-email: Daniel Hulse <daniel.e.hulse@nasa.gov>
|
|
7
|
-
License: fmdtools version 2.1.
|
|
7
|
+
License: fmdtools version 2.1.2
|
|
8
8
|
---------------------------
|
|
9
9
|
Apache License
|
|
10
10
|
Version 2.0, January 2004
|
|
@@ -300,6 +300,7 @@ Simulation techniques in fmdtools represent the state-of-the-art in dynamical sy
|
|
|
300
300
|
Readily-deployable analysis methods are built in to fmdtools to enable the rapid and iterative statistical analysis of simulation results. With fmdtools, you can easily leverage our existing methods to understand simulation results instead of spending hours implementing your own.
|
|
301
301
|
|
|
302
302
|
|
|
303
|
+
The fmdtools documentation repository is also home to the Functional Reasoning Design Language specification, a graphical language that may be used to represent the structure of behavioral interactions in a system to inform hazard analysis.
|
|
303
304
|
|
|
304
305
|
## Getting Started
|
|
305
306
|
|
|
@@ -366,7 +367,7 @@ This may then be installed using:
|
|
|
366
367
|
Note that this version reflects the latest version on the ``main`` git branch along with any local changes. To use a particular version of ``fmdtools`` you can checkout the tag corresponding to the version you want, e.g.:
|
|
367
368
|
|
|
368
369
|
```
|
|
369
|
-
git checkout v2.1.
|
|
370
|
+
git checkout v2.1.2
|
|
370
371
|
```
|
|
371
372
|
|
|
372
373
|
|
|
@@ -500,12 +501,12 @@ To cite fmdtools in general, you may cite our explanatory publication:
|
|
|
500
501
|
To cite a particular version of the fmdtools, you may use:
|
|
501
502
|
|
|
502
503
|
```
|
|
503
|
-
@software{
|
|
504
|
+
@software{nasa2025fmdtools,
|
|
504
505
|
author = {{NASA}},
|
|
505
506
|
title = {fmdtools},
|
|
506
507
|
url = {https://github.com/nasa/fmdtools},
|
|
507
|
-
version = {2.1.
|
|
508
|
-
date = {
|
|
508
|
+
version = {2.1.2},
|
|
509
|
+
date = {2025-5-19},
|
|
509
510
|
}
|
|
510
511
|
```
|
|
511
512
|
|
|
@@ -39,6 +39,7 @@ Simulation techniques in fmdtools represent the state-of-the-art in dynamical sy
|
|
|
39
39
|
Readily-deployable analysis methods are built in to fmdtools to enable the rapid and iterative statistical analysis of simulation results. With fmdtools, you can easily leverage our existing methods to understand simulation results instead of spending hours implementing your own.
|
|
40
40
|
|
|
41
41
|
|
|
42
|
+
The fmdtools documentation repository is also home to the Functional Reasoning Design Language specification, a graphical language that may be used to represent the structure of behavioral interactions in a system to inform hazard analysis.
|
|
42
43
|
|
|
43
44
|
## Getting Started
|
|
44
45
|
|
|
@@ -105,7 +106,7 @@ This may then be installed using:
|
|
|
105
106
|
Note that this version reflects the latest version on the ``main`` git branch along with any local changes. To use a particular version of ``fmdtools`` you can checkout the tag corresponding to the version you want, e.g.:
|
|
106
107
|
|
|
107
108
|
```
|
|
108
|
-
git checkout v2.1.
|
|
109
|
+
git checkout v2.1.2
|
|
109
110
|
```
|
|
110
111
|
|
|
111
112
|
|
|
@@ -239,12 +240,12 @@ To cite fmdtools in general, you may cite our explanatory publication:
|
|
|
239
240
|
To cite a particular version of the fmdtools, you may use:
|
|
240
241
|
|
|
241
242
|
```
|
|
242
|
-
@software{
|
|
243
|
+
@software{nasa2025fmdtools,
|
|
243
244
|
author = {{NASA}},
|
|
244
245
|
title = {fmdtools},
|
|
245
246
|
url = {https://github.com/nasa/fmdtools},
|
|
246
|
-
version = {2.1.
|
|
247
|
-
date = {
|
|
247
|
+
version = {2.1.2},
|
|
248
|
+
date = {2025-5-19},
|
|
248
249
|
}
|
|
249
250
|
```
|
|
250
251
|
|
|
@@ -956,7 +956,6 @@ if __name__ == "__main__":
|
|
|
956
956
|
|
|
957
957
|
# check single lowcharge fault from approach
|
|
958
958
|
h = History(nominal=mdlhists.nominal,
|
|
959
|
-
faulty=mdlhists.
|
|
959
|
+
faulty=mdlhists.drone_fxns_store_ee_lowcharge_t5p0)
|
|
960
960
|
fig, ax = plot_env_with_traj_z(h, mdl)
|
|
961
961
|
fig, ax = plot_env_with_traj(mdlhists, mdl)
|
|
962
|
-
|
|
@@ -87,9 +87,9 @@ def mod_prefix():
|
|
|
87
87
|
import os
|
|
88
88
|
wd = os.getcwd()
|
|
89
89
|
if 'graph' in wd:
|
|
90
|
-
return '../../../docs-source/figures/frdl/'
|
|
90
|
+
return '../../../docs-source/figures/frdl/primitives/'
|
|
91
91
|
else:
|
|
92
|
-
return 'docs-source/figures/frdl/'
|
|
92
|
+
return 'docs-source/figures/frdl/primitives/'
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
class BaseStyle(dataobject, copy_default=True):
|
|
@@ -297,20 +297,20 @@ def edge_style_factory(style_tag, styles={}, **kwargs):
|
|
|
297
297
|
--------
|
|
298
298
|
>>> loc = mod_prefix()
|
|
299
299
|
>>> fs = edge_style_factory('flow')
|
|
300
|
-
>>> fig, ax = fs.show_nx(saveas=loc+'
|
|
301
|
-
>>> sv = fs.show_gv(disp=False, saveas=loc+'
|
|
300
|
+
>>> fig, ax = fs.show_nx(saveas=loc+'nx/flowconnection.svg')
|
|
301
|
+
>>> sv = fs.show_gv(disp=False, saveas=loc+'gv/flowconnection.svg')
|
|
302
302
|
|
|
303
303
|
>>> a_s = edge_style_factory('activation')
|
|
304
|
-
>>> fig, ax = a_s.show_nx(saveas=loc+'
|
|
305
|
-
>>> sv = a_s.show_gv(disp=False, saveas=loc+'
|
|
304
|
+
>>> fig, ax = a_s.show_nx(saveas=loc+'nx/activation.svg')
|
|
305
|
+
>>> sv = a_s.show_gv(disp=False, saveas=loc+'gv/activation.svg')
|
|
306
306
|
|
|
307
307
|
>>> c_s = edge_style_factory('containment')
|
|
308
|
-
>>> fig, ax = c_s.show_nx(saveas=loc+'
|
|
309
|
-
>>> sv = c_s.show_gv(disp=False, saveas=loc+'
|
|
308
|
+
>>> fig, ax = c_s.show_nx(saveas=loc+'nx/containment.svg')
|
|
309
|
+
>>> sv = c_s.show_gv(disp=False, saveas=loc+'gv/containment.svg')
|
|
310
310
|
|
|
311
311
|
>>> cs = edge_style_factory('connection')
|
|
312
|
-
>>> fig, ax = cs.show_nx(saveas=loc+'
|
|
313
|
-
>>> sv = cs.show_gv(disp=False, saveas=loc+'
|
|
312
|
+
>>> fig, ax = cs.show_nx(saveas=loc+'nx/connection.svg')
|
|
313
|
+
>>> sv = cs.show_gv(disp=False, saveas=loc+'gv/connection.svg')
|
|
314
314
|
"""
|
|
315
315
|
if style_tag in ['flow', 'flows', 'Flow', 'functions', 'aggregation']:
|
|
316
316
|
style_class = FlowEdgeStyle
|
|
@@ -519,36 +519,36 @@ def node_style_factory(style_tag, styles={}, **kwargs):
|
|
|
519
519
|
--------
|
|
520
520
|
>>> loc = mod_prefix()
|
|
521
521
|
>>> fs = node_style_factory('flow')
|
|
522
|
-
>>> fig, ax = fs.show_nx(saveas=loc+'
|
|
523
|
-
>>> sv = fs.show_gv(disp=False, saveas=loc+'
|
|
522
|
+
>>> fig, ax = fs.show_nx(saveas=loc+'nx/flow.svg')
|
|
523
|
+
>>> sv = fs.show_gv(disp=False, saveas=loc+'gv/flow.svg')
|
|
524
524
|
|
|
525
525
|
>>> ms = node_style_factory('multiflow')
|
|
526
|
-
>>> fig, ax = ms.show_nx(saveas=loc+'
|
|
527
|
-
>>> sv = ms.show_gv(disp=False, saveas=loc+'
|
|
526
|
+
>>> fig, ax = ms.show_nx(saveas=loc+'nx/multiflow.svg')
|
|
527
|
+
>>> sv = ms.show_gv(disp=False, saveas=loc+'gv/multiflow.svg')
|
|
528
528
|
|
|
529
529
|
>>> cs = node_style_factory('commsflow')
|
|
530
|
-
>>> fig, ax = cs.show_nx(saveas=loc+'
|
|
531
|
-
>>> sv = cs.show_gv(disp=False, saveas=loc+'
|
|
530
|
+
>>> fig, ax = cs.show_nx(saveas=loc+'nx/commsflow.svg')
|
|
531
|
+
>>> sv = cs.show_gv(disp=False, saveas=loc+'gv/commsflow.svg')
|
|
532
532
|
|
|
533
533
|
>>> fs = node_style_factory('function')
|
|
534
|
-
>>> fig, ax = fs.show_nx(saveas=loc+'
|
|
535
|
-
>>> sv = fs.show_gv(disp=False, saveas=loc+'
|
|
534
|
+
>>> fig, ax = fs.show_nx(saveas=loc+'nx/function.svg')
|
|
535
|
+
>>> sv = fs.show_gv(disp=False, saveas=loc+'gv/function.svg')
|
|
536
536
|
|
|
537
537
|
>>> a_s = node_style_factory('action')
|
|
538
|
-
>>> fig, ax = a_s.show_nx(saveas=loc+'
|
|
539
|
-
>>> sv = a_s.show_gv(disp=False, saveas=loc+'
|
|
538
|
+
>>> fig, ax = a_s.show_nx(saveas=loc+'nx/action.svg')
|
|
539
|
+
>>> sv = a_s.show_gv(disp=False, saveas=loc+'gv/action.svg')
|
|
540
540
|
|
|
541
541
|
>>> cs = node_style_factory('component')
|
|
542
|
-
>>> fig, ax = cs.show_nx(saveas=loc+'
|
|
543
|
-
>>> sv = cs.show_gv(disp=False, saveas=loc+'
|
|
542
|
+
>>> fig, ax = cs.show_nx(saveas=loc+'nx/component.svg')
|
|
543
|
+
>>> sv = cs.show_gv(disp=False, saveas=loc+'gv/component.svg')
|
|
544
544
|
|
|
545
545
|
>>> cs = node_style_factory('container')
|
|
546
|
-
>>> fig, ax = cs.show_nx(saveas=loc+'
|
|
547
|
-
>>> sv = cs.show_gv(disp=False, saveas=loc+'
|
|
546
|
+
>>> fig, ax = cs.show_nx(saveas=loc+'nx/container.svg')
|
|
547
|
+
>>> sv = cs.show_gv(disp=False, saveas=loc+'gv/container.svg')
|
|
548
548
|
|
|
549
549
|
>>> a_s = node_style_factory('architecture')
|
|
550
|
-
>>> fig, ax = a_s.show_nx(saveas=loc+'
|
|
551
|
-
>>> sv = a_s.show_gv(disp=False, saveas=loc+'
|
|
550
|
+
>>> fig, ax = a_s.show_nx(saveas=loc+'nx/architecture.svg')
|
|
551
|
+
>>> sv = a_s.show_gv(disp=False, saveas=loc+'gv/architecture.svg')
|
|
552
552
|
"""
|
|
553
553
|
if style_tag in ['flow', 'Flow']:
|
|
554
554
|
node_style = FlowNodeStyle
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmdtools
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.2
|
|
4
4
|
Summary: System resilience modelling, simulation, and assessment in Python
|
|
5
5
|
Author: fmdtools Developers
|
|
6
6
|
Maintainer-email: Daniel Hulse <daniel.e.hulse@nasa.gov>
|
|
7
|
-
License: fmdtools version 2.1.
|
|
7
|
+
License: fmdtools version 2.1.2
|
|
8
8
|
---------------------------
|
|
9
9
|
Apache License
|
|
10
10
|
Version 2.0, January 2004
|
|
@@ -300,6 +300,7 @@ Simulation techniques in fmdtools represent the state-of-the-art in dynamical sy
|
|
|
300
300
|
Readily-deployable analysis methods are built in to fmdtools to enable the rapid and iterative statistical analysis of simulation results. With fmdtools, you can easily leverage our existing methods to understand simulation results instead of spending hours implementing your own.
|
|
301
301
|
|
|
302
302
|
|
|
303
|
+
The fmdtools documentation repository is also home to the Functional Reasoning Design Language specification, a graphical language that may be used to represent the structure of behavioral interactions in a system to inform hazard analysis.
|
|
303
304
|
|
|
304
305
|
## Getting Started
|
|
305
306
|
|
|
@@ -366,7 +367,7 @@ This may then be installed using:
|
|
|
366
367
|
Note that this version reflects the latest version on the ``main`` git branch along with any local changes. To use a particular version of ``fmdtools`` you can checkout the tag corresponding to the version you want, e.g.:
|
|
367
368
|
|
|
368
369
|
```
|
|
369
|
-
git checkout v2.1.
|
|
370
|
+
git checkout v2.1.2
|
|
370
371
|
```
|
|
371
372
|
|
|
372
373
|
|
|
@@ -500,12 +501,12 @@ To cite fmdtools in general, you may cite our explanatory publication:
|
|
|
500
501
|
To cite a particular version of the fmdtools, you may use:
|
|
501
502
|
|
|
502
503
|
```
|
|
503
|
-
@software{
|
|
504
|
+
@software{nasa2025fmdtools,
|
|
504
505
|
author = {{NASA}},
|
|
505
506
|
title = {fmdtools},
|
|
506
507
|
url = {https://github.com/nasa/fmdtools},
|
|
507
|
-
version = {2.1.
|
|
508
|
-
date = {
|
|
508
|
+
version = {2.1.2},
|
|
509
|
+
date = {2025-5-19},
|
|
509
510
|
}
|
|
510
511
|
```
|
|
511
512
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|