Performance of ExpansionType Rocket Engines
Introduction
A rocket works by throwing matter out the back end. By Newton's third law, the backward momentum carried by the exhaust is balanced by a forward momentum applied to the rocket. Generally speaking, the faster the matter is thrown out the back (a metric characterized by the specific impulse), the stronger the rocket is accelerated forward. This is favorable because it needs you need less matter to impart the needed change in velocity (Δv).
Socalled 'chemical rockets' involve a vigorous chemical reaction. The reaction is exothermic, and the heat of the reaction products makes them want to expand. The only direction they can expand is out the back of the rocket. This is how a rocket 'throws' matter. It should be noted that chemical reactions, although by far the mostcommon kind of rocket, are not the only way to heat up propellant. Nuclear reactions, lasers, sunlight, etc. can all be used as sources of energy instead.
The unifying mechanism here is thermal expansion, and so in the strictest sense, rockets of this variety are 'thermal rockets'. However, the term 'thermal rocket' is almost always used to refer to nonchemical rockets. Therefore, for clarity, I'll instead use the terminology 'expansiontype'.
This calculator works out the performance of such a rocket engine. There are a few assumptions made, the main one being that the exhaust obeys various idealizations. Also, this calculator is not relativistically correct; inpractice, even 'high' specificimpulse expansiontype engines cannot achieve a highenough exhaust velocity for this to matter. Moreexotic engine types, like (pure) fusion rockets or antimatterannihilation rockets, do not use thermal expansion, and must be analyzed in different ways anyway.
Calculator
The following calculates the exhaust velocity and specific impulse for a thermalexpansion type rocket.
It is important to understand that the calculation is perspecies. A substance (e.g. the H_{2}O emitted by the RS25) is actually partially or fully dissociated into ions (e.g. H^{+}, OH^{}), and this dissociation is more pronounced at the higher temperatures at which familiar rockets operate. These simpler molecules are lighter, so many rockets actually have (much!) better performance than one would expect, just looking at the chemical formula of the exhaust.
For 'cold' rockets (chemical or lowend nuclear), the exhaust is probably partially dissociated. For a cold gas thruster spewing nitrogen (remember this is a diatomic element, and N_{2} is triplebonded), it's not dissociated very much. For something like the RS25, there is some equilibrium H_{2}O ↔ H^{+}+OH^{}.
For 'hotenough' rockets (e.g. gascore nuclear), we can assume the exhaust is fully dissociated into monatomic gases. Simply average the exhaust velocity from the individual components (e.g. for H_{2}O, monatomic H^{+} and O^{2}, weighting by the fact that about ≈94% of the mass is in the oxygen).
Parameters
Propellant's Average Density 



Propellant's Average Heat Capacity Ratio  (typical chemical fuels: \(1.2\), with additional common values here) 
Chamber Pressure  (typical: \(7\) to \(250\) atm) 

Chamber Temperature  (typical chemical: \(2800\) K to \(3900\) K) 
Exit Pressure  (as low as possible in vacuum, somewhat higher in atmosphere) 

Performance (Vacuum)
Exhaust Velocity  

Specific Impulse 
Examples
 (Aerojet Rocketdyne RS25, i.e., the space shuttle main engine)
 (nitrogen gas cold gas thruster)
 (hydrogen gas resistojet (like a cold gas thruster, but heated for better performance))
Equations
The primary equation here is:
\[ v_e = \sqrt{ \left( \frac{2 \kappa}{\kappa  1} \right) \left( \frac{R_u}{M} T_c \right) \left( 1  \left(\frac{p_e}{p_c}\right)^{(\kappa1)/\kappa} \right) } \]Where:
 \(v_e\) is the exhaust velocity.
 \(\kappa\) is the heat capacity ratio of the exhaust. You'll also see \(k\) (erroneously) or \(\gamma\), which is the symbol for an ideal gas.
 \(M\) is the molar mass of the exhaust.
 \(R_u\) is the universal gas constant. You'll also see \(\bar{R}\) and \(R\). Although \(R\) is mostcommonly used, it is also (along with \(R_{gas}\), \(R_{specific}\), and presumably \(R_s\)) used for the specific gas constant, so for clarity I avoid it here. Note that \(R_s=R_u/M=k_B/m\) (Boltzmann constant \(k_B\) and mass of molecule \(m\)), so the equation can easily use \(R_s\) instead.
 \(T_c\) is the (absolute) temperature of the chamber.
 \(p_e\) is the pressure at nozzle exit. Also relevant is \(p_a\), the ambient pressure (see below).
 \(p_c\) is the chamber pressure.
(I don't know how this equation is derived, but it's likely from a combination of chemistry and idealized expansion of the flow in a nozzle. If you know, please tell me!)
Notice that reducing \(M\) will make \(v_e\) bigger. This is why lightmolecularweight gases, like hydrogen, are preferred (although usually the engineering problems of working with the absolutelylightest gases make their use impractical). Remember that for chemical rockets, the molar mass is of the reaction product(s), not the reactants.
We also need to correct for the effect of any atmospheric pressure \(p_a\). The following equation calculates an equivalent exhaust velocity \(v_{eq}\), given the area of the nozzle \(A_e\) and mass flow rate (traditionally \(\dot{m}\)):
\[ v_{eq} = v_e + \frac{A_e}{\dot{m}} (p_e  p_a) \]Notice that if the exit pressure \(p_e\) is less than the ambient pressure \(p_a\), then \(v_{eq}\) is less than \(v_e\). This will correspond to a loss of performance. Of course, for the first formula, higher \(p_e\) also decreases \(v_e\), which in turn will again reduce \(v_{eq}\). The optimal \(p_e\) is somewhere where these effects balance. I've heard that \(p_e\) and \(p_a\) should be equal to do this, but I haven't checked that recommendation mathematically.
Finally, we have the straightforward definition of specific impulse (\(g_0\) being standard gravity):
\[ I_{sp} \equiv \frac{v_{eq}}{g_0} \]Heat Capacity
Intuitively, heat capacity is the incremental amount of energy it takes to increase a substance's incremental temperature. You can increase the temperature while holding volume constant or pressure constant, respectively resulting in heat capacities \(C_p\) and \(C_V\). The ideal heat capacity ratio is \(\gamma := C_p/C_V\). For a real gas, this quantity is called \(\kappa\) (often erroneously written \(k\)) instead.
A lower heat capacity ratio makes for a higher exhaust velocity (examine the equation for exhaust velocity; it's probably easiest just to plot it).
Perhaps contrary to one's expectations, the heat capacity ratio is inversely related to the number of degrees of freedom in the molecular species. Intuitively, this is possible because it is a ratio of two different sorts of heat capacities, not a heat capacity itself.
Anyway, we can derive this relationship mathematically. Start with the definition of enthalpy, \(H=U+pV\), the sum of a system's internal energy \(U\) and pressurevolume product \(pV\). Now substitute in the ideal gas law \(pV=n R_u T\) (where \(n\) is the amount in moles, \(R_u\) is the universal gas constant, subscripted for clarity, and \(T\) is the (absolute) temperature), resulting in \(H = U + n R_u T\). Differentiate with respect to \(T\), giving \(dH/dT = dU/dT + n R_u\). Finally, divide through by mass \(m\): using the definition of molar mass, the last term becomes just \(R_s\), the specific gas constant, and the other terms become lowercase, which apparently is how specific quantities are indicated:
\[ \frac{dh}{dT} = \frac{du}{dT} + R_s \]The heat capacities are defined by the differential terms, so we have:
\[ C_p = C_V + R_s \](Notice how this means \(C_p>C_V\), and so \(\gamma>1\).) If we divide them to get the heat capacity ratio, we can recover the inverse relationship:
\[ \gamma = \frac{C_p}{C_V} = \frac{C_V + R_s}{C_V} = 1 + \frac{R_S}{C_V} \](Somehow,) this can be expressed in terms of the number of degrees of freedom \(f\) of the molecular species, as \(\gamma=1+2/f\). So, we can see that \(C_V \propto f\) and thus more degrees of freedom are favorable (lower heatcapacity ratio, and a higher exhaust velocity). Any ideal monatomic gas (fully dissociated or noble gas) has only \(f=3\) degrees of freedom (translational motion), and so \(\gamma=5/3\approx 1.667\)—and indeed we see empirically that real monatomic gases have \(\kappa\) very close to this.
References and Resources
For additional reading, the best technical resource I found is this, which discusses these concepts and more, especially for chemical rockets.
Project Rho has a useful section on specific impulse along with good commentary about molar mass.
Some common heat capacity ratios.
Thanks to 'Zerraspace' and 'Rocketman1999' for contributing information, and others for comments and discussion.
TODO
Need to add equations/calculators for analyzing the performance of nonexpansiontype rockets.
Automatically compute the different species for various rocket chemistries and combine them to get an overall answer.