code wiki / (root) / nx_kinetics.nx

nx_kinetics.nx

buildroot/runtime/nx_kinetics.nx

4626 B80 linesdepth 0pulls 0 transitivereach 1 importersview sourcekind librarytopic kinetics
docsdependenciesstructsconstsfunctions

about

nx_kinetics.nx -- Simulates chemical reaction kinetics with three modes: first-order decay, reversible reactions, and zero-order control.

dependencies 0 imports · 1 importers

nx_kinetics.nx nx_kinetics_gate.nx

imports: none

imported by: nx_kinetics_gate.nx

structs

none

consts

2const O_MAGIC_4096: i64 = 4096
9const W: i64 = 256
10const H: i64 = 256
11const O_FB: i64 = 0
12const O_A: i64 = 524288 // [A] concentration (scaled, A0=1e6)
13const O_B: i64 = 524296 // [B]
14const O_MODE: i64 = 524304 // 0=first-order decay, 1=reversible, 2=zero-order (control)
15const O_KNUM: i64 = 524312 // forward rate numerator
16const O_KDEN: i64 = 524320 // rate denominator
17const O_KRNUM: i64 = 524328 // reverse rate numerator (reversible)
18const O_STEP: i64 = 524336
19const O_HIST: i64 = 524344 // [A] history (one sample per tick)
20const HISTN: i64 = 236
21const A0: i64 = 1000000
22const ZCONST: i64 = 700 // zero-order constant decrement
23const STEPS_PER_TICK: i64 = 20

functions

25func rgb(r: i64, g: i64, b: i64) -> i64 { return (r & 255) | ((g & 255) << 8) | ((b & 255) << 16) }
called by 1: render_impl
26func putpx(base: i64, px: i64, py: i64, c: i64) -> i64
called by 2: vbarrender_impl
30func clear_fb(base: i64, c: i64) -> i64 { let fb: *i64=(base+O_FB) as *i64; var i: i64=0; while i<W*H { fb[i]=c; i=i+1 } return 0 }
called by 1: render_impl
31func vbar(base: i64, x0: i64, x1: i64, h: i64, c: i64) -> i64
called by 1: render_impl calls 1: putpx
35func init_impl(base: i64) -> i64
called by 3: tick_implinitmain
43func step_one_impl(base: i64) -> i64
51func tick_impl(base: i64, cmd: i64) -> i64
called by 2: tickmain calls 2: init_implstep_one_impl
60func render_impl(base: i64) -> i64
called by 2: rendermain calls 4: clear_fbrgbputpxvbar
74func ww() -> i64 { return W }
called by 1: main
75func hh() -> i64 { return H }
called by 1: main
76func fb_off() -> i64 { return O_FB }
called by 1: main
77func init() -> i64 { return init_impl(0) }
calls 1: init_impl
78func tick(cmd: i64) -> i64 { return tick_impl(0, cmd) }
calls 1: tick_impl
79func render() -> i64 { return render_impl(0) }
calls 1: render_impl
80func mem_bytes() -> i64 { return O_HIST + HISTN*8 + O_MAGIC_4096 }