I was researching the formation of brown dwarfs, and I stumbled into the paper "The minimum mass for star formation, and the origin of binary brown dwarfs", and I am attempting to code a function in Python for equation (42), where c is the speed of light, h is the Planck constant, a is the isothermal sound speed, K(T) is the mean opacity (given by equation 3 in the paper), G is the gravitational constant, and m is the mean molecular weight.
My functions are:
def opacity(temp):
return (1e-4)*((temp)**2) #divide by a factor of 10^-3 and multiply by 10^-4 because of conversion to km
def minmass(molweight, temperature, soundspeed):
cons = 60/(np.pi**7) #constant
numer = (scipy.constants.c**2)*(scipy.constants.h**3)*((soundspeed*1000)**5)*opacity(temperature) #numerator
denom = (scipy.constants.G**5)*((molweight*0.001)**4) #denominator
total = cons*(numer/denom) #putting it all together
final = (total**(1/3))/(1.989e30) #division by constant converts kg to solar mass
return final
print(minmass(4.0e-24, 10, 1.8e4))
As you'll notice, I've attempted to run my function with the test case of contemporary star formation described in the paper (T ≃ 10 K, ¯m ≃ 4.0×10^−24 g, a ≃ 1.8×10^4 km s^−1, κ1 ≃ 10^−3 cm^2 g^−1 and β ≃ 2.) I have also multiplied the inputs in the function so that all lengths are in terms of meters and so that all masses are in kilograms. However, even after extensively combing over the function, I keep achieving an answer that is thousands of magnitudes greater than the expected output, 0.001 M.
I would appreciate it a lot if anyone were to were to assist me on this issue and possibly guide me to a solution.