diff options
| -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"? | 
