#!/usr/bin/env python3 # # Weitian LI # Created: 2016-06-24 # Updated: 2016-06-24 # # Change logs: # 2016-06-24: # * Update method 'gen_radius()' # """ Calculate the (gas and gravitational) mass profile and gravitational potential profile from the electron number density profile. The temperature profile is required. References: [1] Ettori et al, 2013, Space Science Review, 177, 119-154 Sample configuration file: ------------------------------------------------------------ ## Configuration for `calc_mass_potential.py` ## Date: 2016-06-24 # redshift used for pixel to distance conversion redshift = # electron density profile ne_profile = ne_profile.txt # cooling function profile cf_profile = coolfunc_profile.txt # unit of the CF profile radius (default: pixel) cf_unit = "pixel" # temperature profile t_profile = t_profile.txt # unit of the T profile radius (default: pixel) t_unit = "pixel" # number of data points for the output profile calculation num_dp = 100 # output gas mass profile m_gas_profile = mass_gas_profile.txt ------------------------------------------------------------ """ import argparse import numpy as np import astropy.units as au import scipy.interpolate as interpolate import scipy.integrate as integrate from configobj import ConfigObj from astro_params import AstroParams, ChandraPixel from projection import Projection class DensityProfile: """ Utilize the 3D (electron number or gas mass) density profile to calculate the following quantities: * 2D projected surface brightness (requires cooling function profile) * gas mass profile (integrated, M_gas(