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

Simplifying and extending analytic opacity models #566

Merged
merged 1 commit into from
Jan 17, 2019

Conversation

attom
Copy link
Contributor

@attom attom commented Jan 17, 2019

Background

  • Stimulated_Emission_Analytic_Opacity_Model was poorly tested.
  • Code duplication was a problem in Polynomial_Analytic_Opacity_Model.
  • There was no capability to model an analytic bound-free opacity (edge).

Description of changes

  • Removed Stimulated_Emission_Analtyic_Opacity_Model by adding stimulated
    emission as an option to Polynomial_Analytic_Opacity_Model that is off by
    default.
  • Added a bound-free component to Polynomial_Analytic_Opacity_Model that is off
    by default. The bound-free component has the same energy, temperature, and
    density scaling as the free-free component. Only the edge location and strength
    of the edge need to be specified.
  • Made the constant offset part of the analytic opacity truly constant. It no
    longer scales with density.

Status

* Stimulated_Emission_Analytic_Opacity_Model was poorly tested.
* Code duplication was a problem in Polynomial_Analytic_Opacity_Model.
* There was no capability to model an analytic bound-free opacity (edge).

* Removed Stimulated_Emission_Analtyic_Opacity_Model by adding stimulated
emission as an option to Polynomial_Analytic_Opacity_Model that is off by
default.
* Added a bound-free component to Polynomial_Analytic_Opacity_Model that is off
by default. The bound-free component has the same energy, temperature, and
density scaling as the free-free component. Only the edge location and strength
of the edge need to be specified.
* Made the constant offset part of the analytic opacity truly constant. It no
longer scales with density.
@codecov
Copy link

codecov bot commented Jan 17, 2019

Codecov Report

Merging #566 into develop will increase coverage by 0.3%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           develop    #566     +/-   ##
=========================================
+ Coverage     93.3%   93.6%   +0.3%     
=========================================
  Files          377     377             
  Lines        17676   17608     -68     
=========================================
+ Hits         16496   16498      +2     
+ Misses        1180    1110     -70

1 similar comment
@codecov
Copy link

codecov bot commented Jan 17, 2019

Codecov Report

Merging #566 into develop will increase coverage by 0.3%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           develop    #566     +/-   ##
=========================================
+ Coverage     93.3%   93.6%   +0.3%     
=========================================
  Files          377     377             
  Lines        17676   17608     -68     
=========================================
+ Hits         16496   16498      +2     
+ Misses        1180    1110     -70

const double pows = pow(T / f, c) * pow(nu / h, e) * pow(rho / g, d);
const double stim = (i <= 0.0) ? 1.0 : 1.0 - exp(-nu / T);
const double jH = (nu >= k) ? j : 0.0;
const double opacity = a + pows * stim * (b + jH);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay for this PR. But you should be cautious about overflow and/or underflow.

@KineticTheory KineticTheory merged commit 5422392 into lanl:develop Jan 17, 2019
@attom attom deleted the opacity branch April 16, 2019 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants