Code Monkey home page Code Monkey logo

dirty_dustrt's Introduction

DIRTY

Documentation Status

The DIRTY radiative tranfer/dust emission model for dusty astrophysical sources. DIRTY stands for "DustI Radiative Transfer, Yeah!" These pages specifically refer to DIRTYv2, the complete rewrite of the original DIRTY code to be more robust, flexible, and spiffy. DIRTY solves the radiative transfer problem in full 3D including non-equilibrium and equilibrium thermal dust emission.

Documentation

See https://dirty-dustrt.readthedocs.io.

Attribution

Please cite Gordon et al. (2001, ApJ, 551, 269), Misselt et al. (2001, ApJ, 551, 277), and Law et al. (2018, ApJS, 236, 32) if you find this code useful in your research.

Support

No support implied. Support possible on a best effort basis. Interesting the developers in your science use has the most chance of success, but the developers are busy with many other projects.

Contributing

Contributions should follow the astropy open-development model (even though this code is not in python).

Please open a new issue or new pull request for bugs, feedback, or new features you would like to see. If there is an issue you would like to work on, please leave a comment and we will be happy to assist. New contributions and contributors are very welcome!

New to github or open source projects? If you are unsure about where to start or haven't used github before, please feel free to contact @karllark. Want more information about how to make a contribution? Take a look at the astropy contributing and developer documentation.

Feedback and feature requests? Is there something missing you would like to see? Please open an issue or send an email to @karllark. DIRTY_dustrt follows the Astropy Code of Conduct and strives to provide a welcoming community to all of our users and contributors.

License

This project is Copyright (c) Karl Gordon, Karl Misselt, & Ka-Hei Law and licensed under the terms of the BSD 3-Clause license.

dirty_dustrt's People

Contributors

jhunkeler avatar karllark avatar putridmeat avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

jhunkeler

dirty_dustrt's Issues

Add option to suppress output files

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.

Option to change RNG seed

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).

Cleanup code for unused variables

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.

Include known bugfixes to dust heating code

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.

Failure to produce output files after successful run

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.

Allow outputs multiple viewing angles and decomposition of dust emission

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.

Example runs

Need to document and setup properly. Should be one per type of source/dust geometry.

Could provide good continuous integration test cases.

Re-integrate saving the photon path in scattering calculations for use in continuous absorption

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.

Add biased stellar emission for external sources

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.