meso-web

Sources of the |Méso|Star> website
git clone git://git.meso-star.fr/meso-web.git
Log | Files | Refs | README | LICENSE

commit a91eec68fe4f5cf2c18281b9c01f5c9473dc70a9
parent 64f9fcb8ac92e59bf46fb13ef46dc2cd19bb79ee
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu, 19 Nov 2020 16:49:45 +0100

Small update of the stardis overview and Upd the stardis script

Diffstat:
Mmeso-menu.sh | 93++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Mstardis/overwiew.md | 1-
Mstardis/stardis.html.in | 109++++++++++++++++++++++++++++++++++++-------------------------------------------
Mstardis/stardis.sh | 36+++++++++++++++++++++++++++++++++++-
4 files changed, 165 insertions(+), 74 deletions(-)

diff --git a/meso-menu.sh b/meso-menu.sh @@ -40,6 +40,15 @@ high_tune_man_pages=( "mrumtl 5" ) +stardis_man_pages=( + "stardis 1" + "stardis-input 5" + "stardis-output 5" + "sgreen 1" + "sgreen-input 5" + "sgreen-output 5" +) + print_home_sub_menu() { local root=$1 local name=$2 @@ -141,7 +150,7 @@ print_high_tune_sub_menu() { else echo " <li><a href=${root}high-tune/starter-pack.html>Starter Pack</a></li>" fi - echo " <li><a href=https://gitlab.com/meso-star/htrdr>Source code repository</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/htrdr>Git repository</a></li>" echo ' </ul>' echo ' <div id="info">' echo ' <p>Visit the ' @@ -178,7 +187,7 @@ print_schiff_sub_menu() { done echo ' </ul>' echo ' <ul>' - echo " <li><a href=https://gitlab.com/meso-star/schiff>Source code repository</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/schiff>Git repository</a></li>" echo ' </ul>' echo ' </div>' } @@ -219,7 +228,7 @@ print_solstice_sub_menu() { else echo " <li><a href=${root}solstice/solstice-resources.html>Additional resources</a></li>" fi - echo " <li><a href=https://gitlab.com/meso-star/solstice>Source code repository</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/solstice>Git repository</a></li>" echo ' </ul>' echo ' <div id="info">' echo ' <p>Visit the <a href="https://www.labex-solstice.fr/solstice-software">' @@ -228,6 +237,51 @@ print_solstice_sub_menu() { echo ' </div>' } +print_stardis_sub_menu() { + local root=$1 + local name=$2 + + echo ' <div id=sub-menu>' + echo ' <ul>' + if [ "$name" == "Overview" ]; then + echo ' <li id=cur>Overview</li>' + else + echo " <li><a href=${root}stardis/stardis.html>Overview</a></li>" + fi + echo ' <li>Reference documentation</li>' + echo ' </ul>' + echo ' <ul id=lvl2>' + local i + for((i=0; i < ${#stardis_man_pages[@]}; ++i)); do + local entry=(${stardis_man_pages[$i]}) + if [ "$name" == "${entry[0]}" ]; then + echo " <li id=cur>$name</li>" + else + local link_path="${root}stardis/man/man${entry[1]}/${entry[0]}.${entry[1]}.html" + echo " <li><a href=\"$link_path\">${entry[0]}</a></li>" + fi + done + echo ' </ul>' + echo ' <ul>' + if [ "$name" == "Downloads" ]; then + echo " <li id=cur>Downloads</li>" + else + echo " <li><a href=${root}stardis/stardis-downloads.html>Downloads</a></li>" + fi + + if [ "$name" == "Starter-Pack" ]; then + echo " <li id=cur>Starter Pack</li>" + else + echo " <li><a href=${root}stardis/starter-pack.html>Starter Pack</a></li>" + fi + echo ' <li>Git repositories</li>' + echo ' </ul>' + echo ' <ul id=lvl2>' + echo " <li><a href=https://gitlab.com/meso-star/stardis-solver>Stardis-Solver</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/stardis>Stardis CLI</a></li>" + echo ' </ul>' + echo ' </div>' +} print_star_engine_sub_menu() { local root=$1 @@ -323,6 +377,7 @@ print_header() { fi if [ "$section" == "Stardis" ]; then echo ' <h2>Stardis</h2>' + print_stardis_sub_menu ${root} ${name} else echo " <h2><a href=${root}stardis/stardis.html>Stardis</a></h2>" fi @@ -354,24 +409,35 @@ print_footer() { print_downloads() { prefix=$1 + if [ $# -lt 2 ]; then + windows=1 + linux=1 + else + windows=$([[ $2 == *Windows* ]] && echo 1 || echo 0) + linux=$([[ $2 == *Linux* ]] && echo 1 || echo 0) + fi echo '<table>' echo ' <tr>' echo ' <th>Version</th>' - echo ' <th>GNU/Linux 64-bits</th>' - echo ' <th>Windows 64-bits</th>' + [[ ! "$linux" -eq 0 ]] && echo ' <th>GNU/Linux 64-bits</th>' + [[ ! "$windows" -eq 0 ]] && echo ' <th>Windows 64-bits</th>' echo ' <th>Sources</th>' echo ' </tr>' - local archs=$(find downloads/$prefix_low -regex ".*/$prefix-[0-9]+\.[0-9]+\.[0-9]+-.*tar.gz" | sort -r ) + local archs=$(find downloads/ -regex ".*/$prefix-[0-9]+.[0-9]+.[0-9]+-.*tar.gz" | sort -r ) local arch; for arch in $archs; do - local version=$(echo $arch | sed "s/.*${prefix}-\([0-9]\+.[0-9]\+.[0-9]\+\)-.*/\1/g") - local dl_files=( - "downloads/${prefix}-${version}-GNU-Linux64.tar.gz" - "downloads/${prefix}-${version}-Win64.zip" - "downloads/${prefix}-${version}-Sources.zip" - ) + local version=$(echo $arch | sed "s/.*${prefix}-\([0-9]\+\.[0-9]\+\.[0-9]\+\(-r[0-9]\+\)\{0,1\}\)-.*/\1/g") + local dl_files=() + + if [ ! "$linux" -eq 0 ]; then + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-GNU-Linux64.tar.gz" + fi + if [ ! "$windows" -eq 0 ]; then + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-Win64.tar.gz" + fi + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-Sources.zip" echo " <tr>" echo " <td>${version}</td>" @@ -432,9 +498,10 @@ convert_man_page() { print_footer >> $output - # Remove hyperlink on csplit, feh and sed commands + # Remove hyperlink on csplit, feh, gnuplot, sed and mpirun commands sed -i 's/<B><A HREF="\.\.\/man1\/csplit\.1\.html">csplit<\/A><\/B>/csplit/g' $output sed -i 's/<B><A HREF="\.\.\/man1\/feh\.1\.html">feh<\/A><\/B>/feh/g' $output + sed -i 's/<B><A HREF="\.\.\/man1\/gnuplot\.1\.html">gnuplot<\/A><\/B>/gnuplot/g' $output sed -i 's/<B><A HREF="\.\.\/man1\/sed\.1\.html">sed<\/A><\/B>/sed/g' $output sed -i 's/<B><A HREF="\.\.\/man1\/mpirun\.1\.html">mpirun<\/A><\/B>/mpirun/g' $output diff --git a/stardis/overwiew.md b/stardis/overwiew.md @@ -1,6 +1,5 @@ # Overview - Stardis designates both a thermal calculation library and a code application. The Stardis platform aims to implement in a code the know-how in terms of diff --git a/stardis/stardis.html.in b/stardis/stardis.html.in @@ -12,10 +12,6 @@ <li>GNU/Linux: <a href="downloads/Stardis-${VERSION}-GNU-Linux64.tar.gz">tarball</a> / <a href="downloads/Stardis-${VERSION}-GNU-Linux64.tar.gz.sig">pgp</a></li> - <li>Windows: - <a href="downloads/Stardis-${VERSION}-Win64.zip">zip</a> / - <a href="downloads/Stardis-${VERSION}-Win64.zip.sig">pgp</a></li> - </ul> <ul> <li>Sources: <a href="downloads/Stardis-${VERSION}-Sources.zip">zip</a> / @@ -24,30 +20,30 @@ </div> <p>Stardis is a <b>thermal simulation</b> framework for <b>complex 2D and 3D -geometries</b>, that relies on new <b>Monte-Carlo</b> algorithms built from +environment</b>, based on new <b>Monte-Carlo</b> algorithms built from reformulations of the main heat transfer phenomena: conduction, convection and -radiation. A serie 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 +radiation. A serie 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 algorithms.</p> <p>Beyond its use as a regular thermal simulation tool, the Stardis framework explicitly targets engineers, researcher, teachers or students wishing to -<b>fully appropriate</b> the statistical formulation of heat transfer, from +fully appropriate the <b>statistical formulation of heat transfer</b>, from theoretical concepts to practical implementation. The complete Stardis framework is thus released under <b><a href="#license">free licenses</a></b> -that guarantees the users the aibility to freely use, study, modify or extend +that guarantee the users the aibility to freely use, study, modify or extend the complete source code according to their needs.</p> -<p>Despite its specific advantages, Stardis framework is not meant to fully -replace already well established and highly validated thermal simulation tools. -Instead, it can be seen as a additional tool that can be useful for various +<p>Despite its specific advantages, Stardis is not meant to fully replace +already well established and highly validated thermal simulation tools. +Instead, it can be seen as an additional tool that can be useful for various purposes:<p> <ul> - <li><b>Probe computation</b> aspect: Stardis will <u>not</u> compute the full + <li><b>Probe computation</b>: Stardis will <u>not</u> compute the full temperature field</b> of a system; instead, it can be used to focus on a specific spatial/temporal zone of the system.</li> @@ -97,22 +93,22 @@ post-processing. See below for more information on each of these components.<p> <h2 id="solver">Stardis-Solver</h2> <p><a href=https://gitlab.com/meso-star/stardis-solver.git>Stardis-Solver</a> -is the Monte-Carlo solver that simulates coupled convecto - conducto radiative -heat transfers by sampling thermal paths that explore space and time until a -boundary condition or an initial condition is found. Note that this path -formulation does not require <b>any volumetric mesh</b>: in addition of the -thermal properties and the limit/boundary conditions, only the geometry +is the core library of Stardis: it simulates coupled convecto - conducto +radiative heat transfers by sampling thermal paths that explore space and time +until a boundary condition or an initial condition is found. Note that this +path formulation does not require <b>any volumetric mesh</b>: in addition of +the thermal properties and the limit/boundary conditions, only the geometry defining the contours of the objects is necessary.</p> <p>The Stardis-Solver library is currently used in the two following projects:<p> <ul> - <li><a href="#cli">Stardis CLI</a>: the reference implementation of a + <li><a href="#cli">Stardis</a> application is the reference implementation of a complete workflow using Stardis-Solver.</li> <li><a href="https://www.edf.fr/en/the-edf-group/world-s-largest-power-company/activities/research-and-development/scientific-communities/simulation-softwares?logiciel=10818"> - SYRTHES</a>: the general thermal software developed by &#201;lectricité de + SYRTHES</a> is the general thermal software developed by &#201;lectricité de France. </ul> @@ -135,7 +131,7 @@ on the following hypothesis:</p> instead of writing the spectrally integrated net flux as a difference of temperatures to the power 4, it is assumed of the same form as the convective flux (as a difference of temperatures, multiplied by a radiative exchange - coefficient). In order to be valid, this representation of radiative + coefficient). In order to be valid, this representation of radiative transfer exchanges requires that the temperature at any position and time is close to a known reference temperature.</li> </ul> @@ -175,10 +171,7 @@ accumulation coefficients) can be stored during a first complete Monte-Carlo simulation. This information, known as the Green function, can then be used in (very fast) post-processing to compute all required results for different boundary and initial conditions (and also different internal power -sources/imposed flux). Note that when using the Green function, only boundary -and initial conditions (as well as internal power sources) can be modified: in -particular, the geometry, thermal properties and exchange coefficients have to -remain identical.</p> +sources/imposed flux).</p> <h3 id="visu">Thermal path visualization</h3> @@ -187,15 +180,14 @@ set of thermal paths, for latter visualization. In addition of their position and, each thermal path vertex register additional data as the type of thermal phenomena it simulates, the accumulated power/flux along the path, etc.</p> -<h2 id="cli">Stardis</h2> +<h2 id="cli">Stardis CLI</h2> <p>TODO</p> <h2>Quick start</h2> <p>Download the desired archive of Stardis and verify its integrity against its -<a href=../misc/pgp_signatures.html>PGP signature</a>. Then extract it. For -instance on a GNU/Linux system:</p> +<a href=../misc/pgp_signatures.html>PGP signature</a>. Then extract it:</p> <pre class="code"> $ wget https://www.meso-star.com/projects/stardis/downloads/\ @@ -206,18 +198,9 @@ $ gpg --verify Stardis-${VERSION}-GNU-Linux64.tar.gz.sig $ tar xzf Stardis-${VERSION}-GNU-Linux64.tar.gz </pre> -<p>On Windows, open a command prompt into the Stardis bin directory and invoke -the <code>stardis.exe</code> executable. You can alternatively register its -directory into the <code>path</code> environment variable to expose the Stardis -application to the system, allowing its invocation from any directory.</p> - -<pre class="code"> -C:\Users\Meso-Star\Stardis-${VERSION}-Win64\bin>stardis -h -</pre> - -<p>On GNU/Linux, source the provided <code>stardis.profile</code> file to -register the Stardis installation for the current shell priorly to the -invocation of the <code>stardis</code> program.</p> +<p>Finally, source the provided <code>stardis.profile</code> file to register +the Stardis installation for the current shell priorly to the invocation of the +<code>stardis</code> program.</p> <pre class="code"> $ source ~/Stardis-${VERSION}-GNU-Linux64/etc/stardis.profile @@ -225,21 +208,31 @@ $ stardis -h # Launch stardis </pre> <p>The <b>reference documentation</b> of the Stardis CLI and of its associated -fileformats is located in the <code>share/man</code> sub-directory for troff -man pages and in <code>share/doc/stardis/html</code> for its html version. To -consult it, browse the html files or, on GNU/Linux system, simply invoke the -<code>man</code> command-line.</p> +tools and fileformats is located in the <code>share/man</code> sub-directory. +To consult it, simply invoke the <code>man</code> command-line.</p> <pre class="code"> $ 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 +run a thermal simulation through the <code>stardis</code> CLI; this archive +provides input data and scripts that are good starting points to begin with the +Stardis framework.</p> + <h2>Build from sources</h2> -<p>You can alternatively build the Stardis framework from its source trees. A -simply way is to rely on the <code>stardis</code> branch of the <a +<p>The Stardis framework can be built directly from its source trees. Note +that the whole Stardis framework was successfully built on Windows 10 with +Visual Studio Community 2019. However, we only officially support GNU/Linux 64 +bits and the build procedure is thus given for this system only. The simplest +way to build Stardis from its sources is to rely on 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 the installation of Stardis. This build procedure assumes the following @@ -247,8 +240,8 @@ prerequisites:</p> <ul> <li><a href=https://git-scm.com>git</a> source control as well.</li> - <li>A C/C++ compiler like <a href=https://gcc.gnu.org>GNU Compiler - Collection</a> in version 4.9.2 or higher.</li> + <li><a href=https://gcc.gnu.org>GNU Compiler Collection</a> in version 4.9.2 + or higher.</li> <li><a href="https://cmake.org">CMake</a> in version 3 or higher.</li> <li>Optionally, the <a href=http://www.methods.co.nz/asciidoc/>AsciiDoc</a> tool suite to generate the man pages of the reference documentation.</li> @@ -282,9 +275,8 @@ $ stardis -h <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, -are compatibles with the ones available on the system used to build -Stardis.</p> +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 @@ -293,8 +285,7 @@ Stardis.</p> <h2 id="license">License</h2> -<p>Stardis-Solver and Stardis are free software released under the GPLv3+ -license: GNU GPL version 3 or later. You can freely study, modify or extend -them. You are also welcome to redistribute it under certain conditions; refer to -the <a href="https://www.gnu.org/licenses/gpl.html">license</a> for -details.</p> +<p>Stardis is free software released 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 <a +href="https://www.gnu.org/licenses/gpl.html">license</a> for details.</p> diff --git a/stardis/stardis.sh b/stardis/stardis.sh @@ -24,12 +24,46 @@ if [ $# -lt 1 ]; then exit 1 fi +################################################################################ +# Sign the package +################################################################################ +tput bold; echo ">>> Stardis packages"; tput sgr0 +archs=$(find downloads -regex "^.*/Stardis-[0-9]+\.[0-9]+\.[0-9]+-.*zip" \ + -o -regex "^.*/Stardis-[0-9]+\.[0-9]+\.[0-9]+-.*tar.gz") +sign_something=0 +for arch in $archs; do + if [ ! -f $arch.sig ]; then + echo "Sign $arch" + gpg -a -o $arch.sig --detach-sign $arch + sign_something=1 + fi +done + +if [ $sign_something == 0 ]; then + echo "Nothing to do" +fi + +echo "" + +################################################################################ +# Generate the overview page +################################################################################ tput bold; echo ">>> Generate the Stardis web pages"; tput sgr0 echo "Write stardis.html" { - print_header Stardis dummy; + print_header Stardis Overview; VERSION=$1 envsubst < stardis.html.in; print_footer; } > stardis.html +################################################################################ +# Generate the Downloads page +################################################################################ +echo "Write stardis-downloads.html" +{ + print_header Stardis Downloads; + echo '<header><h1>Download Stardis</h1></header>'; + print_downloads Stardis "Linux"; + print_footer; +} > stardis-downloads.html;