screening_module Module Reference

Module to calculate electron screening. More...

Functions/Subroutines

subroutine, public init_screening (nreac)
 Initialize the screening module. More...
 
subroutine, public screen (t9, rho, n, ye, mode)
 This function calculates the screening coefficients hv. More...
 
real(r_kind) function, private free_energy_kravchuk_yakovlev (gamma)
 Free energy according to parametrization of Kravchuk and Yakovlev. More...
 
subroutine, public screening (t9, rho, z1, z2, a1, a2, ye, mode, h, ht, hp)
 Interface for the screening. More...
 
subroutine, private screening_kravchuk_yakovlev (t9, rho, z1, z2, a1, a2, ye, mode, h, ht, hp)
 Screening function according to Kravchuk & Yakovlev (2014) More...
 

Variables

real(r_kind), dimension(:), allocatable, public hv
 Screening correction. More...
 
real(r_kind), dimension(:), allocatable, public htv
 temp. derivative More...
 
real(r_kind), dimension(:), allocatable, public hpv
 density derivative More...
 
logical, public iscreen
 Flag whether screening is enabled or not. More...
 

Detailed Description

Module to calculate electron screening.

This module calculates the screening function h (=ln(f_screen))

Author
Urs Frischknecht

Edited:

  • 26.07.22, MR: Made it a module and made hv, htv, and hpv module variables.

Function/Subroutine Documentation

◆ free_energy_kravchuk_yakovlev()

real(r_kind) function, private screening_module::free_energy_kravchuk_yakovlev ( real(r_kind), intent(in)  gamma)
private

Free energy according to parametrization of Kravchuk and Yakovlev.

This function calculates the free energy of a one-component plasma according to equation 19 of Kravchuk & Yakovlev (2014).

See also
Kravchuk & Yakovlev 2014
Author
M. Reichert
Date
03.04.2023
Parameters
[in]gammaIon coupling parameter
Returns
Free energy

Definition at line 150 of file screening_module.f90.

◆ init_screening()

subroutine, public screening_module::init_screening ( integer, intent(in)  nreac)

Initialize the screening module.

Allocates screening correction arrays.

Author
M. Reichert
Date
26.07.22
Parameters
[in]nreacNumber of reactions

Definition at line 42 of file screening_module.f90.

Here is the call graph for this function:

◆ screen()

subroutine, public screening_module::screen ( real(r_kind), intent(in)  t9,
real(r_kind), intent(in)  rho,
integer, intent(in)  n,
real(r_kind), intent(in)  ye,
integer, intent(in)  mode 
)

This function calculates the screening coefficients hv.

It serves as interface between the subroutine Screening corrections and the jacobian_class.

Author
Urs Frischknecht

Edited:

  • 12.01.14
  • 26.07.22, MR: Made hv, htv, and hpv module variables.
  • 28.07.22, MR: Introduced new chapters

Definition at line 77 of file screening_module.f90.

◆ screening()

subroutine, public screening_module::screening ( real(r_kind), intent(in)  t9,
real(r_kind), intent(in)  rho,
integer, intent(in)  z1,
integer, intent(in)  z2,
integer, intent(in)  a1,
integer, intent(in)  a2,
real(r_kind), intent(in)  ye,
integer, intent(in)  mode,
real(r_kind), intent(out)  h,
real(r_kind), intent(out)  ht,
real(r_kind), intent(out)  hp 
)

Interface for the screening.

This subroutine is an interface for the different screening prescriptions.

Author
M. Reichert
Date
03.04.2023
Parameters
[in]mode=0 no derivatives are calculated, =1 ht=dln(f)/d(t9)=dh/dt9, hp=dln(f)/d(rho)=dh/d(rho)
[in]t9temperature [GK]
[in]rhodensity [g/cm^3]
[in]z2charge numbers of colliding nuclei
[in]a2mass numbers of colliding nuclei
[in]yeelectron fraction
[out]hscreening function
[out]htdln(f)/d(t9)=dh/dt9
[out]hpdln(f)/d(rho)=dh/d(rho)

Definition at line 180 of file screening_module.f90.

Here is the call graph for this function:

◆ screening_kravchuk_yakovlev()

subroutine, private screening_module::screening_kravchuk_yakovlev ( real(r_kind), intent(in)  t9,
real(r_kind), intent(in)  rho,
integer, intent(in)  z1,
integer, intent(in)  z2,
integer, intent(in)  a1,
integer, intent(in)  a2,
real(r_kind), intent(in)  ye,
integer, intent(in)  mode,
real(r_kind), intent(out)  h,
real(r_kind), intent(out)  ht,
real(r_kind), intent(out)  hp 
)
private

Screening function according to Kravchuk & Yakovlev (2014)

This function calculates the screening function according to equation 62 of Kravchuk & Yakovlev (2014) using the "combined" model.

Note
This function is in principle only valid for the strong screening regime does however not deviate too much for the weak screening as well.
Author
M. Reichert
Date
03.04.2023
Parameters
[in]mode=0 no derivatives are calculated, =1 ht=dln(f)/d(t9)=dh/dt9, hp=dln(f)/d(rho)=dh/d(rho)
[in]t9temperature [GK]
[in]rhodensity [g/cm^3]
[in]z2charge numbers of colliding nuclei
[in]a2mass numbers of colliding nuclei
[in]yeelectron fraction
[out]hscreening function
[out]htdln(f)/d(t9)=dh/dt9
[out]hpdln(f)/d(rho)=dh/d(rho)

Definition at line 220 of file screening_module.f90.

Here is the call graph for this function:

Variable Documentation

◆ hpv

real(r_kind), dimension(:), allocatable, public screening_module::hpv

density derivative

Definition at line 22 of file screening_module.f90.

◆ htv

real(r_kind), dimension(:), allocatable, public screening_module::htv

temp. derivative

Definition at line 21 of file screening_module.f90.

◆ hv

real(r_kind), dimension(:), allocatable, public screening_module::hv

Screening correction.

Definition at line 20 of file screening_module.f90.

◆ iscreen

logical, public screening_module::iscreen

Flag whether screening is enabled or not.

Definition at line 24 of file screening_module.f90.