commit 15d10702fb515e19e305f4f03d4018ba2d2d0128
parent f4ff91a2724dc3df287cb2f269e1980eb401be9b
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Sun, 28 Apr 2024 16:16:02 +0200
stardis: releasing new versions
These are major versions with several changes:
- Stardis Version 0.15.2
- Stardis 0.10.1
- Stardis Green 0.5
The overview has been updated accordingly. For example, two conduction
algorithms are now available. The build procedure has also been
completely rewritten, since it is now based on POSIX make rather than
CMake. Finally, the manual pages are provided in mdoc and are therefore
directly converted to HTML by mandoc.
The presentation has been slightly modified. Instead of using
subsections to list solver features and tools, they are now listed
directly. This makes it clearer that each entry is an element of a set.
In addition, some lists enumerate one or more paragraphs. This increases
the structural possibilities of each entry while improving readability
by adding a line break between each entry.
This is particularly true of related articles, for which we now provide
a link to the open-access version. Since then, without the
aforementioned line break, the list was far too compact.
Please note that the Stardis-0.15.2 archive contains only the resources
needed to generate the web pages, i.e. the README files and the manual
pages. Up to now, the archive has been a complete version of no use at
all, since it was no longer supplied as a download.
Diffstat:
5 files changed, 300 insertions(+), 245 deletions(-)
diff --git a/stardis/Makefile b/stardis/Makefile
@@ -16,22 +16,16 @@
include ../config.mk
-STARDIS_VERSION=0.14.0
+SOLVER_VERSION=0.15.2
+STARDIS_VERSION=0.10.1
+SGREEN_VERSION=0.5.1
STARTER_PACK_VERSION=0.2.0
-STARDIS_DIR=Stardis-$(STARDIS_VERSION)-GNU-Linux64
+STARDIS_DIR=Stardis-$(SOLVER_VERSION)-GNU-Linux64
STARDIS_ARCH=downloads/$(STARDIS_DIR).tar.gz
STARDIS_README=$(STARDIS_DIR)/share/doc/stardis/README.md
-STARDIS_GREEN_README=$(STARDIS_DIR)/share/doc/sgreen/README.md
+STARDIS_GREEN_README=$(STARDIS_DIR)/share/doc/stardis-green/README.md
STARDIS_SOLVER_README=$(STARDIS_DIR)/share/doc/stardis-solver/README.md
-STARDIS_PKG=\
- ./downloads/Stardis-0.11.0-r1-Sources.tar.gz\
- ./downloads/Stardis-0.11.0-r1-GNU-Linux64.tar.gz\
- ./downloads/Stardis-0.12.3-Sources.tar.gz\
- ./downloads/Stardis-0.12.3-GNU-Linux64.tar.gz\
- ./downloads/Stardis-0.13.1-Sources.tar.gz\
- ./downloads/Stardis-0.13.1-GNU-Linux64.tar.gz
-STARDIS_SIG=$(STARDIS_PKG:=.sig)
STARTER_PACK_DIR=Stardis-Starter-Pack-$(STARTER_PACK_VERSION)
STARTER_PACK_ARCH=downloads/$(STARTER_PACK_DIR).tar.gz
@@ -114,7 +108,6 @@ clean:
distclean: clean
@echo "Cleaning PGP signatures and extracted files"
@rm -f \
- $(STARDIS_SIG)\
$(STARTER_PACK_SIG)\
$(STARDIS_ARCH_FILES)\
$(STARTER_PACK_README)
@@ -125,8 +118,6 @@ install: build
$(OVERVIEW_IMG)\
$(CONSORTIUM_IMG)\
$(STARTER_PACK_IMG)\
- $(STARDIS_PKG)\
- $(STARDIS_SIG)\
$(STARTER_PACK_PKG)\
$(STARTER_PACK_SIG)\
$(VALIDATION_IMG)\
@@ -141,7 +132,8 @@ stardis_build.sh: ../meso-menu.sh
################################################################################
stardis.html: stardis.html.in $(OVERVIEW_IMG) stardis_build.sh Makefile
@echo "Building $@"
- @$(SHELL) stardis_build.sh overview $(STARDIS_VERSION) > $@
+ @$(SHELL) stardis_build.sh overview \
+ $(SOLVER_VERSION) $(STARDIS_VERSION) $(SGREEN_VERSION) > $@
################################################################################
# Validation web page
@@ -226,7 +218,7 @@ lint_shells:
################################################################################
.sig: Makefile ../configure_targets.sh
@echo "Setup .sig"
- @$(SHELL) ../configure_targets.sh sig $(STARDIS_PKG) $(STARTER_PACK_PKG) > .sig
+ @$(SHELL) ../configure_targets.sh sig $(STARTER_PACK_PKG) > .sig
.lint: Makefile ../configure_targets.sh
@echo "Setup .lint"
@@ -234,4 +226,4 @@ lint_shells:
.man: Makefile ../configure_targets.sh
@echo "Setup .man"
- @$(SHELL) ../configure_targets.sh man Stardis $(STARDIS_VERSION) $(MAN) > .man
+ @$(SHELL) ../configure_targets.sh mdoc Stardis $(MAN) > $@
diff --git a/stardis/downloads/Stardis-0.15.2-GNU-Linux64.tar.gz b/stardis/downloads/Stardis-0.15.2-GNU-Linux64.tar.gz
@@ -0,0 +1 @@
+#$# git-wad fba3b20154209550554f974cb2737eca3d96cc66eafe807a406ba920a14155f6 33915
+\ No newline at end of file
diff --git a/stardis/release-notes.html.in b/stardis/release-notes.html.in
@@ -7,7 +7,7 @@
</header>
<ul>
- <li><a href=stardis-release-notes.html>Stardis CLI</a></li>
- <li><a href=sgreen-release-notes.html>Stardis Green</a></li>
<li><a href=stardis-solver-release-notes.html>Stardis Solver</a></li>
+ <li><a href=stardis-release-notes.html>Stardis</a></li>
+ <li><a href=sgreen-release-notes.html>Stardis Green</a></li>
</ul>
diff --git a/stardis/stardis.html.in b/stardis/stardis.html.in
@@ -1,29 +1,42 @@
<header>
<h1>Stardis
<span class=subtitle>
- The Monte-Carlo framework for coupled thermal problems
+ The Monte Carlo framework for coupled thermal problems
</span>
</h1>
</header>
<div class="news">
- <p><b>Stardis ${VERSION} is available</b></p>
+ <p><b>Last available versions</b></p>
<ul>
- <li>Build from sources:
- <a href=https://gitlab.com/meso-star/star-engine/tree/Stardis-${VERSION}>
- git</a>
+ <li>
+ Stardis Solver
+ <a href="https://gitlab.com/meso-star/stardis-solver/-/tree/@SOLVER_VERSION@">
+ @SOLVER_VERSION@
+ </a>
+ </li><li>
+ Stardis
+ <a href="https://gitlab.com/meso-star/stardis/-/tree/@STARDIS_VERSION@">
+ @STARDIS_VERSION@
+ </a>
+ </li><li>
+ Stardis Green
+ <a href="https://gitlab.com/meso-star/stardis-green/-/tree/@SGREEN_VERSION@">
+ @SGREEN_VERSION@
+ </a>
</li>
</ul>
+ <a href="#build">Install</a> from source
</div>
<p>Stardis is a <b>thermal simulation</b> framework for <b>complex 2D and 3D
-environments</b>, based on new <b>Monte-Carlo</b> algorithms built from
+environments</b>, based on new <b>Monte Carlo</b> algorithms built from
reformulations of the main heat transfer phenomena: conduction, convection and
radiation. A set of cross-recursive algorithms have then been derived, and
result in the simulation of "<b>thermal paths</b>" that explore space and time
until a boundary condition or an initial condition is found. The key concept
here is that heat transfer phenomena are not considered separately but are
-<b>naturally coupled</b> via the cross-recursion of the various Monte-Carlo
+<b>naturally coupled</b> via the cross-recursion of the various Monte Carlo
algorithms.</p>
<div class="news">
@@ -49,81 +62,97 @@ purposes:</p>
<div class="news">
<p><b>Related articles</b></p>
<ul>
- <li>
+ <li><p>
<a href="https://doi.org/10.1016/j.ijheatmasstransfer.2023.125139">
Caliot et al.</a>
<br>(IJHMT 2024)
- </li>
- <li>
+ <br><a href="https://hal.science/hal-04251373">open access</a>
+ </p></li>
+ <li><p>
<a href="https://doi.org/10.1016/j.cpc.2023.108911">Penazzi et al.</a>
<br>(Computer Physics Communications 2024)
- </li>
- <li>
+ <br><a href="https://hal.science/hal-04204702v2">open access</a>
+ <br>
+ </p></li>
+ <li><p>
<a href="https://dx.doi.org/10.1145/3592121">Bati et al.</a>
<br>(SIGGRAPH 2023)
- </li>
- <li>
+ <br><a href="https://hal.science/hal-04090428">open access</a>
+ </p></li>
+ <li><p>
<a href="https://doi.org/10.1371/journal.pone.0283681">Tregan et al.</a>
<br>(PLOS ONE 2023)
- </li>
- <li>
+ <br><a href="https://hal.science/hal-03819157">open access</a>
+ </p></li>
+ <li><p>
<a href="https://doi.org/10.1126/sciadv.abp8934">Villefranque et al.</a>
<br>(Science Advances 2022)
- </li>
+ <br><a href="https://arxiv.org/abs/2204.14227">open access</a>
+ </p></li>
</ul>
</div>
<ul>
- <li><b>Probe computation</b>: Stardis will <u>not</u> compute the full
- temperature field of a system; instead, it can be used to focus on a
- specific spatial/temporal zone of the system.</li>
-
- <li><b>Reference method</b>: the numerical uncertainty is a unique
- feature of stochastic methods. It can be reduced using a reformulation of the
- underlying integral for specific problems, and possibly using better suited
- sampling techniques. Ultimately, the numerical uncertainty can also be
- reduced by increasing the number of statistical samples. Any value of
- temperature (or flux) computed by Stardis must agree with the values computed
- by other tools, within the uncertainty range (and also within the limits of
- validity of the various <a href="#solver">assumptions</a> used to derive
- the Monte-Carlo algorithms used in Stardis). This can prove very useful in
- order to validate any result obtained by any thermal solver in a case when no
- analytic solution is available or when a physical intuition is impossible to
- achieve due to the complexity of the problem.</li>
-
- <div class="img" style="width: 18em">
- <a href="foam_path.jpg"><img src="foam_path.jpg" alt="foam_path"></a>
- <div class="caption">
- Example of conductive path sampled by Stardis in a foam geometry: it starts
- from the probe position (green point) and after several diffusive steps
- reaches a boundary condition (red point).
+ <li><p>
+ <b>Probe computation</b>:
+ Stardis will <u>not</u> compute the full temperature field of a system;
+ instead, it can be used to focus on a specific spatial/temporal zone of the
+ system.
+ </p></li>
+ <li><p>
+ <b>Reference method</b>:
+ the numerical uncertainty is a unique feature of stochastic methods. It can
+ be reduced using a reformulation of the underlying integral for specific
+ problems, and possibly using better suited sampling techniques.
+ Ultimately, the numerical uncertainty can also be reduced by increasing the
+ number of statistical samples.
+ Any value of temperature (or flux) computed by Stardis must agree with the
+ values computed by other tools, within the uncertainty range (and also
+ within the limits of validity of the various
+ <a href="#hypothesis">assumptions</a> used to derive the Monte Carlo algorithms
+ used in Stardis).
+ This can prove very useful in order to validate any result obtained by any
+ thermal solver in a case when no analytic solution is available or when a
+ physical intuition is impossible to achieve due to the complexity of the
+ problem.
+ </p></li>
+ <li>
+ <div class="img" style="width: 18em">
+ <a href="foam_path.jpg"><img src="foam_path.jpg" alt="foam_path"></a>
+ <div class="caption">
+ Example of conductive path sampled by Stardis in a foam geometry: it starts
+ from the probe position (green point) and after several diffusive steps
+ reaches a boundary condition (red point).
+ </div>
</div>
- </div>
-
- <li><b>Educational purposes</b>: since the various probability sets used by
- the underlying Monte-Carlo algorithms solely rely on the physics, thermal
- paths naturally explore the spatial and temporal zones of interest in the
- system. This can be a drawback in some situations (the paths will have a
- hard time exiting a highly conductive solid surrounded by non-conductive
- media) but is a major asset for the <a href="#visu">direct visualization</a>
- of what contributes to a given result: the main sources of heat, what
- transfer modes are dominant, what are the main paths of heat transfer,
- <i>etc.</i></li>
-
- <li><b>Sensitivity analysis</b>: the <a href="#green">Green functions</a> of
- the system (estimated and stored during an initial Monte-Carlo computation)
- can be reused for subsequent (very fast) post-processing computations. This
- makes possible to explore the sensitivity of any given result to the
- variations of a boundary or initial condition, or internal power source. This
- technique is only a small part of a family of so-called "symbolic"
- Monte-Carlo algorithms that extend the scope of sensitivity analysis to any
- thermal parameter (for instance: the conductivity of a given solid, a
- convective exchange coefficient or the emissivity of a solid).</li>
+ <p>
+ <b>Educational purposes</b>:
+ since the various probability sets used by the underlying Monte Carlo
+ algorithms solely rely on the physics, thermal paths naturally explore the
+ spatial and temporal zones of interest in the system.
+ This can be a drawback in some situations (the paths will have a hard time
+ exiting a highly conductive solid surrounded by non-conductive media) but is
+ a major asset for the <a href="#visu">direct visualization</a> of what
+ contributes to a given result: the main sources of heat, what transfer modes
+ are dominant, what are the main paths of heat transfer, <i>etc.</i>
+ </p></li>
+ <li><p>
+ <b>Sensitivity analysis</b>:
+ the <a href="#green">Green functions</a> of the system (estimated and stored
+ during an initial Monte Carlo computation) can be reused for subsequent
+ (very fast) post-processing computations.
+ This makes possible to explore the sensitivity of any given result to the
+ variations of a boundary or initial condition, or internal power source.
+ This technique is only a small part of a family of so-called "symbolic"
+ Monte Carlo algorithms that extend the scope of sensitivity analysis to any
+ thermal parameter (for instance: the conductivity of a given solid, a
+ convective exchange coefficient or the emissivity of a solid).
+ </p></li>
</ul>
<p>The Stardis framework is structured around <b>two main components</b>. The
first one, <a href="#solver">Stardis-Solver</a>, is the core library that
-implements the Monte-Carlo algorithms. The second one is the <a
+implements the Monte Carlo algorithms. The second one is the <a
href="#cli">Stardis application</a>, a command line tool that can be seen as a
reference implementation of a complete workflow relying on Stardis-Solver, from
input data describing the system to simulate (geometry, thermal properties,
@@ -138,7 +167,7 @@ post-processing. See below for more information on each of these components.</p>
Infrared timelapse animation of a chip and its heatsink covering a 14-second
period of time. Computed using the stardis infrared rendering feature, one
image per simulated second. Acknowledgment to
- <a href=https://www.imt-mines-albi.fr/fr/lea-penazzi>Léa Penazzi</a> and
+ Léa Penazzi and
<a href=https://www.icam.fr/enseignant-chercheur/anne-castelan/>Anne
Castelan</a> for the scene geometry (also available in <a
href=starter-pack.html>Stardis: Starter Pack</a>) actually used in an
@@ -168,32 +197,57 @@ projects:</p>
France R&D.
</ul>
-<p>The coupled Monte-Carlo algorithms implemented into Stardis-Solver are based
-on the following hypothesis:</p>
+<p id="hypothesis">
+The coupled Monte Carlo algorithms implemented into Stardis-Solver are based on
+the following hypothesis:
+</p>
<ul>
- <li><b>Conduction</b>: the discretization of thermal heat transfer in solids
- introduces the notion of a conductive <b>path length</b> within the
- Monte-Carlo algorithm. Solutions obtained using this algorithm are formally
- exact at the limit of a null path length. In practice, this path length has
- to be adapted, at the individual solid level, so that its value is small
- compared to the typical length of the solid.</li>
-
- <li><b>Convection</b>: fluid media are supposed to be <b>isothermal</b>, even if
- their temperature may vary with time. This hypothesis relies on the
- assumption of perfectly agitated fluids.</li>
-
- <li><b>Radiation</b>: local radiative transfer is solved by an <a
+ <li><p>
+ <b>Conduction</b>:
+ Stardis-Solver offers two ways of sampling unsteady Brownian motion to solve
+ for conductivity in a solid.
+ The <a href="https://doi.org/10.1371/journal.pone.0283681"> delta sphere
+ algorithm</a> is based on the discrimination of thermal heat transfer in
+ solids, which introduces the notion of conductive path length.
+ Solutions obtained using this algorithm are formally exact to the limit of
+ zero path length.
+ In practice, this path length must be adapted to a given geometrical
+ configuration so that its value is small compared to the smallest typical
+ space-time length of a solid.
+ </p><p>
+ As an alternative, the <a href="https://www.jstor.org/stable/2237369">Walk on
+ Sphere</a> algorithm samples an unbiased diffuse trajectory in a solid with
+ Dirichlet boundary conditions, unbiased with respect to what numerical
+ accuracy can account for.
+ Its coupling with other boundary or connection conditions behaves as with the
+ delta sphere algorithm, i.e. the solution is exact when the length of the
+ trajectory used as a first-order approximation tends towards 0.
+ </p></li>
+
+ <li><p>
+ <b>Convection</b>:
+ fluid media are supposed to be <b>isothermal</b>, even if their temperature
+ may vary with time.
+ This hypothesis relies on the assumption of perfectly agitated fluids.
+ </li>
+
+ <li><p>
+ <b>Radiation</b>:
+ local radiative transfer is solved by an <a
href="https://hal.archives-ouvertes.fr/tel-03266863/">iterative numerical
method</a> (Picard algorithm) that requires the knowledge of a reference
- temperature field. At the basic level (one level of recursion), and using a
- uniform reference temperature field, this algorithm translates into the
- hypothesis of a linearized radiative transfer. Using a higher order or
- recursion makes possible to converge the result closer to the solution of a
- rigorous spectrally-integrated radiative transfer (a difference of
- temperatures to the power 4 when integrated over the whole spectrum). The
- higher the recursion order, the better will be the convergence of the
- algorithm.</li>
+ temperature field.
+ At the basic level (one level of recursion), and using a uniform reference
+ temperature field, this algorithm translates into the hypothesis of a
+ linearized radiative transfer.
+ Using a higher order or recursion makes possible to converge the result closer
+ to the solution of a rigorous spectrally-integrated radiative transfer (a
+ difference of temperatures to the power 4 when integrated over the whole
+ spectrum).
+ The higher the recursion order, the better will be the convergence of the
+ algorithm.
+ </p></li>
</ul>
@@ -201,16 +255,15 @@ on the following hypothesis:</p>
<a href="plot_insensib_MC.jpg"><img src="plot_insensib_MC.jpg" alt="plot_insensib_MC"></a>
<div class="caption">
Stardis computation time as function of geometrical refinement. Both the
- standard Monte-Carlo computation and the Green function construction and
+ standard Monte Carlo computation and the Green function construction and
usage are insensitive. In this example, once constructed, <b>using the Green
function with any new set of sources is 10<sup>3</sup> times faster than
- Monte-Carlo</b>.
+ Monte Carlo</b>.
</div>
</div>
-
-<p>The remaining of this section describes the main functionalities provided by
-Stardis-Solver upon the aforementioned hypothesis.</p>
+<p>The main functionalities provided by Stardis-Solver upon the aforementioned
+hypothesis are as follows:</p>
<div class="img" style="width: 18em;">
<a href="step.svg"><img src="step.svg" alt="step"></a>
@@ -220,65 +273,80 @@ Stardis-Solver upon the aforementioned hypothesis.</p>
Temporal dynamics analysis of a solid cube which has temperatures imposed on
its left and right sides, and has adiabatic boundaries elsewhere. The
center temperature is the result of a simple postprocess of a <b>single
- Monte-Carlo computation</b>.
+ Monte Carlo computation</b>.
</div>
</div>
-<h3>Probe computation</h3>
-
-<p>Stardis-Solver computes the temperature at any given position (spatial and
-temporal). The main idea is that thermal paths start from this probe position,
-and scatter in space while going back in time, until a (spatial) boundary
-condition or a (temporal) initial condition is met. In addition to the value of
-temperature, using a Monte-Carlo method makes it possible to compute a <b>numerical
-uncertainty</b> (standard deviation of the weight distribution) over each
-result.</p>
-
-<h3>Flux computation</h3>
-
-<p>Stardis-Solver can compute the flux over any surface (or group of surfaces)
-at any time. Alternatively, it can also compute the total energy output from a
-solid element where an internal source of power must be taken into account.</p>
-
-<h3 id="green">Green function</h3>
-
-<p>The value of temperature computed at a probe position is no more than the
-mean of the Monte-Carlo weights of a set of thermal paths. In practice: when no
-internal power source has to be considered, the weight of any given thermal
-path is the temperature of the boundary or initial condition that has been
-reached; when internal power sources or imposed fluxes are taken into account,
-additional contributions to the weight must be continuously evaluated by the
-thermal conduction algorithm, but these contributions are proportional to the
-local dissipated power and imposed flux.</p>
-
-<p>In any case, the position and date at the end of each thermal path (and also
-accumulation coefficients) can be stored during a first complete Monte-Carlo
-simulation. This information, known as the Green function, can then be used in a
-(very fast) post-processing step to compute all required results for different
-boundary and initial conditions (and also different internal power
-sources and imposed flux).</p>
-
-<h3>Infrared rendering</h3>
-<p>Stardis can render a scene in infrared without prior knowledge of the
-temperature field. Thermal paths that start at the camera in radiative mode
-propagate through the model, possibly in conductive, convective or radiative
-mode until reaching a boundary condition (or an initial condition in a
-non-stationary case).</p>
-
-<h3 id="temporal">Temporal dynamics analysis</h3>
-
-<p>Stardis-Solver can output the end of each path sampled during a Monte-Carlo
-computation, including position, elapsed time, and boundary/medium ID. This
-not only allows to weight the contribution of each boundary or initial
-condition to the result, but also gives the temporal dynamics of these
-contributions.</p>
-
-<h3 id="visu">Thermal path visualization</h3>
-
-<p>Stardis-Solver can output the complete history of a set of thermal paths for
-later visualization. In addition to positions and dates, physics data is stored
-along thermal paths, such as the type of heat transfer phenomenon involved at
-each step, the accumulated power and flux, etc.</p>
+<ul>
+ <li><p>
+ <b>Probe computation</b>:
+ Stardis-Solver computes the temperature at any given position (spatial and
+ temporal).
+ The main idea is that thermal paths start from this probe position, and
+ scatter in space while going back in time, until a (spatial) boundary
+ condition or a (temporal) initial condition is met.
+ In addition to the value of temperature, using a Monte Carlo method makes it
+ possible to compute a <b>numerical uncertainty</b> (standard deviation of
+ the weight distribution) over each result.
+ </p></li>
+ <li><p>
+ <b>Integrated calculation</b>:
+ thanks to Monte Carlo, Stardis-Solver can calculate the temperature of an
+ entire volume or surface, over a given time range, without increasing
+ calculation time or uncertainty compared with a probe-based calculation at a
+ specific point in time.
+ </p></li>
+ <li><p>
+ <b>Flux computation</b>:
+ Stardis-Solver can compute the flux over any surface (or group of surfaces)
+ at any time.
+ Alternatively, it can also compute the total energy output from a solid
+ element where an internal source of power must be taken into account.
+ </p></li>
+ <li><p id="green">
+ <b>Green function</b>:
+ the value of temperature computed at a probe position is no more than the mean
+ of the Monte Carlo weights of a set of thermal paths.
+ In practice: when no internal power source has to be considered, the weight of
+ any given thermal path is the temperature of the boundary or initial condition
+ that has been reached; when internal power sources or imposed fluxes are taken
+ into account, additional contributions to the weight must be continuously
+ evaluated by the thermal conduction algorithm, but these contributions are
+ proportional to the local dissipated power and imposed flux.
+ </p><p>
+ In any case, the position and date at the end of each thermal path (and also
+ accumulation coefficients) can be stored during a first complete Monte Carlo
+ simulation.
+ This information, known as the Green function, can then be used in a (very
+ fast) post-processing step to compute all required results for different
+ boundary and initial conditions (and also different internal power sources
+ and imposed flux).
+ </p></li>
+ <li><p>
+ <b>Infrared rendering</b>:
+ Stardis can render a scene in infrared without prior knowledge of the
+ temperature field.
+ Thermal paths that start at the camera in radiative mode propagate through the
+ model, possibly in conductive, convective or radiative mode until reaching a
+ boundary condition (or an initial condition in a non-stationary case).
+ </p></li>
+ <li><p id="temporal">
+ <b>Temporal dynamics analysis</b>
+ Stardis-Solver can output the end of each path sampled during a Monte Carlo
+ computation, including position, elapsed time, and boundary/medium ID.
+ This not only allows to weight the contribution of each boundary or initial
+ condition to the result, but also gives the temporal dynamics of these
+ contributions.
+ </p></li>
+ <li><p id="visue">
+ <b>Thermal path visualization</b>
+ Stardis-Solver can output the complete history of a set of thermal paths for
+ later visualization.
+ In addition to positions and dates, physics data is stored along thermal
+ paths, such as the type of heat transfer phenomenon involved at each step,
+ the accumulated power and flux, <i>etc.</i>
+ </p></li>
+</ul>
<h2 id="cli">Stardis CLI tools</h2>
@@ -289,95 +357,94 @@ href="man/man1/sgreen.1.html">sgreen</a>,
to use along with Stardis-Solver. They make it easy to exploit the features of
the solver.</p>
-<h3 id="stardis-cli">The stardis CLI</h3>
-
-<p>The main CLI tool of the Stardis framework is <b>stardis</b>. It is a
-barebone front-end to the stardis solver. Depending on the provided command
-line arguments, it simulates a thermal system described through a simple text
-file and geometry files and produces various types of output, from simple
-Monte-Carlo results to infrared images or Green functions. Refer to its <a
-href="man/man1/stardis.1.html">manual page</a> page for more informations.</p>
-
-<h3 id="sgreen-cli">The sgreen CLI</h3>
-
-<p>The only purpose of <b>sgreen</b> is to post-process binary green-function
-files produced by the stardis CLI. It allows to apply a set of values to the
-initial and boundary conditions as well as the power and flux sources of the
-model to produce the same result a new simulation would produce. The obvious
-benefit of using the sgreen post-process instead of a new Monte-Carlo
-simulation is the tremendous improvement on computation time. Refer to its <a
-href="man/man1/sgreen.1.html">manual page</a> page for more informations.</p>
+<ul>
+ <li><p id="stardis-cli">
+ <b>stardis</b>:
+ it is the main CLI tool of the Stardis framework.
+ It is a barebone front-end to the stardis solver.
+ Depending on the provided command line arguments, it simulates a
+ thermal system described through a simple text file and geometry
+ files and produces various types of output, from simple Monte Carlo
+ results to infrared images or Green functions.
+ Refer to its <a href="man/man1/stardis.1.html">manual page</a> page
+ for more informations.
+ </p></li>
+ <li><p id="sgreen-cli">
+ <b>sgreen</b>:
+ the purpose of <code>sgreen</code> is to post-process binary
+ green-function files produced by <code>stardis</code>.
+ It allows to apply a set of values to the initial and boundary
+ conditions as well as the power and flux sources of the model to
+ produce the same result a new simulation would produce.
+ The obvious benefit of using the <code>sgreen</code> post-process
+ instead of a new Monte Carlo simulation is the tremendous
+ improvement on computation time.
+ Refer to its <a href="man/man1/sgreen.1.html">manual page</a> page
+ for more informations.
+ </p></li>
+</ul>
<h2 id=build>Installation</h2>
<p>The installation of Stardis consists of compiling the solver and the command
-line tools directly on the target machine. The easiest way is to use the
-<code>stardis</code> branch of the <a
-href="https://gitlab.com/meso-star/star-engine/tree/stardis">Star-Engine</a>
-project: it provides CMake scripts that automate the download, the compilation
-and deployment of the Stardis framework. This build procedure assumes the
-following prerequisites:</p>
+line tools directly on the target machine.
+A simple way is to rely on
+<a href="https://gitlab.com/meso-star/star-build/">star-build</a>,
+which automates the build and installation of the Stardis framework.</p>
+
+<h3>Prerequisites</h3>
+
+<p>To build Stardis with <code>star-build</code>, first make sure your system
+has the following prerequisites:</p>
<ul>
- <li><a href=https://git-scm.com>git</a> source control.</li>
- <li><a href=https://gcc.gnu.org>GNU Compiler Collection</a> in version 7
- or higher.</li>
- <li><a href="https://cmake.org">CMake</a> in version 3.1 or higher.</li>
- <li><a href="https://www.open-mpi.org/">OpenMPI</a> 2 or higher if
- distributed memory parallelism is enabled via the <code>ENABLE_MPI</code>
- variable of the build system.</li>
- <li>Optionally, the <a href=https://asciidoc.org/>AsciiDoc</a>
- tool suite to generate the man pages of the reference documentation.</li>
+ <li>POSIX shell</li>
+ <li>POSIX make</li>
+ <li>curl</li>
+ <li>git</li>
+ <li>mandoc</li>
+ <li>pkg-config</li>
+ <li>sha512sum</li>
+ <li>GNU Compiler Collection in version 8.3 or higher</li>
+ <li>OpenMPI library and headers in version 2 or higher (optional)</li>
</ul>
<h3>Build</h3>
-<p>Assuming that the aforementioned prerequisites are available, the build
-procedure is summed up to:</p>
+<p>Assuming that the aforementioned prerequisites are available, the
+build procedure is summed up to:</p>
<pre class="code">
-~ $ git clone -b Stardis-${VERSION} \
- https://gitlab.com/meso-star/star-engine.git Stardis-${VERSION}
-~ $ mkdir Stardis-${VERSION}/build; cd Stardis-${VERSION}/build
-~/Stardis-${VERSION}/build $ cmake ../cmake -DDEPLOY_STARDIS_CLI=ON -DENABLE_MPI=ON
-~/Stardis-${VERSION}/build $ make
+~ $ git clone https://gitlab.com/meso-star/star-build.git
+~ $ cd star-build
+~/star-build $ make PREFIX=~/stardis BUILD=src/stardis_@STARDIS_VERSION@.sh
</pre>
-<p>Note that on CMake configuration step, we define the variables
-<code>DEPLOY_STARDIS_CLI</code> and <code>ENABLE_MPI</code> to enable the
-installation of the Stardis CLI tools and support for distributed parallelism
-via MPI.</p>
-
-<p>By default Stardis is installed in the <code>local</code> subdirectory of
-<code>Stardis-${VERSION}</code>.
-
-<h3>Run</h3>
+<p>With <code>PREFIX</code> defining the path where Stardis will be installed
+and <code>BUILD</code> defining the installation script to be run.</p>
-<p>Before running stardis, you must first run the <code>stardis.profile</code>
-script once in the current POSIX shell to update its environment variables.
-Then you can run the stardis program and check out its reference
-documentation.</p>
+<p>By default, Stardis is built with MPI enabled, so OpenMPI is one of its
+requirements.
+To disable MPI support, simply set the <code>DISTRIB_PARALLELISM</code>
+parameter to NONE as follows:</p>
<pre class="code">
-~ $ . ~/Stardis-${VERSION}/local/etc/stardis.profile
-~ $ stardis -h
+~/star-build $ make \
+ PREFIX=~/stardis \
+ DISTRIB_PARALLELISM=NONE \
+ BUILD=src/stardis_@STARDIS_VERSION@.sh
</pre>
-<p>We point out that the <code>stardis.profile</code> script must be run in
-each new POSIX shell in which you want to give access to the Stardis
-installation.</p>
+<h3>Run</h3>
-<p>If the AsciiDoc tool suite was installed on make invocation, the reference
-documentation should be available through manual pages. Use the man
-command-line to consult them. For example:</p>
+<p>Evaluate the installed <code>stardis.profile</code> file in the current
+shell to register <code>htrdr</code> against it. You can then run
+<code>stardis</code> and consult its manual pages:</p>
<pre class="code">
+~ $ . ~/stardis/local/etc/stardis.profile
+~ $ stardis -h
~ $ man stardis
-~ $ man stardis-input
-~ $ man stardis-output
-~ $ man sgreen
-~ $ man sgreen-input
-~ $ man sgreen-output
</pre>
<p>Refer to the <a href=starter-pack.html>Stardis: Starter Pack</a> to quickly
@@ -385,17 +452,6 @@ run a thermal simulation through the <code>stardis</code> CLI; this archive
provides input data and scripts and is a good starting point to begin with the
Stardis framework.</p>
-<h3>Package</h3>
-
-<p>Once built, the Stardis installation can be packaged in an archive that can
-then be deployed on compatible systems, <i>i.e.</i> systems whose C library is
-compatible with the one available on the system used to build Stardis.</p>
-
-<pre class="code">
-~/Stardis-${VERSION}/build $ make pkg
-~/Stardis-${VERSION}/build $ ls package/Stardis-${VERSION}* # list packages
-</pre>
-
<h2 id="license">License</h2>
<p>Stardis is free software released under the GPLv3+ license: GNU GPL version
diff --git a/stardis/stardis_build.sh b/stardis/stardis_build.sh
@@ -19,13 +19,18 @@
overview()
{
- if [ $# -lt 1 ]; then
- printf "Usage: %s overview <version>\n" "$0" >&2
+ if [ $# -lt 3 ]; then
+ printf
+ "Usage: %s overview <solver-version> <stardis-version> <sgreen-version>\n"\
+ "$0" "$1" "$2" >&2
exit 1
fi
print_header -s Stardis -n Overview -r ../
- VERSION=$1 envsubst < stardis.html.in
+ sed -e "s/@SOLVER_VERSION@/$1/g" \
+ -e "s/@STARDIS_VERSION@/$2/g" \
+ -e "s/@SGREEN_VERSION@/$3/g" \
+ stardis.html.in
print_footer
}