aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/extragalactic/clusters
Commit message (Collapse)AuthorAgeFilesLines
* clusters/halo.py: Add methods "calc_power()" and "calc_flux()"Aaron LI2017-07-291-0/+50
| | | | | | | Calculate the synchrotron power (a.k.a. specific luminosity) and flux density from the emissivity for the halo. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: Add method "calc_emissivity()"Aaron LI2017-07-291-6/+37
| | | | | | | This method invokes ``SynchrotronEmission`` to calculate the synchrotron emissivity at specified frequencies for the derived electron spectrum. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: Add property "volume" (unit: [cm^3])Aaron LI2017-07-291-0/+9
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: support calc emissivity at multiple frequenciesAaron LI2017-07-291-17/+27
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Add property "B_gauss"Aaron LI2017-07-291-7/+11
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Cache kernel function interpolation resultsAaron LI2017-07-271-22/+22
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Fix units/dimensions problemAaron LI2017-07-261-1/+2
| | | | | | | | | | | NOTE: Since we just substitute ``p`` (electron momentum) for ``γ`` (electron Lorentz factor), i.e., N = int_p n(p) dp = int_γ n(γ) dγ , therefore the coefficient ``sqrt(3) e^3 B / (m c^2)`` does NOT need modification (e.g., multiply an extra ``m c``)! Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: explain more on Larmor frequencyAaron LI2017-07-261-4/+12
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Fix the calling to F(x)Aaron LI2017-07-261-9/+6
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Rewrite emissivity calculationAaron LI2017-07-261-15/+24
| | | | | | | | | | Use 2D grid of (discrete) samples to optimize integration speed, avoiding the more complicated integration w.r.t. functions. WARNING: Current calculation results seems wrong! Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Update argumentsAaron LI2017-07-261-28/+28
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/emission.py: Rewrite Synchrotron kernel function calculationAaron LI2017-07-261-3/+41
| | | | | | | Use interpolation to optimize the speed as well as to vectorize the function to ease calling. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: Add property "magnetic_field"Aaron LI2017-07-261-0/+11
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/solver.py: Use multiple data points to fit the power-lawAaron LI2017-07-251-17/+19
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo: Change config "eta_turb" to "beta_turb"Aaron LI2017-07-251-3/+3
| | | | | | | | | | This configuration option "beta_turb" has different meaning as "eta_turb" in [Cassano & Brunetti 2005], though they can both be an indicator for the turbulence acceleration efficiency. Rename this configuration option to make the difference more clear. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/helper.py: Fix and replace R_halo vs. R_vir relationAaron LI2017-07-231-11/+12
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/helper.py: Fix a bug in "mass_to_kT()"Aaron LI2017-07-231-2/+2
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/helper.py: Add "density_energy_electron()" functionAaron LI2017-07-231-2/+27
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: Commit missing changes on CONFIGS and COSMOAaron LI2017-07-231-3/+3
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters: Accept 1D numpy array and calculate values for all gamma'sAaron LI2017-07-232-21/+27
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: Constrain tau_acc to avoid zero diffusionAaron LI2017-07-232-2/+22
| | | | | | | | | | Zero or negative diffusion coefficient leads to unstable or wrong results due to numerical algorithm/scheme adopted to solve the Fokker-Planck equation. Also add a NOTE to the FokkerPlanckSolver class. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/helper.py: Disable scattering on scaling relationsAaron LI2017-07-231-4/+8
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* Use all uppercase to identify the global CONFIGS and COSMOAaron LI2017-07-225-36/+32
| | | | | | Update to use the global CONFIGS and COSMO Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters: Import global "configs" to simplify parametersAaron LI2017-07-222-72/+57
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: Implement "_injection_rate" propertyAaron LI2017-07-221-6/+56
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters: Move "magnetic_field()" function to helper.pyAaron LI2017-07-222-24/+40
| | | | | | Import the global "configs" in helper.py to make parameters lean. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters: Rename "last major merger" to "recent major merger"Aaron LI2017-07-222-26/+25
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: update parameters and methodsAaron LI2017-07-221-46/+119
| | | | | | Still WIP... Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: More cleanups with minor updatesAaron LI2017-07-221-70/+97
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/halo.py: Significant cleanupsAaron LI2017-07-221-551/+2
| | | | | | | Several methods/functions have been migrated into "helper.py", while other methods/functions are obsolete. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/solver.py: Improve documents and clean upAaron LI2017-07-221-14/+49
| | | | | | | | TODO: adaptively determine the proper time step instead of using a constant one. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters: Use "GalaxyClusters" from main.pyAaron LI2017-07-221-2/+2
| | | | | | The "clusters.py" is deprecated and will be deleted later. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/helper.py: Add "velocity_impact()" and "time_crossing()"Aaron LI2017-07-221-3/+71
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: Add property "halo_configs"Aaron LI2017-07-221-1/+31
| | | | | | And update the config specification accordingly with some cleanups. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: Add "_magnetic_field()" methodAaron LI2017-07-211-0/+33
| | | | | | Also update the configurations Signed-off-by: Aaron LI <aly@aaronly.me>
* Add clusters/helper.pyAaron LI2017-07-211-0/+158
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* Use the global "cosmo" instance for simplificationAaron LI2017-07-214-53/+34
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: Add basic "preprocess()" methodAaron LI2017-07-201-1/+23
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: Implement "_simulate_merger()"Aaron LI2017-07-201-6/+76
| | | | | | | | | | Simulate the formation history of each cluster and identify the last/recent major merger event. Also add new configuration option "tau_merger" and tweak several configurations options. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/formation.py: show verbose info only in DEBUGAaron LI2017-07-201-6/+9
| | | | | | | | Since the ``ClusterFormation`` is repeatedly invoked in ``GalaxyClusters``, so make the verbose information printed only at DEBUG level. Signed-off-by: Aaron LI <aly@aaronly.me>
* mergertree/show_mergertree(): Improve print formatAaron LI2017-07-201-3/+3
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/formation.py: Fix bug in "last_major_merger" propertyAaron LI2017-07-201-7/+11
| | | | | | Also calculate and add the mass ratio to the event dictionary. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/formation.py: Fix bug in "_trace_main()"Aaron LI2017-07-201-4/+8
| | | | | | | | | Do not modify the root node of the merger tree, and return this root node after tracing the formation history. Also print some more information for debug. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/mergertree.py: Add function "show_mtree()"Aaron LI2017-07-191-0/+32
| | | | | | | This function traces the main cluster and print its formation history to the screen, for easier illustration and examination. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: Add and save catalog comments for columnsAaron LI2017-07-191-6/+18
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/main.py: GalaxyClusters implements some basic methodsAaron LI2017-07-191-8/+130
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* Use [arcsec] as the unit for pixel size and resolutionAaron LI2017-07-191-2/+2
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/formation.py: Add "last_major_merger" propertyAaron LI2017-07-191-1/+42
| | | | | | | A new parameter "ratio_major" added to distinguish between major and minor merger events. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/formation.py: Add method "_trace_main()"Aaron LI2017-07-191-10/+77
| | | | | | Also update "simulate_megertree()" default to trace only the main cluster. Signed-off-by: Aaron LI <aly@aaronly.me>
* clusters/formation.py: Simplify parameters handlingAaron LI2017-07-191-28/+24
| | | | Signed-off-by: Aaron LI <aly@aaronly.me>