Using Chips: Example
Here is a basic example of using a Chip as an instance of an entire sublayer within a model. We are going to use the NetDiffuse model from the Model Library.
- Step 1: Create sublayer
In the top left corner of the NOVA GUI - select the white page symbol, New Sub Model. This will create a new sub model within the NetDiffuse model framework. We can name this sub model chip_demo, as shown below.
Now we can see the three layers shown in the bottom left corner of the GUI. We can place the new chip_demo layer between the node and NetDiffuse (which I renamed to NetDiffuse_demo) layers.
- Step 2: Create the Chip
Now we will drag the node Sub Model into the blank chip_demo Model Canvas. A blue Chip will appear. This chip, like all NOVA chips, holds an instance of a Capsule. In this case, that Capsule is the node layer. We can see that the Chip has the same parameters, inputs and outputs, as the node layer. We will attach pins to these inputs and output. This is solely to demonstrate that we can use and think about the Chip as an instance of the node layer that it encapsulates.
- Step 3: Change CNet Properties
Within the CNet properties at the top layer we will change what it encapsulates to be chip_demo (the intermediate level) instead of the node layer. This means CNet calls 4 instances of the chip_demo layer directly. Each instance of chip_demo consists of a node layer, as we see in the Chip.
- Step 4: Adjust top layer output
Finally, to account for an additional Sub Layer we must made some slight output changes at the top layer.
Originally the inpt into the tot_1 CodeChip was all of the instances of the node layer (from the node term). We could grab the value of temp within each instance. You can see the temp parameter within the node layer. Since we now have an intermediate layer, the chip_demo layer, we have to 'reach-down' into the node layer to 'grab' those values. To do this we write
inpt[n].node.temp to reach the temp parameter within each node chip that is within the nth instance of chip_demo.
And the final output on the Dashboard: