In [ ]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['figure.dpi'] = 150

In [ ]:
sim_Tcore		= 3.48E7
sim_Tout		= 7.42E7
sim_rhoCore		= 9.6E-26		# g/cm3 = N particles/cm3 * 1.67E-24 = 1.91 * N electrons/cm3 * 1.67E-24
sim_mu			= 0.61			# mean molecular weight
sim_windVel     = 0.0
sim_gammaICM	= 1.66666
sim_bzAmbient	= 0.0 #1.8623E-6
sim_densityProfile = "betacore"
sim_densityBeta = 0.53			# for the beta-model density profile
sim_rCore		= 8.1E22		# 1.26 arcmin *20.81 kpc/arcmin
sim_rCoreT		= 1.85E23		# 60kpc

kpc = 3.086e+21
kB = 1.38E-16
R = 8.3144725E7
mH = 1.6737352238051868e-24 #g

distance = np.linspace(0.1*kpc, 150*kpc, 150)
e = 1.602176562e-09

densityBG = sim_rhoCore*(1.0 + (distance/sim_rCore)**2)**(-1.5*sim_densityBeta)
tempBG = sim_Tout*(1.0+(distance/sim_rCoreT)**3)/(sim_Tout/sim_Tcore+(distance/sim_rCoreT)**3)
pressureBG = densityBG*tempBG*R/sim_mu
entropyBG = pressureBG*((densityBG/mH*sim_mu)**(-sim_gammaICM))/e

In [ ]:
keV = 1.1604525E7
rho = 1E-26
T = 1
P = 1E-10
entropy = 1000

plt.plot(distance/kpc, densityBG/rho, label='density / $(10^{-26} g/cm^3)$')
plt.plot(distance/kpc, tempBG/keV/T, ls='--', label='temperature / $keV$')
plt.plot(distance/kpc, pressureBG/P, ls=':', label='pressure / $(10^{-10} dyn / cm^2)$')
plt.plot(distance/kpc, entropyBG/entropy*10, ls=':', label='entropy / 1000 $keV*cm^2$')
plt.grid(ls=':')
plt.xlabel('radius (kpc)')
plt.xlim(0,150)
plt.legend(loc=5)
plt.title("ICM Profile")
plt.semilogy()
plt.savefig("ICM_profile.pdf")

In [ ]:
density_derivative = (densityBG[1:]-densityBG[:-1])/(distance[1:]-distance[:-1])
pressure_derivative = (pressureBG[1:]-pressureBG[:-1])/(distance[1:]-distance[:-1])

yr_in_sec = 31557600

plt.plot(distance[1:]/kpc, 1/np.sqrt(pressure_derivative*density_derivative/densityBG[1:]**2)/yr_in_sec/1E6)
#plt.axvline(10)
plt.ylabel('Brunt Vaisala period (Myr)')
plt.xlabel('radius (kpc)')
plt.semilogy()

In [ ]:
plt.plot(distance/kpc, tempBG)
plt.ylabel('Temperature (K)')
plt.xlabel('radius (kpc)')
ax1 = plt.gca()
ma, mi = ax1.get_ylim()
ax2 = plt.twinx()
keV = 1.1604525E7
ax2.set_ylim(ma/keV, mi/keV)
ax2.set_ylabel('(keV)')

In [ ]:
plt.plot(distance/kpc, pressureBG)
plt.ylabel('pressure ($dyn/cm^2$)')
plt.xlabel('radius (kpc)')
plt.semilogy()

In [ ]:
Myr = 3.155760e+13

sim_velJet = 3.0E9
rhoJet = 5E-27

eta = rhoJet*0.5/densityBG
velHead = np.sqrt(eta)/(1+np.sqrt(eta))*sim_velJet
plt.plot(distance/kpc, velHead/kpc*Myr, ls=':', label=r'$\frac{1}{2}\rho_j$')

eta = rhoJet/densityBG
velHead = np.sqrt(eta)/(1+np.sqrt(eta))*sim_velJet
plt.plot(distance/kpc, velHead/kpc*Myr, label=r'$\rho_j$')

eta = rhoJet*2/densityBG
velHead = np.sqrt(eta)/(1+np.sqrt(eta))*sim_velJet
plt.plot(distance/kpc, velHead/kpc*Myr, ls='--', label=r'$2\rho_j$')

plt.xlim(0, 50)
plt.xlabel('distance (kpc)')
plt.ylim(0, 15)
plt.ylabel('Jet head velocity (kpc/Myr)')
plt.legend(loc=4)

In [ ]:
distance = 10*kpc

densityBG = sim_rhoCore*(1.0 + (distance/sim_rCore)**2)**(-1.5*sim_densityBeta)
tempBG = sim_Tout*(1.0+(distance/sim_rCoreT)**3)/(sim_Tout/sim_Tcore+(distance/sim_rCoreT)**3)
pressureBG = densityBG*tempBG*R

print(densityBG, pressureBG)