From b2a7755acade0c37d0b481f59202a92b9c228127 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Tue, 17 Sep 2024 16:26:40 -0400 Subject: [PATCH 1/3] Add Eulerian01 chemistry notes --- docs/source_docs/index.rst | 1 + .../verification/chemistry/eulerian01.rst | 85 ++++++++++++++++++ .../eulerian01_ForwardEuler_accuracy.png | Bin 0 -> 12480 bytes .../eulerian01_ForwardEuler_solution.png | Bin 0 -> 67650 bytes .../test_benchmarks/verification/index.rst | 25 ++++++ 5 files changed, 111 insertions(+) create mode 100644 docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst create mode 100644 docs/source_docs/test_benchmarks/verification/chemistry/images/eulerian01_ForwardEuler_accuracy.png create mode 100644 docs/source_docs/test_benchmarks/verification/chemistry/images/eulerian01_ForwardEuler_solution.png create mode 100644 docs/source_docs/test_benchmarks/verification/index.rst diff --git a/docs/source_docs/index.rst b/docs/source_docs/index.rst index 939c4e9..b5be310 100644 --- a/docs/source_docs/index.rst +++ b/docs/source_docs/index.rst @@ -81,6 +81,7 @@ and performance: test_benchmarks/CITests test_benchmarks/NightlyTests test_benchmarks/qualitative_bencharks/index + test_benchmarks/verification/index Notice ------ diff --git a/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst b/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst new file mode 100644 index 0000000..c200d95 --- /dev/null +++ b/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst @@ -0,0 +1,85 @@ +.. include:: ../../../definitions.rst + +Eulerian01: athermal, constant density +-------------------------------------- + +Description +~~~~~~~~~~~ + +Consider a system with a fluid comprised of two chemical species, :math:`A` and :math:`B`, with the transfer of species given by the reversible homogeneous reaction, + +.. math:: + :label: chem_eulerian01_eq01 + + A(g) \leftrightarrow B(g) + +If both species have the same molecular weight, specific heat, and enthalpy of formation, then the mixture molecular weight, system temperature, and density are constant. +The evolution of species mass is given by + +.. math:: + :label: chem_eulerian01_eq02 + + \rho\frac{\partial X_{A}}{\partial t} = \dot{\omega}_{A} + +where :math:`\rho` is density; +:math:`X_A` is the mass fraction of species :math:`A`; and +:math:`\dot{\omega}_{A}` is the net rate of production (consumption if negative) of species :math:`A`. + +A manufactured solution for species :math:`A` is + +.. math:: + :label: chem_eulerian01_eq03 + + X_A(t) = X_A^0 - \sin(6\pi t)/4 + +where :math:`X_A^0 = X_A(t=0)` is the initial mass fraction of species :math:`A`. Taking the derivative with respect to time, and substituting in into :eq:`chem_eulerian01_eq02` gives + +.. math:: + :label: chem_eulerian01_eq04 + + \dot{\omega}_A = -\rho 3\pi \cos(6\pi t)/2 + +which has units of kg\ |cdot|\ m\ :math:`^{-3}`\ |cdot| sec\ :math:`^{-1}`. Two modifications are required to implement this Eulerian reaction rate into MFIX-Exa: + +- Eq. :eq:`chem_eulerian01_eq04` needs to be divided by the molecular weight of species A because Eulerian reaction rates in MFIX-Exa are provided in units of mol\ |cdot|\ m\ :math:`^{-3}`\ |cdot| sec\ :math:`^{-1}`. +- The negative sign is omitted because species :math:`A` is a reactant. Specifically, by inspection of chemical equation :eq:`chem_eulerian01_eq01`, species :math:`A` is a reactant when the rate is positive (forward reaction), and a product when the rate is negative (backward reaction). + +The resulting Eulerian reaction rate is + +.. math:: + :label: chem_eulerian01_eq54 + + \dot{\omega}_A = \frac{\rho 3\pi \cos(6\pi t)}{2 M_A} + +Setup +~~~~~ + +The domain is a single cuboid cell with 0.0025 m edge length. The fluid has a constant temperature of 300 K at 60,795 Pa, and the initial composition is :math:`X_A=X_B=0.5`. The constant density is chosen to be 2 kg\ |cdot|\ m\ :math:`^{-3}`; therefore, the component and mixture molecular weights are computed from the ideal gas law :math:`M=\rho RT / p_{therm} \approx 0.0821` kg\ |cdot|\ mol\ :math:`^{-1}`. + + +Results +~~~~~~~ + +ForwardEuler +'''''''''''' + +The test is run at five fixed time-step sizes: 0.2, 0.1, 0.05, 0.025, 0.0125 milliseconds. The analytical solution and absolute error with dt = 0.2 msec are shown in :numref:`fig_chem_eulerian01_ForwardEuler_sol`. The :math:`L_1` norm is used to compute the observed order of accuracy shown in :numref:`fig_chem_eulerian01_ForwardEuler_ooa`. + +.. _fig_chem_eulerian01_ForwardEuler_sol: + +.. figure:: ./images/eulerian01_ForwardEuler_solution.png + :width: 95% + :align: center + :alt: Eulerian01 test numerical solution and absolute error + + Numerical solution for evoluation of species mass fraction and absolute error. + + +.. _fig_chem_eulerian01_ForwardEuler_ooa: + +.. figure:: ./images/eulerian01_ForwardEuler_accuracy.png + :width: 50% + :align: center + :alt: Eulerian01 test observed order + + Observed order of species mass fraction. diff --git a/docs/source_docs/test_benchmarks/verification/chemistry/images/eulerian01_ForwardEuler_accuracy.png b/docs/source_docs/test_benchmarks/verification/chemistry/images/eulerian01_ForwardEuler_accuracy.png new file mode 100644 index 0000000000000000000000000000000000000000..030b20f09a875e48c41589c9cc3beeda93f56eda GIT binary patch literal 12480 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 R4$$iyIq2$~ci`e5{|1G0AHDzp literal 0 HcmV?d00001 diff --git a/docs/source_docs/test_benchmarks/verification/chemistry/images/eulerian01_ForwardEuler_solution.png b/docs/source_docs/test_benchmarks/verification/chemistry/images/eulerian01_ForwardEuler_solution.png new file mode 100644 index 0000000000000000000000000000000000000000..463c3bc37674932ac38c8d22b410d304b8c4110d GIT binary patch literal 67650 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 ZTE2~mmSRdJfCT)=NGVE|zIylm{{Sy*f;j*H literal 0 HcmV?d00001 diff --git a/docs/source_docs/test_benchmarks/verification/index.rst b/docs/source_docs/test_benchmarks/verification/index.rst new file mode 100644 index 0000000..983dbce --- /dev/null +++ b/docs/source_docs/test_benchmarks/verification/index.rst @@ -0,0 +1,25 @@ +==================== +Chemistry code tests +==================== + +The test cases presented in this chapter for the MFIX fluid solver are summarized below. + +.. "Eulerian01", "C", "A", " ", " ", ":math:`{\checkmark}`" + + +.. |check| replace:: :math:`{\checkmark}` + ++-------------------+---------+---------+--------+-----------+---------+---------+---------+ +| Test | Freq\ † | Data\ ‡ | Phases | Momentum | Density | Species | Energy | ++===================+=========+=========+========+===========+=========+=========+=========+ +| Eulerian01 | C | A | Fluid | | |check| | | | ++-------------------+---------+---------+--------+-----------+---------+---------+---------+ + +† C-Incorporated into the continuous integration server; M-Monthly; Q-Quarterly; X-Manual; D-Disabled +‡ A-Analytical solution; P-Published benchmark data; R-Regression data from previous code versions + +.. toctree:: + :caption: Validation and Verification + :maxdepth: 1 + + chemistry/eulerian01 -- GitLab From aae95ec107cf3f4dfeba622e6581915a9cf7f195 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Fri, 20 Sep 2024 09:10:23 -0400 Subject: [PATCH 2/3] minor updates --- docs/source_docs/conf.py | 3 +++ .../verification/chemistry/eulerian01.rst | 26 ++++++++++++------- .../test_benchmarks/verification/index.rst | 2 ++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/docs/source_docs/conf.py b/docs/source_docs/conf.py index 82aa9ba..e4bbc5f 100644 --- a/docs/source_docs/conf.py +++ b/docs/source_docs/conf.py @@ -86,6 +86,9 @@ todo_include_todos = False numfig = True math_numfig = True +numfig_secnum_depth = 1 + +math_eqref_format = "Eq.{number}" bibtex_bibfiles = ['refs.bib'] diff --git a/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst b/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst index c200d95..7ac5f67 100644 --- a/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst +++ b/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst @@ -14,7 +14,7 @@ Consider a system with a fluid comprised of two chemical species, :math:`A` and A(g) \leftrightarrow B(g) If both species have the same molecular weight, specific heat, and enthalpy of formation, then the mixture molecular weight, system temperature, and density are constant. -The evolution of species mass is given by +The evolution of species mass in the absence of convection and diffusion is given by .. math:: :label: chem_eulerian01_eq02 @@ -32,7 +32,7 @@ A manufactured solution for species :math:`A` is X_A(t) = X_A^0 - \sin(6\pi t)/4 -where :math:`X_A^0 = X_A(t=0)` is the initial mass fraction of species :math:`A`. Taking the derivative with respect to time, and substituting in into :eq:`chem_eulerian01_eq02` gives +where :math:`X_A^0 = X_A(t=0)` is the initial mass fraction of species :math:`A`. Taking the derivative with respect to time, and substituting the result into :eq:`chem_eulerian01_eq02` gives .. math:: :label: chem_eulerian01_eq04 @@ -49,26 +49,34 @@ The resulting Eulerian reaction rate is .. math:: :label: chem_eulerian01_eq54 - \dot{\omega}_A = \frac{\rho 3\pi \cos(6\pi t)}{2 M_A} + R_A = \frac{\rho 3\pi \cos(6\pi t)}{2 M_A} Setup ~~~~~ -The domain is a single cuboid cell with 0.0025 m edge length. The fluid has a constant temperature of 300 K at 60,795 Pa, and the initial composition is :math:`X_A=X_B=0.5`. The constant density is chosen to be 2 kg\ |cdot|\ m\ :math:`^{-3}`; therefore, the component and mixture molecular weights are computed from the ideal gas law :math:`M=\rho RT / p_{therm} \approx 0.0821` kg\ |cdot|\ mol\ :math:`^{-1}`. +The domain is a single cuboid cell with 0.0025 m edge length and convection and diffusion terms are set to zero for all governing equations. The fluid has a constant temperature of 300 K at 60,795 Pa, and the initial composition is :math:`X_A=X_B=0.5`. The density is chosen to be 2 kg\ |cdot|\ m\ :math:`^{-3}`; therefore, the component and mixture molecular weights are computed from the ideal gas law :math:`M=\rho RT / p_{therm} \approx 0.0821` kg\ |cdot|\ mol\ :math:`^{-1}`. Results ~~~~~~~ -ForwardEuler -'''''''''''' +The test is run at five fixed time-step sizes with a refinement factor of 2: 0.2, 0.1, 0.05, 0.025, 0.0125 milliseconds. The :math:`L_1`\ -norm is computed by dividing the sum of the absolute difference between the analytical and numerical solution over all time steps by the total number of time steps. + +.. math:: + + L_1 = \frac{\sum_n \| X_A(t_n) - X_A^{\mathrm{\texttt{MFIX-Exa}}}\|}{n} + + +Forward Euler +''''''''''''' + +The analytical solution and absolute error with dt = 0.2 msec are shown in :numref:`fig_chem_eulerian01_ForwardEuler_sol`. The :math:`L_1` norm is used to compute the observed order of accuracy shown in :numref:`fig_chem_eulerian01_ForwardEuler_ooa`. -The test is run at five fixed time-step sizes: 0.2, 0.1, 0.05, 0.025, 0.0125 milliseconds. The analytical solution and absolute error with dt = 0.2 msec are shown in :numref:`fig_chem_eulerian01_ForwardEuler_sol`. The :math:`L_1` norm is used to compute the observed order of accuracy shown in :numref:`fig_chem_eulerian01_ForwardEuler_ooa`. .. _fig_chem_eulerian01_ForwardEuler_sol: .. figure:: ./images/eulerian01_ForwardEuler_solution.png - :width: 95% + :width: 85% :align: center :alt: Eulerian01 test numerical solution and absolute error @@ -78,7 +86,7 @@ The test is run at five fixed time-step sizes: 0.2, 0.1, 0.05, 0.025, 0.0125 mil .. _fig_chem_eulerian01_ForwardEuler_ooa: .. figure:: ./images/eulerian01_ForwardEuler_accuracy.png - :width: 50% + :width: 45% :align: center :alt: Eulerian01 test observed order diff --git a/docs/source_docs/test_benchmarks/verification/index.rst b/docs/source_docs/test_benchmarks/verification/index.rst index 983dbce..6d96dde 100644 --- a/docs/source_docs/test_benchmarks/verification/index.rst +++ b/docs/source_docs/test_benchmarks/verification/index.rst @@ -16,9 +16,11 @@ The test cases presented in this chapter for the MFIX fluid solver are summarize +-------------------+---------+---------+--------+-----------+---------+---------+---------+ † C-Incorporated into the continuous integration server; M-Monthly; Q-Quarterly; X-Manual; D-Disabled + ‡ A-Analytical solution; P-Published benchmark data; R-Regression data from previous code versions .. toctree:: + :numbered: :caption: Validation and Verification :maxdepth: 1 -- GitLab From a8fe1b64300645b07e502072b78afd224434ee36 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Fri, 20 Sep 2024 09:13:39 -0400 Subject: [PATCH 3/3] Fix codespell --- .../test_benchmarks/verification/chemistry/eulerian01.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst b/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst index 7ac5f67..0ceb3a1 100644 --- a/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst +++ b/docs/source_docs/test_benchmarks/verification/chemistry/eulerian01.rst @@ -80,7 +80,7 @@ The analytical solution and absolute error with dt = 0.2 msec are shown in :numr :align: center :alt: Eulerian01 test numerical solution and absolute error - Numerical solution for evoluation of species mass fraction and absolute error. + Numerical solution for species mass fraction and absolute error. .. _fig_chem_eulerian01_ForwardEuler_ooa: -- GitLab