Recent Releases of molsim

molsim - Release v0.5.0

This release marks the publication of El-Abd et al. 2024, “An Automated Chemical Exploration of NGC 6334I at 340 au Resolution”.

The update to the codebase, apart from fixing a pre-existing bug triggered in Python 3.12 and support for observations with inbuilt noise implemented by @cixue , is a new automated fitting module developed by @sjelabd .

Simultaneous Autonomous Molecular Emission Resolver (SAMER)

The samer module fits molecular spectra and determines the best-fit physical parameters for a given list of molecules on a per-pixel basis within a specified field of view of an ALMA data cube. @sjelabd tested it on spectra from several star-forming regions with dense collections of emission lines. extract_spectra.py provides a template for generating input spectra in the required format and SAMER_template.ipynb provides a template for generating fits on the input spectra. A complete description of customizable variables is available in SAMER_Classes.py. Outputs include maps of physical quantities.

- Python
Published by github-actions[bot] over 1 year ago

molsim - Release v0.4.0

This release marks the submission of Xue et al. 2023, "Maser Activity of Large Molecules toward Sgr B2(N)".

The main modifications to the codebase include new implementations of non-thermal radiative transfer modeling and the corrections of the log likelihood function expression in the MCMC fitting.

Non-thermal Radiative Transfer Modeling

The RADEX non-LTE radiative transfer algorithm is implemented in Python by @cixue, with utilizing Numba to optimize for the high performance required for MCMC analysis. This modified non-LTE algorithm supports a continuum temperature being different from the local radiation field temperature, in contrast to RADEX where both temperatures are treated the same and denoted as background temperature. Our expressions reduce back to that of RADEX in the case of a single component when the continuum temperature is equal to the local radiation temperature. Notably, our calculations using this modified non-LTE algorithm reproduce the results returned by RADEX down to machine precision when the results are converged. However, at high molecular column densities, we observed deviations between our results and those from the RADEX algorithm due to RADEX's convergence issues.

This implementation also allows multiple components along the line of sight. The level population of each component is computed independently using the modified non-LTE algorithm within the NonLTESource class. The frequency-dependent optical depth and source function of the i-th component are reconstructed by summing over all lines separately within the NonLTESimulation class.

MCMC Changes

@cixue corrected the log likelihood function, ln(likelihood) = sum( log(normal distribution) ), i.e. $$lnlike = \sum{j=1}^{n}\left[ -\ln(\sigmaj \sqrt{2\pi}) - \frac{1}{2}\frac{(xj - \muj)^2}{\sigma_j^2} \right],$$ and implemented it in an optimized form of lnlike = - np.log(np.sqrt(2 * np.pi)) * simulation.size - np.sum( np.log(np.fabs(obs.noise)) ) - 0.5 * np.sum( ((obs.Tb - simulation) / obs.noise)**2.0 )

In addition, as part of the non-thermal modeling analysis, @cixue implemented a MultiComponentMaserModel and ChainedMultiComponentMaserModel mcmc models. In both models, spectra are generated using the non-thermal algorithm and compared against observations similar to that in the single-excitation-temperature models. The difference between MultiComponentMaserModel and ChainedMultiComponentMaserModel is that, in the former, the lines of sight towards the multiple sources do not overlap and the contribution are added up independently, while in the latter, all sources overlaps spatially and results in non-linear intensity changes.

- Python
Published by github-actions[bot] over 2 years ago

molsim - Release refs/pull/68/merge

- Python
Published by github-actions[bot] over 4 years ago

molsim - v0.3.0 release

This release marks the submission of Siebert et al. 2021, "CH3-Terminated Carbon Chains in the GOTHAM Survey of TMC-1: Discovery of Interstellar CH3C7N".

The main modifications to the codebase, apart from functional/QoL changes developed by Samer and @bmcguir2, are new developments in the MCMC and velocity stacking routines.

MCMC changes

There are now abstract and concrete implementations of mixtures of molecules: one is now able to share parameters (i.e. for cospatial models) and simultaneously sample for multiple molecules at the same time with the CompositeModel class, and specifically for the methyl chains in TMC-1, the TMC1MethylChains class that inherits from CompositeModel. These changes were implemented by @laserkelvin.

Velocity stack changes

As part of the analysis, @laserkelvin implemented a stack.py module, which contains a new modular and object-oriented interface to velocity stacking. For most use cases, the high level velocity_stack_pipeline will do the trick, and for analysis and control/flexibility, users will have access to the VelocityStack class, with convenience functions for plotting and signal processing. The main behavioral change from the old velocity stack code is more intelligent masking of overlapping windows, to prevent over counting of signal that became apparent when dealing with highly prolate tops like the methyl chains.

- Python
Published by github-actions[bot] over 4 years ago

molsim - Updated contributor list

Functionally, this release does not change anything apart from the list of contributors to make sure Ryan Loomis is properly credited.

- Python
Published by laserkelvin about 5 years ago

molsim - Version 0.1.2

This release should be tracked by Zenodo, and provides a citable DOI.

- Python
Published by laserkelvin over 5 years ago

molsim - Version 0.1.1a with setup patch

Patches setup.py to include new requirements, and increments the version number.

- Python
Published by laserkelvin over 5 years ago

molsim - Version 0.1.1 for DR2 science

This marks the first public release of molsim, which has been verified to be science ready and used for analysis of GOTHAM data.

- Python
Published by laserkelvin over 5 years ago