Skip to main content

Rayleigh-Debye-Gans corrected code for fractal aggregates (C-RDGFA)

Project description

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=266,        # tabulated wavelengths
    index="Bond",          # "Williams", "Bescond", or "Bond"
    radius=15,             # 5, 15, 30 nm 
    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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crdgfa-0.1.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crdgfa-0.1.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file crdgfa-0.1.0.tar.gz.

File metadata

  • Download URL: crdgfa-0.1.0.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for crdgfa-0.1.0.tar.gz
Algorithm Hash digest
SHA256 09301d98d3f31b7f6edbd24715c7caf5f1095df7d393218710da36795d3b5bfb
MD5 e6996b15702ef37053d44b33e8cf8664
BLAKE2b-256 e8135010a7df0d00bea4f2316d24dbe3c89fa0d3a90f8931656371b7fc271278

See more details on using hashes here.

File details

Details for the file crdgfa-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: crdgfa-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for crdgfa-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b54587121fa9e38ca0d50e041429d1f6fbd3883b986c4106edb541fe74bf4b40
MD5 2e09634a4b174b6502390505dcd638d6
BLAKE2b-256 bc9eb581afde8165c6a0e3f34c0fdcf2f68a14db1ec6716d68f93cb98e56b41d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page