Code Monkey home page Code Monkey logo

businesssimulation's Introduction

Business Simulation Library (BSL)

A Modelica library for modeling and simulation of dynamical systems in the social sciences, such as business, economics, and ecology, using the system dynamics approach. The term "Business Simulation" is used in a broad sense, as modeling in these domains is concerned with control, decision making, and management of resources.

Library Description

The BSL adopts the widely recognized System Dynamics approach and modeling paradigm introduced by Jay W. Forrester. System dynamics provides a versatile, foundational modeling framework, ideally suited for modeling, simulating, and analyzing strategic business or public policy issues.

Unlike existing aproaches, the BSL utilizes Modelica's acausal connectors to accurately model the flow of conserved quantities such as matter, energy, or information, as well as to represent instantaneous information signal flows through causal connections. Using pre-built components and hierarchical modeling, even complex models can be developed in a fast and reliable manner with the added benefits of embedded documentation and compact presentation.

Overview of the Main Packages

Icon Name Description
CausalLoop Agile system dynamics modeling with quantitative causal loop diagrams (CLD+)
Stocks Containers ("reservoirs") used to represent entities that have been stored in a specific state
Flows Processes that move entities from one stock to another at a specific rate
SourcesOrSinks Flows into or out of a stock with infinite capacity at a system's boundary
Converters Information processing (blocks)
InformationSources External information input
MoleculesOfStructure Pre-built components to model information processing, decision making, and subsystems in general

Documentation and Release Notes

You can read the documentation for the library online at:
https://bsl-support.de/BusinessSimulation/BusinessSimulation

Release Notes are included with the documentation and can be found there as well.

The library was developed and tested using Wolfram System Modeler and Wolfram Mathematica.
User experience may differ when using other modeling and simulation environments.

The freely available Lato fonts family is used by library classes; for the best visual experience it is highly recommended to install this font on your computer, which is available for download from its official site or—in an earlier version—from the Google Fonts website.

Publications

  • Reichert, GW. 2022. Hierarchical, Component-Based Modeling Using the Cyber-Physical Modeling Language Modelica. In Conference Record of the 2022 System Dynamics Conference. Frankfurt, Germany, System Dynamics Society. [ online ]

  • Reichert, GW. 2022. Business Simulation Library v2.0 released. System Dynamics Review 38(1): 113–116. [ DOI ]

License

Copyright © 2020 Guido Wolf Reichert
Licensed under the European Union Public Licence (EUPL), Version 1.2 or later (the "License")

You may not use this work except in compliance with the License. You may obtain a copy of the License at:
https://eur-lex.europa.eu/eli/dec_impl/2017/863/oj

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied. See the License for the specific language governing permissions and limitations under the License.

Modelica© is a registered trademark of the Modelica Association.
Wolfram System Modeler™ is a trademark of Wolfram Research, Inc.
Wolfram Mathematica and Mathematica™ are registered trademarks of Wolfram Research, Inc.

Development and Contribution

You may report bugs and other issues or simply make suggestions for future enhancements by using the Issues button.

Please refrain from pull requests until an appropriate Contributor License Agreement (CLA) has been established.

Corresponding Author

ContactInformation.png

businesssimulation's People

Contributors

gwr69 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

businesssimulation's Issues

StockInfoOutput connectors should have the selected OutputType for a stock

Currently OutputType is used in many elementary classes to allow for cumstom units. Unfortunately, this is not carried over to StockInfoOutput connectors for a stock so that showing custom units in models using CausalLoop classes is made easier.

Currently to have this convenience a user should modelOutput connectors as in Examples.HealTheWorld which do allow to show displayUnit for a chosen unit.

CausalLoop.UnidirectionalFlow does not use the parameter rate

The model CausalLoop.UnidirectionalFlow has a global parameter rate but that is not used in the ConstantConverter baseRate.

Thus the current library code:

model UnidirectionalFlow "Interaction with linear and nonlinear terms"
  import BusinessSimulation.Units.Rate;
  extends Interfaces.PartialCLD.Flow;
  parameter Rate rate = 1 "Base rate of flow from A to B";
  Converters.Product_2 actualRate "Rate of flow";
  Flows.Unidirectional.Transition flowingFromAToB;
  Converters.ConstantConverter baseRate(redeclare replaceable type OutputType = Rate, value = 1) "Base rate of flow";
equation
  ...
end UnidirectionalFlow;

Needs to be changed to:

model UnidirectionalFlow "Interaction with linear and nonlinear terms"
  import BusinessSimulation.Units.Rate;
  extends Interfaces.PartialCLD.Flow;
  parameter Rate rate = 1 "Base rate of flow from A to B";
protected
  Converters.Product_2 actualRate "Rate of flow";
  Flows.Unidirectional.Transition flowingFromAToB;
  Converters.ConstantConverter baseRate(redeclare replaceable type OutputType = Rate, value = rate) "Base rate of flow";
equation
  ...
end UnidirectionalFlow;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.