.BusinessSimulation.CausalLoop

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

NameDescription
 SimpleInformationLevelInformation level for CLD-like modeling
 SimpleMaterialStockInformation level for CLD-mapping
 PerformanceEvaluation of a stock on a [0,1] scale
 InputControlDirectly set information using a ramp input profile
 SimpleControlDirectly influencing a stock to keep it at setpoint value
 PID_ControlDirectly influencing a stock to keep it at setpoint value
 ExponentialChangeExponential growth or decline process
 LinearChangeProcess of growth or decline at given rate
 LogisticGrowthS-shaped logistic growth process
 ElasticityFractional rate of change is proportional to that of the influencing stock
 ElasticityDelayedProcess driven by elasticity and additional exponential delay
 ProportionalityRate of change is proportional to that of the influencing stock
 ProportionalityDelayedProcess driven by proportionality with additional exponential delay
 ForceToInputValueFlow is obtained as closing the gap to input value
 ForceToStockValueFlow is obtained as closing the gap to input stock value
 ExponentialDelayExponential delay of input flow
 PipelineDelayFixed or pure delay of input flow
 ComplexInteractionInteraction with linear and nonlinear terms
 UnidirectionalFlowInteraction with linear and nonlinear terms
 SplitFlowSplitting a flow into n flows
 Lookup_JPositivePositively sloping s-shaped lookup
 Lookup_JNegativeNegatively sloping s-shaped lookup
 Lookup_SPositivePositively sloping s-shaped lookup (centered at origin)
 Lookup_SNegativeNegatively sloping s-shaped lookup (centered at origin)
 Lookup_TableTable-based lookup with manual input of the interpolation table
 Lookup_TableOnFileTable-based lookup given on file
 AggregationGeneralized mean function for multiple stock information inputs
 StockInformationProvide amount in stock information
 RateInformationProvide rate of net flow information
 Aggregation_InfoGeneralized mean function for multiple information inputs
 TotalSum all inputs
 ProductMultiply all inputs
 LoopIndicator_CWLoopindicator for clockwise feedback loop
 LoopIndicator_CCWLoopindicator for counter clockwise feedback loop
 MatFlowIndicatorDirectional indicator for material flows in a diagram
 InfoFlowIndicatorDirectional indicator for information flows in a diagram
 SketchVariableClass to be used for comments or sketch variables

Revisions


Generated at 2024-04-19T18:16:02Z by OpenModelicaOpenModelica 1.22.3 using GenerateDoc.mos