Package: kosmatau3d
kosmatau3dThis is the current working version ofkosmatau3d.
It uses a series of sub-modules to perform most of the calculations.
The reason for doing this is to reduce the memory footprint of the code to
increase the overall efficiency.
This also increases the maximum number of voxels that can be evaluated, since
each voxel no longer owns as much memory.InstallationusingpipDirectly install from git using,pip install git+https://github.com/CraigYanitski/kosmatau3d.gitmanuallyDownload the repository.gitclonehttps://github.com/CraigYanitski/kosmatau3dcdkosmatau3dNow that you are in the root directory of this repository, install this package in bash with,pipinstall.Creating a voxelAVoxelinstance can be initialised using,>>>fromkosmatau3dimportmodels>>>vox=models.Voxel()There are many parameters that must be specified in order to initialise and
simulate the clumpy ensemble.
For a detailed explanation of the properties that can be defined/accessed with
a voxel instance, see thejupyternotebook in./notebooks/voxel.ipynb.
If you wish to use the pre-defined properties, you can simply run,>>>vox.set_properties()>>>vox.calculate_emission()One can then easily plot different views of the voxel emission using
built-in plotting methods.>>>vox.plot_spectrum()Documentation (in prep.)At the moment there is no CI/CD to automatically compile the documentation files.
In order to properly view the current documentation, from the root directory run,cddoc
makehtmlcdbuild/html
browseindex.htmlYou should now see the homepage of the documentation in its current form.
This will periodically be improved over time.FunctionalitySingle-voxel modelsThis is the basic component ofkosmatau3d.
It is made available as a self-sufficient object for use in other subgridding models.
Given a volume-filling factor, mass, and FUV field, the single voxel object
calculates the wavelength-dependant intensity, optical depth, absorption, and
emissivity (assuming no background intensity) for a clumpy PDR ensemble.
The explanation of this model is thoroughly-explained in./notebooks/voxel.ipynb.The objects that will modelled with this method are:IC 1396(Okada et al. in prep) first application of directly comparing single
voxels with an observational map3D modelsThe full subgrid model to simulate entire 3-dimensional structures.
Voxel data can be streamed into fits files and the radiative transfer portion
is a self-contained module to save on computational time.It is currently setup for the Milky Way model initially developed by Christoph
Bruckmann as that will be its first application.
This galactic model can also be used in a more generalised application for
distant galaxies.The objects that will modelled with this method are:Milky Way(Yanitski et al. in prep) an approximate description compared to
COBE-DIRBE, Planck, COBE-FIRAS, GOT C+, CfA, Mopra, ThrUMMS, and SEDIGISM dataCode CorrectionsThe major changes to the functionality of thekosmatau3dmodel over the KOSMA-tau-3D
model of Silke et al. (2017) are described in the document./docs/treatise.pdf,
and the major changes to the Milky Way model will also
appear in the upcoming Yanitski et al. (2023) paper.
There will be other documents to state the other various corrections and
developments made.Developmental Progressbase development3D modelCorrect voxel-averaged intensity calculationEnsure 3D model saves relevant dataimplement multiprocessingModify single-voxel instance to calculate a column when $f_V > 1$allow for arbitrary $f_V$ $(<1)$Radiative transferEnsure correct calculation of sythetic datacubeimplement multiprocessingoptimiseImplement opacity map in radiative transfer calculationImplement FUV absorption calculation in full 3D modelModify theradiativeTransfermodule to work for arbitrary geometryMiscellaneousInclude submodule to explore KOSMA-$\tau$ andkosmatau3dpropertiesInclude submodule to compare observational data with synthetic datacubesfix regridding of observational error mapsImplement function to mimic two-layer model (akatwo-voxelmodel)Implement function to create voxel grid (functions by Yoko Okada)have function fit observational dataInclude submodule covering the Mathematica routines developed by Markus RölligDevelop the code testing suiteFully document the code usingsphinxImplement CI/CDfuture developmentAllow pickling of interpolation functions for faster debugging of the single-voxel modelUtilisecythonto improve code efficiencyImplementnumbamore fully to optimise the computation timeuse this to parallelise the codeCreate a GUI to make it easier to setup/alter the modelImplement recursion in radiative transfer calculation