Schiff - Radiative properties of soft particles

Download Schiff 0.3.1

The Schiff program computes the radiative properties of soft particles. It uses the Monte-Carlo method to solve Maxwell's equations within the L. Schiff's approximation as presented in Charon et al. 2015.The main advantages of using Monte-Carlo are: the possibility to address any shape of particle, and the results are provided with a numerical accuracy.

For a mixture of soft particles, Schiff estimates the total cross-sections (absorption, scattering and extinction cross-sections) in addition of the phase function, its cumulative and its inverse cumulative.

The set of particles to simulate is defined by its refractive index - provided at various wavelengths - and a geometry distribution that controls how the particles look like into the mixture. More precisely, this distribution describes the main shapes of the particles (sphere, cylinder, helical pipe, etc.) and their statistical variation according to the distribution of their parameters (gaussian, lognormal, etc.).

Schiff makes intensive use of ray-tracing. While this feature is part of the StarEngine Star3D library, it is internally powered by Intel® Rendering Framework: Embree.

A straight interface

Examples of particle shapes handled by Schiff.

The Schiff program is a command-line tool that processes input data, performs computations, write results and that's all. It makes no assumptions on how the input data are created excepted that it has to follow the expected file formats. The simulation results are also provided as is, in a raw ASCII format.

This thin interface is particularly well suited to be extended and integrated into any toolchain. According to the user needs, the optical properties of the particles can be entered manually or generated by an external program. In the same way, the output data can either be directly interpreted or post-processed by any script with respect to the targeted toolchain.

Quick start

Download the desired archive of Schiff and verify its integrity against its PGP signature. Then extract it. Finally source the provided schiff.profile file to register the Schiff installation for the current shell priorly to the invocation of the schiff program.

$ source ~/Schiff-0.3.1-GNU-Linux64/etc/schiff.profile
$ schiff -h

The Schiff reference documentation is provided trough man pages. Use the man command-line to consult it.

$ man schiff
$ man schiff-geometry
$ man schiff-output


The following Bash script illustrates how to post-process the Schiff results. It is an example, provided as is, without additional support. According to your needs, you can study, modify, extend or redistribute it freely.

Pretty results
[Bash script]

This script reads an output file generated by the schiff command line and split its raw ASCII results in several human readable text files in order to simplify their analysis.

$ schiff -i geom-distrib.yaml -l 2.3 -w0.5:0.6 -o output properties
$ bash ./ output
Write xsections.txt
Write descs.txt
Write func_0.5.txt
Write func_0.6.txt
Write cumul_0.5.txt
Write cumul_0.6.txt
Write invcumul_0.5.txt
Write invcumul_0.6.txt

The first generated file, named xsections.txt, lists for each wavelength submitted with the -w option, its associated absorption, extinction and scattering cross sections. The second file, descs.txt, gives overall informations for each simulated wavelengths, like the limit scattering angles from which its phase function was analytically computed. Then for each wavelength, the script generates 3 files named func_<WLEN>.txt, cumul_<WLEN>.txt, and invcumul_<WLEN>.txt that store for the wavelength <WLEN>, the value of its associated phase function as well as its cumulative and its inverse cumulative, respectively.


Schiff is free software release under the GPLv3+ license: GNU GPL version 3 or later. You can freely study, modify or extend it. You are also welcome to redistribute it under certain conditions; refer to the license for details.