Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
87cf67b
adding Qxxx corrections to remove constrained temperature
Nov 11, 2024
da2c3a4
problematic inlet
Nov 14, 2024
f0cbd0c
energy conditions for eq calculation in MakeNewLevel functions
Nov 15, 2024
2296612
inlet seems to be working with variable temperature
Nov 16, 2024
80a845b
Viscosity test added. Cleaning of code pending
Nov 23, 2024
6bb5746
added viscosityTester jupyter notebook
Nov 23, 2024
c3732eb
cleaning of comments, changes for backward compatibility
Nov 27, 2024
fb95a0e
non compiling code
Dec 5, 2024
f14bab1
save point, added energy lattice, not tested.
Dec 11, 2024
d3d86a6
save point, added energy lattice, velocity bc incomplete, not tested.
Dec 11, 2024
a5b3fbc
IC R in pressure corrected, checkpoint
Dec 11, 2024
8389fed
draft: Energy lattice is up! thermal diffusivity test added
Dec 12, 2024
00f8f8f
added sod test case
Dec 19, 2024
2eb5741
code text reformatted
Dec 26, 2024
22da915
update to documentation. Update to sod notebook
Dec 27, 2024
9966363
reformatted with llvm18
Dec 27, 2024
6a1bf4f
corrected spelling mistakes
Dec 27, 2024
c4deca4
chnaged some vector declarations
Dec 27, 2024
624e48e
removed some unused variables
Dec 27, 2024
d8f607b
reordering declaration of isAnEnergyLattice and m_vel_bc_op
Dec 30, 2024
fbedc7f
some D=2 corrections
Jan 9, 2025
864b819
test DIM merge
Jan 10, 2025
0786c65
m 001
Jan 10, 2025
6931b76
m 002
Jan 10, 2025
f09302f
m 003
Jan 10, 2025
d83e60f
m 004
Jan 10, 2025
d83f6bc
m 005
Jan 10, 2025
858b7a4
m 006
Jan 10, 2025
d5061df
m 007
Jan 10, 2025
08ee9b7
warning: statement should be inside braces [readability-braces-around…
Jan 16, 2025
06ae071
ploting copy size fix
Jan 17, 2025
42f7bf5
GPU problem
Jan 18, 2025
1dd3c1a
GPU prob
Jan 18, 2025
fe1ae2b
GPU compile prob
Jan 18, 2025
af76f89
changed model identifier in IC and velBC from sting to int
Jan 22, 2025
ee64cc5
formatted
Jan 22, 2025
0fdabdf
for TG test
Jan 22, 2025
5f5ac90
tidy 1
Jan 29, 2025
0c17c51
tidy 2
Jan 29, 2025
254e942
case changes
Feb 6, 2025
d23addf
case change and formatted
Feb 6, 2025
03e3a6b
removed comment
Feb 6, 2025
c54ac43
removed comment from BC.H
Feb 6, 2025
c8110ec
changed numbering BC.H
Feb 6, 2025
55df928
pass by ref for CodeQL
Mar 26, 2025
389a688
formatted. pass by ref for CodeQL
Mar 26, 2025
64cef67
removed some if conditions
Mar 26, 2025
9bbcd5b
removed unused variables
Mar 26, 2025
50b8302
change incompressible ICs
Mar 27, 2025
3bfd3ff
tests
Mar 28, 2025
230536b
formatting
Mar 28, 2025
00fba5d
case changes
Mar 28, 2025
4239412
test
Mar 28, 2025
4417b55
case
Mar 28, 2025
36be621
ok
Mar 28, 2025
e433afe
okk
Mar 28, 2025
9ab170e
style things
marchdf Apr 10, 2025
c11fbf9
remove useless templating
marchdf Apr 10, 2025
5243d59
remove old stuff
marchdf Apr 10, 2025
adff861
some more removals
marchdf Apr 10, 2025
dcc346d
more removals
marchdf Apr 10, 2025
141ae3a
moving stuff
marchdf Apr 10, 2025
9cc9ecf
dont parse model type
marchdf Apr 10, 2025
13cd48b
doc
marchdf Apr 10, 2025
09d9cec
lost a comment
marchdf Apr 10, 2025
ab86d65
fix comment
marchdf Apr 10, 2025
f8d9620
manual format
marchdf Apr 10, 2025
6935af4
remove duplicate code
marchdf Apr 10, 2025
9342865
constexpr some things
marchdf Apr 10, 2025
6b0e889
format
marchdf Apr 11, 2025
a4589f8
fix case
marchdf Apr 11, 2025
cf4b8da
fix unused
marchdf Apr 11, 2025
8683fd1
ci update for hip
marchdf Apr 11, 2025
5149e70
fix cuda build
marchdf Apr 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Checks: 'bugprone-*,
-readability-function-cognitive-complexity'
WarningsAsErrors: ''
HeaderFilterRegex: '.*'
HeaderFileExtensions: ['', "H", 'h', 'hh', 'hpp', 'hxx']
FormatStyle: none
User: user
CheckOptions:
Expand Down Expand Up @@ -55,6 +56,12 @@ CheckOptions:
value: llvm
- key: modernize-use-nullptr.NullMacros
value: 'NULL'
- { key: readability-identifier-length.MinimumVariableNameLength, value: 2 }
- { key: readability-identifier-length.IgnoredVariableNames, value: "^[ijkp]$" }
- { key: readability-identifier-length.MinimumParameterNameLength, value: 2 }
- { key: readability-identifier-length.IgnoredParameterNames, value: "^[ijknp]$" }
- { key: readability-identifier-length.MinimumExceptionNameLength, value: 2 }
- { key: readability-identifier-length.MinimumLoopCounterNameLength, value: 1 }
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
- { key: readability-identifier-naming.ClassCase, value: CamelCase }
- { key: readability-identifier-naming.PrivateMemberPrefix, value: m_ }
Expand Down
27 changes: 13 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
echo "CCACHE_COMPRESSLEVEL=5" >> $GITHUB_ENV
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
- name: Install Ccache
run: |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz
Expand Down Expand Up @@ -143,7 +143,7 @@ jobs:
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
echo "CCACHE_COMPRESSLEVEL=5" >> $GITHUB_ENV
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
cmake -E make_directory ${{runner.workspace}}/deps
- name: Dependencies
run: |
Expand Down Expand Up @@ -264,7 +264,7 @@ jobs:
GPU-AMD:
name: GPU-HIP
needs: [Formatting, CPU-GNUmake]
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Clone
uses: actions/checkout@v4
Expand All @@ -276,18 +276,17 @@ jobs:
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
echo "CCACHE_COMPRESSLEVEL=5" >> $GITHUB_ENV
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
- name: Dependencies
run: |
${{github.workspace}}/Submodules/AMReX/.github/workflows/dependencies/ubuntu_free_disk_space.sh
curl -O https://repo.radeon.com/rocm/rocm.gpg.key
sudo apt-key add rocm.gpg.key
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/5.6.1/ ubuntu main' \
| sudo tee /etc/apt/sources.list.d/rocm.list
echo 'export PATH=/opt/rocm/llvm/bin:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin:$PATH' \
| sudo tee -a /etc/profile.d/rocm.sh
sudo mkdir --parents --mode=0755 /etc/apt/keyrings
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.3.3 noble main" | sudo tee --append /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
echo 'export PATH=/opt/rocm/llvm/bin:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin:$PATH' | sudo tee -a /etc/profile.d/rocm.sh
sudo apt-get update
sudo apt-get install -y rocm-dev rocrand-dev rocprim-dev
sudo apt-get install -y --no-install-recommends build-essential rocm-dev rocrand-dev rocprim-dev hiprand-dev
- name: Install Ccache
run: |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz
Expand Down Expand Up @@ -346,7 +345,7 @@ jobs:
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
echo "CCACHE_COMPRESSLEVEL=5" >> $GITHUB_ENV
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
echo "CCACHE_DEPEND=1" >> $GITHUB_ENV
- name: Dependencies
run: |
Expand Down Expand Up @@ -458,7 +457,7 @@ jobs:
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
echo "CCACHE_COMPRESSLEVEL=5" >> $GITHUB_ENV
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
- name: Install Ccache
run: |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz
Expand Down Expand Up @@ -520,7 +519,7 @@ jobs:
echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
echo "CCACHE_COMPRESSLEVEL=5" >> $GITHUB_ENV
echo "CCACHE_LOGFILE=${{github.workspace}}/ccache.log.txt" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
- name: Install Ccache
run: |
wget https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-linux-x86_64.tar.xz
Expand Down
2 changes: 1 addition & 1 deletion Build/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ DIM = 3

COMP = gnu

USE_MPI = TRUE
USE_MPI = TRUE
USE_OMP = FALSE
USE_CUDA = FALSE
USE_EB = TRUE
Expand Down
7 changes: 6 additions & 1 deletion Docs/sphinx/LBM.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,9 @@ where :math:`u` is the velocity vector, :math:`\rho` is the density, :math:`w_i`

u(x, t) &= \frac{1}{\rho} \sum_{i} e_i f_i(x, t)

MARBLES implements both the D2Q9 and D3Q27 LBM approaches for two dimensional and three dimensional flow, respectively.
MARBLES implements both the D3Q27 LBM approach for two dimensional and three dimensional flow, respectively.

For the thermal version of MARBLES, please refer to additional theory related to the additional energy lattice and cross coupling,
in the PhD thesis
"Sawant, Nilesh. 'Kinetic Modeling of Reactive Flows.'. ETH Zurich, 2023. https://doi.org/10.3929/ETHZ-B-000607045."

51 changes: 51 additions & 0 deletions Docs/sphinx/VandV.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,54 @@ This demonstrates MARBLES ability to simulate flow through complex, porous media

.. image:: /figs/pine_box.gif
:width: 600pt


Viscosity verification
----------------------

This test case demonstrates MARBLES ability to maintain the correct viscosity over a wide range of temperatures.
Viscosity is computed from the simulation by tracking the maximum of velocity over time arising from an initial
condition consisting of a sinusoidal velocity perturbation.
The temperature is not restricted to 1/3, but it can be set to any value less than or equal to 1/3.
This feature has been enabled by incorporating product-form of the equilibrium distribition which
improves stability due to maximisation of the entropy and the incorporation of an extended lattice
Boltzmann approach which adds a non-local correction term to the pressure tensor to correct the insufficient
Galilean invariance of the standard lattice at the third order moment.

Input and post processing files: `Tests/test_files/viscosityTest/`

.. image:: /figs/kinematicViscosity.png
:width: 400pt


Thermal diffusivity verification
---------------------------------

This test case demonstrates MARBLES ability to maintain the correct thermal diffusivity over a wide range of temperatures,
as well as at different Prandtl numbers, adiabatic exponents and mean molecular masses.
Themal diffusivity is computed from the simulation by tracking the maximum of temperature over time arising from an initial
condition consisting of a sinusoidal temperature perturbation.
The capability to solve for temperature has been enabled by an additional lattice which conserves the total energy of the fluid.
The new lattice representing energy has been two way coupled with the existing momentum lattice which had been augmented with
product-form equilibrium and extended pressure term to compensate the third order error. The new energy lattice adds an
energy equation, while the multi-relaxation on the energy lattice enables a variable Prandtl number and an adjustable adiabatic
exponent. The mean molecular mass is allowed to be a variable because the product form of the equilibrium on the
first lattice allows the variance of the equilibrium distribution to be RT instead of T.

Input and post processing files: `Tests/test_files/thermalDiffusivityTest/`

.. image:: /figs/thermalDiffusivity.png
:width: 400pt

Sod test tube
----------------------

This test case demonstrates MARBLES ability to solve compressible flows with realistic parameters of practical interest.
The correct position of the wave structures confirm that the speed of sound is correct in the thermal version of the solver. The model
is the same as that built for the thermal diffusivity test. The sod shock test marks the completion of the MARBLES solver to the
extent of a contunuum limit, single-component, single-phase, transient computational fluid dynamics solver with mass, momentum and energy equations.

Input and post processing files: `Tests/test_files/sodTest/`

.. image:: /figs/sodShock.png
:width: 600pt
Binary file added Docs/sphinx/figs/kinematicViscosity.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/sphinx/figs/sodShock.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/sphinx/figs/thermalDiffusivity.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading