karllark / dirty_dustrt Goto Github PK
View Code? Open in Web Editor NEWDIRTY: 3D dust radiative transfer for dusty astrophysical sources
Home Page: https://dirty-dustrt.readthedocs.io
DIRTY: 3D dust radiative transfer for dusty astrophysical sources
Home Page: https://dirty-dustrt.readthedocs.io
Possible using the Git Large File Storage (lfs) and then they would be part of this repository.
README
LICENSE
The calculation of the photon path is repeated in the forced first scattering code. Once to determine the maximum optical depth along the line-of-sight and a 2nd time to move the photon to the picked scattering site. Code was written by Ka-Hei to do this, but it only worked for a single grid (no hierarchical grids). Need to re-integrate or develop code to do this. A similar issue exists for the next_scatter/scatter_photon functions. Also may want to cache this calculation for the stellar classification in the case of discrete sources.
Definitely need a going over and updating
If there are any that have not already been included.
The code can accumulation output images/SEDs for different viewing angles or for the different sources of the dust emission (equilibrium, non-equilibrium, different types of grains [i.e., graphites or silicates]). Doing both multiple viewing angles and different sources of dust emission is not possible. This needs to be fixed.
Need to document and setup properly. Should be one per type of source/dust geometry.
Could provide good continuous integration test cases.
Requesting an option to suppress any unneeded output files using a keyword in the parameter file.
This would be useful for preserving storage space when executing large numbers of runs.
Probably should integrate the two codes to reduce the overall code maintenance.
It would be more efficient to have biased emission in the case of a source external to the dust grid. This is clear in the case for the Slab benchmark where many of the photons emitted isotropically from the star do not intersect with the slab. It would be better to be able to specify a emission direction and solid angle (via circular spot with angular radius). We may still have some photons that do not intersect the dust grid, but it would be many fewer.
Change the output to be in TRUST units - Jy for total SED and MJy/sr for images.
Currently the same random number generator seed is used each time DIRTY is run. It would be helpful if there was an option to request that a different seed be used, perhaps by adding a line to the parameter file.
This would be useful in the case when the results from multiple DIRTY runs are additive (for example, adding more photons to a star to increase S/N).
Run on WG00 wave grid
Run on law15 grid with empirical dust param.
Karl M. has mentioned that there are some bugs in the dust heating code that while they do not affect the accuracy of the results, they do slow down the computations. It would be good to get these "bugs" integrated into the main version of the code.
More recent versions of g++ have been complaining about unused variables. It would be good to go through and remove such unused variables as this will keep the code cleaner.
When I run DIRTY for hundreds of stars individually, something like ~1% of the runs usually fail. It appears that the radiative transfer completes successfully, but there’s an issue with saving the results to file. The basename.fits
file is the only one generated, and it is empty (size of zero bytes). Here is the output generated by DIRTY:
total number of cells = 295704000
number of orig. cells = 295704000
number of subdiv. cells = 0
working on wavelength [micron] = 1565
tau = 0 albedo = 0.6 g = 0.7
current # = 500000 stel sl = 0.524427 scat sl = 0.284147 ave 1st tau = 1.55943
current # = 1000000 stel sl = 0.524427 scat sl = 0.284461 ave 1st tau = 1.56047
current # = 1500000 stel sl = 0.524427 scat sl = 0.284381 ave 1st tau = 1.56101
current # = 2000000 stel sl = 0.524427 scat sl = 0.284687 ave 1st tau = 1.5607
current # = 2500000 stel sl = 0.524427 scat sl = 0.284654 ave 1st tau = 1.56102
current # = 3000000 stel sl = 0.524427 scat sl = 0.284665 ave 1st tau = 1.5605
current # = 3500000 stel sl = 0.524427 scat sl = 0.284713 ave 1st tau = 1.5602
current # = 4000000 stel sl = 0.524427 scat sl = 0.284699 ave 1st tau = 1.56007
current # = 4500000 stel sl = 0.524427 scat sl = 0.284703 ave 1st tau = 1.56043
current # = 5000000 stel sl = 0.524427 scat sl = 0.284691 ave 1st tau = 1.56054
current # = 5500000 stel sl = 0.524427 scat sl = 0.284652 ave 1st tau = 1.56095
current # = 6000000 stel sl = 0.524427 scat sl = 0.284725 ave 1st tau = 1.56092
current # = 6500000 stel sl = 0.524427 scat sl = 0.284674 ave 1st tau = 1.5608
current # = 7000000 stel sl = 0.524427 scat sl = 0.284649 ave 1st tau = 1.56085
current # = 7500000 stel sl = 0.524427 scat sl = 0.284591 ave 1st tau = 1.56095
current # = 8000000 stel sl = 0.524427 scat sl = 0.284573 ave 1st tau = 1.56092
current # = 8500000 stel sl = 0.524427 scat sl = 0.284515 ave 1st tau = 1.56083
current # = 9000000 stel sl = 0.524427 scat sl = 0.284513 ave 1st tau = 1.56086
current # = 9500000 stel sl = 0.524427 scat sl = 0.284556 ave 1st tau = 1.56089
Output for observer = 1
# photons = 1e+07
Stellar weight = 5.24427e+06
Stellar S/L = 0.524427 +/- 0 (0%)
ratio_to_sb_image = 2.15119e-39
Stellar flux [ergs cm^-2 s^-1 A^-1] = 6.84848e-45
# scattered photons = 1.41501e+07
Scattered weight = 2.84461e+06
Scattered S/L = 0.284461 +/- 0.000161764 (0.0568669%)
Scattered flux [ergs cm^-2 s^-1 A^-1] = 3.71477e-45
fits_write_key : output results (geometry details) status = 402 : bad float to string conversion
Interestingly, if I rerun all the stars again it doesn’t always seem to be the same ones that fail.
Work planned with Maarten Baes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.