GunnsFluidJumper - nasa/gunns GitHub Wiki

GunnsFluidJumper

default_img

Background

This link works in conjunction with GunnsFluidSockets. It extends GunnsFluidConductor with an optional Jumper Plug object on either port that can connect to socket links. See the description of the GunnsFluidSocket link for more background info. A jumper plug is a special object in the jumper link that interfaces with sockets. The plug can connect to and disconnect from a socket. When it connects to a socket, it attaches that port of the jumper link to the socket's control node. When it disconnects from a socket, it attaches that port to the socket's ambient node. The list of available sockets to each plug is called a Socket List, which is described below.

Like sockets, plugs can be self-sealing or not. Self-sealing means the end of the jumper hose is sealed when it's not connected to a socket. Not self-sealing means the end of the hose is open, and can flow through when it's not connected to a socket. Plugs are optional on each end of the jumper, so a jumper can have zero, one or two plugs (but a jumper with zero plugs is just a regular GunnsFluidCondcutor). Plugs move the jumper ports between nodes by using the same port mapping capability inherent to all GUNNS links. Thus, sockets & jumpers are really just a way to formally control and restrict where a conductor can move to.

We commonly use fluid sockets & jumpers to model hoses that can be moved around on a space vehicle, along with their quick disconnects and fittings (plugs & sockets). This gives the sim users an intuitive and realistic way to move hoses around, rather than manipulating the link port mapping commands directly.

Like the fluid conductor, this link models gas isentropic expansion, but does not model any other thermal effects and does not modify the mixture of the fluid passing through it.

How To Use in GunnsDraw

Socket Lists

To configure a jumper, first you need to create one or more socket lists. A socket list is a special object in a GUNNS network that contains a list of some of the GunnsFluidSockets that are on the drawing. This represents the selection of available sockets to jumper plugs. Every jumper plug is declared as being as one of these socket list types. A drawing can have any number of different socket lists with different combinations of the sockets in them. This is meant to model how certain physical plug types are only compatible with certain sockets. In this way, every individual jumper plug can have its own list of sockets it can connect to, or reuse the same list as other plugs.

To create a new socket list, add a new Socket List object from the GUNNS_Generic.xml GunnsDraw shape library into your network container. It is circled in red in the picture below:

default_img

Now we need to configure the socket list. Expand the socket list container by clicking the '+' button in the side of the title bar (shown below in the first column). Give the socket list a unique name (something identifying what all the contained sockets have in common is most useful), by selecting the socket list and typing the name. The name appears in the title bar of the socket list container (2nd column below). Then replace the data rows in the list with the names of the socket links from the drawing that are to be included. To edit a row, double-click on it and type. To insert a new row, select a row, then type <Ctrl+Enter>. To delete a row, select the row to be deleted and type <Backspace> or <Delete>.

default_img

Here's an example network SomeNetwork with some socket lists in it:

default_img

Now that you've got your socket lists, you are ready to start adding jumpers to the drawing. You can always edit the contents of a socket list later by expanding it and modifying the socket link names in its data rows.

Port Connection Rules (These are limitations on the port connection to nodes that the link enforces in run-time):

  • None. Unlike most other conductors, this link can connect both ports to the same non-Ground node.

Other Rules (These are extra rules you should always try to follow):

  • Do not mix fluid phases across the link. That is, both nodes should contain the same phase (gas or liquid), and not different phases.

Configuration Data Parameters:

  • maxConductivity (default = 0.0 m2, must be >= 0 and in general you should limit non-zero values to be between 1.0E-15 and 1.0E+15): Same as GunnsFluidConductor. This conductivity governs flow through the link when both ends either don't have a plug and are permanently attached to a node, have a plug that is connected to a socket, or have a plug that isn't connected to a socket and is not self-sealing.
  • expansionScaleFactor (default = 0.0, must be (0-1)): Same as GunnsFluidConductor.
  • plug0: Enter the name of the socket list (above) to assign to the Port 0 end of the jumper, or leave it 0 if there is no plug on this end.
  • plug1: Enter the name of the socket list (above) to assign to the Port 1 end of the jumper, or leave it 0 if there is no plug on this end.
  • selfSealing0 (default = false): True means the jumper plug on Port 0 is self-sealing (see the description above).
  • selfSealing1 (default = false): True means the jumper plug on Port 1 is self-sealing (see the description above).

Input Data Parameters:

  • malfBlockageFlag (default = false): Same as GunnsFluidConductor.
  • malfBlockageValue (default = 0.0, must be (0-1)): Same as GunnsFluidConductor.
  • malfLeakRateFlag (default = false): Initial state of the leak-thru malfunction activation flag. This controls the leak rate between the port nodes when the link is otherwise sealed. The leak applies when there is a jumper plug on either port that is not connected and is self-sealing.
  • malfLeakRateValue (default = 0.0 (kg/s)): The initial flow rate of the leak-thru malfunction.
  • connection0 (default = -1): This is the initial socket connection of the plug on Port 0. If there is no plug on Port 0 (Jumper Plug 0 Type = 0) then this should remain -1. If there is a plug, then this field must be a value from that socket list type enumeration (including NONE). For instance, if Jumper Plug 0 Type = H2OFillDrainSockets, then this field would be be SomeNetwork_H2OFillDrainSockets::emu1H2OFillDrainSocket, or SomeNetwork_H2OFillDrainSockets::NONE, etc. You must type out the full network_socketlist::socket field. This field can cause the initial jumper link port connection to be different from what is shown on the drawing:
    • If there is an initial socket connection that is not NONE, and during simulation initialization there isn't already another jumper plug connected to that socket, then this plug will connect to the socket and the jumper link port will connect to that socket's control node.
    • If there is a conflict because the chosen socket already has a jumper connected, then this plug will disconnect from that socket and the jumper link's port will connect to the socket's ambient node instead.
  • connection1 (default = -1): This is identical to connection0 but for the Port 1 plug.

Common Problems

  • N/A

References

  • N/A
⚠️ **GitHub.com Fallback** ⚠️