aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--notes/background.txt39
-rw-r--r--notes/classic_gravitation.toml59
-rw-r--r--notes/examples.txt41
-rw-r--r--notes/goals.txt9
-rw-r--r--notes/ideas.txt4
-rw-r--r--notes/lotka_volterra.toml63
-rw-r--r--notes/modelica.txt2
-rw-r--r--notes/spec.txt10
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"?