Ignore:
Timestamp:
Sep 14, 2011, 12:59:42 PM (13 years ago)
Author:
Evgeny Stambulchik <Evgeny.Stambulchik@…>
Branch:
default
Phase:
public
Message:

Added oscillator strength (for absorption) using Kramers quasi-classical
formula + Menzel&Pekeris(1935) for the Gaunt factor.

Location:
source/class/pf
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • source/class/pf/Plasma.js

    r268 r288  
    5555            return Math.pow(Z_core, 4)*
    5656              (pf.base.Bohr.LymanA(n_u) + pf.base.Bohr.LymanA(n_l));
     57        },
     58       
     59        getOscillatorStrength: function()
     60        {
     61            var n_u = this.n_u;
     62            var n_l = this.n_l;
     63           
     64            return pf.base.Bohr.getOscillatorStrength(n_u, n_l);
    5765        },
    5866       
  • source/class/pf/base/Bohr.js

    r268 r288  
    8080            }
    8181        },
     82
     83        /* Quasi-classical absorption oscillator strength */
     84        getKramersF: function(n_u, n_l)
     85        {
     86            return 32/(3*Math.PI*Math.sqrt(3))*
     87                n_u*n_u*n_u*n_l/Math.pow(n_u*n_u - n_l*n_l, 3);
     88        },
     89
     90        getFGauntFactor : function(n_u, n_l)
     91        {
     92            var g = 1;
     93           
     94            if (n_u == 2 && n_l == 1) {
     95                g = 0.717;
     96            } else
     97            if (n_u == 3 && n_l == 1) {
     98                g = 0.765;
     99            } else
     100            if (n_u == 3 && n_l == 2) {
     101                g = 0.757;
     102            } else
     103            if (n_u - n_l == 1) {
     104                g = 0.782;
     105            } else {
     106                var r2 = (n_l/n_u)*(n_l/n_u);
     107                var t = Math.pow((1 - r2)*n_l, 2/3);
     108                g = 1 - 0.1728*(1 + r2)/t;
     109                     // - 0.0496*(1 + 484/15*r2 + r2*r2)/(t*t);
     110            }
     111           
     112            return g;
     113        },
     114
     115        getOscillatorStrength : function(n_u, n_l)
     116        {
     117            var g = this.getFGauntFactor(n_u, n_l);
     118           
     119            return g*this.getKramersF(n_u, n_l);
     120        },
    82121       
    83122        classicalIonizationField : function(Z_core, n)
Note: See TracChangeset for help on using the changeset viewer.