Skip to content

Commit 9bbe9db

Browse files
authored
Merge pull request #452 from vsnever/docs/core_atomic_data_interface
Improve and expand the documentation for the core AtomicData class
2 parents 7552b72 + d285c92 commit 9bbe9db

3 files changed

Lines changed: 75 additions & 8 deletions

File tree

cherab/core/atomic/interface.pyx

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Copyright 2016-2022 Euratom
2-
# Copyright 2016-2022 United Kingdom Atomic Energy Authority
3-
# Copyright 2016-2022 Centro de Investigaciones Energéticas, Medioambientales y Tecnológicas
1+
# Copyright 2016-2024 Euratom
2+
# Copyright 2016-2024 United Kingdom Atomic Energy Authority
3+
# Copyright 2016-2024 Centro de Investigaciones Energéticas, Medioambientales y Tecnológicas
44
#
55
# Licensed under the EUPL, Version 1.1 or – as soon they will be approved by the
66
# European Commission - subsequent versions of the EUPL (the "Licence");
@@ -29,70 +29,117 @@ cdef class AtomicData:
2929

3030
cpdef double wavelength(self, Element ion, int charge, tuple transition):
3131
"""
32-
Returns the natural wavelength of the specified transition in nm.
32+
The natural wavelength of the specified transition in nm.
3333
"""
3434

3535
raise NotImplementedError("The wavelength() virtual method is not implemented for this atomic data source.")
3636

3737
cpdef IonisationRate ionisation_rate(self, Element ion, int charge):
38+
"""
39+
Electron impact ionisation rate for a given species in m^3/s.
40+
"""
41+
3842
raise NotImplementedError("The ionisation_rate() virtual method is not implemented for this atomic data source.")
3943

4044
cpdef RecombinationRate recombination_rate(self, Element ion, int charge):
45+
"""
46+
Recombination rate for a given species in m^3/s.
47+
"""
48+
4149
raise NotImplementedError("The recombination_rate() virtual method is not implemented for this atomic data source.")
4250

4351
cpdef ThermalCXRate thermal_cx_rate(self, Element donor_ion, int donor_charge, Element receiver_ion, int receiver_charge):
52+
"""
53+
Thermal charge exchange effective rate coefficient for a given donor and receiver species in m^3/s.
54+
"""
55+
4456
raise NotImplementedError("The thermal_cx_rate() virtual method is not implemented for this atomic data source.")
4557

4658
cpdef list beam_cx_pec(self, Element donor_ion, Element receiver_ion, int receiver_charge, tuple transition):
4759
"""
48-
Returns a list of applicable charge exchange emission rates in W.m^3.
60+
A list of Effective charge exchange photon emission coefficient for a given donor (beam) in W.m^3.
4961
"""
5062

5163
raise NotImplementedError("The cxs_rates() virtual method is not implemented for this atomic data source.")
5264

5365
cpdef BeamStoppingRate beam_stopping_rate(self, Element beam_ion, Element plasma_ion, int charge):
5466
"""
55-
Returns a list of applicable beam stopping coefficients in m^3/s.
67+
Beam stopping coefficient for a given beam and target species in m^3/s.
5668
"""
5769

5870
raise NotImplementedError("The beam_stopping() virtual method is not implemented for this atomic data source.")
5971

6072
cpdef BeamPopulationRate beam_population_rate(self, Element beam_ion, int metastable, Element plasma_ion, int charge):
6173
"""
62-
Returns a list of applicable dimensionless beam population coefficients.
74+
Dimensionless Beam population coefficient for a given beam and target species.
6375
"""
6476

6577
raise NotImplementedError("The beam_population() virtual method is not implemented for this atomic data source.")
6678

6779
cpdef BeamEmissionPEC beam_emission_pec(self, Element beam_ion, Element plasma_ion, int charge, tuple transition):
6880
"""
69-
Returns a list of applicable beam emission coefficients in W.m^3.
81+
The beam photon emission coefficient for a given beam and target species
82+
and a given transition in W.m^3.
7083
"""
7184

7285
raise NotImplementedError("The beam_emission() virtual method is not implemented for this atomic data source.")
7386

7487
cpdef ImpactExcitationPEC impact_excitation_pec(self, Element ion, int charge, tuple transition):
88+
"""
89+
Electron impact excitation photon emission coefficient for a given species in W.m^3.
90+
"""
91+
7592
raise NotImplementedError("The impact_excitation() virtual method is not implemented for this atomic data source.")
7693

7794
cpdef RecombinationPEC recombination_pec(self, Element ion, int charge, tuple transition):
95+
"""
96+
Recombination photon emission coefficient for a given species in W.m^3.
97+
"""
98+
7899
raise NotImplementedError("The recombination() virtual method is not implemented for this atomic data source.")
79100

80101
cpdef TotalRadiatedPower total_radiated_power(self, Element element):
102+
"""
103+
The total (summed over all charge states) radiated power
104+
in equilibrium conditions for a given species in W.m^3.
105+
"""
106+
81107
raise NotImplementedError("The total_radiated_power() virtual method is not implemented for this atomic data source.")
82108

83109
cpdef LineRadiationPower line_radiated_power_rate(self, Element element, int charge):
110+
"""
111+
Line radiated power coefficient for a given species in W.m^3.
112+
"""
113+
84114
raise NotImplementedError("The line_radiated_power_rate() virtual method is not implemented for this atomic data source.")
85115

86116
cpdef ContinuumPower continuum_radiated_power_rate(self, Element element, int charge):
117+
"""
118+
Continuum radiated power coefficient for a given species in W.m^3.
119+
"""
120+
87121
raise NotImplementedError("The continuum_radiated_power_rate() virtual method is not implemented for this atomic data source.")
88122

89123
cpdef CXRadiationPower cx_radiated_power_rate(self, Element element, int charge):
124+
"""
125+
Charge exchange radiated power coefficient for a given species in W.m^3.
126+
"""
127+
90128
raise NotImplementedError("The cx_radiated_power_rate() virtual method is not implemented for this atomic data source.")
91129

92130
cpdef FractionalAbundance fractional_abundance(self, Element ion, int charge):
131+
"""
132+
Fractional abundance of a given species in thermodynamic equilibrium.
133+
"""
134+
93135
raise NotImplementedError("The fractional_abundance() virtual method is not implemented for this atomic data source.")
94136

95137
cpdef ZeemanStructure zeeman_structure(self, Line line, object b_field=None):
138+
r"""
139+
Wavelengths and ratios of :math:`\pi`-/:math:`\sigma`-polarised Zeeman components
140+
for any given value of magnetic field strength.
141+
"""
142+
96143
raise NotImplementedError("The zeeman_structure() virtual method is not implemented for this atomic data source.")
97144

98145
cpdef FreeFreeGauntFactor free_free_gaunt_factor(self):

docs/source/atomic/atomic_data.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Atomic Data
77
emission_lines
88
rate_coefficients
99
gaunt_factors
10+
atomic_data_interface
1011
data_interpolators
1112
repository
1213
openadas
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
Atomic Data Interface
3+
=====================
4+
5+
Abstract (interface) class
6+
--------------------------
7+
8+
Abstract atomic data interface.
9+
10+
.. autoclass:: cherab.core.atomic.interface.AtomicData
11+
:members:
12+
13+
OpenADAS atomic data source
14+
---------------------------
15+
16+
Interface to local atomic data repository.
17+
18+
.. autoclass:: cherab.openadas.openadas.OpenADAS
19+
:members:

0 commit comments

Comments
 (0)