BAGS is a simulator script written by btrettel and is being maintained by yours truly.
Right now, the simulation is configred simply be editing the script with values:
gas = 'air'
F = 2.5 # flow coefficient (typically called C_v)
d = 13.4e-3 # barrel diameter, m
L = 0.3048 # barrel length, m
m = 1.3e-3 # mass of projectile, kg
dP = 5.e5 # gauge pressure, Pa
P_f = 14.e3 # minimum pressure to move projectile, Pa
t_o = 5.e-3 # valve opening time, s
V_c = 3.3e-5 # gas chamber volume, m^3
V_d = 8.2e-6 # dead volume, m^3
# configuration
P_ref = 101325.0 # reference/standard atmospheric pressure in Pa
R_bar = 8314.472 # universal gas constant in J/kmol*K
g = 9.80665 # gravitational acceleration in m/s^2
T_ref = 293.15 # reference temperature in K
dt = 1.e-6 # time interval in seconds
# atmospheric conditions (pressure and temperature) available from
# http://weather.gov in the USA and a barometer there and elsewhere; see
# http://en.wikipedia.org/wiki/Inch_of_mercury to convert barometer measurements
# use T_atm = T_ref for the reference temperature (293.15 K / 20.15 C / 68 F)
# use P_atm = P_ref for the standard atmospheric pressure
# use T_c = T_atm and T_b = T_atm unless gas in gun is hot or cold
T_atm = 293.0 # atmospheric temperature in K
T_c = T_atm # initial gas chamber temperature, K
T_b = T_atm # initial barrel gas temperature, K
P_atm = P_ref # atmospheric temperature in Pa
After doing this, running the script gives the following output:
mon@expedit ~/bags $ python3 bags.py
V_m = 102.0 m/s (muzzle velocity)
eta = 34.2% (energy efficiency)
t_m = 6.6 ms (dwell time)
T_b = -41.8 C (final barrel gas temperature)
a = 304.9 m/s (speed of sound)
Ma = 0.335 (Mach number)
That's it for now. Thanks to Ben for the cool work. We discussed some ideas of how to expand the script in the future, which I plan to implement.