.BusinessSimulation.CausalLoop

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

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

Contents

Name Description
 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

Revisions


Generated at 2026-04-15T18:18:36Z by OpenModelicaOpenModelica 1.26.3 using GenerateDoc.mos