Skip to content

Commit d3816e0

Browse files
committed
Merge remote-tracking branch 'upstream/master' into bugFixes
2 parents 56f971d + d97c878 commit d3816e0

25 files changed

+1416
-1386
lines changed

.github/workflows/cleanliness.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,42 +34,48 @@ jobs:
3434
sed -i '/\/master\//d' master.txt
3535
3636
- name: Unused Variables Diff
37+
continue-on-error: true
3738
run: |
3839
grep -F 'Wunused-variable' master.txt > mUnused.txt
3940
grep -F 'Wunused-variable' pr.txt > prUnused.txt
40-
diff prUnused.txt mUnused.txt || true
41+
diff prUnused.txt mUnused.txt
4142
4243
- name: Unused Dummy Arguments Diff
44+
continue-on-error: true
4345
run: |
44-
grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
46+
grep -F 'Wunused-dummy-argument' pr.txt > prDummy.txt
4547
grep -F 'Wunused-dummy-argument' master.txt > mDummy.txt
46-
diff prDummy.txt mDummy.txt || true
48+
diff prDummy.txt mDummy.txt
4749
4850
- name: Unused Value Diff
51+
continue-on-error: true
4952
run: |
5053
grep -F 'Wunused-value' pr.txt > prUnused_val.txt
5154
grep -F 'Wunused-value' master.txt > mUnused_val.txt
52-
diff prUnused_val.txt mUnused_val.txt || true
55+
diff prUnused_val.txt mUnused_val.txt
5356
5457
- name: Maybe Uninitialized Variables Diff
58+
continue-on-error: true
5559
run: |
5660
grep -F 'Wmaybe-uninitialized' pr.txt > prMaybe.txt
5761
grep -F 'Wmaybe-uninitialized' master.txt > mMaybe.txt
58-
diff prMaybe.txt mMaybe.txt || true
62+
diff prMaybe.txt mMaybe.txt
5963
6064
6165
- name: Everything Diff
66+
continue-on-error: true
6267
run: |
63-
grep '\-W' pr.txt > pr_every.txt
68+
grep '\-W' pr.txt > pr_every.txt
6469
grep '\-W' master.txt > m_every.txt
65-
diff pr_every.txt m_every.txt || true
70+
diff pr_every.txt m_every.txt
6671
6772
- name: List of Warnings
6873
run: |
6974
cat pr_every.txt
7075
7176
7277
- name: Summary
78+
continue-on-error: true
7379
run: |
7480
pr_variable=$(grep -c -F 'Wunused-variable' pr.txt)
7581
pr_argument=$(grep -c -F 'Wunused-dummy-argument' pr.txt)
@@ -100,6 +106,5 @@ jobs:
100106
if: env.pr_everything > env.master_everything
101107
run: |
102108
echo "Difference between warning count in PR is greater than in master."
103-
exit 1
104109
105110

CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ elseif ((CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_Fortran_COMPILER_
6969
message(FATAL_ERROR "ERROR: When using NVHPC, v21.7 or newer is required to build MFC.\n${__err_msg}")
7070
endif()
7171

72-
if ((CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 23.11) AND (CMAKE_BUILD_TYPE STREQUAL "Debug") AND MFC_OpenACC)
73-
message(FATAL_ERROR "ERROR: When using NVHPC, MFC with Debug and GPU options requires NVHPC v23.11 or newer.\n${__err_msg}")
72+
if ((CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 24.5) AND (CMAKE_BUILD_TYPE STREQUAL "Debug") AND MFC_OpenACC)
73+
message(FATAL_ERROR "ERROR: When using NVHPC, MFC with Debug and GPU options requires NVHPC v24.5 or newer.\n${__err_msg}")
7474
endif()
7575
elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
7676
message(FATAL_ERROR "ERROR: MFC does not support the Apple Clang compilers. Please consult the documentation.\n${__err_msg}")
@@ -216,7 +216,9 @@ if (CMAKE_BUILD_TYPE STREQUAL "Release")
216216
# Enable LTO/IPO if supported
217217
if (CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC")
218218
if (MFC_Unified)
219-
message(STATUS "IPO is not available with NVHPC using Unified Memory")
219+
message(STATUS "LTO/IPO is not available with NVHPC using Unified Memory")
220+
elseif(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS "23.11")
221+
message(STATUS "LTO/IPO is not supported in NVHPC Version < 23.11. Use a newer version of NVHPC for best performance.")
220222
else()
221223
message(STATUS "Performing IPO using -Mextract followed by -Minline")
222224
set(NVHPC_USE_TWO_PASS_IPO TRUE)

docs/documentation/case.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,6 @@ If `file_per_process` is true, then pre_process, simulation, and post_process mu
536536

537537
- `probe_wrt` activates the output of state variables at coordinates specified by `probe(i)%[x;y,z]`.
538538

539-
540539
### 8. Acoustic Source {#acoustic-source}
541540

542541
| Parameter | Type | Description |
@@ -744,7 +743,7 @@ $$ u = patch\_icpp(1)\%vel(1) * tanh(y\_cc * mixlayer\_vel\_profile) $$
744743
| `pi_fac` | Real | Ratio of artificial and true `pi_\infty` values|
745744

746745
- `pi_fac` specifies the ratio of artificial and true `pi_\infty` values (`=` artificial `pi_\infty` / true `pi_\infty`).
747-
This parameter enables the use of true `pi_\infty` in bubble dynamics models, when the `pi_\infty` given in the `case.py` file is an artificial value.
746+
This parameter enables the use of true `pi_\infty` in bubble dynamics models when the `pi_\infty` given in the `case.py` file is an artificial value.
748747

749748
### 13. Body Forces
750749

@@ -760,7 +759,23 @@ This parameter enables the use of true `pi_\infty` in bubble dynamics models, wh
760759

761760
$$ a_{x[y,z]} = g_{x[y,z]} + k_{x[y,z]}\sin\left(w_{x[y,z]}t + p_{x[y,z]}\right). $$
762761

763-
Positive accelerations are in the `x[y,z]` direction are in the positive `x[y,z]` direction by convention.
762+
By convention, positive accelerations in the `x[y,z]` direction are in the positive `x[y,z]` direction.
763+
764+
### 14. Cylindrical Coordinates
765+
766+
When ``cyl_coord = 'T'`` is set in 3D the following constraints must be met:
767+
768+
- `bc_y%beg = -14` enables the axis boundary condition
769+
770+
- `bc_z%beg = bc_z%end = -1` enables periodic boundary conditions in the azimuthal direction
771+
772+
- `z_domain%beg = 0` sets the azimuthal starting point to 0
773+
774+
- `z_comain%end = 2*math.pi` to set the azimuthal ending point to $2\pi$ (note, requires `import math` in the case file)
775+
776+
When ``cyl_coord = 'T'`` is set in 2D the following constraints must be met:
777+
778+
- `bc_y%beg = -2` to enable reflective boundary conditions
764779

765780
## Enumerations
766781

docs/documentation/expectedPerformance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Note:
3030
| NVIDIA V100 | | GPU | 1 GPU | 0.99 | NVHPC 22.11 | GT Phoenix |
3131
| NVIDIA A30 | | GPU | 1 GPU | 1.1 | NVHPC 24.1 | GT Rogues Gallery |
3232
| AMD MI250X | | GPU | 1 _GCD_* | 1.1 | CCE 16.0.1 | OLCF Frontier |
33-
| AMD EPYC 9965 | Turin | CPU | 192 cores | 1.3 | GNU 13.2.0 | AMD Volcano |
33+
| AMD EPYC 9965 | Turin | CPU | 192 cores | 1.2 | AOCC 5.0.0 | AMD Volcano |
3434
| AMD MI100 | | GPU | 1 GPU | 1.4 | CCE 16.0.1 | Cray internal system |
3535
| Intel Xeon 6980P | Granite Rapids | CPU | 128 cores | 1.4 | Intel 2024.2 | Intel Endeavour |
3636
| NVIDIA L40S | FP32-only GPU | GPU | 1 GPU | 1.7 | NVHPC 24.5 | GT ICE |

docs/documentation/visualization.md

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,47 @@
11
# Flow visualization
22

3-
Post-processed database in Silo-HDF5 format can be visualized and analyzed using VisIt.
4-
VisIt is an open-source interactive parallel visualization and graphical analysis tool for viewing scientific data.
3+
A post-processed database in Silo-HDF5 format can be visualized and analyzed using Paraview and VisIt.
4+
After the post-processing of simulation data (see section [Running](running.md#running-1)), a directory named `silo_hdf5` contains a silo-HDF5 database.
5+
Here, `silo_hdf5/` includes a directory named `root/` that contains index files for flow field data at each saved time step.
6+
7+
### Visualizing with Paraview
8+
9+
Paraview is an open-source interactive parallel visualization and graphical analysis tool for viewing scientific data.
10+
Paraview 5.11.0 has been confirmed to work with the MFC databases for some parallel environments.
11+
Nevertheless, the installation and configuration of Paraview can be environment-dependent and are left to the user.
12+
13+
The user can launch Paraview and open the index files under `/silo_hdf5/root`.
14+
Once the database is loaded, flow field variables contained in the database can be added to the render view.
15+
Further information on Paraview can be found in its [documentation](https://docs.paraview.org/en/latest/).
16+
The figure below shows the iso-contour of the liquid void fraction (`alpha1`) in the database generated by the example case `3D_sphbubcollapse`.
17+
18+
![](../res/paraview.png)
19+
20+
### Visualizing data in cylindrical coordinates
21+
22+
Visualizing data in cylindrical coordinates requires a coordinate transformation of the raw data in the database file.
23+
In Paraview, this coordinate transformation can be accomplished with the following steps:
24+
25+
1. Apply a `clean to grid` filter to the raw data
26+
27+
2. Apply a `calculator` filter to the cleaned data
28+
- Set the calculator `attribute type` to point data
29+
- Check the box for `Coordinate Results`
30+
- Enter the formula `coordsX*cos(coordsY)*iHat + coordsX*sin(coordsY)*jHat + coordsZ*kHat`
31+
- click apply
32+
33+
These steps will transform the raw data into cylindrical coordinates.
34+
For many cases, this step will require resizing the render view window.
35+
36+
## Visualizing with VisIt
37+
38+
VisIt is an alternative open-source interactive parallel visualization and graphical analysis tool for viewing scientific data.
539
Versions of VisIt after 2.6.0 have been confirmed to work with the MFC databases for some parallel environments.
640
Nevertheless, installation and configuration of VisIt can be environment-dependent and are left to the user.
741
Further remarks on parallel flow visualization, analysis, and processing of the MFC database using VisIt can also be found in [Coralic (2015)](references.md#Coralic15) and [Meng (2016)](references.md#Meng16).
842

9-
## Procedure
10-
11-
After the post-processing of simulation data (see section [Running](running.md#running-1)), a directory named `silo_hdf5` contains a silo-HDF5 database.
12-
Here, `silo_hdf5/` includes a directory named `root/` that contains index files for flow field data at each saved time step.
1343
The user can launch VisIt and open the index files under `/silo_hdf5/root`.
1444
Once the database is loaded, flow field variables contained in the database can be added to the plot.
15-
1645
The figure below shows the iso-contour of the liquid void fraction (`alpha1`) in the database generated by the example case `3D_sphbubcollapse`.
1746
For analysis and processing of the database using VisIt's capability, the user is encouraged to address [VisIt user manual](https://wci.llnl.gov/simulation/computer-codes/visit/manuals).
1847

@@ -22,9 +51,9 @@ For analysis and processing of the database using VisIt's capability, the user i
2251

2352
## Serial data output
2453

25-
If `parallel_io = F` then MFC will output the conservative variables to a directory `D/`.
54+
If ``parallel_io = 'F'``, MFC will output the conservative variables to a directory `D/`.
2655
If multiple cores are used ($\mathtt{ppn > 1}$), then a separate file is created for each core.
27-
If there is only one coordinate dimension (`n = 0` and `p = 0`), the primitive variables will also be written to `D/`.
56+
If only one coordinate dimension (`n = 0` and `p = 0`) exists, the primitive variables will also be written to `D/`.
2857
The file names correspond to the variables associated with each equation solved by MFC.
2958
They are written at every `t_step_save` time step.
3059
The conservative variables are
@@ -39,7 +68,7 @@ where $N_c$ are the number of components `num_fluids` and $N_d$ is the number of
3968
There are exceptions: if `model_eqns = 3`, then the six-equation model appends these variables with the internal energies of each component.
4069
If there are sub-grid bubbles `bubbles = T`, then the bubble variables are also written.
4170
These depend on the bubble dynamics model used.
42-
If `polytropic = T`, then the conservative variables are appended by
71+
If ``polytropic = 'T'``, then the conservative variables are appended by
4372

4473
$$ n\_b R\_1, n\_b {\\dot R}\_1, \dots, n\_b R\_{N\_b}, n\_b {\\dot R}\_{N\_b} $$
4574

@@ -62,11 +91,11 @@ Place the file `paceParview.zip` in your scratch direction on Phoenix and unzip
6291
Enter the new directory `paceParaview` and run `tar -xvf ParaView-5.11.0-egl-MPI-Linux-Python3.9-x86_64.tar.gz` to decompress the compiled binary.
6392
Now that you have the binary on Phoenix, you must download Paraview 5.11 on your local machine.
6493
Paraview binaries can be downloaded [here](https://www.paraview.org/download/).
65-
Be sure to select `v5.11` from the version drop-down bar and install a `5.11.0` version of Paraview.
94+
Select `v5.11` from the version drop-down bar and install a `5.11.0` version of Paraview.
6695

6796
### Step 2: Customizing the script
6897

69-
While all of the options for the bash script could be passed as command-line arguments, hardcoding certain unlikely-to-change options saves time.
98+
While all of the bash script's options could be passed as command-line arguments, hardcoding certain unlikely-to-change options saves time.
7099
The following is a list of required and suggested updates to make to `pace-paraview-server`.
71100

72101
- (Optional) Update line 4 to customize the job name that will show up in the scheduler
@@ -80,7 +109,7 @@ Before running `pace-paraview-server` for the first time, you must update its pe
80109
Once this has been done, you can run `./pace-paraview-server` with the following options:
81110

82111
- `--account` specifies the charge account for the job.
83-
If you updated line 51 of `pace-paraview-server` to reflect a default account, this option is optional, otherwise it is required.
112+
If you updated line 51 of `pace-paraview-server` to reflect a default account, this option is optional; otherwise, it is required.
84113
- `--nodes` specifies the number of nodes to request (default 1)
85114
- `--mem` specifies the memory per node to request (default is to request all memory)
86115
- `--gres` specifies the GPU resources to request.
@@ -96,7 +125,7 @@ Submitted batch job <job #>
96125
Waiting for ParaView server to start. This may take several minutes ...
97126
```
98127

99-
When it's done initializing, you should see a dialogue with some recommended next steps numbered 1-4.
128+
When initializing is done, you should see a dialogue with some recommended next steps, numbered 1-4.
100129
Below is a slightly altered version of that dialogue:
101130

102131
1) Create the appropriate port forwarding for your local ParaView session to connect with.
@@ -105,7 +134,7 @@ Below is a slightly altered version of that dialogue:
105134
* `ssh -L 8722:<nodeIdentifier>:53723 <paceSystemIdentifier>`
106135

107136
2) Once you have `Paraview5.11.0` on your machine, select `File -> Connect..` to open the remote connection dialogue box.
108-
* If you've already set up the pace connection, simply double-click the existing configuration.
137+
* Double-click the existing configuration if you've already set up the PACE connection.
109138
* Click `Add Server` If you have not set up the PACE connection.
110139
This will create a new dialogue box where you can specify a configuration name and set the `Port` to `8722`.
111140
Once this is done, click `configure` and then `save` on the next dialogue box.

docs/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,15 +273,15 @@
273273
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://github.com/MFlowCode/MFC/releases/latest">
274274
<i class="pr-4 fa-solid fa-download"></i>
275275
<div class="flex-1">
276-
<span class="hidden sm:inline-block">Download </span>
276+
<span class="hidden sm:inline-block">Download</span>
277277
<span id="release-ver"></span>
278278
</div>
279279
</a>
280280
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="documentation/md_getting-started.html">
281281
<i class="pr-4 fa-solid fa-rocket"></i>
282282
<span class="flex-1">Quick Start</span>
283283
</a>
284-
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="documentation/index.html">
284+
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="documentation/md_readme.html">
285285
<i class="pr-4 fa-solid fa-book"></i>
286286
<span class="flex-1">Documentation</span>
287287
</a>

docs/res/paraview.png

312 KB
Loading

src/common/m_derived_types.fpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
module m_derived_types
1010

1111
use m_constants !< Constants
12-
use m_thermochem !< Thermodynamic properties
12+
13+
use m_thermochem, only: num_species
1314

1415
implicit none
1516

src/common/m_thermochem.fpp

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/common/m_variables_conversion.fpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ module m_variables_conversion
2222

2323
use m_helper
2424

25-
use m_thermochem
25+
use m_thermochem, only: &
26+
num_species, get_temperature, get_pressure, &
27+
get_mixture_molecular_weight, get_mixture_energy_mass
2628

2729
! ==========================================================================
2830

@@ -1126,7 +1128,7 @@ contains
11261128
q_prim_vf(i)%sf(j, k, l)/2d0
11271129
end do
11281130

1129-
#:if chemistry
1131+
if (chemistry) then
11301132
do i = chemxb, chemxe
11311133
Ys(i - chemxb + 1) = q_prim_vf(i)%sf(j, k, l)
11321134
q_cons_vf(i)%sf(j, k, l) = rho*q_prim_vf(i)%sf(j, k, l)
@@ -1140,7 +1142,7 @@ contains
11401142
dyn_pres + rho*e_mix
11411143

11421144
q_cons_vf(T_idx)%sf(j, k, l) = q_prim_vf(T_idx)%sf(j, k, l)
1143-
#:else
1145+
else
11441146
! Computing the energy from the pressure
11451147
if ((model_eqns /= 4) .and. (bubbles .neqv. .true.)) then
11461148
! E = Gamma*P + \rho u u /2 + \pi_inf + (\alpha\rho qv)
@@ -1156,7 +1158,7 @@ contains
11561158
!Tait EOS, no conserved energy variable
11571159
q_cons_vf(E_idx)%sf(j, k, l) = 0.
11581160
end if
1159-
#:endif
1161+
end if
11601162

11611163
! Computing the internal energies from the pressure and continuities
11621164
if (model_eqns == 3) then

0 commit comments

Comments
 (0)