Skip to main content

C-RDGFA

PyPI

C-RDGFA is a Rayleigh-Debye-Gans corrected code for fractal aggregates.

It's purpose is to correct the Rayleigh-Debye-Gans approximation for soot fractal aggregates (RDG-SFA). Indeed, soot are known to violated the RDG criteria. Therefore, correction factors are needed to compute accurate radiative properties such as cross sections. These corrections are based on a new approach called phasor in slices in [1], where the internal electric field is modelled per aggregate slice along the light propagation axis. This approach reveals a phenomenon of absorption by addition of matter (Trapping) which is similar to the Beer-Lambert law.

The process goes as follow:

  1. We initalize the incident wavelength, monomer radius and refractive index.
  2. We read the fit parameters depending on the variables initialize in step 1.
  3. We fit the cross sections by following the mathematical development of [1] over a given range of number of monomer Nm.

The modelled cross-sections were calculated and found to be accurate for a range of Nm not exceeding 1000 [1].

The code is divided into two categories: refractive indices taking into account spectral dependence and constant indices.

Spectral refractive indices

At the moment the code is implemented with four spectral refractive indices

Organic [2]
Amorphous [2]
Graphitic [2]
Diesel [3]

with the following wavelength range [266,354,444,532,632,848,1064]nm. The cross sections for the first three indices are modelable for three monomer radii [5,15,30]nm, for the fourth, only one radius is available, 17nm.

The user has access to fairly accurate cross-sections (see Fig.8 in [1]) for indices representative of soot at specific wavelengths. However, the wavelengths are imposed and the radius of the monomers is limited.

Constant indices

Users who are more interested in a specific size parameter rather than a variable index can choose between three constant refractive indices with respect to wavelength

m=1.75+i1.03 (Williams index [4])
m=1.55+i0.86 (Bescond index [2])
m=1.95+i0.79 (Bond index [5])

Therefore, the radius and wavelength are not limited due to the scale invariant rule. However, the indices will not be representative of soot outside their wavelength used to define them [2,4,5].

The user is encouraged not to exceed a size parameter of 0.75 as the accuracy of the results has not yet been tested.

Scientific paper

  • [1] C. Argentin, M. J. Berg, M. Mazur, R. Ceolato, A. Poux, J. Yon, A semi-empirical correction for the Rayleigh-Debye-Gans approximation for fractal aggregates based on phasor analysis: Application to soot particles, Journal of Quantitative Spectroscopy and Radiative Transfer DOI: Awaiting proofreading
  • [2] A. Bescond, J. Yon, F.-X. Ouf, C. Rozé, A. Coppalle, P. Parent, D. Ferry, C. Laffon, Soot optical properties determined by analyzing extinction spectra in the visible near-uv: Toward an optical speciation according to constituents and structure, Journal of Aerosol Science 101 (2016) 118–132. (10.1016/j.jaerosci.2016.08.001)
  • [3] J. Yon, F. Liu, A. Bescond, C. Caumont-Prim, C. Rozé, F.-X. Ouf, A. Coppalle, Effects of multiple scattering on radiative properties of soot fractal aggregates, Journal of Quantitative Spectroscopy and Radiative Transfer 133 (2014) 374–381. ( 10.1016/j.jqsrt.2013.08.022)
  • [4] T. C. Williams, C. R. Shaddix, K. A. Jensen, J. M. Suo-Anttila, Measurement of the dimensionless extinction coefficient of soot within laminar diffusion flames, International Journal of Heat and Mass Transfer 50 (7-8) (2007) 1616–1630. ( 10.1016/j.ijheatmasstransfer.2006.08.024)
  • [5] Bond, T. C., and R. W. Bergstrom, Light absorption by carbonaceous particles: An investigative review. Aerosol Sci. Technol. 40(1):27–67. (10.1080/j.aerosolscienceandtechnology.2007.02.23)
  • [6] R. A. Dobbins and C. M. Megaridis, Absorption and scattering of light by polydisperse aggregates, Applied Optics Vol. 30, Issue 33, pp. 4747-4754 (1991) (10.1364/j.ao.1991.11.020)

Installation

Install directly from PyPI:

pip install crdgfa

Usage

C-RDGFA provides a clean interface with two functions:

  • crdgfa.spectral_cross_sections
  • crdgfa.fixed_cross_sections

The user must choose the refractive index, the wavelength, the radius of the monomers and the desired range of monomer numbers. In addition, the user has the option of outputting or not the differential scattering cross section (where the structure factor is derived from [6]) by setting the variable sca at 1.

Exemple 1 - Spectral refractive index

import numpy as np
import crdgfa

Nm = np.arange(1, 1000)  # number of monomers (integers)

A, h, Csca, Cabs, Cext = crdgfa.spectral_cross_sections(
    wavelength=444,        # tabulated wavelengths
    index="Amorphous",     # "Organic", "Amorphous", "Graphitic", "Diesel"
    radius=15,             # allowed radius depends on index
    Nm=Nm,
    sca=0,                 # set to 1 to output angular scattering files
    save_output=True,      # output A h Csca Cabs Cext
)

Exemple 2 - Constant refractive index

import numpy as np
import crdgfa

Nm = np.arange(1, 1000)

A, h, Csca, Cabs, Cext = crdgfa.fixed_cross_sections(
    wavelength=400,        # x_p should be < 0.75
    index="Bond",          # "Williams", "Bescond", or "Bond"
    radius=18,             # x_p should be < 0.75
    Nm=Nm,
    sca=0,                 # set to 1 to output angular scattering files
    save_output=True,      # output A h Csca Cabs Cext
)

Parameter

Nm may be any iterable of integers, allowing for various physical distributions (linear, uniform, logarithmic, etc.).

Output

The code gives an output file containing six columns (if save_output=True):

Nm: Number of monomer
A: Corrective term to the RDG for forward scattering
h: Corrective term to the RDG for absorption
Csca: Scattering cross section (nm²)
Cabs: Absorption cross section (nm²)
Cext: Extinction cross section (nm²)

If the variable sca is set at 1 in the file Run_Spectral.py or Run_Fixed.py, for each Nm an output file containing the angular scattering cross section will be generated with four columns:

Cvv: Differencial scattering cross section in vertical-vertical polarization (nm²)
Chh: Differencial scattering cross section in horizontal-horizontal polarization (nm²)
theta: Scattering angle
qRg: Product of the radius of gyration and the modulus of the scattering vector.
q²Rg²: Product of the square of the radius of gyration and the square of the modulus of the scattering vector.

Update

Developers who want to improve the code are invited to read the CONTRIBUTING.md file for guidelines.

Metadata

Release files for crdgfa 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crdgfa 0.1.1
File Size Uploaded
crdgfa-0.1.1.tar.gz 29.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crdgfa 0.1.1
File Interpreter ABI Platform
crdgfa-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 58.4 kB

Release files / crdgfa-0.1.1.tar.gz

Download URL crdgfa-0.1.1.tar.gz
Size 29.3 kB
Tags Source
SHA-256 checksum
How to use checksums
44caaa2b89c5f65d176b8c970e974c2978522f1a6c6a28c3bf1cc833421725d8
BLAKE2b-256 checksum
How to use checksums
cf0b885458b57afd6d00f8cd7d26f01834c6003b451bb91e7fb6e31f37a00e43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / crdgfa-0.1.1-py3-none-any.whl

Download URL crdgfa-0.1.1-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
390eb38b0c8b49abe8916f7d530c5bfef36b9758fa934f8e496c29dc88461f6f
BLAKE2b-256 checksum
How to use checksums
de1315ad495cdb9f37ae12cc1b7b9a04fabdc56f09e9da5bf29d7814794aabdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page