diff options
author | Keith Packard <keithp@keithp.com> | 2009-08-18 12:40:24 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-08-18 13:46:10 -0700 |
commit | 7c790fe859dff062692964338091ffbbcdf63257 (patch) | |
tree | 96414e8a30d71a591adc308bb8dd026b0e879218 /ao-utils | |
parent | a5782398d968e7cb11f7203afada7c216f233b3b (diff) |
Rename tools to ao-<foo>
Use a consistent prefix to make it easier to remember which programs
belong to this package
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-utils')
-rw-r--r-- | ao-utils/Makefile.am | 1 | ||||
-rwxr-xr-x | ao-utils/ao-ejection | 64 |
2 files changed, 65 insertions, 0 deletions
diff --git a/ao-utils/Makefile.am b/ao-utils/Makefile.am new file mode 100644 index 00000000..705ff4d5 --- /dev/null +++ b/ao-utils/Makefile.am @@ -0,0 +1 @@ +dist_bin_SCRIPTS = ao-ejection diff --git a/ao-utils/ao-ejection b/ao-utils/ao-ejection new file mode 100755 index 00000000..81eb83d0 --- /dev/null +++ b/ao-utils/ao-ejection @@ -0,0 +1,64 @@ +#!/usr/bin/env nickle + +void main () { + real R = 22.16 * 12; /* in lbf / lbm (gas constant for ffff powder */ + real T = 3307; /* combustion temperature for BP */ + real d_mm; /* diameter(mm) */ + real l_mm; /* length(mm) */ + real f_N; /* force(N) */ + real f_lb; + real A_mm²; /* area of bulkhead (mm²) */ + real A_in²; + real V_mm³; /* free volume (mm³) */ + real V_in³; + real M_lb; /* mass of BP in lb */ + real M_g; + real P_Nmm²; /* pressure (N/mm²) */ + real P_lbin²; /* pressure (psi) */ + + if (dim(argv) != 4) { + File::fprintf(stderr, + "usage: %s diameter(mm) length(mm) force(N)\n", + argv[0]); + exit(1); + } + + d_mm = string_to_real(argv[1]); + l_mm = string_to_real(argv[2]); + f_N = string_to_real(argv[3]); + f_lb = f_N * 0.22480894; + + A_mm² = pi * (d_mm/2) ** 2; + V_mm³ = A_mm² * l_mm; + + A_in² = A_mm² / (25.4**2); + V_in³ = V_mm³ / (25.4**3); + + P_Nmm² = f_N / A_mm²; + + P_lbin² = P_Nmm² * 0.22480894 * (25.4 ** 2); + + M_lb = (P_lbin² * V_in³) / (R * T); + M_g = M_lb * 453.59237; + + printf ("Input parameters:\n"); + printf (" Diameter: %.1g (mm) %.3g (in)\n", + d_mm, d_mm / 25.4); + printf (" Length: %.1g (mm) %.3g (in)\n", + l_mm, l_mm / 25.4); + printf (" Force: %.1g (N) %.3g (lb)\n", + f_N, f_lb); + + printf ("Chamber values:\n"); + printf (" Area: %.0f (mm²) %.3g (in²)\n", + A_mm², A_in²); + printf (" Volume: %.0f (mm³) %.3g (in³)\n", + V_mm³, V_in³); + printf (" Pressure: %.2g (lb/in²) %.5g (N/mm²)\n", + P_lbin², P_Nmm²); + + printf ("Results:\n"); + printf (" FFFF powder: %.3g (g)\n", M_g); +} + +main(); |