stardis(1)

NAME

stardis - statistical solving of coupled thermal systems

SYNOPSIS

stardis [option]
stardis -M <file> [option]

DESCRIPTION stardis solves coupled thermal systems: conductive, convective and radiative transfers are solved together. The physical model used for conduction is the local unstationary heat conduction equation. Convection fluxes are assumed to be linear with temperature, and radiation is assumed to be integrated over the whole thermal spectral range, therefore radiative heat fluxes are proportionnal to a difference of temperatures to the power 4. stardis can deal with complex geometries as well as high-frequency external solicitations over a very long period of time, relative to the characteristic time of the system. The provided system description should comply with the stardis-input(5) format.

stardis can compute a thermal observable, like temperature or flux, at a probe point and date or the mean value of an observable over a given surface, volume, or time range. When a time range t1, t2 is provided, the computed value is the mean value over the time range. To compute the value at a given time, simply provide a single value t. In addition, stardis gives access to the evaluation of the propagator (a.k.a the Green function).

The propagator is of great value for thermicist engineers as it gives some crucial information to analyse heat transfers in the system. It helps engineers answer questions like "Where from does the heat come at this location?". Propagators seamlessly aggregate all the provided geometrical and physical information on the system in an unbiased and very-fast statistical model.

stardis(1) also provides two additional functionalities: converting the stardis-input(5) geometry into a VTK file and rendering an infrared image of the submitted system.

Stardis' algorithms are based on state-of-the-art Monte-Carlo method applied to radiative transfer physics (Delatorre [1]) combined with conduction's statistical formulation (Kac [2] and Muller [3]). Thanks to recent advances in computer graphics technology which has already been a game changer in the cinema industry (FX and animated movies), this theoretical framework can now be practically used on the most geometrically complex systems.

Monte-Carlo algorithms associated with convective and conductive processes consist in sampling heat paths: this can be seen as an extension of Monte-Carlo algorithms that solve monochromatic radiative transfer. The radiative transfer algorithm, based on the Picard method, is also based on sampling radiative paths. However, since stardis solves the spectrally integrated radiative transfer, the process can be recursive: secondary heat paths (convective, conductive and radiative) may be necessary along the sampling of an initial radiative path.

The solution may not be sufficiently converged with a Picard order equal to 1 in the presence of high temperature gradients. Increasing the Picard order may be necessary in this case, until the required convergence is reached.

A main property of this approach is that the resulting algorithms do not rely on a volumic mesh of the system: only the representation of interfaces is necessary.

stardis supports shared memory parallelism and relies on the Message Passing Interface specification [4] to parallelise its computations in a distributed memory environment; it can thus be run either directly or through a MPI process launcher like mpirun(1).

[1] Delatorre et al., Monte Carlo advances and concentrated solar applications, Solar Energy, 2014

[2] Kac, On Distributions of Certain Wiener Functionals. The Annals of Mathematical Statistics, 1949.

[3] Muller, Some continuous Monte-Carlo Methods for the Dirichlet Problem, Transactions of the American Mathematical Society, 1956.

[4] MPI specifications - https://www.mpi-forum.org/docs/

MANDATORY OPTIONS

-M file

Read a text file containing a possibly partial description of the system. Can include programs, media enclosures and boundary conditions. Media and boundaries can appear in any order, but programs must be defined before their first reference. Refer to stardis-input(5) for details. Can be used more than once if the description is split across different files.

EXCLUSIVE OPTIONS

-p x,y,z[,time[,time]]

Compute the temperature at the given probe at a given time. By default the compute time is INF. The probe must be in a medium. The probe coordinates must be in the same system as the geometry.

-P x,y,z[,time[,time]][:side_indicator]

Compute the temperature at the given probe on an interface at a given time. If the probe is on an interface where a thermal contact resistance is defined, it is mandatory to provide a side indicator (either FRONT, BACK, or a medium name), as the temperature differs between the two sides. By default the compute time is INF. The probe is supposed to be on an interface and is moved to the closest point of the closest interface before the computation starts. The probe coordinates must be in the same system as the geometry.

-m medium_name[,time[,time]]

Compute the mean temperature in a given medium at a given time. The medium name must be part of the system description. By default the compute time is INF. The medium region does not need to be connex.

-s file[,time[,time]]

Compute the mean temperature on a given 2D region at a given time, the region being defined as the front sides of the triangles in the provided STL file. By default the compute time is INF. These triangles are not added to the geometry, but must be part of it. The region does not need to be connex.

-S file[,time[,time]]

Compute the by-triangle mean temperature on a given 2D region at a given time, the region being defined as the front sides of the triangles in the provided STL file. These triangles are not added to the geometry, but must be part of it. By default the compute time is INF. The region does not need to be connex.

-F file[,time[,time]]

Compute the mean flux on a given 2D region at a given time, the region being defined as the front sides of the triangles in the provided STL file. These triangles are not added to the geometry, but must be part of it. Flux is accounted positive when going from the front side to the back side, at a single-triangle level. By default the compute time is INF. The region does not need to be connex, but it can currently only include geometry appearing in description lines starting with H_BOUNDARY_FOR_SOLID, H_BOUNDARY_FOR_FLUID, F_BOUNDARY_FOR_SOLID or SOLID_FLUID_CONNECTION (see stardis-input(5)).

-R [sub-option:...]

Render an infrared image of the system through a pinhole camera. One can use all-default sub-options by simply providing the colon character (:) alone as an argument. Please note that the camera position must be outside the geometry or in a fluid. Available sub-options are:

file=output_file

File name to use to write the infrared image to. If no file name is provided, the result is written to standard output.

fmt=image_file_format

Format of the image file in output. Can be VTK, or HT (see htrdr-image(5) and htpp(1)). Default image_file_format is HT.

fov=angle

Horizontal field of view of the camera in [30, 120] degrees. By default angle is 70 degrees.

img=widthxheight

Definition of the rendered image in pixels. By default the image definition is 640x480.

pos=x,y,z

Position of the camera. By default it is set to { 1, 1, 1 } or it is automatically computed to ensure that the whole scene is visible, whether tgt is set or not, respectively.

spp=samples-count

Number of samples per pixel. By default, use 4 samples per pixel.

t=time[,time]

Rendering time. By default the rendering time is INF, INF.

tgt=x,y,z

Position targeted by the camera. By default, it is set to { 0, 0, 0 } or it is automatically computed to ensure that the whole scene is visible, whether pos is set or not, respectively.

up=x,y,z

Up vector of the camera. By default, it is set to { 0, 0, 1 }.

OTHER OPTIONS

-d

Write the geometry to standard output in VTK format along with various properties, including possible errors. If this option is used, no computation occurs.

Using this option in conjunction with an option that specifies a compute region (-F, -S, -s) has the effect to include the region in the output. This option cannot be used in conjunction with other options that write to standard output (-g, -h, -R, -v).

-D type,files_name_prefix

Write sampled heat paths of the given type to files in VTK format, one file per path. Possible values for type are error (write paths ending in error), success (write successful paths), and all (write all paths). Actual file names are produced by appending files_name_prefix and the path rank starting at index 00000000, and possibly followed by _err for failure paths: prefix00000000.vtk, prefix00000001_err.vtk, ...

This option can only be used in conjunction with options that compute a result (-F, -m, -P, -p, -R, -S, -s) and cannot be used in conjunction with options -g or -G.

-e

Use extended format to output Monte-Carlo results. Can only be used in conjunction with options that compute a single Monte-Carlo (-F, -m, -P, -p, or -s without options -g or -G).

-g

Compute the Green function at the specified time and write it in ASCII to standard output.

This option can only be used in conjunction with one these options: -p, -P, -m, -s and cannot be used in conjunction with option -D.

-G file_name[,file_name]

Compute the Green function at the specified time and write it to a binary file. If a second file name is provided, information on heat paths' ends is also written in this second file in ascii csv format.

This option can only be used in conjunction with one these options: -p, -P, -m, -s and cannot be used in conjunction with option -D.

The resulting file can be further used through the sgreen(1) command to apply different temperature, flux or volumic power values.

-h

Output short help and exit.

-n samples-count

Number of Monte-Carlo samples. By default samples-count is set to 10000.

-o Picard_order

Determine the iteration level used with the Picard method to deal with non-linear radiative transfer accross the model. By default Picard_order is set to 1. Note that a Picard order greater than 1 is incompatible both with Green computations and models including volumic power sources or non zero flux at a boundary.

-t threads-count

Hint on the number of threads to use. By default use as many threads as CPU cores.

-v

Output version information and exit.

-V level

Set the verbosity level. Possible values are 0 (no message), 1 (error messages only), 2 (error and warning messages), and 3 (error, warning and informative messages). All the messages are written to standard error. Default verbosity level is 1.

-x file_name

Read the provided file and use its content to initialize the random generator's internal state. Used in conjunction with the -X option, this can be used to ensure statistical independence between subsequent computations.

-X file_name

Write the random generator's internal state, as it is at the end of the computation, to the provided file.

EXAMPLES

Preprocess the system as described in scene 5.txt when intending to compute the mean flux on the triangles from the file edge.stl, and write its geometry in the file scene.vtk. Verbosity level is set to 3:

$ stardis -M "scene 5.txt" -F edge.stl -d -V 3 > scene.vtk

Compute the temperature at the probe point 0, 0.5, 0 at steady state. The system is read from the file model.txt and the number of samples is set to 1000000:

$ stardis -M model.txt -p 0,0.5,0 -n 1000000

Compute the mean temperature in the medium med05 at t=100 s. The system is read from the file model.txt and the result is output with extended format:

$ stardis -M model.txt -m med05,100 -e

Compute the temperature at the probe point 0, 0, 0 at t=2500. The system is read from the 2 files media.txt and bounds.txt and the number of samples is set to 1000000:

$ stardis -M media.txt -M bounds.txt -p 0,0,0,2500 -n 1000000

Compute the mean temperature at the probe point 1, 2.5, 0 over the 50, 5000 time range. The system is read from the file model.txt:

$ stardis -M model.txt -p 1,2.5,0,50,5000

Compute 3 probe temperatures, ensuring statistical independence:

$ stardis -M model.txt -p 1,1.5,0,50,5000 -Xstate1
$ stardis -M model.txt -p 1,2.5,0,50,5000 -xstate1 -Xstate2
$ stardis -M model.txt -p 1,3.5,0,50,5000 -xstate2

Use mpirun(1) to launch stardis on several hosts defined in the my_hosts file. Render the system as described in scene.txt with default settings:

$ mpirun --hostfile my_hosts stardis -M scene.txt -R :

Render the system as described in scn.txt at t=100, spp=2, img=800x600, with output format fmt=ht and all other settings set to their default values. The output is redirected to the img.ht file. If the computation encounters erroneous heat paths, they will be dumped to VTK files named err_path_00000000.vtk, err_path_00000001.vtk, etc. The image file is then post-processed using htpp(1) with default settings to obtain a png file.

$ stardis -M scn.txt -R t=100:spp=2:img=800x600:fmt=ht \
  -D error,err_path_ > img.ht
$ htpp -o img.pgn -v -m default img.ht

Compute the Green function that computes the temperature at the probe point 0, 0, 0 at steady state. The system is read from the file model.txt and the Green function is written to the probe.green file and the heat paths' ends are written to the probe_ends.csv file:

$ stardis -M model.txt -p 0,0,0 -G probe.green,probe_ends.csv

COPYRIGHT

Copyright © 2018-2023 |Méso|Star>. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html. This is free software. You are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

stardis-input(5), stardis-output(5), sgreen(1), htpp(1) htrdr-image(5) mpirun(1)