Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternate opacity profiles #12

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open

Conversation

astrobit
Copy link

@astrobit astrobit commented Jul 2, 2016

Hi Rollin,
I've finally updated my fork of es with the code that I've been using for a couple of years now. This code has a few significant features included:

  • adds capability for power law opacity profiles (tau = tau_0 * (v/v_ref)^aux)
  • adds capability for user specified opacity profile (tau = f(v))
  • optionally allows additive opacity when multiple ions of the same time are included
  • optionally uses environment variables for specifying path to line data files; simplifies moving .yaml files from one machine to another
  • add some safety checks for pointers in modules that use new/delete instead of std::vector
  • fixes an issue I've encountered with segfaults when doing parallel processing using openmp
  • installs .hh files and libes.* along with the executables
  • configure checks for fitsio.h under cfitsio/fitsio.h if it is not initially found, and sets a define if found there

I've done some testing to confirm that these changes don't affect the normal output. The basic tests are in a folder named test; data in the test/data folder were generated from the .yaml files in test/yaml using 0.98.1; you can run the tests from the test folder using tests.sh, the resulting log files (under test/log) should be empty if successful.

The user specified opacity profile isn't available through syn++ or synapps - I couldn't figure out an easy way to include this feature; hence the addition of the include files and library to the installation directory. Anyone else who wants to use this feature will have to build the code themselves. I have a bunch of code that is doing this already publicly available on github under astrobit/analysis_tools; (c.f. line_routines.cpp and code that uses the associated liblinerout library.) That repository is a bit messy right now; I'm working a bit this summer on making it all a bit more user friendly.

If you have any questions you can contact me directly at bwmulligan@astro.as.utexas.edu.

Cheers,
-Brian W. Mulligan

Brian Friesen and others added 30 commits July 26, 2013 17:48
The new API is far more flexible and automagic than the old one which
will be useful for future development. I changed the main SYN++ routine
as little as possible (just enough to work with the new API), so there
is probably room for improvement there.

Both v0.3 and v0.5 adhere to the same YAML standard (1.2) so users
should notice no difference at all.

Most of the new code here is from the handful of Boost headers that the
new API requires. (The Boost tool 'bcp' makes resolving header
dependencies trivial.) Despite the huge amount of new code, compile
times are hardly any longer than before.
Upgraded yaml-cpp API from v0.3 -> v0.5.
all boolean parameters in the YAML control file were being interpreted
as "True".
…tforms/edison_build_notes.txt file for more information.
Fixed bug in 0de1f08 ("Upgraded yaml-cpp API from v0.3 -> v0.5.") where all boolean parameters in the YAML control file were being interpreted as "True".
…tion; add flag to indicate additive vs. replacement opacity for multiple instances of an ion; compute opacity based on the user specified form (exp, pow, or user)
… for loops; do some pointer checking and cleanup; modifications to handle user profile for grid velocities
…e; do some testing to ensure yaml file components are there for opacity; line_dir and ref_file are now considered optional components if the environment variables are specified
(Changelog was updated in the wrong branch)

This reverts commit b1dd798.
… wasn't actually doing anything before this change
Brian W. Mulligan and others added 15 commits July 1, 2016 20:38
… speedup associated with these changes); add omp critical section around blackbody component of omp section in ES_Synow_Source - had problems with seg fault if this line is not single core; In ES_Synow_Opacity - use default form in setup if one is not specified for the ion.
…f the version of yaml-cpp that comes with this code (i'll delete it sometime soon); automatically create modulefiles if modules are installed
…e it isn't installed on the system. Fixing an issue (maybe?) with stampede2
…pack doesn't come with a .pc file, you'll have to write one (until I post mine somewhere useful
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants