CausalLoop

Agile system dynamics modeling with quantitative causal loop diagrams (CLD+)

Package Contents

SimpleInformationLevel

Information level for CLD-like modeling

SimpleMaterialStock

Information level for CLD-mapping

Performance

Evaluation of a stock on a [0,1] scale

InputControl

Directly set information using a ramp input profile

SimpleControl

Directly influencing a stock to keep it at setpoint value

PID_Control

Directly influencing a stock to keep it at setpoint value

ExponentialChange

Exponential growth or decline process

LinearChange

Process of growth or decline at given rate

LogisticGrowth

S-shaped logistic growth process

Elasticity

Fractional rate of change is proportional to that of the influencing stock

ElasticityDelayed

Process driven by elasticity and additional exponential delay

Proportionality

Rate of change is proportional to that of the influencing stock

ProportionalityDelayed

Process driven by proportionality with additional exponential delay

ForceToInputValue

Flow is obtained as closing the gap to input value

ForceToStockValue

Flow is obtained as closing the gap to input stock value

ExponentialDelay

Exponential delay of input flow

PipelineDelay

Fixed or pure delay of input flow

ComplexInteraction

Interaction with linear and nonlinear terms

UnidirectionalFlow

Interaction with linear and nonlinear terms

SplitFlow

Splitting a flow into n flows

Lookup_JPositive

Positively sloping s-shaped lookup

Lookup_JNegative

Negatively sloping s-shaped lookup

Lookup_SPositive

Positively sloping s-shaped lookup (centered at origin)

Lookup_SNegative

Negatively sloping s-shaped lookup (centered at origin)

Lookup_Table

Table-based lookup with manual input of the interpolation table

Lookup_TableOnFile

Table-based lookup given on file

Aggregation

Generalized mean function for multiple stock information inputs

StockInformation

Provide amount in stock information

RateInformation

Provide rate of net flow information

Aggregation_Info

Generalized mean function for multiple information inputs

Total

Sum all inputs

Product

Multiply all inputs

LoopIndicator_CW

Loopindicator for clockwise feedback loop

LoopIndicator_CCW

Loopindicator for counter clockwise feedback loop

MatFlowIndicator

Directional indicator for material flows in a diagram

InfoFlowIndicator

Directional indicator for information flows in a diagram

SketchVariable

Class to be used for comments or sketch variables

Information

This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.

This package contains high-level classes (i.e., wrappers) that allow to quickly set up dynamic models in a Causal Loop Diagram (CLD) fashion. Unlike conventional CLD such models can immediately be simulated and analyzed.

A typical workflow in an "Agile Dynamic Modeling" setup would be to quickly establish a first working model using the most relevant variables as starting points and consider them to be stocks/levels. Exogenous processes of change and/or control next to simplified relations between the variables—defined by elasticities or proportionalities—will then give rise to dynamic behavior.

Such a preliminary model can be made more expressive by introducing lookups to modify constant coefficients (e.g., factors of proportionality) thus making the models more nonlinear. As van Zijderveld [24] has shown, such models may even suffice in situations of tight budgets or lower stakes.

True to the Agile paradigm, we may start out with a preliminary, working model and replace any of its parts by more elaborate models as needed. Such a gradual approach to modeling is the sweet spot of object-oriented modeling in Modelica.

Notes

Since not all component names are visible in the diagram display for CausalLoop classes the following table shows the defaultComponentName for the main classes of the package:

defaultComponentName Explicit Name Classes
s Stocks (aka states) SimpleInformationLevel,
SimpleMaterialStock
p Processes (exogenous change ~) ExponentialChange,
LinearChange,
LogisticGrowth
r Relations (aka links) Elasticity,
Proportionality
d Delays ExponentialDelay,
PipelineDelay
c Controls InputControl,
SimpleControl,
PID_Control,
ForceToStockValue,
ForceToInputValue
b Blocks (i.e., information processing) Lookup_type,
Aggregation,
StockInformation,
RateInformation,
AggregationInfo,
Total,
Product
f Flows UnidirectionalFlow,
ComplexInteraction,
SplitFlow
L Loop indicators LoopIndicator_CW,
LoopIndicator_CCW
lab Labels (i.e., flow indicators) MatFlowIndicator,
InfoFlowIndicator

See also

To see the components of this package at work, have a look at these example models:

A short video presentation (12 min) introducing quantitative causal loop diagramming can be found here.



Copyright © 2021 Guido Wolf Reichert
Licensed under the EUPL-1.2 or later

Revisions

  • Introduced in v2.0.0.