diff-grok 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/LICENSE +1 -1
  2. package/README.MD +80 -31
  3. package/dist/index.d.ts +6 -0
  4. package/{index.js → dist/index.js} +2 -1
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/examples/basic-use.d.ts +10 -0
  7. package/dist/src/examples/basic-use.js.map +1 -0
  8. package/dist/src/examples/check-methods.d.ts +1 -0
  9. package/{src → dist/src}/examples/check-methods.js +15 -3
  10. package/dist/src/examples/check-methods.js.map +1 -0
  11. package/dist/src/examples/corr-probs.d.ts +15 -0
  12. package/{src → dist/src}/examples/corr-probs.js +2 -2
  13. package/dist/src/examples/corr-probs.js.map +1 -0
  14. package/dist/src/examples/cyclic-model.d.ts +6 -0
  15. package/dist/src/examples/cyclic-model.js.map +1 -0
  16. package/dist/src/examples/e5.d.ts +15 -0
  17. package/dist/src/examples/e5.js.map +1 -0
  18. package/dist/src/examples/hires.d.ts +15 -0
  19. package/dist/src/examples/hires.js.map +1 -0
  20. package/dist/src/examples/index.d.ts +22 -0
  21. package/dist/src/examples/index.js.map +1 -0
  22. package/dist/src/examples/model-updates.d.ts +6 -0
  23. package/dist/src/examples/model-updates.js.map +1 -0
  24. package/dist/src/examples/orego.d.ts +15 -0
  25. package/dist/src/examples/orego.js.map +1 -0
  26. package/dist/src/examples/pipeline-use.d.ts +6 -0
  27. package/dist/src/examples/pipeline-use.js.map +1 -0
  28. package/dist/src/examples/pollution.d.ts +15 -0
  29. package/dist/src/examples/pollution.js.map +1 -0
  30. package/{src/examples/print-benchmark.ts → dist/src/examples/print-benchmark.d.ts} +8 -58
  31. package/dist/src/examples/print-benchmark.js.map +1 -0
  32. package/dist/src/examples/robertson.d.ts +15 -0
  33. package/{src → dist/src}/examples/robertson.js +2 -2
  34. package/dist/src/examples/robertson.js.map +1 -0
  35. package/dist/src/examples/scripting.d.ts +1 -0
  36. package/dist/src/examples/scripting.js.map +1 -0
  37. package/dist/src/examples/vdpol.d.ts +15 -0
  38. package/dist/src/examples/vdpol.js.map +1 -0
  39. package/dist/src/latex-export/examples/advanced-to-latex.d.ts +2 -0
  40. package/dist/src/latex-export/examples/advanced-to-latex.js +41 -0
  41. package/dist/src/latex-export/examples/advanced-to-latex.js.map +1 -0
  42. package/dist/src/latex-export/examples/basic-to-latex.d.ts +2 -0
  43. package/dist/src/latex-export/examples/basic-to-latex.js +17 -0
  44. package/dist/src/latex-export/examples/basic-to-latex.js.map +1 -0
  45. package/dist/src/latex-export/examples/bioreactor-to-latex-selective.d.ts +2 -0
  46. package/dist/src/latex-export/examples/bioreactor-to-latex-selective.js +145 -0
  47. package/dist/src/latex-export/examples/bioreactor-to-latex-selective.js.map +1 -0
  48. package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.d.ts +2 -0
  49. package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.js +41 -0
  50. package/dist/src/latex-export/examples/chem-react-to-latex-no-cdot.js.map +1 -0
  51. package/dist/src/latex-export/examples/energy-n-control-to-markdown.d.ts +2 -0
  52. package/dist/src/latex-export/examples/energy-n-control-to-markdown.js +58 -0
  53. package/dist/src/latex-export/examples/energy-n-control-to-markdown.js.map +1 -0
  54. package/dist/src/latex-export/examples/extended-to-markdown.d.ts +2 -0
  55. package/dist/src/latex-export/examples/extended-to-markdown.js +37 -0
  56. package/dist/src/latex-export/examples/extended-to-markdown.js.map +1 -0
  57. package/dist/src/latex-export/examples/fermentation-to-latex.d.ts +2 -0
  58. package/dist/src/latex-export/examples/fermentation-to-latex.js +32 -0
  59. package/dist/src/latex-export/examples/fermentation-to-latex.js.map +1 -0
  60. package/dist/src/latex-export/examples/ga-production-to-markdown.d.ts +2 -0
  61. package/dist/src/latex-export/examples/ga-production-to-markdown.js +58 -0
  62. package/dist/src/latex-export/examples/ga-production-to-markdown.js.map +1 -0
  63. package/dist/src/latex-export/examples/nimotuzumab-to-latex.d.ts +2 -0
  64. package/dist/src/latex-export/examples/nimotuzumab-to-latex.js +53 -0
  65. package/dist/src/latex-export/examples/nimotuzumab-to-latex.js.map +1 -0
  66. package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.d.ts +2 -0
  67. package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.js +50 -0
  68. package/dist/src/latex-export/examples/pk-pd-to-markdown-minimal.js.map +1 -0
  69. package/dist/src/latex-export/examples/pk-to-markdown.d.ts +2 -0
  70. package/dist/src/latex-export/examples/pk-to-markdown.js +35 -0
  71. package/dist/src/latex-export/examples/pk-to-markdown.js.map +1 -0
  72. package/dist/src/latex-export/examples/pollution-to-latex.d.ts +2 -0
  73. package/dist/src/latex-export/examples/pollution-to-latex.js +141 -0
  74. package/dist/src/latex-export/examples/pollution-to-latex.js.map +1 -0
  75. package/dist/src/latex-export/examples/robertson-to-latex-no-meta.d.ts +2 -0
  76. package/dist/src/latex-export/examples/robertson-to-latex-no-meta.js +25 -0
  77. package/dist/src/latex-export/examples/robertson-to-latex-no-meta.js.map +1 -0
  78. package/dist/src/latex-export/generator/bracket-manager.d.ts +19 -0
  79. package/dist/src/latex-export/generator/bracket-manager.js +58 -0
  80. package/dist/src/latex-export/generator/bracket-manager.js.map +1 -0
  81. package/dist/src/latex-export/generator/document-builder.d.ts +13 -0
  82. package/dist/src/latex-export/generator/document-builder.js +433 -0
  83. package/dist/src/latex-export/generator/document-builder.js.map +1 -0
  84. package/dist/src/latex-export/generator/latex-generator.d.ts +23 -0
  85. package/dist/src/latex-export/generator/latex-generator.js +176 -0
  86. package/dist/src/latex-export/generator/latex-generator.js.map +1 -0
  87. package/dist/src/latex-export/index.d.ts +8 -0
  88. package/dist/src/latex-export/index.js +25 -0
  89. package/dist/src/latex-export/index.js.map +1 -0
  90. package/dist/src/latex-export/output/md-formatter.d.ts +16 -0
  91. package/dist/src/latex-export/output/md-formatter.js +27 -0
  92. package/dist/src/latex-export/output/md-formatter.js.map +1 -0
  93. package/dist/src/latex-export/output/tex-formatter.d.ts +5 -0
  94. package/dist/src/latex-export/output/tex-formatter.js +20 -0
  95. package/dist/src/latex-export/output/tex-formatter.js.map +1 -0
  96. package/dist/src/latex-export/parser/ast-parser.d.ts +7 -0
  97. package/dist/src/latex-export/parser/ast-parser.js +153 -0
  98. package/dist/src/latex-export/parser/ast-parser.js.map +1 -0
  99. package/dist/src/latex-export/parser/ivp-parser.d.ts +6 -0
  100. package/dist/src/latex-export/parser/ivp-parser.js +219 -0
  101. package/dist/src/latex-export/parser/ivp-parser.js.map +1 -0
  102. package/dist/src/latex-export/parser/line-joiner.d.ts +25 -0
  103. package/dist/src/latex-export/parser/line-joiner.js +80 -0
  104. package/dist/src/latex-export/parser/line-joiner.js.map +1 -0
  105. package/dist/src/latex-export/parser/tokenizer.d.ts +7 -0
  106. package/dist/src/latex-export/parser/tokenizer.js +143 -0
  107. package/dist/src/latex-export/parser/tokenizer.js.map +1 -0
  108. package/dist/src/latex-export/transformer/functions.d.ts +12 -0
  109. package/dist/src/latex-export/transformer/functions.js +47 -0
  110. package/dist/src/latex-export/transformer/functions.js.map +1 -0
  111. package/dist/src/latex-export/transformer/identifier.d.ts +23 -0
  112. package/dist/src/latex-export/transformer/identifier.js +194 -0
  113. package/dist/src/latex-export/transformer/identifier.js.map +1 -0
  114. package/dist/src/latex-export/transformer/operators.d.ts +9 -0
  115. package/dist/src/latex-export/transformer/operators.js +41 -0
  116. package/dist/src/latex-export/transformer/operators.js.map +1 -0
  117. package/dist/src/latex-export/types.d.ts +122 -0
  118. package/dist/src/latex-export/types.js +10 -0
  119. package/dist/src/latex-export/types.js.map +1 -0
  120. package/{src/pipeline/basic-pipeline-creator.ts → dist/src/pipeline/basic-pipeline-creator.d.ts} +11 -28
  121. package/dist/src/pipeline/basic-pipeline-creator.js.map +1 -0
  122. package/dist/src/pipeline/constants.d.ts +14 -0
  123. package/dist/src/pipeline/constants.js.map +1 -0
  124. package/dist/src/pipeline/index.d.ts +7 -0
  125. package/dist/src/pipeline/index.js.map +1 -0
  126. package/dist/src/pipeline/input.d.ts +3 -0
  127. package/dist/src/pipeline/input.js.map +1 -0
  128. package/dist/src/pipeline/loops-pipeline-creator.d.ts +124 -0
  129. package/dist/src/pipeline/loops-pipeline-creator.js.map +1 -0
  130. package/dist/src/pipeline/output.d.ts +10 -0
  131. package/{src → dist/src}/pipeline/output.js +1 -1
  132. package/dist/src/pipeline/output.js.map +1 -0
  133. package/dist/src/pipeline/pipeline-creator.d.ts +12 -0
  134. package/{src → dist/src}/pipeline/pipeline-creator.js +2 -0
  135. package/dist/src/pipeline/pipeline-creator.js.map +1 -0
  136. package/{src/pipeline/pipeline.ts → dist/src/pipeline/pipeline.d.ts} +10 -97
  137. package/dist/src/pipeline/pipeline.js.map +1 -0
  138. package/{src/pipeline/updates-pipeline-creator.ts → dist/src/pipeline/updates-pipeline-creator.d.ts} +15 -131
  139. package/dist/src/pipeline/updates-pipeline-creator.js.map +1 -0
  140. package/dist/src/scripting-tools/constants.d.ts +59 -0
  141. package/dist/src/scripting-tools/constants.js.map +1 -0
  142. package/dist/src/scripting-tools/index.d.ts +3 -0
  143. package/dist/src/scripting-tools/index.js.map +1 -0
  144. package/dist/src/scripting-tools/model-error.d.ts +10 -0
  145. package/{src → dist/src}/scripting-tools/model-error.js +2 -1
  146. package/dist/src/scripting-tools/model-error.js.map +1 -0
  147. package/dist/src/scripting-tools/scripting-tools.d.ts +277 -0
  148. package/{src → dist/src}/scripting-tools/scripting-tools.js +2 -4
  149. package/dist/src/scripting-tools/scripting-tools.js.map +1 -0
  150. package/dist/src/solver-tools/ab4-method.d.ts +46 -0
  151. package/{src → dist/src}/solver-tools/ab4-method.js +3 -3
  152. package/dist/src/solver-tools/ab4-method.js.map +1 -0
  153. package/dist/src/solver-tools/ab5-method.d.ts +46 -0
  154. package/{src → dist/src}/solver-tools/ab5-method.js +3 -3
  155. package/dist/src/solver-tools/ab5-method.js.map +1 -0
  156. package/dist/src/solver-tools/callbacks/callback-base.d.ts +8 -0
  157. package/dist/src/solver-tools/callbacks/callback-base.js.map +1 -0
  158. package/dist/src/solver-tools/callbacks/callback-tools.d.ts +6 -0
  159. package/dist/src/solver-tools/callbacks/callback-tools.js.map +1 -0
  160. package/dist/src/solver-tools/callbacks/iter-checker-callback.d.ts +12 -0
  161. package/{src → dist/src}/solver-tools/callbacks/iter-checker-callback.js +2 -0
  162. package/dist/src/solver-tools/callbacks/iter-checker-callback.js.map +1 -0
  163. package/dist/src/solver-tools/callbacks/time-checker-callback.d.ts +12 -0
  164. package/{src → dist/src}/solver-tools/callbacks/time-checker-callback.js +2 -2
  165. package/dist/src/solver-tools/callbacks/time-checker-callback.js.map +1 -0
  166. package/dist/src/solver-tools/cvode/common.d.ts +395 -0
  167. package/dist/src/solver-tools/cvode/common.js +483 -0
  168. package/dist/src/solver-tools/cvode/common.js.map +1 -0
  169. package/dist/src/solver-tools/cvode/cvode.d.ts +23 -0
  170. package/dist/src/solver-tools/cvode/cvode.js +1062 -0
  171. package/dist/src/solver-tools/cvode/cvode.js.map +1 -0
  172. package/dist/src/solver-tools/cvode/cvode_adams.d.ts +22 -0
  173. package/dist/src/solver-tools/cvode/cvode_adams.js +124 -0
  174. package/dist/src/solver-tools/cvode/cvode_adams.js.map +1 -0
  175. package/dist/src/solver-tools/cvode/cvode_bdf.d.ts +37 -0
  176. package/dist/src/solver-tools/cvode/cvode_bdf.js +153 -0
  177. package/dist/src/solver-tools/cvode/cvode_bdf.js.map +1 -0
  178. package/dist/src/solver-tools/cvode/cvode_class.d.ts +116 -0
  179. package/dist/src/solver-tools/cvode/cvode_class.js +163 -0
  180. package/dist/src/solver-tools/cvode/cvode_class.js.map +1 -0
  181. package/dist/src/solver-tools/cvode/cvode_hin.d.ts +24 -0
  182. package/dist/src/solver-tools/cvode/cvode_hin.js +119 -0
  183. package/dist/src/solver-tools/cvode/cvode_hin.js.map +1 -0
  184. package/dist/src/solver-tools/cvode/cvode_io.d.ts +98 -0
  185. package/dist/src/solver-tools/cvode/cvode_io.js +202 -0
  186. package/dist/src/solver-tools/cvode/cvode_io.js.map +1 -0
  187. package/dist/src/solver-tools/cvode/cvode_ls.d.ts +23 -0
  188. package/dist/src/solver-tools/cvode/cvode_ls.js +210 -0
  189. package/dist/src/solver-tools/cvode/cvode_ls.js.map +1 -0
  190. package/dist/src/solver-tools/cvode/cvode_nls.d.ts +25 -0
  191. package/dist/src/solver-tools/cvode/cvode_nls.js +220 -0
  192. package/dist/src/solver-tools/cvode/cvode_nls.js.map +1 -0
  193. package/dist/src/solver-tools/cvode/cvode_root.d.ts +64 -0
  194. package/dist/src/solver-tools/cvode/cvode_root.js +415 -0
  195. package/dist/src/solver-tools/cvode/cvode_root.js.map +1 -0
  196. package/dist/src/solver-tools/cvode/dense_linalg.d.ts +50 -0
  197. package/dist/src/solver-tools/cvode/dense_linalg.js +131 -0
  198. package/dist/src/solver-tools/cvode/dense_linalg.js.map +1 -0
  199. package/dist/src/solver-tools/cvode/index.d.ts +24 -0
  200. package/dist/src/solver-tools/cvode/index.js +26 -0
  201. package/dist/src/solver-tools/cvode/index.js.map +1 -0
  202. package/dist/src/solver-tools/cvode-method.d.ts +47 -0
  203. package/dist/src/solver-tools/cvode-method.js +114 -0
  204. package/dist/src/solver-tools/cvode-method.js.map +1 -0
  205. package/dist/src/solver-tools/index.d.ts +16 -0
  206. package/{src → dist/src}/solver-tools/index.js +1 -0
  207. package/dist/src/solver-tools/index.js.map +1 -0
  208. package/dist/src/solver-tools/lin-alg-tools.d.ts +6 -0
  209. package/dist/src/solver-tools/lin-alg-tools.js.map +1 -0
  210. package/dist/src/solver-tools/lsoda/blas.d.ts +59 -0
  211. package/{src → dist/src}/solver-tools/lsoda/blas.js +11 -0
  212. package/dist/src/solver-tools/lsoda/blas.js.map +1 -0
  213. package/dist/src/solver-tools/lsoda/cfode.d.ts +18 -0
  214. package/{src → dist/src}/solver-tools/lsoda/cfode.js +11 -0
  215. package/dist/src/solver-tools/lsoda/cfode.js.map +1 -0
  216. package/dist/src/solver-tools/lsoda/common.d.ts +85 -0
  217. package/dist/src/solver-tools/lsoda/common.js +96 -0
  218. package/dist/src/solver-tools/lsoda/common.js.map +1 -0
  219. package/dist/src/solver-tools/lsoda/corfailure.d.ts +18 -0
  220. package/{src → dist/src}/solver-tools/lsoda/corfailure.js +11 -0
  221. package/dist/src/solver-tools/lsoda/corfailure.js.map +1 -0
  222. package/dist/src/solver-tools/lsoda/correction.d.ts +23 -0
  223. package/{src → dist/src}/solver-tools/lsoda/correction.js +11 -0
  224. package/dist/src/solver-tools/lsoda/correction.js.map +1 -0
  225. package/dist/src/solver-tools/lsoda/dense.d.ts +47 -0
  226. package/{src → dist/src}/solver-tools/lsoda/dense.js +13 -0
  227. package/dist/src/solver-tools/lsoda/dense.js.map +1 -0
  228. package/dist/src/solver-tools/lsoda/index.d.ts +16 -0
  229. package/dist/src/solver-tools/lsoda/index.js +15 -0
  230. package/dist/src/solver-tools/lsoda/index.js.map +1 -0
  231. package/dist/src/solver-tools/lsoda/intdy.d.ts +19 -0
  232. package/{src → dist/src}/solver-tools/lsoda/intdy.js +11 -0
  233. package/dist/src/solver-tools/lsoda/intdy.js.map +1 -0
  234. package/dist/src/solver-tools/lsoda/lsoda.d.ts +66 -0
  235. package/{src → dist/src}/solver-tools/lsoda/lsoda.js +24 -5
  236. package/dist/src/solver-tools/lsoda/lsoda.js.map +1 -0
  237. package/dist/src/solver-tools/lsoda/methodswitch.d.ts +21 -0
  238. package/{src → dist/src}/solver-tools/lsoda/methodswitch.js +11 -0
  239. package/dist/src/solver-tools/lsoda/methodswitch.js.map +1 -0
  240. package/dist/src/solver-tools/lsoda/orderswitch.d.ts +21 -0
  241. package/{src → dist/src}/solver-tools/lsoda/orderswitch.js +11 -0
  242. package/dist/src/solver-tools/lsoda/orderswitch.js.map +1 -0
  243. package/dist/src/solver-tools/lsoda/prja.d.ts +18 -0
  244. package/{src → dist/src}/solver-tools/lsoda/prja.js +11 -0
  245. package/dist/src/solver-tools/lsoda/prja.js.map +1 -0
  246. package/dist/src/solver-tools/lsoda/scaleh.d.ts +16 -0
  247. package/{src → dist/src}/solver-tools/lsoda/scaleh.js +11 -0
  248. package/dist/src/solver-tools/lsoda/scaleh.js.map +1 -0
  249. package/dist/src/solver-tools/lsoda/solsy.d.ts +17 -0
  250. package/dist/src/solver-tools/lsoda/solsy.js +25 -0
  251. package/dist/src/solver-tools/lsoda/solsy.js.map +1 -0
  252. package/dist/src/solver-tools/lsoda/stoda.d.ts +19 -0
  253. package/{src → dist/src}/solver-tools/lsoda/stoda.js +11 -0
  254. package/dist/src/solver-tools/lsoda/stoda.js.map +1 -0
  255. package/dist/src/solver-tools/lsoda-method.d.ts +46 -0
  256. package/{src → dist/src}/solver-tools/lsoda-method.js +23 -9
  257. package/dist/src/solver-tools/lsoda-method.js.map +1 -0
  258. package/dist/src/solver-tools/mrt-method.d.ts +47 -0
  259. package/{src → dist/src}/solver-tools/mrt-method.js +2 -2
  260. package/dist/src/solver-tools/mrt-method.js.map +1 -0
  261. package/dist/src/solver-tools/rk3-method.d.ts +46 -0
  262. package/{src → dist/src}/solver-tools/rk3-method.js +2 -2
  263. package/dist/src/solver-tools/rk3-method.js.map +1 -0
  264. package/dist/src/solver-tools/rk4-method.d.ts +46 -0
  265. package/{src → dist/src}/solver-tools/rk4-method.js +2 -2
  266. package/dist/src/solver-tools/rk4-method.js.map +1 -0
  267. package/dist/src/solver-tools/rkdp-method.d.ts +46 -0
  268. package/{src → dist/src}/solver-tools/rkdp-method.js +2 -2
  269. package/dist/src/solver-tools/rkdp-method.js.map +1 -0
  270. package/dist/src/solver-tools/ros34prw-method.d.ts +46 -0
  271. package/{src → dist/src}/solver-tools/ros34prw-method.js +2 -2
  272. package/dist/src/solver-tools/ros34prw-method.js.map +1 -0
  273. package/dist/src/solver-tools/ros3prw-method.d.ts +46 -0
  274. package/{src → dist/src}/solver-tools/ros3prw-method.js +2 -2
  275. package/dist/src/solver-tools/ros3prw-method.js.map +1 -0
  276. package/{src/solver-tools/solver-defs.ts → dist/src/solver-tools/solver-defs.d.ts} +45 -84
  277. package/{src → dist/src}/solver-tools/solver-defs.js +1 -0
  278. package/dist/src/solver-tools/solver-defs.js.map +1 -0
  279. package/dist/src/worker-tools/index.d.ts +2 -0
  280. package/dist/src/worker-tools/index.js.map +1 -0
  281. package/{src/worker-tools/scripting.ts → dist/src/worker-tools/scripting.d.ts} +9 -91
  282. package/dist/src/worker-tools/scripting.js.map +1 -0
  283. package/dist/src/worker-tools/solving.d.ts +7 -0
  284. package/{src → dist/src}/worker-tools/solving.js +3 -1
  285. package/dist/src/worker-tools/solving.js.map +1 -0
  286. package/package.json +13 -12
  287. package/.claude/settings.local.json +0 -11
  288. package/.eslintrc.json +0 -45
  289. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -29
  290. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  291. package/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  292. package/.github/scripts/bump-js-api-version.sh +0 -106
  293. package/.github/scripts/check-output.sh +0 -20
  294. package/.github/scripts/iac-cfn-deploy.sh +0 -90
  295. package/.github/scripts/slack_api_request.sh +0 -65
  296. package/.github/scripts/test_package.sh +0 -270
  297. package/.github/workflows/deploy-docs.yml +0 -15
  298. package/.github/workflows/libraries.yaml +0 -305
  299. package/.github/workflows/test.yaml +0 -19
  300. package/CLAUDE.md +0 -98
  301. package/CONTRIBUTING.md +0 -74
  302. package/eslintrc.json +0 -45
  303. package/images/E5.png +0 -0
  304. package/images/HIRES.png +0 -0
  305. package/images/OREGO.png +0 -0
  306. package/images/POLL-full.png +0 -0
  307. package/images/POLL.png +0 -0
  308. package/images/ROBER.png +0 -0
  309. package/images/VDP0L.png +0 -0
  310. package/images/VDPOL.png +0 -0
  311. package/images/acid-prod.gif +0 -0
  312. package/index.js.map +0 -1
  313. package/index.ts +0 -17
  314. package/jest.config.js +0 -13
  315. package/src/examples/basic-use.js.map +0 -1
  316. package/src/examples/basic-use.ts +0 -44
  317. package/src/examples/bioreactor.js +0 -125
  318. package/src/examples/bioreactor.js.map +0 -1
  319. package/src/examples/bioreactor.ts +0 -132
  320. package/src/examples/check-methods.js.map +0 -1
  321. package/src/examples/check-methods.ts +0 -81
  322. package/src/examples/corr-probs.js.map +0 -1
  323. package/src/examples/corr-probs.ts +0 -155
  324. package/src/examples/cyclic-model.js.map +0 -1
  325. package/src/examples/cyclic-model.ts +0 -112
  326. package/src/examples/e5.js.map +0 -1
  327. package/src/examples/e5.ts +0 -36
  328. package/src/examples/hires.js.map +0 -1
  329. package/src/examples/hires.ts +0 -40
  330. package/src/examples/index.js.map +0 -1
  331. package/src/examples/index.ts +0 -34
  332. package/src/examples/model-updates.js.map +0 -1
  333. package/src/examples/model-updates.ts +0 -122
  334. package/src/examples/orego.js.map +0 -1
  335. package/src/examples/orego.ts +0 -25
  336. package/src/examples/pipeline-use.js.map +0 -1
  337. package/src/examples/pipeline-use.ts +0 -98
  338. package/src/examples/pollution.js.map +0 -1
  339. package/src/examples/pollution.ts +0 -133
  340. package/src/examples/print-benchmark.js.map +0 -1
  341. package/src/examples/robertson.js.map +0 -1
  342. package/src/examples/robertson.ts +0 -19
  343. package/src/examples/scripting.js.map +0 -1
  344. package/src/examples/scripting.ts +0 -35
  345. package/src/examples/vdpol.js.map +0 -1
  346. package/src/examples/vdpol.ts +0 -17
  347. package/src/pipeline/basic-pipeline-creator.js.map +0 -1
  348. package/src/pipeline/constants.js.map +0 -1
  349. package/src/pipeline/constants.ts +0 -21
  350. package/src/pipeline/index.js.map +0 -1
  351. package/src/pipeline/index.ts +0 -7
  352. package/src/pipeline/input.js.map +0 -1
  353. package/src/pipeline/input.ts +0 -55
  354. package/src/pipeline/loops-pipeline-creator.js.map +0 -1
  355. package/src/pipeline/loops-pipeline-creator.ts +0 -252
  356. package/src/pipeline/output.js.map +0 -1
  357. package/src/pipeline/output.ts +0 -201
  358. package/src/pipeline/pipeline-creator.js.map +0 -1
  359. package/src/pipeline/pipeline-creator.ts +0 -20
  360. package/src/pipeline/pipeline.js.map +0 -1
  361. package/src/pipeline/updates-pipeline-creator.js.map +0 -1
  362. package/src/scripting-tools/constants.js.map +0 -1
  363. package/src/scripting-tools/constants.ts +0 -69
  364. package/src/scripting-tools/index.js.map +0 -1
  365. package/src/scripting-tools/index.ts +0 -8
  366. package/src/scripting-tools/model-error.js.map +0 -1
  367. package/src/scripting-tools/model-error.ts +0 -21
  368. package/src/scripting-tools/scripting-tools.js.map +0 -1
  369. package/src/scripting-tools/scripting-tools.ts +0 -1582
  370. package/src/solver-tools/ab4-method.js.map +0 -1
  371. package/src/solver-tools/ab4-method.ts +0 -395
  372. package/src/solver-tools/ab5-method.js.map +0 -1
  373. package/src/solver-tools/ab5-method.ts +0 -397
  374. package/src/solver-tools/callbacks/callback-base.js.map +0 -1
  375. package/src/solver-tools/callbacks/callback-base.ts +0 -12
  376. package/src/solver-tools/callbacks/callback-tools.js.map +0 -1
  377. package/src/solver-tools/callbacks/callback-tools.ts +0 -22
  378. package/src/solver-tools/callbacks/iter-checker-callback.js.map +0 -1
  379. package/src/solver-tools/callbacks/iter-checker-callback.ts +0 -25
  380. package/src/solver-tools/callbacks/time-checker-callback.js.map +0 -1
  381. package/src/solver-tools/callbacks/time-checker-callback.ts +0 -23
  382. package/src/solver-tools/index.js.map +0 -1
  383. package/src/solver-tools/index.ts +0 -15
  384. package/src/solver-tools/lin-alg-tools.js.map +0 -1
  385. package/src/solver-tools/lin-alg-tools.ts +0 -75
  386. package/src/solver-tools/lsoda/blas.js.map +0 -1
  387. package/src/solver-tools/lsoda/blas.ts +0 -267
  388. package/src/solver-tools/lsoda/cfode.js.map +0 -1
  389. package/src/solver-tools/lsoda/cfode.ts +0 -83
  390. package/src/solver-tools/lsoda/common.js +0 -94
  391. package/src/solver-tools/lsoda/common.js.map +0 -1
  392. package/src/solver-tools/lsoda/common.ts +0 -135
  393. package/src/solver-tools/lsoda/corfailure.js.map +0 -1
  394. package/src/solver-tools/lsoda/corfailure.ts +0 -30
  395. package/src/solver-tools/lsoda/correction.js.map +0 -1
  396. package/src/solver-tools/lsoda/correction.ts +0 -119
  397. package/src/solver-tools/lsoda/dense.js.map +0 -1
  398. package/src/solver-tools/lsoda/dense.ts +0 -129
  399. package/src/solver-tools/lsoda/index.js +0 -4
  400. package/src/solver-tools/lsoda/index.js.map +0 -1
  401. package/src/solver-tools/lsoda/index.ts +0 -5
  402. package/src/solver-tools/lsoda/intdy.js.map +0 -1
  403. package/src/solver-tools/lsoda/intdy.ts +0 -50
  404. package/src/solver-tools/lsoda/lsoda.js.map +0 -1
  405. package/src/solver-tools/lsoda/lsoda.ts +0 -632
  406. package/src/solver-tools/lsoda/methodswitch.js.map +0 -1
  407. package/src/solver-tools/lsoda/methodswitch.ts +0 -107
  408. package/src/solver-tools/lsoda/orderswitch.js.map +0 -1
  409. package/src/solver-tools/lsoda/orderswitch.ts +0 -95
  410. package/src/solver-tools/lsoda/prja.js.map +0 -1
  411. package/src/solver-tools/lsoda/prja.ts +0 -49
  412. package/src/solver-tools/lsoda/scaleh.js.map +0 -1
  413. package/src/solver-tools/lsoda/scaleh.ts +0 -33
  414. package/src/solver-tools/lsoda/solsy.js +0 -14
  415. package/src/solver-tools/lsoda/solsy.js.map +0 -1
  416. package/src/solver-tools/lsoda/solsy.ts +0 -18
  417. package/src/solver-tools/lsoda/stoda.js.map +0 -1
  418. package/src/solver-tools/lsoda/stoda.ts +0 -286
  419. package/src/solver-tools/lsoda-method.js.map +0 -1
  420. package/src/solver-tools/lsoda-method.ts +0 -136
  421. package/src/solver-tools/mrt-method.js.map +0 -1
  422. package/src/solver-tools/mrt-method.ts +0 -398
  423. package/src/solver-tools/rk3-method.js.map +0 -1
  424. package/src/solver-tools/rk3-method.ts +0 -257
  425. package/src/solver-tools/rk4-method.js.map +0 -1
  426. package/src/solver-tools/rk4-method.ts +0 -286
  427. package/src/solver-tools/rkdp-method.js.map +0 -1
  428. package/src/solver-tools/rkdp-method.ts +0 -300
  429. package/src/solver-tools/ros34prw-method.js.map +0 -1
  430. package/src/solver-tools/ros34prw-method.ts +0 -373
  431. package/src/solver-tools/ros3prw-method.js.map +0 -1
  432. package/src/solver-tools/ros3prw-method.ts +0 -342
  433. package/src/solver-tools/solver-defs.js.map +0 -1
  434. package/src/tests/correctness.test.js +0 -15
  435. package/src/tests/correctness.test.js.map +0 -1
  436. package/src/tests/correctness.test.ts +0 -16
  437. package/src/tests/lsoda-lib-correctness.test.js +0 -223
  438. package/src/tests/lsoda-lib-correctness.test.js.map +0 -1
  439. package/src/tests/lsoda-lib-correctness.test.ts +0 -283
  440. package/src/tests/lsoda-lib-performance.test.js +0 -95
  441. package/src/tests/lsoda-lib-performance.test.js.map +0 -1
  442. package/src/tests/lsoda-lib-performance.test.ts +0 -126
  443. package/src/tests/performance.test.js +0 -16
  444. package/src/tests/performance.test.js.map +0 -1
  445. package/src/tests/performance.test.ts +0 -17
  446. package/src/tests/pipeline.test.js +0 -10
  447. package/src/tests/pipeline.test.js.map +0 -1
  448. package/src/tests/pipeline.test.ts +0 -11
  449. package/src/tests/test-defs.js +0 -207
  450. package/src/tests/test-defs.js.map +0 -1
  451. package/src/tests/test-defs.ts +0 -225
  452. package/src/tests/test-utils.js +0 -28
  453. package/src/tests/test-utils.js.map +0 -1
  454. package/src/tests/test-utils.ts +0 -37
  455. package/src/worker-tools/index.js.map +0 -1
  456. package/src/worker-tools/index.ts +0 -2
  457. package/src/worker-tools/scripting.js.map +0 -1
  458. package/src/worker-tools/solving.js.map +0 -1
  459. package/src/worker-tools/solving.ts +0 -83
  460. package/tsconfig.json +0 -71
  461. package/typedoc.json +0 -8
  462. /package/{src → dist/src}/examples/basic-use.js +0 -0
  463. /package/{src → dist/src}/examples/cyclic-model.js +0 -0
  464. /package/{src → dist/src}/examples/e5.js +0 -0
  465. /package/{src → dist/src}/examples/hires.js +0 -0
  466. /package/{src → dist/src}/examples/index.js +0 -0
  467. /package/{src → dist/src}/examples/model-updates.js +0 -0
  468. /package/{src → dist/src}/examples/orego.js +0 -0
  469. /package/{src → dist/src}/examples/pipeline-use.js +0 -0
  470. /package/{src → dist/src}/examples/pollution.js +0 -0
  471. /package/{src → dist/src}/examples/print-benchmark.js +0 -0
  472. /package/{src → dist/src}/examples/scripting.js +0 -0
  473. /package/{src → dist/src}/examples/vdpol.js +0 -0
  474. /package/{src → dist/src}/pipeline/basic-pipeline-creator.js +0 -0
  475. /package/{src → dist/src}/pipeline/constants.js +0 -0
  476. /package/{src → dist/src}/pipeline/index.js +0 -0
  477. /package/{src → dist/src}/pipeline/input.js +0 -0
  478. /package/{src → dist/src}/pipeline/loops-pipeline-creator.js +0 -0
  479. /package/{src → dist/src}/pipeline/pipeline.js +0 -0
  480. /package/{src → dist/src}/pipeline/updates-pipeline-creator.js +0 -0
  481. /package/{src → dist/src}/scripting-tools/constants.js +0 -0
  482. /package/{src → dist/src}/scripting-tools/index.js +0 -0
  483. /package/{src → dist/src}/solver-tools/callbacks/callback-base.js +0 -0
  484. /package/{src → dist/src}/solver-tools/callbacks/callback-tools.js +0 -0
  485. /package/{src → dist/src}/solver-tools/lin-alg-tools.js +0 -0
  486. /package/{src → dist/src}/worker-tools/index.js +0 -0
  487. /package/{src → dist/src}/worker-tools/scripting.js +0 -0
@@ -1,207 +0,0 @@
1
- /* eslint-disable max-len */
2
- import { mrt, ros3prw, ros34prw, rk4, ab5, ab4, rkdp, rk3, lsoda } from '../../index';
3
- export const methods = new Map([
4
- ['MRT', mrt],
5
- ['ROS3PRw', ros3prw],
6
- ['ROS34PRw', ros34prw],
7
- ['RK4', rk4],
8
- ['AB5', ab5],
9
- ['AB4', ab4],
10
- ['RKDP', rkdp],
11
- ['RK3', rk3],
12
- ['LSODA', lsoda],
13
- ]);
14
- /** Implicit methods suitable for stiff performance benchmarks */
15
- export const implicitMethods = new Map([
16
- ['MRT', mrt],
17
- ['ROS3PRw', ros3prw],
18
- ['ROS34PRw', ros34prw],
19
- ['LSODA', lsoda],
20
- ]);
21
- export const MAX_MAD = 0.1;
22
- export const TIMEOUT_MS = 10000;
23
- const BASIC_MODEL = `#name: M|M|2|2
24
- #description: Modelling the system with two servers & two waiting places (EXPLAINED)
25
- #equations:
26
- dp0/dt = -la * p0 + mu * p1
27
- dp1/dt = la * p0 - (la + mu) * p1 + 2 * mu * p2
28
- dp2/dt = la * p1 - (la + 2 * mu) * p2 + 2 * mu * p3
29
- dp3/dt = la * p2 - (la + 2 * mu) * p3 + 2 * mu * p4
30
-
31
- #expressions:
32
- la = 1 / arrival
33
- mu = 1 / service
34
- p4 = 1 - p0 - p1 - p2 - p3
35
- busy = 1 - p0 - p1
36
- queue = p3 + 2 * p4
37
-
38
- #argument: t
39
- _t0 = 0 {min: 0; max: 10; caption: start; category: Time; units: min} [Initial time of simulation]
40
- _t1 = 60 {min: 20; max: 100; caption: finish; category: Time; units: min} [Final time of simulation]
41
- _h = 1 {min: 0.01; max: 0.1; caption: step; category: Time; units: min} [Time step of simulation]
42
-
43
- #inits:
44
- p0 = 1 {min: 0; max: 1; category: Initial state; caption: empty} [Probability that initially there are NO customers]
45
- p1 = 0 {min: 0; max: 1; category: Initial state; caption: single} [Probability that initially there is ONE customer]
46
- p2 = 0 {min: 0; max: 1; category: Initial state; caption: two} [Probability that initially there are TWO customers]
47
- p3 = 0 {min: 0; max: 1; category: Initial state; caption: three} [Probability that initially there are THREE customers]
48
-
49
- #output:
50
- t {caption: Time, min}
51
- p0 {caption: P(Empty)}
52
- busy {caption: P(Full load)}
53
- queue {caption: E(Queue)}
54
-
55
- #parameters:
56
- arrival = 10 {min: 1; max: 100; category: Means; caption: arrival; units: min} [Mean arrival time]
57
- service = 100 {min: 1; max: 100; category: Means; caption: service; units: min} [Mean service time]`;
58
- const BASIC_MODEL_INPUTS = {
59
- _t0: 0,
60
- _t1: 60,
61
- _h: 1,
62
- p0: 1,
63
- p1: 0,
64
- p2: 0,
65
- p3: 0,
66
- arrival: 10,
67
- service: 100,
68
- };
69
- const BASIC_MODEL_OUTPUTS = 4;
70
- const CYCLIC_MODEL = `#name: PK-PD
71
- #tags: model
72
- #description: Pharmacokinetic-pharmacodynamic (PK-PD) simulation: two-compartment model
73
- #equations:
74
- d(depot)/dt = -KA * depot
75
- d(centr)/dt = KA * depot - CL * C2 - Q * C2 + Q * C3
76
- d(peri)/dt = Q * C2 - Q * C3
77
- d(eff)/dt = Kin - Kout * (1 - C2/(EC50 + C2)) * eff
78
-
79
- #expressions:
80
- C2 = centr / V2
81
- C3 = peri / V3
82
-
83
- #loop:
84
- _count = 10 {caption: count; category: Dosing; min: 1; max: 20} [Number of doses]
85
- depot += dose
86
-
87
- #argument: t
88
- _t0 = 0 {units: h; caption: begin; category: Dosing; min: 0; max: 1} [Begin of dosing interval]
89
- _t1 = 12 {units: h; caption: end; category: Dosing; min: 5; max: 15} [End of dosing interval]
90
- _h = 1 {units: h; caption: step; category: Dosing; min: 0.01; max: 0.1} [Time step of simulation]
91
-
92
- #inits:
93
- depot = 0 {category: Initial values}
94
- centr = 0 {category: Initial values} [Central]
95
- peri = 0 {category: Initial values} [Peripheral]
96
- eff = 0.2 {category: Initial values} [Effective compartment rate]
97
-
98
- #parameters:
99
- dose = 1e4 {category: Dosing; min: 1e3; max: 2e4; step: 1e3} [Dosage]
100
- KA = 0.3 {caption: rate constant; category: Parameters; min: 0.1; max: 1}
101
- CL = 2 {caption: clearance; category: Parameters; min: 1; max: 5}
102
- V2 = 4 {caption: central volume; category: Parameters; min: 1; max: 10} [Central compartment volume]
103
- Q = 1 {caption: inter rate; category: Parameters; min: 0.1; max: 1} [Intercompartmental rate]
104
- V3 = 30 {caption: peri volume; category: Parameters; min: 20; max: 40} [Peripheral compartment volume]
105
- EC50 = 8 {caption: effect; category: Parameters; min: 1; max: 10}
106
- Kin = 0.2 {caption: Kin; category: Parameters; min: 0.1; max: 0.5} [The first-order production constant]
107
- Kout = 0.2 {caption: Kout; category: Parameters; min: 0.1; max: 0.5} [The first-order dissipation rate constant]
108
-
109
- #tolerance: 1e-9`;
110
- const CYCLIC_MODEL_INPUTS = {
111
- _count: 10,
112
- _t0: 0,
113
- _t1: 16,
114
- _h: 1,
115
- depot: 0,
116
- centr: 0,
117
- peri: 0,
118
- eff: 0.2,
119
- dose: 10000,
120
- KA: 0.63,
121
- CL: 3.2,
122
- V2: 6.58,
123
- Q: 0.622,
124
- V3: 35.6,
125
- EC50: 5.41,
126
- Kin: 0.272,
127
- Kout: 0.276,
128
- };
129
- const CYCLIC_MODEL_OUTPUTS = 5;
130
- const MULTISTAGE_MODEL = `#name: GA-production
131
- #tags: model
132
- #description: Gluconic acid (GA) production by Aspergillus niger modeling
133
- #equations:
134
- dX/dt = rX
135
- dS/dt = -gamma * rX - lambda * X
136
- dO/dt = Kla * (Cod - O) - delta * rX - phi * X
137
- dP/dt = alpha * rX + beta * X
138
-
139
- #expressions:
140
- mu = muM * S / (Ks + S) * O / (Ko + O)
141
- rX = mu * X
142
-
143
- #argument: t, 1-st stage
144
- _t0 = 0 {units: h; caption: initial; category: Misc} [Start of the process]
145
- _t1 = 60 {units: h; caption: 1-st stage; category: Durations; min: 20; max: 80} [Duration of the 1-st stage]
146
- step = 0.1 {units: h; caption: step; category: Misc; min: 0.01; max: 1} [Time step of simulation]
147
-
148
- #update: 2-nd stage
149
- duration = overall - _t1
150
- S += 70
151
-
152
- #inits:
153
- X = 5 {units: kg/m³; caption: biomass; category: Initial concentrations; min: 1; max: 10} [Aspergillus niger biomass]
154
- S = 150 {units: kg/m³; caption: glucose; category: Initial concentrations; min: 50; max: 200} [Glucose]
155
- O = 7 {units: kg/m³; caption: oxygen; category: Initial concentrations; min: 1; max: 10} [Dissolved oxygen]
156
- P = 0 {units: kg/m³; caption: acid; category: Initial concentrations; min: 0; max: 0.1} [Gluconic acid]
157
-
158
- #output:
159
- t {caption: time}
160
- X {caption: biomass}
161
- S {caption: glucose}
162
- O {caption: oxygen}
163
- P {caption: acid}
164
-
165
- #parameters:
166
- overall = 100 {units: h; category: Durations; min: 100; max: 140} [Overall duration]
167
- muM = 0.668 {units: 1/h; category: Parameters} [Monod type model parameter]
168
- alpha = 2.92 {category: Parameters} [Monod type model parameter]
169
- beta = 0.131 {units: 1/h; category: Parameters} [Monod type model parameter]
170
- gamma = 2.12 {category: Parameters} [Monod type model parameter]
171
- lambda = 0.232 {units: 1/h; category: Parameters} [Monod type model parameter]
172
- delta = 0.278 {category: Parameters} [Monod type model parameter]
173
- phi = 4.87e-3 {units: 1/h; category: Parameters} [Monod type model parameter]
174
- Ks = 1.309e2 {units: g/L; category: Parameters} [Monod type model parameter]
175
- Ko = 3.63e-4 {units: g/L; category: Parameters} [Monod type model parameter]
176
- Kla = 1.7e-2 {units: 1/s; category: Parameters} [Volumetric mass transfer coefficient]
177
- Cod = 15 {units: kg/m³; category: Parameters} [Liquid phase dissolved oxygen saturation concentration]
178
-
179
- #tolerance: 1e-9`;
180
- const MULTISTAGE_MODEL_INPUTS = {
181
- _t0: 0,
182
- _t1: 60,
183
- _h: 1,
184
- X: 5,
185
- S: 150,
186
- O: 7,
187
- P: 0,
188
- overall: 100,
189
- muM: 0.668,
190
- alpha: 2.92,
191
- beta: 0.131,
192
- gamma: 2.12,
193
- lambda: 0.232,
194
- delta: 0.278,
195
- phi: 4.87e-3,
196
- Ks: 1.309e2,
197
- Ko: 3.63e-4,
198
- Kla: 1.7e-2,
199
- Cod: 15,
200
- };
201
- const MULTISTAGE_MODEL_OUTPUTS = 5;
202
- export const problems = new Map([
203
- ['basic', { model: BASIC_MODEL, inputs: BASIC_MODEL_INPUTS, outputsCount: BASIC_MODEL_OUTPUTS }],
204
- ['cyclic', { model: CYCLIC_MODEL, inputs: CYCLIC_MODEL_INPUTS, outputsCount: CYCLIC_MODEL_OUTPUTS }],
205
- ['multistage', { model: MULTISTAGE_MODEL, inputs: MULTISTAGE_MODEL_INPUTS, outputsCount: MULTISTAGE_MODEL_OUTPUTS }],
206
- ]);
207
- //# sourceMappingURL=test-defs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-defs.js","sourceRoot":"","sources":["test-defs.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAC,MAAM,aAAa,CAAC;AAEpF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IAC7B,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,OAAO,EAAE,KAAK,CAAC;CACjB,CAAC,CAAC;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,OAAO,EAAE,KAAK,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEhC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uGAkCmF,CAAC;AAExG,MAAM,kBAAkB,GAAG;IACzB,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCJ,CAAC;AAElB,MAAM,mBAAmB,GAAG;IAC1B,MAAM,EAAE,EAAE;IACV,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,EAAE,EAAE,CAAC;IACL,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDR,CAAC;AAElB,MAAM,uBAAuB,GAAG;IAC9B,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,EAAE,EAAE,CAAC;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,OAAO;IACZ,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,EAAE;CACR,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAQnC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAsB;IACnD,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAC,CAAC;IAC9F,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAC,CAAC;IAClG,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,uBAAuB,EAAE,YAAY,EAAE,wBAAwB,EAAC,CAAC;CACnH,CAAC,CAAC"}
@@ -1,225 +0,0 @@
1
- /* eslint-disable max-len */
2
- import {mrt, ros3prw, ros34prw, rk4, ab5, ab4, rkdp, rk3, lsoda} from '../../index';
3
-
4
- export const methods = new Map([
5
- ['MRT', mrt],
6
- ['ROS3PRw', ros3prw],
7
- ['ROS34PRw', ros34prw],
8
- ['RK4', rk4],
9
- ['AB5', ab5],
10
- ['AB4', ab4],
11
- ['RKDP', rkdp],
12
- ['RK3', rk3],
13
- ['LSODA', lsoda],
14
- ]);
15
-
16
- /** Implicit methods suitable for stiff performance benchmarks */
17
- export const implicitMethods = new Map([
18
- ['MRT', mrt],
19
- ['ROS3PRw', ros3prw],
20
- ['ROS34PRw', ros34prw],
21
- ['LSODA', lsoda],
22
- ]);
23
-
24
- export const MAX_MAD = 0.1;
25
- export const TIMEOUT_MS = 10000;
26
-
27
- const BASIC_MODEL = `#name: M|M|2|2
28
- #description: Modelling the system with two servers & two waiting places (EXPLAINED)
29
- #equations:
30
- dp0/dt = -la * p0 + mu * p1
31
- dp1/dt = la * p0 - (la + mu) * p1 + 2 * mu * p2
32
- dp2/dt = la * p1 - (la + 2 * mu) * p2 + 2 * mu * p3
33
- dp3/dt = la * p2 - (la + 2 * mu) * p3 + 2 * mu * p4
34
-
35
- #expressions:
36
- la = 1 / arrival
37
- mu = 1 / service
38
- p4 = 1 - p0 - p1 - p2 - p3
39
- busy = 1 - p0 - p1
40
- queue = p3 + 2 * p4
41
-
42
- #argument: t
43
- _t0 = 0 {min: 0; max: 10; caption: start; category: Time; units: min} [Initial time of simulation]
44
- _t1 = 60 {min: 20; max: 100; caption: finish; category: Time; units: min} [Final time of simulation]
45
- _h = 1 {min: 0.01; max: 0.1; caption: step; category: Time; units: min} [Time step of simulation]
46
-
47
- #inits:
48
- p0 = 1 {min: 0; max: 1; category: Initial state; caption: empty} [Probability that initially there are NO customers]
49
- p1 = 0 {min: 0; max: 1; category: Initial state; caption: single} [Probability that initially there is ONE customer]
50
- p2 = 0 {min: 0; max: 1; category: Initial state; caption: two} [Probability that initially there are TWO customers]
51
- p3 = 0 {min: 0; max: 1; category: Initial state; caption: three} [Probability that initially there are THREE customers]
52
-
53
- #output:
54
- t {caption: Time, min}
55
- p0 {caption: P(Empty)}
56
- busy {caption: P(Full load)}
57
- queue {caption: E(Queue)}
58
-
59
- #parameters:
60
- arrival = 10 {min: 1; max: 100; category: Means; caption: arrival; units: min} [Mean arrival time]
61
- service = 100 {min: 1; max: 100; category: Means; caption: service; units: min} [Mean service time]`;
62
-
63
- const BASIC_MODEL_INPUTS = {
64
- _t0: 0,
65
- _t1: 60,
66
- _h: 1,
67
- p0: 1,
68
- p1: 0,
69
- p2: 0,
70
- p3: 0,
71
- arrival: 10,
72
- service: 100,
73
- };
74
-
75
- const BASIC_MODEL_OUTPUTS = 4;
76
-
77
- const CYCLIC_MODEL = `#name: PK-PD
78
- #tags: model
79
- #description: Pharmacokinetic-pharmacodynamic (PK-PD) simulation: two-compartment model
80
- #equations:
81
- d(depot)/dt = -KA * depot
82
- d(centr)/dt = KA * depot - CL * C2 - Q * C2 + Q * C3
83
- d(peri)/dt = Q * C2 - Q * C3
84
- d(eff)/dt = Kin - Kout * (1 - C2/(EC50 + C2)) * eff
85
-
86
- #expressions:
87
- C2 = centr / V2
88
- C3 = peri / V3
89
-
90
- #loop:
91
- _count = 10 {caption: count; category: Dosing; min: 1; max: 20} [Number of doses]
92
- depot += dose
93
-
94
- #argument: t
95
- _t0 = 0 {units: h; caption: begin; category: Dosing; min: 0; max: 1} [Begin of dosing interval]
96
- _t1 = 12 {units: h; caption: end; category: Dosing; min: 5; max: 15} [End of dosing interval]
97
- _h = 1 {units: h; caption: step; category: Dosing; min: 0.01; max: 0.1} [Time step of simulation]
98
-
99
- #inits:
100
- depot = 0 {category: Initial values}
101
- centr = 0 {category: Initial values} [Central]
102
- peri = 0 {category: Initial values} [Peripheral]
103
- eff = 0.2 {category: Initial values} [Effective compartment rate]
104
-
105
- #parameters:
106
- dose = 1e4 {category: Dosing; min: 1e3; max: 2e4; step: 1e3} [Dosage]
107
- KA = 0.3 {caption: rate constant; category: Parameters; min: 0.1; max: 1}
108
- CL = 2 {caption: clearance; category: Parameters; min: 1; max: 5}
109
- V2 = 4 {caption: central volume; category: Parameters; min: 1; max: 10} [Central compartment volume]
110
- Q = 1 {caption: inter rate; category: Parameters; min: 0.1; max: 1} [Intercompartmental rate]
111
- V3 = 30 {caption: peri volume; category: Parameters; min: 20; max: 40} [Peripheral compartment volume]
112
- EC50 = 8 {caption: effect; category: Parameters; min: 1; max: 10}
113
- Kin = 0.2 {caption: Kin; category: Parameters; min: 0.1; max: 0.5} [The first-order production constant]
114
- Kout = 0.2 {caption: Kout; category: Parameters; min: 0.1; max: 0.5} [The first-order dissipation rate constant]
115
-
116
- #tolerance: 1e-9`;
117
-
118
- const CYCLIC_MODEL_INPUTS = {
119
- _count: 10,
120
- _t0: 0,
121
- _t1: 16,
122
- _h: 1,
123
- depot: 0,
124
- centr: 0,
125
- peri: 0,
126
- eff: 0.2,
127
- dose: 10000,
128
- KA: 0.63,
129
- CL: 3.2,
130
- V2: 6.58,
131
- Q: 0.622,
132
- V3: 35.6,
133
- EC50: 5.41,
134
- Kin: 0.272,
135
- Kout: 0.276,
136
- };
137
-
138
- const CYCLIC_MODEL_OUTPUTS = 5;
139
-
140
- const MULTISTAGE_MODEL = `#name: GA-production
141
- #tags: model
142
- #description: Gluconic acid (GA) production by Aspergillus niger modeling
143
- #equations:
144
- dX/dt = rX
145
- dS/dt = -gamma * rX - lambda * X
146
- dO/dt = Kla * (Cod - O) - delta * rX - phi * X
147
- dP/dt = alpha * rX + beta * X
148
-
149
- #expressions:
150
- mu = muM * S / (Ks + S) * O / (Ko + O)
151
- rX = mu * X
152
-
153
- #argument: t, 1-st stage
154
- _t0 = 0 {units: h; caption: initial; category: Misc} [Start of the process]
155
- _t1 = 60 {units: h; caption: 1-st stage; category: Durations; min: 20; max: 80} [Duration of the 1-st stage]
156
- step = 0.1 {units: h; caption: step; category: Misc; min: 0.01; max: 1} [Time step of simulation]
157
-
158
- #update: 2-nd stage
159
- duration = overall - _t1
160
- S += 70
161
-
162
- #inits:
163
- X = 5 {units: kg/m³; caption: biomass; category: Initial concentrations; min: 1; max: 10} [Aspergillus niger biomass]
164
- S = 150 {units: kg/m³; caption: glucose; category: Initial concentrations; min: 50; max: 200} [Glucose]
165
- O = 7 {units: kg/m³; caption: oxygen; category: Initial concentrations; min: 1; max: 10} [Dissolved oxygen]
166
- P = 0 {units: kg/m³; caption: acid; category: Initial concentrations; min: 0; max: 0.1} [Gluconic acid]
167
-
168
- #output:
169
- t {caption: time}
170
- X {caption: biomass}
171
- S {caption: glucose}
172
- O {caption: oxygen}
173
- P {caption: acid}
174
-
175
- #parameters:
176
- overall = 100 {units: h; category: Durations; min: 100; max: 140} [Overall duration]
177
- muM = 0.668 {units: 1/h; category: Parameters} [Monod type model parameter]
178
- alpha = 2.92 {category: Parameters} [Monod type model parameter]
179
- beta = 0.131 {units: 1/h; category: Parameters} [Monod type model parameter]
180
- gamma = 2.12 {category: Parameters} [Monod type model parameter]
181
- lambda = 0.232 {units: 1/h; category: Parameters} [Monod type model parameter]
182
- delta = 0.278 {category: Parameters} [Monod type model parameter]
183
- phi = 4.87e-3 {units: 1/h; category: Parameters} [Monod type model parameter]
184
- Ks = 1.309e2 {units: g/L; category: Parameters} [Monod type model parameter]
185
- Ko = 3.63e-4 {units: g/L; category: Parameters} [Monod type model parameter]
186
- Kla = 1.7e-2 {units: 1/s; category: Parameters} [Volumetric mass transfer coefficient]
187
- Cod = 15 {units: kg/m³; category: Parameters} [Liquid phase dissolved oxygen saturation concentration]
188
-
189
- #tolerance: 1e-9`;
190
-
191
- const MULTISTAGE_MODEL_INPUTS = {
192
- _t0: 0,
193
- _t1: 60,
194
- _h: 1,
195
- X: 5,
196
- S: 150,
197
- O: 7,
198
- P: 0,
199
- overall: 100,
200
- muM: 0.668,
201
- alpha: 2.92,
202
- beta: 0.131,
203
- gamma: 2.12,
204
- lambda: 0.232,
205
- delta: 0.278,
206
- phi: 4.87e-3,
207
- Ks: 1.309e2,
208
- Ko: 3.63e-4,
209
- Kla: 1.7e-2,
210
- Cod: 15,
211
- };
212
-
213
- const MULTISTAGE_MODEL_OUTPUTS = 5;
214
-
215
- type TestProblem = {
216
- model: string,
217
- inputs: Record<string, number>,
218
- outputsCount: number,
219
- };
220
-
221
- export const problems = new Map<string, TestProblem>([
222
- ['basic', {model: BASIC_MODEL, inputs: BASIC_MODEL_INPUTS, outputsCount: BASIC_MODEL_OUTPUTS}],
223
- ['cyclic', {model: CYCLIC_MODEL, inputs: CYCLIC_MODEL_INPUTS, outputsCount: CYCLIC_MODEL_OUTPUTS}],
224
- ['multistage', {model: MULTISTAGE_MODEL, inputs: MULTISTAGE_MODEL_INPUTS, outputsCount: MULTISTAGE_MODEL_OUTPUTS}],
225
- ]);
@@ -1,28 +0,0 @@
1
- import { getIVP, getIvp2WebWorker, getInputVector, getPipelineCreator, applyPipeline } from '../../index';
2
- /** Return numerical solution error: maximum absolute deviation between approximate & exact solutions */
3
- export function getError(method, corProb) {
4
- let error = 0;
5
- // Get numerical solution
6
- const approxSolution = method(corProb.odes);
7
- const exact = corProb.exact;
8
- const arg = approxSolution[0];
9
- const pointsCount = arg.length;
10
- const funcsCount = approxSolution.length - 1;
11
- // Compute error
12
- for (let i = 0; i < pointsCount; ++i) {
13
- const exactSolution = exact(arg[i]);
14
- for (let j = 0; j < funcsCount; ++j)
15
- error = Math.max(error, Math.abs(exactSolution[j] - approxSolution[j + 1][i]));
16
- }
17
- return error;
18
- } // getError
19
- /** Evaluate model */
20
- export function evalModel(model, inputs) {
21
- const ivp = getIVP(model);
22
- const ivpWW = getIvp2WebWorker(ivp);
23
- const inputVector = getInputVector(inputs, ivp);
24
- const creator = getPipelineCreator(ivp);
25
- const pipeline = creator.getPipeline(inputVector);
26
- return applyPipeline(pipeline, ivpWW, inputVector);
27
- } // evalModel
28
- //# sourceMappingURL=test-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EACrF,aAAa,EAAC,MAAM,aAAa,CAAC;AAEpC,wGAAwG;AACxG,MAAM,UAAU,QAAQ,CAAC,MAAsC,EAAE,OAAoB;IACnF,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,yBAAyB;IACzB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;IAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,gBAAgB;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,WAAW;AAEb,sBAAsB;AACtB,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,MAA8B;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC,CAAC,YAAY"}
@@ -1,37 +0,0 @@
1
- import {ODEs, CorrProblem, getIVP, getIvp2WebWorker, getInputVector, getPipelineCreator,
2
- applyPipeline} from '../../index';
3
-
4
- /** Return numerical solution error: maximum absolute deviation between approximate & exact solutions */
5
- export function getError(method: (odes: ODEs) => Float64Array[], corProb: CorrProblem): number {
6
- let error = 0;
7
-
8
- // Get numerical solution
9
- const approxSolution = method(corProb.odes);
10
-
11
- const exact = corProb.exact;
12
-
13
- const arg = approxSolution[0];
14
-
15
- const pointsCount = arg.length;
16
- const funcsCount = approxSolution.length - 1;
17
-
18
- // Compute error
19
- for (let i = 0; i < pointsCount; ++i) {
20
- const exactSolution = exact(arg[i]);
21
-
22
- for (let j = 0; j < funcsCount; ++j)
23
- error = Math.max(error, Math.abs(exactSolution[j] - approxSolution[j + 1][i]));
24
- }
25
-
26
- return error;
27
- } // getError
28
-
29
- /** Evaluate model */
30
- export function evalModel(model: string, inputs: Record<string, number>): Float64Array[] {
31
- const ivp = getIVP(model);
32
- const ivpWW = getIvp2WebWorker(ivp);
33
- const inputVector = getInputVector(inputs, ivp);
34
- const creator = getPipelineCreator(ivp);
35
- const pipeline = creator.getPipeline(inputVector);
36
- return applyPipeline(pipeline, ivpWW, inputVector);
37
- } // evalModel
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC"}
@@ -1,2 +0,0 @@
1
- export {IVP2WebWorker, getIvp2WebWorker} from './scripting';
2
- export {solveIvp} from './solving';
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripting.js","sourceRoot":"","sources":["scripting.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"solving.js","sourceRoot":"","sources":["solving.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAe,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAQ,WAAW,EAC7D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAgB,OAAO,EAAC,MAAM,aAAa,CAAC;AAEnD,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,oCAAoC;AACpC,SAAS,SAAS,CAAC,IAAwB;IACzC,QAAQ,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QAEjB,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QAEd,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QAEb,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QAEf;YACE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,SAAS,WAAW,CAAC,GAAkB,EAAE,MAAoB;IAC3D,MAAM,QAAQ,GAAG,aAAa,GAAG,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;IAEvE,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAChG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAkB,EAAE,MAAoB;IAC/D,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;IAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAS,CAAC;IAE5C,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,EAAE;QACR,GAAG,EAAE;YACH,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;SACvB;QACD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,mBAAmB,CAAC;QACxD,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC"}
@@ -1,83 +0,0 @@
1
- // Tools for solving IVPs in web-workers
2
-
3
- import {SolverMethod, mrt, ros3prw, ros34prw, ODEs, getCallback,
4
- rk4, ab5, ab4, rkdp, rk3, lsoda} from '../solver-tools';
5
- import {Func} from '../solver-tools/solver-defs';
6
- import {IVP2WebWorker, getFunc} from './scripting';
7
-
8
- const ARG_INIT = 0;
9
- const ARG_FINAL = 1;
10
- const ARG_STEP = 2;
11
- const ARG_INP_COUNT = 3;
12
-
13
- /** Return method for solving IVP */
14
- function getMethod(name: string | undefined): SolverMethod {
15
- switch (name) {
16
- case 'mrt':
17
- return mrt;
18
-
19
- case 'ros3prw':
20
- return ros3prw;
21
-
22
- case 'rk4':
23
- return rk4;
24
-
25
- case 'ab5':
26
- return ab5;
27
-
28
- case 'ab4':
29
- return ab4;
30
-
31
- case 'rkdp':
32
- return rkdp;
33
-
34
- case 'rk3':
35
- return rk3;
36
-
37
- case 'lsoda':
38
- return lsoda;
39
-
40
- default:
41
- return ros34prw;
42
- }
43
- }
44
-
45
- /** Check the correspondence of inputs to IVP */
46
- function checkInputs(ivp: IVP2WebWorker, inputs: Float64Array): void {
47
- const expected = ARG_INP_COUNT + ivp.deqsCount + ivp.paramNames.length;
48
-
49
- if (expected > inputs.length)
50
- throw new Error(`Incorrect inputs count, expected: ${expected}, current: ${inputs.length}`);
51
- }
52
-
53
- /** Return solution of IVP with a specified inputs
54
- * @param ivp - initial value problem to be solved
55
- * @param inputs - vector of input values
56
- * @returns solution of the given initial value problem
57
- */
58
- export function solveIvp(ivp: IVP2WebWorker, inputs: Float64Array): Float64Array[] {
59
- checkInputs(ivp, inputs);
60
- const nonParamInputsCount = inputs.length - ivp.paramNames.length;
61
-
62
- const funcCode = getFunc(ivp, inputs.slice(nonParamInputsCount));
63
- const func = new Function(funcCode) as Func;
64
-
65
- const odes: ODEs = {
66
- name: '',
67
- arg: {
68
- name: '',
69
- start: inputs[ARG_INIT],
70
- finish: inputs[ARG_FINAL],
71
- step: inputs[ARG_STEP],
72
- },
73
- initial: inputs.slice(ARG_STEP + 1, nonParamInputsCount),
74
- func: func,
75
- tolerance: ivp.tolerance,
76
- solutionColNames: [],
77
- };
78
-
79
- const method = getMethod(ivp.solverOpts.method);
80
- const callback = getCallback(ivp.solverOpts);
81
-
82
- return method(odes, callback);
83
- }