File_Structure - nasa/gunns GitHub Wiki
Here are the locations & folders of the major GUNNS source code pieces. Unless otherwise noted, a test/ folder contains unit tests for the classes in its parent folder.
-
gunns/
-
aspects/ β Intended to hold all aspect-specific link & spotter classes.
- dynamics/ β Dynamics aspect models and math utilities.
- electrical/ β All electrical aspect hardware models. These are generally arranged by device type, i.e. Converter/, Diode/, etc.
-
fluid/ β All fluid aspect hardware models. These are arranged by their primary GUNNS effect (conductance, capacitance, etc).
- capacitor/ β Tank-like models: tanks, accumulators, etc.
- conductor/ β Most valves, pipes, heat exchangers.
- fluid/ β Fluid object classes.
- hi-fi/ β High-fidelity fluid links, such as the more accurate orifice theory-implementing valves.
- potential/ β Pressure-producing pumps & fans.
- source/ β Displacement pumps & things that tend to act on specific constituents in a fluid mixture, such as reactors, adsorbers, etc.
- tuning/ β Various fluid tuning aids & spreadsheets that we want to source control.
-
thermal/ β Thermal aspect models.
- network/ β This contains the generic thermal network class and utilities for compatibility with Thermal Desktop. These are not used for GunnsDraw-generated thermal networks.
-
bin/ β General utility & set-up scripts.
- utils/ β More utility scripts.
-
core/ β All generic GUNNS core run-time classes such as the solver, base link & node classes, generic utility links & spotters, etc.
- network/ β GUNNS network and super-network base classes.
-
draw/ β All files for the GunnsDraw Draw.io-based network design tool.
- drawings/ β Examples and test drawings.
- libraries/ β Shape libraries.
- modules/ β Utility functions for the Python scripts in draw/.
- templates/ β Network code auto-generation export templates.
- utils/ β Various utility scripts.
-
gunns-ts-models/ β Source code for signal aspect models, such as sensors & effectors.
- aspects/signal/effectors/thermostat/ β Thermostat & heater controller models.
- bin/ β General utility & setup scripts, thermal aspect network generation scripts (not supported).
-
common/ β Sensor & effector models.
- controllers/ β Valve controllers, pump/fan motor controllers, valve controller/sensor assemblies.
- effectors/mechanical/motor β Dynamic motor models.
- sensors β Sensors & noise models.
-
lib/ β Compiled libraries.
- no_trick/ β Compiled lib without Trick dependencies, for use in non-Trick sims, and with sim optimization (no debug, no test coverage hooks, etc.)
- test/ β Compiled lib for unit tests: no Trick dependencies, added hooks for test coverage.
- trick/ β Compiled lib with Trick dependencies for use in Trick sims (uses Trickβs memory manager).
- trick_if/ β Trickified lib, including the SWIG wrappers for objects in the trick/ library, for us in Trick sims.
-
ms-utils/ β Generic simulation utilities.
- math/ β General math utilities like curve fits, look-up tables, numerical methods, units conversions, etc.
- properties/ β Fluid properties, chemical compounds & reaction properties. These are intended to be non-specific to GUNNS so that they could be re-used by other non-GUNNS models, which is why theyβre here instead of in more GUNNS fluid-specific folders. However since GUNNS so far has been the only real user of these, they have become somewhat optimized for GUNNS.
- simulation/ β Health & Status utilities.
- software/ β Sim Bus, exceptions, Trick compatibility macroβs, etc.
-
sims/ β Example, test & sandbox simulations. These are mostly Trick simulations but this folder could be used for non-Trick sims as well.
- Modified_data/ β This is a traditional Trick folder for containing model-specific input files.
- networks/ β GUNNS networks for various sims. Some are GunnsDraw networks, others are written by hand.
- S_modules/ β This is a traditional Trick folder for containing Trick sim module files & sim object class definitions.
- SIM_test/ β This is a Trick simulation used in our Continuous Integration testing.
- test/ β Makefiles, scripts & utilities for unit & integration testing.
-
aspects/ β Intended to hold all aspect-specific link & spotter classes.