Core Assemblies

Stella ships with a relatively small number of core assemblies that are sufficient for building most relatively simple models. The number of these is intentionally kept small so as not to be overwhelming.

It is worth noting that assemblies, once placed in a model, are part of the model and can removed from or added to. In many cases you may want to use just part of an assembly. To do this place the whole assembly, then delete the parts you don't want. You can also use copy and paste to add parts to an assembly.

Adjustments

The adjustment assemblies represent different ways to express decision logic. They typically consist of converters combined together in different ways.

Allocation Quality

Make an allocation based on quality associated with the different recipients of that allocation. For example we might distribute disaster relief supplies based on the neediness of different communities. This would work if the communities are roughly the same size, but breaks down when they are not and the allocation quantity assembly would work better.

Allocation Quantity

Use this for distribution based on the quantities that are desired or available for supply. It is very similar to allocation quality but set up so that having excess available to allocate leaves the excess unallocated.

Note Allocation that respects both quantity and quality is tricky and the ALLOCATE builtin is usually the best solution for this.

Closing Gap

Probably the most fundamental assembly this simply says that if there is a gap between a target and an actual value then something must be done to close that gap. The key concept here is the time to adjust - any action can only occur over time.

Combing Effects

When multiple things influence an outcome they need to be combined. The most common way to do that is to multiply them together. The inputs to this assembly (the three different effects) are often the effect portion of one of the dimensionless multipliers. Things can also be combined by adding them, though there is no assembly for that.

Constrained Inflow

The constrained inflow controls the flow into a stock so that the stock will not exceed capacity. This formulation uses a graphical, though the same thing could be done using an elasticity as the dimensionless multiplier elasticity does.

Constrained Outflow

The constrained outflow controls the flow out of a stock so that the stock will not go to 0. The shape of the graphical is based on the homogeneity of the stock - from highly homogeneous () to largely heterogeneous ().

Dimensionless Multiplier

The dimensionless multiplier show how an action or effect of changed based on a characteristic. For example, assembly throughput might be dependent on the number of workers available to run the production line. If there are no workers then through put would be 0 while with a full complement of workers it would be the normal throughput. In between we might be able to maintain production by having people work a bit harder - though that would eventually lead to fatigue which might pass through a dimensionless multiplier diminishing assembly and then a combined effects assembly to lower throughput.

Dimensionless Multiplier Diminishing

This is the same as the dimensionless multipliers, except more of the characteristic leads to less of the action. The only difference is actually the graphical function - it is downward sloping for this assembly.

Dimensionless Multiplier Elasticity

This uses an elasticity instead of a graphical function to show the effects. If the elasticity is positive it is much like the dimensionless multiplier extended, if negative like the dimensionless multiplier diminishing. This assembly is useful because adjusting a number (the elasticity) is easier than drawing a graphical when you want to make changes.

Dimensionless Multiplier Extended

The regular dimensionless multiplier stops at an effect of 1.0. This one allows for value both below and above 1.0. The biggest difficulty with this one is ensuring that the graphical goes through the 1.0,1.0 point. That needs to be done with careful drawing or points editing.

Stock Adjustment

This assembly adjusts a stock to a value based on the specified adjustment time. It is the same as a SMTH1 builtin, but shows the logic explicitly. It incorporates the goal gap assembly be specifies where the current state comes from.

Chains

Chains are combinations of stocks linked together in sequence. It is quite easy to draw chains of 2 or more stocks, and even to make diversions to other stocks or chains in addition to moving from one stock to another. The assemblies here are simple 3 stock examples of things that are commonly useful. It is straightforward to extend them to more stocks, remove a stock, or connect one chain to another by adding a flow.

Aging Chain

This is a simple and common form for a chain that represents progression from one state to another. Though 3 is quite common, such chains can have 2, 4, 5 or other numbers of stocks. Because things need to pass through one stock to get to the next the chain means there are delayed responses to changes in the first flow. This simple representation may need some customization for use, and the other examples of aging chains show such customizations.

Aging Chain with Productivity

This assembly adds both productivity and target values for the stocks to the aging chain assembly. If you only need one of the two you can delete the other - productivity is on top and the target values are on the bottom. This assembly can be used by itself to look at the challenges of hiring to manage to a target level of production.

Capacity Limited Production

In some cases it is capacity rather than time that gates the progression from on stage to another. This assembly shows that, but it does also still contain the time based progression in the minimum time at each phase. This means if both the capacity and desired throughput are everywhere high, the resulting behavior will be the same as that of the aging chain assembly. Capacity limitation can be helpful in articulating bottlenecks in manufacturing and development processes.

Flows

Flows are the foundation of a models dynamics. The flow assemblies represent the most common ways of formulating flows. Ironically, all of the flow assemblies include stocks. This is because the important part of formulating flows is determining how they relate to either other flows or stocks. For example, the different between the external resource and colflow productivity assemblies is critical in thinking about where the sources of change are coming from. An external resource, just by existing, can cause change, whereas the coflow requires action to generate action.

Coflow Attribute

This assembly solves what can be a thorny problem in representing dynamics without going into individual detail. The attribute can be anything from average vehicle gas mileage to embedded technological productivity. This approach uses what is called perfect mixing, which is the opposite of first-in first-out (FIFO) but is much simpler and often suffices.

Coflow Productivity

This assembly represents activity driven activity, as opposed to resource the resource driven activity as represented by the external resource assembly. This is akin to transformation of kinetic energy rather then conversion of potential into kinetic energy. A common example is doing work in order to make things, including money.

Compounding

Compounding is the most basic positive feedback process. It can represent financial growth through interest earning and population growth through a net birth rate. The flow itself is determined by the same process as the external resource assembly, but the stock determining the flow is the stock changed by the flow.

Draining based on Rate

Draining is the process by which material decreases at a rate that is proportional to the material present. There are two variations on this, draining based on rate specified the rapidity of the draining as a fraction per unit of time. So the larger the value the faster the stock drains. Typically this fraction is less than 1.

Draining based on Time

This assembly is the same as the draining based on rate assembly except that the magnitude of the draining is determined by an average time over which the draining occurs rather than a rate of draining. Treating the stock as an infinitely divisible collection of individual pieces the time represents how long these pieces remain in the stock on average. Most remain in the stock for less than this time, while some remain for much more than this time. A quick rule of thumb is that after the time passes about 2/3 of the material in the stock will be gone.

External Resource

The external resource assembly is the counterpart to the coflow productivity assembly. I this case the flow depends on another stock, so that even if the source stock is not changing, there will still be a flow. This is analogous to changing potential energy into kinetic energy as, for example, water behind a dam used to flow through generators and produce electricity. The draining and compounding assemblies use this type of formulation where the stocks driving the flow are also being changed by the flow.

Summary

The core assemblies represent the most commonly used formulations in system dynamics models. They can, typically with some customization, be very useful in speeding the model development process and arriving at more consistent completed models. Even though the number of core assemblies is small, there is still a great deal of overlap between them. The assemblies are simply arrangements of the basic building blocks of models - stocks, flows, and converters. Given this, it is not surprising that some arrangements are quite common and often repeated.