Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/AMReX-Codes/MFIX-Exa
Browse files Browse the repository at this point in the history
  • Loading branch information
mic84 committed Dec 17, 2020
2 parents c9b7867 + 55968bc commit 04824a5
Show file tree
Hide file tree
Showing 12 changed files with 238 additions and 237 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build-and-Deploy

# Run this workflow every time a new commit pushed to your repository
on: push

jobs:
# Set the job key. The key is displayed as the job name
# when a job name is not provided
publish:
# Name the Job
name: Build Sphinx manual HTML target
# Set the type of machine to run on
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Install Doxygen
run: sudo apt install doxygen

- name: Install Sphinx
run: pip install sphinx sphinx-rtd-theme

- name: Checkout code
uses: actions/checkout@v2

- name: Build MFiX-Exa HTML manual
run: make -C docs
env:
DEFAULT_BRANCH: main
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}

- name: Deploy to GitHub Pages
if: success()
uses: crazy-max/ghaction-github-pages@v2
with:
target_branch: gh-pages
build_dir: docs/webroot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31 changes: 0 additions & 31 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion docs/source/Inputs_Chapter.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ keywords such as ``mfix``, ``amr``, ``geometry``, ``nodal_proj`` etc.
.. toctree::
:maxdepth: 1

Units, mesh, geometry, species, fluid, DEM, regions, inital and boundary conditions <inputs/InputsProblemDefinition>
Units, mesh, geometry, species, fluid, DEM, regions, initial and boundary conditions <inputs/InputsProblemDefinition>
Particle drag <inputs/InputsDrag>
inputs/InputsTimeStepping
inputs/InputsInitialization
Expand Down
6 changes: 3 additions & 3 deletions docs/source/eb/EBWalls.rst
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ The :cpp:`mfix` class stores the following EB data:

As discussed in the previous sub-section, the difference between
:cpp:`mfix::eb_levels` and :cpp:`mfix::particle_eb_levels` enables the user to
specify a modfied EB geometry for particles only. Whereas the fluid sees the EB
specify a modified EB geometry for particles only. Whereas the fluid sees the EB
geometry in :cpp:`mfix::eb_levels`. If no addition particle EB geometry is
specified (point 4 in the previous section), then
:cpp:`mfix::particle_eb_levels` points to :cpp:`mfix::eb_levels`.
Expand Down Expand Up @@ -229,7 +229,7 @@ calling :cpp:`mfix::Init`. The recommended procedure therefore is
Also note that mfix defines boundary conditions in Fortran also (via the
mfix.dat). Since these are potentially needed to build EB walls,
:cpp:`mfix::make_eb_geometry` also calls :cpp:`mfix_set_bc_type`.

The grids for each level are build in the :cpp:`mfix::Init` by invoking the
initialization functions inherited from :cpp:`amrex::AmrCore`.

Expand Down Expand Up @@ -305,4 +305,4 @@ There are two special cases involving level-sets:

.. _AMReX EB documentation: https://amrex-codes.github.io/amrex/docs_html/EB_Chapter.html
.. _AMReX Level-Set documentation: https://amrex-codes.github.io/amrex/docs_html/EB.html#level-sets
.. _AMReX geometry documentation: https://amrex-codes.github.io/amrex/docs_html/EB.html#initializing-the-geometric-database
.. _AMReX geometry documentation: https://amrex-codes.github.io/amrex/docs_html/EB.html#initializing-the-geometric-database
16 changes: 8 additions & 8 deletions docs/source/inputs/InputsDrag.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@ The following inputs must be preceded by "mfix."
| drag_type | Which drag model to use | String | None |
+-------------------+-----------------------------------------------------------------------+-------------+-----------+

The options currently supported in mfix are :cpp:`WenYu`, :cpp:`Gidaspow`, :cpp:`BVK2`, or :cpp:`UserDrag`.
The options currently supported in mfix are :cpp:`WenYu`, :cpp:`Gidaspow`, :cpp:`BVK2`, or :cpp:`UserDrag`.

If one of these is not specified, the code will abort with
If one of these is not specified, the code will abort with

.. highlight:: c++

::

amrex::Abort::0::"Don't know this drag type!!!
amrex::Abort::0::"Don't know this drag type!!!

The drag models are defined in src/src_des/des_drag_K.H

If the user wishes to use their own drag model, they must

* specify :cpp:`mfix.drag_type = UserDrag` in the inputs file
* specify :cpp:`mfix.drag_type = UserDrag` in the inputs file

* provide the code in the ComputeDragUser routine in a local usr_drag.cpp file.
An example can be found in tests/DEM06-x.
Expand All @@ -39,7 +39,7 @@ With the variables defined as follows:
* Mug - gas laminar viscosity
* ROpg - gas density * EP_g
* vrel - magnitude of gas-solids relative velocity
* DPM - particle diamater of solids phase M
* DPM - particle diameter of solids phase M
* DPA - average particle diameter
* PHIS - solids volume fraction of solids phases
* fvelx - x component of the fluid velocity at the particle position
Expand All @@ -49,7 +49,7 @@ With the variables defined as follows:
* pid - particle id number
*/
The WenYu model is defined as
The WenYu model is defined as

.. code:: shell
Expand All @@ -67,7 +67,7 @@ The WenYu model is defined as
if (RE < DEMParams::eps) return 0.0;
return 0.75 * C_d * vrel * ROPg * std::pow(EPg, -2.65) / DPM;
The Gidaspow model is defined as
The Gidaspow model is defined as
.. code:: shell
Expand Down Expand Up @@ -97,7 +97,7 @@ The Gidaspow model is defined as
if (RE < DEMParams::eps) return 0.0;
return (1.0 - PHI_gs)*Ergun + PHI_gs*WenYu;
The Gidaspow model is defined as
The Gidaspow model is defined as
.. code:: shell
Expand Down
2 changes: 1 addition & 1 deletion docs/source/inputs/InputsProblemDefinition.rst
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,7 @@ tridimensional). We recall that, on the remaining part of the EBs, homogeneous
Neumann boundary conditions are assumed by default.

In the following table there is a list of the possible entries for EB boundary
conditions. Each entry must be preceeded by `bc.[region0].`
conditions. Each entry must be preceded by `bc.[region0].`

+---------------------+-----------------------------------------------------------------------+-------------+-----------+
| | Description | Type | Default |
Expand Down
4 changes: 2 additions & 2 deletions docs/source/qb/granRT.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ numerical results for roughly the first half of the transien: an initially flat
interface gives way to many fingers falling into the gas which merge and form
a semi-stable bubble pattern. However, the simulated bubbles appear to be less
stable than those in the lab, which rise uniformily to the surface. However, in
the simulations the center bubble rises slighlty faster than the one on the
the simulations the center bubble rises slightly faster than the one on the
left, which shifts more weight over the left-hand bubble, which further impedes
its rise and eventually "squishes" the left-hand bubble into the center bubble
as it breaks the surface. Later, the right hand bubble also merges with (what
Expand All @@ -77,7 +77,7 @@ significantly accelerates the second half of the transient (notice the
different times between experiment and simulation). Several different
variations of this setup were performed: different drag laws, slower inversion
time, different combinations of particle restitution and friction coefficients,
inclusion of front and back walls. Although all tests were slighlty different,
inclusion of front and back walls. Although all tests were slightly different,
none were able to match the stability of the later time bubble pattern observed
experimentally.

Expand Down
94 changes: 45 additions & 49 deletions docs/source/qb/hcs.rst
Original file line number Diff line number Diff line change
@@ -1,52 +1,52 @@
.. _Chap:QB:hcs:

Clustering in the HCS
Clustering in the HCS
======================


The HCS is the simplest non-trivial particulate gas-solid system. The continuum
The HCS is the simplest non-trivial particulate gas-solid system. The continuum
gas-phase is initially at rest. The particles are uniformily distributed in space
and have zero momentum in all three directions. However, the particle pecular
velocity is non-zero, quantified by an initial *granular* temperature,
:math:`T_0`. The system is periodic in all direcitons and no external forces act
on the system. Under homogeneous conditions, the granular temperature, :math:`T`,
is equivalent to two-thirds of the the (massless) mean particle kinetic energy.
In the HCS, the Eulerian kinetic theory (KT) model of Garzo et al. [GTSH12]_
reduces to:

.. math::
\frac{dT}{dt} = - \frac{2 \gamma}{m} T - \zeta_0 T
where :math:`m` is the particle mass, :math:`\gamma` is the thermal drag and
:math:`\zeta_0` is the zeroth-order cooling rate. The first term on the RHS
above represents viscous dissipation due to the interstitial gas while the
second term represents collisional dissipation due inelastic particle-particle
interactions. The ODE has an analytical solution given by Yin et al. [YZMH13]_
and have zero momentum in all three directions. However, the particle pecular
velocity is non-zero, quantified by an initial *granular* temperature,
:math:`T_0`. The system is periodic in all directions and no external forces act
on the system. Under homogeneous conditions, the granular temperature, :math:`T`,
is equivalent to two-thirds of the the (massless) mean particle kinetic energy.
In the HCS, the Eulerian kinetic theory (KT) model of Garzo et al. [GTSH12]_
reduces to:

.. math::
\frac{dT}{dt} = - \frac{2 \gamma}{m} T - \zeta_0 T
where :math:`m` is the particle mass, :math:`\gamma` is the thermal drag and
:math:`\zeta_0` is the zeroth-order cooling rate. The first term on the RHS
above represents viscous dissipation due to the interstitial gas while the
second term represents collisional dissipation due inelastic particle-particle
interactions. The ODE has an analytical solution given by Yin et al. [YZMH13]_
(also see [LBFHHGS16]_ for the exact model used herein which also includes a
first-order thermal Reynolds number extension to :math:`\gamma`). In the absence
of clustering, the granular temperature in the HCS decays according to the
analytical solution, known as Haff's law [H83]_ in granular systems:
:math:`\gamma = 0`. However, at a critical system size [G05]_, :math:`L^*_c`,
(where :math:`L^* = L/d_p`), the initially homogeneous state gives way to the
most fundamental of gas-solid instabilities, the clustering instability, which
causes :math:`T` (or more accurately :math:`KE`) to deviate significantly from
KT solution due to regions of high and low concentration and correlated motion.
first-order thermal Reynolds number extension to :math:`\gamma`). In the absence
of clustering, the granular temperature in the HCS decays according to the
analytical solution, known as Haff's law [H83]_ in granular systems:
:math:`\gamma = 0`. However, at a critical system size [G05]_, :math:`L^*_c`,
(where :math:`L^* = L/d_p`), the initially homogeneous state gives way to the
most fundamental of gas-solid instabilities, the clustering instability, which
causes :math:`T` (or more accurately :math:`KE`) to deviate significantly from
KT solution due to regions of high and low concentration and correlated motion.


To test if MFiX-Exa predicts the expected clustering behavior, a system is set up
with the following non-dimensional parameters:

* initial thermal Reynolds number: :math:`Re_{T_0} = \rho_g d_p \sqrt{T_0} / \mu_g = 20`
* density ratio: :math:`\rho^* = \rho_p / \rho_g = 1000`
* restitution coefficient: :math:`e = 0.8`
* solids concentration: :math:`\phi = \pi N_p / 6 L^*_x L^*_y L^*_z \approx 0.05`

While not specifically studied by Fullmer et al. [FLYH18]_, their results
indicate that :math:`L_c^*` may be as large as 100 at these conditions.
While not specifically studied by Fullmer et al. [FLYH18]_, their results
indicate that :math:`L_c^*` may be as large as 100 at these conditions.
In order to avoid the region near critical stability, we use a significnatly
larger system size: :math:`L^*_x = L^*_y = 256`. The system is thin in the
depth dimension, :math:`L^*_z = 8` in order to highlight the clustering
phenomena. Therefore, :math:`N_p = 50000`. Because the system is hypothetical,
larger system size: :math:`L^*_x = L^*_y = 256`. The system is thin in the
depth dimension, :math:`L^*_z = 8` in order to highlight the clustering
phenomena. Therefore, :math:`N_p = 50000`. Because the system is hypothetical,
the ideal :cpp:`BVK2` DNS drag law is applied, see [BvK07]_, [TPKKv15]_.


Expand All @@ -55,20 +55,20 @@ the ideal :cpp:`BVK2` DNS drag law is applied, see [BvK07]_, [TPKKv15]_.
:align: center
:alt: kinetic energy decay in the HCS

Decay of the particle mean kinetic energy compared to the KT analytical
soluiton of the GTSH model.
Decay of the particle mean kinetic energy compared to the KT analytical
soluiton of the GTSH model.


Three replicate systems are simulated with MFiX-Exa 19.08, differing only
in initial particle locations and pecular velocities. The particle kinetic
energy is averaged in the simulations (red) and compared to the analytical
granular temperature (black) of the HCS as a funciton of time in the figure
above. The kinetic energy :math:`KE / KE_0` decays by two to three orders of
magnitude in line with the HCS result until clustering and localized mean
motion cause a drastic deviation. The final result at :math:`t^* = 1000`
for one of the replicates is shown below (at right) compared to the seminal
result of Goldhirsch and Zanetti [GZ93]_ (true 2D), the original demonstration
of the clustering instability the HCS.
Three replicate systems are simulated with MFiX-Exa 19.08, differing only
in initial particle locations and pecular velocities. The particle kinetic
energy is averaged in the simulations (red) and compared to the analytical
granular temperature (black) of the HCS as a function of time in the figure
above. The kinetic energy :math:`KE / KE_0` decays by two to three orders of
magnitude in line with the HCS result until clustering and localized mean
motion cause a drastic deviation. The final result at :math:`t^* = 1000`
for one of the replicates is shown below (at right) compared to the seminal
result of Goldhirsch and Zanetti [GZ93]_ (true 2D), the original demonstration
of the clustering instability the HCS.


.. figure:: figs/hcs_xy_1908.png
Expand All @@ -77,8 +77,4 @@ of the clustering instability the HCS.
:alt: clustered state of the HCS

Clustered state of the HCS observed by Goldhirsch and Zanetti [GZ93]_
(left) compared to an MFiX-Exa result (right).




(left) compared to an MFiX-Exa result (right).
19 changes: 9 additions & 10 deletions docs/source/qb/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
Qualitative Benchmarks
======================

MFiX-Exa uses a three level approach to regression testing spaning from simple
MFiX-Exa uses a three level approach to regression testing spanning from simple
and/or short smoke tests to validation problems comparing against experimental
data. Most of the validation benchmarks target the physics of interest to
MFiX-Exa's intended audience, i.e., dense bubbling, fast fluidization and
pneumatic transport of particulate solids by a light gas. In an effort to widen
the phase-space in which MFiX-Exa may be (potentially) applied, a set of
qualitative benchmark problems are provided below which focus more on the
phenomenology of a given, problem rather than averaged statistical measures.
Animations of numerical soluitons to several of the qualitative benchmarks
can be seen in the
data. Most of the validation benchmarks target the physics of interest to
MFiX-Exa's intended audience, i.e., dense bubbling, fast fluidization and
pneumatic transport of particulate solids by a light gas. In an effort to widen
the phase-space in which MFiX-Exa may be (potentially) applied, a set of
qualitative benchmark problems are provided below which focus more on the
phenomenology of a given, problem rather than averaged statistical measures.
Animations of numerical soluitons to several of the qualitative benchmarks
can be seen in the
`Gallery <https://amrex-codes.github.io/MFIX-Exa/gallery.html>`_


Expand All @@ -25,4 +25,3 @@ can be seen in the
single_bubble
biseg
refs

Loading

0 comments on commit 04824a5

Please sign in to comment.