Schiff
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. 2025. 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.).
Examples of particle shapes handled by Schiff.
Related articles
Dauchet et al. 2023, "Wave-scattering processes: path-integrals designed for the numerical handling of complex geometries", Optics Letters (open access)
Charon et al. 2016, "Monte Carlo implementation of Schiff׳s approximation for estimating radiative properties of homogeneous, simple-shaped and optically soft particles: Application to photosynthetic micro-organisms", Journal of Quantitative Spectroscopy and Radiative Transfer (open access)
Weitz et al. 2016, "Monte Carlo efficiency improvement by multiple sampling of conditioned integration variables", Journal of Computational Physics (open access)
A straight interface
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.4.2-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
Build from sources
Schiff can be built directly from its source tree.
The simplest way to do this is to rely on the schiff
branch of the
Star-Engine
project: it provides CMake scripts that automate the download, the compilation
and the installation of Schiff and its dependencies.
This build procedure assumes the following prerequisites:
- git source control
- GNU Compiler Collection in version 4.9.2 or higher
- CMake in version 3.1 or higher
Build
Assuming that the aforementioned prerequisites are available, the build procedure is summed up to:
git clone -b Schiff-0.4.2 \
https://gitlab.com/meso-star/star-engine.git Schiff-0.4.2
mkdir Schiff-0.4.2/build
cd Schiff-0.4.2/build
cmake ../cmake
make
Run
By default Schiff is installed in the local
subdirectory of
Schiff-0.4.2
. Source the provided schiff.profile
file to
register Schiff against the current shell.
source ~/Schiff-0.4.2/local/etc/schiff.profile
schiff -h
Package
Once built, the Schiff installation can be packaged in an archive that can then be deployed on compatible systems, i.e. systems whose C library is compatible with the one available on the system used to build Schiff.
cd Schiff-0.4.2/build
make pkg
ls package/Schiff-0.4.2* # list packages
Post-Process
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 :
- Download the pretty result 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.yaml -l 2.3 -w0.5:0.6 -o output properties
bash ./schiff_pretty_results.sh 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.
License
Copyright © 2020, 2021 |Méso|Star>
Copyright © 2015, 2016 Centre National de la Recherche Scientifique (CNRS)
Schiff is free software released under the GPLv3+ license: GNU GPL version 3 or later. You are welcome to redistribute it under certain conditions; refer to the license for details.