HTRDR-COMBUSTION(1) General Commands Manual HTRDR-COMBUSTION(1)

htrdr‑combustionsimulate radiative transfer in a combustion medium

htrdr‑combustion [-fhINsv] [-C persp_camera_opt[:persp_camera_opt ...]] [-D laser_flux_density] [-d dump_type] [-F rdgfa_opt[:rdgfa_opt ...]] [-g combustion_chamber_opt[:combustion_chamber_opt ...]] [-i image_opt[:image_opt ...]] [-l laser_opt[:laser_opt ...]] [-O cache] [-o output] [-P ortho_camera_opt[:ortho_camera_opt ...]] [-R flux_sensor_opt[:flux_sensor_opt ...]] [-T optical_thickness] [-t threads_count] [-V accel_struct_definition] [-w laser_wavelength] -m medium_geometry -p thermo_properties -r refractive_ids

The purpose of htrdr‑combustion is to perform radiative transfer computations in a scene representing a semi-transparent combustion medium enlightened by a laser sheet. The medium may be surrounded by solid boundaries (inner limits of the combustion chamber). The program will currently compute, in the visible at a given frequency, the monochromatic image or the radiative flux density of the combustion medium: collected light comes from the laser, and is scattered by soot aggregates within the flame before eventually reaching the sensor.

Data relating to the gaseous medium are stored on the vertices of an unstructured tetrahedral mesh: pressure, temperature and concentrations of H2O, CO2 and CO are provided for each vertex. In the visible range, these data are useless, since the gas is assumed to be transparent, but they are part of the data expected to anticipate future developments in the longwave domain.

Soot optical properties are computed using the Rayleigh-Debye Gans theory, for Fractal Aggregates (RDG-FA). This requires the knowledge of: soot volumic fraction, soot number density (number of primary particles per aggregate) and primary particles diameter, for each vertex of the tetrahedral mesh. For any position in the volume, these quantities are first interpolated from the values retrieved at the nodes of the current tetrahedron, and are then interpolated for the position of interest. Which then makes possible to compute the absorption and scattering cross-sections of soot aggregates, as well as their scattering function.

The Monte Carlo algorithm that accounts for the visible intensity is inspired from the algorithm used for solar radiation in htrdr-atmosphere(1). It was adapted to partially illuminated scenes in order to solve onvergence issues.

In htrdr‑combustion the spatial unit 1.0 corresponds to one meter while the estimated monochromatic radiances and flux densities are saved in W/sr/m^2 and W/m^2 respectively. The results are written to the output file if the -o option is set and otherwise to standard output. The output image is a list of raw ASCII data formatted using the htrdr-image(5) file format.

htrdr‑combustion implements mixed parallelism. On a single computer (that is, a node), it uses shared memory parallelism while it relies on Message Passing Interface (MPI) to parallelize calculations between multiple nodes. htrdr‑combustion can therefore be launched either directly or via a process launcher such as mpirun(1) to distribute the calculation on several computers.

The options are as follows:

persp_camera_opt[:persp_camera_opt ...]
Set up a pinhole or thin-lens perspective camera.

The options for a perspective camera are as follows:

distance
Distance to focus on with a thin lens camera, that is, a camera whose lens-radius is not zero. The default focal distance is 1 meters.
length
Focal length of a camera lens. It is another way to control the field of view of a thin lens camera. By default, the field of view is set through the fov parameter.
angle
Vertical field of view of the camera in ]0.0, 180.0[ degrees. The default field of view is 70 degrees.
radius
Radius of the camera lens. A non-zero radius means that the camera is a thin lens camera while a zero radius defines a pinhole camera. The default lens radius is 0.
x,y,z
Camera position. Default is 0,0,0.
x,y,z
Targeted position Default is 0,1,0.
x,y,z
Upward vector that the top of the camera is pointing towards. Default is 0,0,1.
laser_flux_density
Laser flux density in W/m^2. Default is 1.
dump type
Write the data defined by dump_type to output instead of performing a normal calculation.

The dump_type values supported are as follows:

Write the geometry of the laser sheet in legacy VTK format.
Write the leaves of the space partitioning structures used to speed up radiative transfer calculations. Each leaf stores the minimum and maximum extinction coefficients of the tetrahedra it covers. Data are written in legacy VTK format.
rdgfa_opt[:rdgfa_opt ...]
RDG-FA phase function parameters.

The parameters of the RDG-FA phase function are as follows:

real
Fractal dimension. Default is 1.80.
real
Fractal prefactor. Default is 1.30.
Force overwriting of output file.
combustion_chamber_opt[:combustion_chamber_opt ...]
Define the combustion chamber.

Note that the combustion chamber does not prevent the camera from seeing the medium, nor the laser from illuminating the medium, even if either is outside the chamber. The rendering algorithm ensures that they are not occluded by the combustion chamber, like with a two-way mirror. When the laser is out of chamber, its emissive surface is seen as if it were following its interior surface. Likewise, the radiance seen by the camera outside the chamber is the radiance that reaches it as if its image plane were following the surface of the geometry.

The combustion chamber options are as follows:

materials
Combustion chamber materials saved in htrdr-materials(5) format.
mesh
Combustion chamber geometry saved in htrdr-obj(5) format.

In accordance with the htrdr-obj(5) file format, the mesh interface must be defined as a fine interface, i.e. it must be composed of 3 elements separated by the : character. By convention, htrdr‑combustion expects the external environment to be called "air" and the medium inside the combustion chamber to be called "chamber". No assumptions are made about the name of the surface material, except that it must refer to a valid material.

Display short help and exit.
Use an isotropic phase function rather than the RDG-FA phase function (option -F).
image_opt[:image_opt ...]
Configure sensor image.

The image options are as follows:

widthxheight
Image definition. Default is 320x240.
samples_per_pixel
Number of samples to solve the Monte Carlo estimation of each pixel. Default is 1.
laser_opt[:laser_opt ...]
Laser emission surface.

The laser options are as follows:

x,y,z
Center of the laser emission surface. Default is 0,0,0.
x,y,z
Targeted position, i.e. tgt - pos is the normal of the laser surface. Default is 0,0,1.
x,y,z
Upward vector that the top of thr laser is pointer towards. Default is 0,1,0.
width,height
Size of laser surface in meters. Default is 1,1
medium_geometry
Tetrahedra of the combustion medium saved in smsh(5) format.
This speeds up runtime performance by calculating normals once and for all rather than re-evaluating them every time a tetrahedron is queried at a given position. In return, the memory space used to store normals increases the memory footprint.
cache
File where acceleration structure is stored/loaded. If the cache file does not exist, it is created and filled with the acceleration structure constructed from the medium geometry (option -m), termodynamic properties (option -p) and refractive indices (option -r) input files. This cached data can then be reused in subsequent executions, provided that the input files supplied to the command are the same as those used to set up the cache, thus considerably speeding up the pre-processing stage.

If cache contains data generated from input files that are not those submitted on the command line, an error is notified and execution is aborted, thus avoiding the use of bad cached data.

output
Output file. If not defined, data is written to standard output.
ortho_camera_opt[:ortho_camera_opt ...]
Set up an orthographic camera.

The options for an orthographic camera are as follows:

lenght
Image plane height. Its width is calculated from this length and the image ratio to guarantee square pixels (see -i option).
x,y,z
Camera position. Default is 0,0,0.
x,y,z
Targeted position. Default is 0,1,0.
x,y,z
Upward vector that the top of the camera is pointing towards. Default is 0,0,1.
thermo_properties
Thermodynamic properties of the combustion medium saved in atrtp(5) format.
flux_sensor_opt[:flux_sensor_opt ...]
Set up a flux sensor.

The flux sensor options are as follow:

x,y,z
Sensor center. Default is 0,0,0.
x,y,z
Targeted position. Default is 0,0,1.
x,y,z
Upward vector that the top of the sensor is pointing towards. Default is 0,1,0.
width,height
Sensor size in meters. Default is 1,1.
refrative_ids
Refrative indices of the combustion medium as a function of wavelength, saved in atrri(5) format.
Use Single Instruction Multiple Data (SIMD) instruction sets if available. This should speed up calculation time.
optical_thickness
Optical thickness used as threshold criterion for building the acceleration structure. Default is 1.0.
Advice on the number of threads to use. By default, htrdr‑combustion uses many threads as processor cores.
accel_struct_definition
Definition of the discrete field storing the upper limit of the radiative coefficients from which the acceleration structure is built. The extent of the grid corresponds to the axis aligned bounding box of the combustion medium.

The definition can be established as follows:

x,y,z
Define grid definition on X, Y and Z axes.
expected_definition
Provide an expected definition of the grid along its longest axis. The definition along the two remaining axes is then calculated internally to tend towards cubic cells. This is the default behavior with an expected definition set to 256.
Make htrdr‑combustion verbose.
laser_wavelength
Laser wavelength in nanometers, which is also the wavelength at which calculations are performed. Default is 532.

Images calculated by htrdr‑combustion are saved in htrdr-image(5) format. This section describes the nature and arrangement of image data depending on the type of calculation performed.

For a monochromatic image rendering, the expected value and the standard deviation of the pixel radiance (in W/sr/m^2) are saved on the first and the second components. All other components are unused excepted the seventh and eighth components that store the estimate of the radiative path computation time in microseconds and its standard error.

A flux density map (option -R) store on its first and second component the expected value and the standard error of the pixel radiative flux density (in W/m^2). All other components are unused excepted the seventh and eighth components that store the estimate of the radiative path computation time (in microseconds) and its standard error.

The htrdr‑combustion utility exits 0 on success, and >0 if an error occurs.

Make htrdr‑combustion verbose (option -v) and render an image of a combustion medium whose tetrahedral mesh is stored in tetra.smsh and whose associated thermodynamic properties are recorded in thermprops.atrtp. Refractive indices are listed in refract_ids.atrri. The laser's surface emission center is positioned at the origin and its direction aligned with the Y axis (option -l). The calculated image resolution is 800 by 600 pixels (option -i) and the monochromatic radiance of each pixel is estimated at 500 nanometers (option -w) with 64 Monte Carlo realisations (option -i). The resulting image is written to output unless the file already exists, in which case an error is notified, the program stops and the output file remains unchanged:

htrdr-combustion -v \
                 -m tetra.smsh \
                 -p thermprops.atrtp \
                 -r refract_ids.atrri \
                 -l pos=0,0,0:tgt=0,1,0:up=0,0,1:sz=0.001,0.2 \
                 -w 500 \
                 -C pos=0.6,0,0.1:tgt=0.5,0,0.1:up=0,0,1:fov=30 \
                 -i def=800x600:spp=64 \
                 -o output

Add a combustion chamber to the previous example (option -g): its mesh is defined in chamber.obj while its materials are listed in materials.mtls. Save the acceleration structure in octree.cache or reuse it if it has already been filled in a previous run with compatible input data. Set the finest resolution of this acceleration structure to 1000 voxels along the main extension of the medium (option -V) and use an optical thickness criterion of 5 to build it (option -T). Use the -f option to force overwriting of the output file if it exists, and use the -s option to accelerate rendering with available SIMD instruction sets:

htrdr-combustion -v \
                 -m tetra.smsh \
                 -p thermprops.atrtp \
                 -r refract_ids.atrri \
                 -g obj=chamber.obj:mats=materials.mtls \
                 -l pos=0,0,0:tgt=0,1,0:up=0,0,1:sz=0.001,0.2 \
                 -w 500 \
                 -C pos=0.6,0,0.1:tgt=0.5,0,0.1:up=0,0,1:fov=30 \
                 -i def=800x600:spp=64 \
                 -O octree.cache \
                 -V 1000 \
                 -T 5 \
                 -fo output \
                 -s

Calculate a flux density map (option -R). The sensor on which the flux density is calculated is a square with sides measuring 0.05 meters. Its center is placed at the origin and points towards the Z axis. The flux density map has a resolution of 500 by 500 pixels (option -i). The flux density per pixel is estimated with 64 realisations; the flux density for the entire sensor is therefore calculated with 16 million realizations (500*500*64):

htrdr-combustion -v \
                 -m tetra.smsh \
                 -p thermprops.atrtp \
                 -r refract_ids.atrri \
                 -l pos=0,0,0:tgt=0,1,0:up=0,0,1:sz=0.001,0.2 \
                 -w 500 \
                 -R pos=0,0,0:tgt=0,0,1:up=0,1,0:sz=0.05,0.05 \
                 -i def=500x500:spp=64 \
                 -O octree.cache \
                 -V 1000 \
                 -T 5 \
                 -fo map.txt
                 -s
Write a representation of the acceleratrion structure in accel_struct.vtk (option -d):
htrdr-combustion -v \
                 -m tetra.smsh \
                 -p thermprops.atrtp \
                 -r refract_ids.atrri \
                 -O octree.cache \
                 -d octree \
                 -o accel_struct.vtk

htrdr-atmosphere(1), atrri(5), atrtp(5), htrdr-image(5), htrdr-materials(5), htrdr-obj(5), smsh(5)

Morgan Sans, Mouna El Hafi, Vincent Eymet, Vincent Forest, Richard Fournier, and Najda Villefranque, Null-collision meshless Monte Carlo - A new reverse Monte Carlo algorithm designed for laser-source emission in absorbing/scattering inhomogeneous media, Journal of Quantitative Spectroscopy and Radiative Transfer, 271, https://doi.org/10.1016/j.jqsrt.2021.107725, 2021.

Jérôme Yon, Fengshan Liu, Alexandre Bescond, Chloé Caumont-Prim, Claude Rozé, François-Xavier Ouf, and Alexis Coppalle, Effects of multiple scattering on radiative properties of soot fractal aggregates, Journal of Quantitative Spectroscopy and Radiative Transfer, 133, https://doi.org/10.1016/j.jqsrt.2013.08.022, 374-381, 2014.

OpenMP Architecture Review Board, OpenMP C and C++ Application Interface, March 2002, version 2.0.

Message Passing Interface Forum, MPI-2: Extensions to The Message-Passing Interface, July 1997.

htrdr‑combustion has been developed as part of ANR-18-CE05-0015 Astoria project.

January 24, 2024 UNIX