diff options
Diffstat (limited to 'notes')
-rw-r--r-- | notes/background.txt | 39 | ||||
-rw-r--r-- | notes/classic_gravitation.toml | 59 | ||||
-rw-r--r-- | notes/examples.txt | 41 | ||||
-rw-r--r-- | notes/goals.txt | 9 | ||||
-rw-r--r-- | notes/ideas.txt | 4 | ||||
-rw-r--r-- | notes/lotka_volterra.toml | 63 | ||||
-rw-r--r-- | notes/modelica.txt | 2 | ||||
-rw-r--r-- | notes/spec.txt | 10 |
8 files changed, 227 insertions, 0 deletions
diff --git a/notes/background.txt b/notes/background.txt new file mode 100644 index 0000000..e5c1699 --- /dev/null +++ b/notes/background.txt @@ -0,0 +1,39 @@ + +### Previous Work + +"CellML Model Repository" +http://models.cellml.org/cellml + +"BioModels Database" +http://www.ebi.ac.uk/biomodels-main/ + +http://www.tinkercell.com/ + +"Cornell Modeling and Simulation Project" +http://www.cs.cornell.edu/Info/Projects/SimLab/ + +### Modeling Software/Languages + +Modelica Language +Simullink (also Scilab/Xcos) +Wolfram SystemModeler + +"Functional Mock-up Interface": C API and XML file format for "co-simulation" + +SysML ("Systems Modeling Language"): UML subset + +### Modelica Stuff + +"World3 in Modelica: Creating System Dynamics Models in the Modelica Framework" +(2008) + +modelicac: a C compiler for modelica. Implemented in Ocaml. +http://manpages.ubuntu.com/manpages/precise/man1/modelicac.1.html + +Integration into Scilab + +OpenModelica + +PySimulator +https://github.com/PySimulator/PySimulator/ + diff --git a/notes/classic_gravitation.toml b/notes/classic_gravitation.toml new file mode 100644 index 0000000..953dad8 --- /dev/null +++ b/notes/classic_gravitation.toml @@ -0,0 +1,59 @@ + +[model] +name-en = "Classic Gravitation" +descrption-en = "Newtonian" +sexprs = [''' + (= + F + (/ (* G m1 m2) + (square r 2))) + '''] + +[variables] + + [variables.G] + type = "constant" + name-en = "Gravitational Constant" + value_si = 6.674e-11 + + [variables.F] + type = 'dependent' + name-en = "force" + units_si = "unit" + + [variables.r] + type = 'independent' + name-en = "distance" + units_si = "meter" + + [variables.m1] + type = 'independent' + latex = 'm_1' + name = "mass #1" + units_si = "kilogram" + + [variables.m2] + type = 'independent' + latex = 'm_2' + name = "mass #2" + units_si = "kilogram" + +[examples] + + [examples.earth_surface] + r = 6.371e6 # radius of earth + m1 = 5.972e24 # mass of earth + m2 = 70 # mass of human + + [examples.earth_moon] + r = 385000 # radius of earth + m1 = 5.972e24 # mass of earth + m2 = 7.348e22 # mass of moon + + +[references] + + [references.url] + "Mathworld" = "http://mathworld.wolfram.com/Lotka-VolterraEquations.html" + "Wikipedia" = "https://en.wikipedia.org/wiki/Lotka%E2%80%93Volterra_equations" + diff --git a/notes/examples.txt b/notes/examples.txt new file mode 100644 index 0000000..0035113 --- /dev/null +++ b/notes/examples.txt @@ -0,0 +1,41 @@ + +### Models + +Simple, equation based: +- Lotka–Volterra +- whatever Fe is the minimal of (function of protons/neutrons? discrete) +- classic predator-prey (Lotka–Volterra) +- attractors +- that vegan paper +x Uranium Critical Mass (meh, too complicated) +- urban subsidized housing (thinking in systems) +- World3 (from limits to growth report) +- Pulse Tube Cooler + +Economics: +- rent control +- supply/demand curve +- World3 + +Harder, Time/State Based: +- Schmitt trigger (hysteresis) + +Environment/Energy: +- pretty much everything from Sustainable w/o Hot Air + +### Non-Model (?) Equations +- statistical distributions +- volume or surface area of platonic solids + +http://equator.memeschemes.com/equation/ +https://en.wikipedia.org/wiki/Category:Equations + +### Constants + +<copy in constants page from review of particle physics data> + +https://www.wikidata.org/wiki/Q173227 (physical constant) + +### Units + +https://www.wikidata.org/wiki/Q15088658 (measured value) diff --git a/notes/goals.txt b/notes/goals.txt new file mode 100644 index 0000000..d3e4bc4 --- /dev/null +++ b/notes/goals.txt @@ -0,0 +1,9 @@ +- simple wiki/database tool with web front end +- some support or UI for compound models +- code generation: + - julia + - javascript + - rust? + - C? + - modelica +- Elm interactive front-end / debugger diff --git a/notes/ideas.txt b/notes/ideas.txt new file mode 100644 index 0000000..2f5d5ac --- /dev/null +++ b/notes/ideas.txt @@ -0,0 +1,4 @@ +- FRP-based integration of models (via signals) +- Elm-based browser simulation environment +- fast simulator/plotter in Rust +- try to integrate or use "Luna" language diff --git a/notes/lotka_volterra.toml b/notes/lotka_volterra.toml new file mode 100644 index 0000000..7d2cf0d --- /dev/null +++ b/notes/lotka_volterra.toml @@ -0,0 +1,63 @@ + +[model] +name-en = "Lotka–Volterra equations" +descrption-en = "Predator-Prey Model" +sexprs = [''' + (= + (partial-derivative x t) + (- (* alpha x) + (* beta x y))) + ''',''' + (= + (partial-derivative y t) + (- (* delta x y) + (* gamma y))) + '''] + +[variables] + + [variables.t] + type = 'time' # or "independent"? + + [variables.x] + type = 'state' + + [variables.y] + type = 'state' + + [variables.alpha] + type = 'parameter' + latex = '\alpha' + unicode = 'α' + + [variables.beta] + type = 'parameter' + latex = '\beta' + unicode = 'β' + + [variables.delta] + type = 'parameter' + latex = '\delta' + unicode = 'δ' + + [variables.gamma] + type = 'parameter' + latex = '\gamma' + unicode = 'γ' + +[examples] + + [examples.mathworld] + x = 10 + y = 5 + alpha = 1.5 + beta = 1 + gamma = 1 + t = [0, 20] + +[references] + + [references.url] + "Mathworld" = "http://mathworld.wolfram.com/Lotka-VolterraEquations.html" + "Wikipedia" = "https://en.wikipedia.org/wiki/Lotka%E2%80%93Volterra_equations" + diff --git a/notes/modelica.txt b/notes/modelica.txt new file mode 100644 index 0000000..69457c1 --- /dev/null +++ b/notes/modelica.txt @@ -0,0 +1,2 @@ + +Double derivative (eg, "der(der(x)) = a") is not allowed. diff --git a/notes/spec.txt b/notes/spec.txt new file mode 100644 index 0000000..405629b --- /dev/null +++ b/notes/spec.txt @@ -0,0 +1,10 @@ + +variable types: + state + parameter + constant + independent (?) + dependent (?) + time (special case?) + +"variables"? or "symbols"? or "quantities"? |