From 07b469326af2f2f91fc8040042dfdc075c560f56 Mon Sep 17 00:00:00 2001 From: caubet_m Date: Tue, 30 Jun 2020 16:43:22 +0200 Subject: [PATCH] added ANSYS/Fluent --- Gemfile.lock | 180 +++++++++--------- _data/sidebars/merlin6_sidebar.yml | 2 + .../05 Software Support/ansys-fluent.md | 122 ++++++++++++ 3 files changed, 214 insertions(+), 90 deletions(-) create mode 100644 pages/merlin6/05 Software Support/ansys-fluent.md diff --git a/Gemfile.lock b/Gemfile.lock index d71a577..b58c9dd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,14 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.11.1) - i18n (~> 0.7) + activesupport (6.0.3.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) + zeitwerk (~> 2.2, >= 2.2.2) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) bigdecimal (1.4.4) coffee-script (2.4.1) coffee-script-source @@ -16,8 +17,8 @@ GEM colorator (1.1.0) commonmarker (0.17.13) ruby-enum (~> 0.5) - concurrent-ruby (1.1.5) - dnsruby (1.61.2) + concurrent-ruby (1.1.6) + dnsruby (1.61.3) addressable (~> 2.5) em-websocket (0.5.1) eventmachine (>= 0.12.9) @@ -26,33 +27,32 @@ GEM ffi (>= 1.3.0) eventmachine (1.2.7) execjs (2.7.0) - faraday (0.15.4) + faraday (1.0.1) multipart-post (>= 1.2, < 3) - ffi (1.11.1) + ffi (1.13.1) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (198) - activesupport (= 4.2.11.1) + github-pages (206) github-pages-health-check (= 1.16.1) - jekyll (= 3.8.5) - jekyll-avatar (= 0.6.0) + jekyll (= 3.8.7) + jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.5) + jekyll-commonmark-ghpages (= 0.1.6) jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.11.0) + jekyll-feed (= 0.13.0) jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.12.1) - jekyll-mentions (= 1.4.1) - jekyll-optional-front-matter (= 0.3.0) + jekyll-github-metadata (= 2.13.0) + jekyll-mentions (= 1.5.1) + jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.2.0) - jekyll-redirect-from (= 0.14.0) - jekyll-relative-links (= 0.6.0) - jekyll-remote-theme (= 0.3.1) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.15.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.1) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.5.0) - jekyll-sitemap (= 1.2.0) - jekyll-swiss (= 0.4.0) + jekyll-seo-tag (= 2.6.1) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) jekyll-theme-architect (= 0.1.1) jekyll-theme-cayman (= 0.1.1) jekyll-theme-dinky (= 0.1.1) @@ -62,19 +62,18 @@ GEM jekyll-theme-midnight (= 0.1.1) jekyll-theme-minimal (= 0.1.1) jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.3) + jekyll-theme-primer (= 0.5.4) jekyll-theme-slate (= 0.1.1) jekyll-theme-tactile (= 0.1.1) jekyll-theme-time-machine (= 0.1.1) - jekyll-titles-from-headings (= 0.5.1) - jemoji (= 0.10.2) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.11.1) kramdown (= 1.17.0) - liquid (= 4.0.0) - listen (= 3.1.5) + liquid (= 4.0.3) mercenary (~> 0.3) - minima (= 2.5.0) - nokogiri (>= 1.8.5, < 2.0) - rouge (= 2.2.1) + minima (= 2.5.1) + nokogiri (>= 1.10.4, < 2.0) + rouge (= 3.19.0) terminal-table (~> 1.4) github-pages-health-check (1.16.1) addressable (~> 2.3) @@ -82,13 +81,13 @@ GEM octokit (~> 4.0) public_suffix (~> 3.0) typhoeus (~> 1.3) - html-pipeline (2.11.0) + html-pipeline (2.13.0) activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.8.5) + jekyll (3.8.7) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -101,49 +100,50 @@ GEM pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.6.0) - jekyll (~> 3.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) jekyll-commonmark (1.3.1) commonmarker (~> 0.14) jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.5) + jekyll-commonmark-ghpages (0.1.6) commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1) - rouge (~> 2) + jekyll-commonmark (~> 1.2) + rouge (>= 2.0, < 4.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.11.0) - jekyll (~> 3.3) + jekyll-feed (0.13.0) + jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.12.1) - jekyll (~> 3.4) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.4.1) + jekyll-mentions (1.5.1) html-pipeline (~> 2.3) - jekyll (~> 3.0) - jekyll-optional-front-matter (0.3.0) - jekyll (~> 3.0) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) jekyll-paginate (1.1.0) - jekyll-readme-index (0.2.0) - jekyll (~> 3.0) - jekyll-redirect-from (0.14.0) - jekyll (~> 3.3) - jekyll-relative-links (0.6.0) - jekyll (~> 3.3) - jekyll-remote-theme (0.3.1) - jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.15.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.1) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + rubyzip (>= 1.3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.5.0) - jekyll (~> 3.3) - jekyll-sitemap (1.2.0) - jekyll (~> 3.3) - jekyll-swiss (0.4.0) + jekyll-seo-tag (2.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) jekyll-theme-architect (0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) @@ -171,8 +171,8 @@ GEM jekyll-theme-modernist (0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.3) - jekyll (~> 3.5) + jekyll-theme-primer (0.5.4) + jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) jekyll-theme-slate (0.1.1) @@ -184,44 +184,43 @@ GEM jekyll-theme-time-machine (0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.1) - jekyll (~> 3.3) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.10.2) + jemoji (0.11.1) gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (~> 3.0) - json (2.2.0) + jekyll (>= 3.0, < 5.0) + json (2.3.0) kramdown (1.17.0) - liquid (4.0.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) + liquid (4.0.3) + listen (3.2.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) mini_portile2 (2.4.0) - minima (2.5.0) - jekyll (~> 3.5) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.11.3) + minitest (5.14.1) multipart-post (2.1.1) - nokogiri (1.10.3) + nokogiri (1.10.9) mini_portile2 (~> 2.4.0) - octokit (4.14.0) + octokit (4.18.0) + faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.0.3) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + public_suffix (3.1.1) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) ffi (~> 1.0) - rouge (2.2.1) - ruby-enum (0.7.2) + rouge (3.19.0) + ruby-enum (0.8.0) i18n - ruby_dep (1.5.0) - rubyzip (1.2.3) + rubyzip (2.3.0) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) @@ -234,11 +233,12 @@ GEM terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) - typhoeus (1.3.1) + typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.5) + tzinfo (1.2.7) thread_safe (~> 0.1) - unicode-display_width (1.6.0) + unicode-display_width (1.7.0) + zeitwerk (2.3.1) PLATFORMS ruby @@ -250,4 +250,4 @@ DEPENDENCIES json (~> 2.2) BUNDLED WITH - 2.0.2 + 2.1.4 diff --git a/_data/sidebars/merlin6_sidebar.yml b/_data/sidebars/merlin6_sidebar.yml index 52aed45..96b99ef 100644 --- a/_data/sidebars/merlin6_sidebar.yml +++ b/_data/sidebars/merlin6_sidebar.yml @@ -75,6 +75,8 @@ entries: url: /merlin6/openmpi.html - title: IntelMPI url: /merlin6/impi.html + - title: ANSYS/Fluent + url: /merlin6/ansys-fluent.html - title: Announcements folderitems: - title: Downtimes diff --git a/pages/merlin6/05 Software Support/ansys-fluent.md b/pages/merlin6/05 Software Support/ansys-fluent.md new file mode 100644 index 0000000..27cbaf1 --- /dev/null +++ b/pages/merlin6/05 Software Support/ansys-fluent.md @@ -0,0 +1,122 @@ +--- +title: ANSYS / Fluent +#tags: +last_updated: 30 June 2020 +keywords: software, ansys, fluent, slurm +summary: "This document describes how to run ANSYS/Fluent in the Merlin6 cluster" +sidebar: merlin6_sidebar +permalink: /merlin6/ansys-fluent.html +--- + +This document describes the different ways for running **ANSYS/Fluent** + +## ANSYS/Fluent + +Is always recommended to check which parameters are available in Fluent and adapt the below example according to your needs. +For that, run `fluent -help` for getting a list of options. However, as when running Fluent one must specify one of the +following flags: +* **2d**: This is a 2D solver with single point precision. +* **3d**: This is a 3D solver with single point precision. +* **2dpp**: This is a 2D solver with double point precision. +* **3dpp**: This is a 3D solver with double point precision. + +## Running Fluent jobs + +### PModules + +Is strongly recommended the use of the latest ANSYS software **ANSYS/2020R1-1** available in PModules. + +```bash +module use unstable +module load ANSYS/2020R1-1 +``` + +### Non-interactive: sbatch + +Using `sbatch` is always recommeneded. + +#### Serial example + +```bash +#!/bin/bash +#SBATCH --job-name=Fluent # Job Name +#SBATCH --partition=hourly # Using 'daily' will grant higher priority than 'general' +#SBATCH --time=0-01:00:00 # Time needed for running the job. Must match with 'partition' limits. +#SBATCH --cpus-per-task=1 # Double if hyperthreading enabled +#SBATCH --hint=nomultithread # Disable Hyperthreading +#SBATCH --output=%j.out # Define your output file +#SBATCH --error=%j.err # Define your error file + +module use unstable +module load ANSYS/2020R1-1 + +JOURNAL_FILE=/data/user/caubet_m/Fluent/myjournal.in +fluent 3ddp -g -i ${JOURNAL_FILE} +``` + +#### MPI-based exampke + +An example for running Fluent using a Slurm batch script is the following: + +```bash +#!/bin/bash +#SBATCH --job-name=Fluent # Job Name +#SBATCH --partition=hourly # Using 'daily' will grant higher priority than 'general' +#SBATCH --time=0-01:00:00 # Time needed for running the job. Must match with 'partition' limits. +#SBATCH --nodes=1 # Number of nodes +#SBATCH --ntasks=44 # Number of tasks +#SBATCH --cpus-per-task=1 # Double if hyperthreading enabled +#SBATCH --ntasks-per-core=1 # Run one task per core +#SBATCH --hint=nomultithread # Disable Hyperthreading +#SBATCH --error=%j.err # Define a file for standard error messages +##SBATCH --exclusive # Uncomment if you want exclusive usage of the nodes + +module use unstable +module load ANSYS/2020R1-1 + +JOURNAL_FILE=/data/user/caubet_m/Fluent/myjournal.in +fluent 3ddp -g -t ${SLURM_NTASKS} -i ${JOURNAL_FILE} +``` + +In the above example, one can increase the number of *nodes* and/or *ntasks* if needed. + +## Interactive: salloc + +Running Fluent interactively is strongly not recommended and one should whenever possible use `sbatch`. +However, sometimes interactive runs are needed. For jobs requiring only few CPUs (in example, 2 CPUs) **and** for a short period of time, one can use the login nodes. +Otherwise, one must use the Slurm batch system using allocations: + * For short jobs requiring more CPUs, one can use the Merlin shortest partitions (`hourly`). + * For longer jobs, one can use longer partitions, however, interactive access is not always possible (depending on the usage of the cluster). + +Please refer to the documentation **[Running Interactive Jobs](/merlin6/interactive-jobs.html)** for firther information about different ways for running interactive +jobs in the Merlin6 cluster. + +### Considerations + +For running Fluent using Slurm computing nodes, one needs to get the list of the reserved nodes. For getting that list, once you have the allocation, one can run +the following command: + +```bash +scontrol show hostname +``` + +This list must be included in the settings as the list of hosts where to run Fluent. Alternatively, one can give that list as parameter (`-cnf` option) when running `fluent`, +as follows: + +
+[Running Fluent with 'salloc' example] +
+(base) [caubet_m@merlin-l-001 caubet_m]$ salloc --nodes=2 --ntasks=88 --hint=nomultithread --time=0-01:00:00 --partition=test $SHELL
+salloc: Pending job allocation 135030174
+salloc: job 135030174 queued and waiting for resources
+salloc: job 135030174 has been allocated resources
+salloc: Granted job allocation 135030174
+
+(base) [caubet_m@merlin-l-001 caubet_m]$ module use unstable
+(
+base) [caubet_m@merlin-l-001 caubet_m]$ module load ANSYS/2020R1-1
+module load: unstable module has been loaded -- ANSYS/2020R1-1
+
+(base) [caubet_m@merlin-l-001 caubet_m]$ fluent 3ddp -t$SLURM_NPROCS -cnf=$(scontrol show hostname | tr '\n' ',')
+
+