.. include:: /images.rst .. _append_a: Manufactured Solution Mathematical Forms ======================================== (Note: All solution variables are in SI units.) .. Baseline 3D Manufactured Solutions .. ---------------------------------- The baseline manufactured solution selected for the verification study is a combination of sine and cosine functions and takes the following general form :cite:`Roy2003`, :cite:`Banks2008` .. math:: :label: a1eq1 \phi\left( x,y,z \right) = \phi_{0}& + \phi_{x}f_{\text{ϕx}}\left( \frac{a_{\text{ϕx}}\text{πx}}{L} \right) + \phi_{y}f_{\text{ϕy}}\left( \frac{a_{\text{ϕy}}\text{πy}}{L} \right) + \phi_{z}f_{\text{ϕz}}\left( \frac{a_{\text{ϕz}}\text{πz}}{L} \right)\\ & + \phi_{\text{xy}}f_{\text{ϕxy}}\left( \frac{a_{\text{ϕxy}}\text{πxy}}{L^{2}} \right) + \phi_{\text{yz}}f_{\text{ϕyz}}\left( \frac{a_{\text{ϕyz}}\text{πyz}}{L^{2}} \right) + \phi_{\text{zx}}f_{\text{ϕzx}}\left( \frac{a_{\text{ϕzx}}\text{πzx}}{L^{2}} \right) where, :math:`L` is a characteristic length (herein, selected equal to the domain length or :math:`L = 1`), and :math:`\phi = \left\lbrack P_{g},u_{g},v_{g},w_{g},u_{s},v_{s},w_{s},T_{g},T_{s} \right\rbrack^{T}` represents the set of primitive variables being tested for order of accuracy. The sinusoidal functions (:math:`f_{\text{ϕx}}`, :math:`f_{\text{ϕy}}`, etc.) selected are shown in :numref:`tableA1` .. _tableA1: .. csv-table:: Functions in baseline manufactured solutions. :widths: auto :header: "Variable, :math:`ϕ`", ":math:`f_{ϕx}`", ":math:`f_{ϕy}`", ":math:`f_{ϕz}`", ":math:`f_{ϕxy}`", ":math:`f_{ϕyz}`", ":math:`f_{ϕzx}`" ":math:`u_{g}`", "sin", "cos", "cos", "cos", "sin", "cos" ":math:`v_{g}`", "sin", "cos", "cos", "cos", "sin", "cos" ":math:`w_{g}`", "cos", "sin", "cos", "sin", "sin", "cos" ":math:`u_{s}`", "sin", "cos", "cos", "cos", "sin", "cos" ":math:`v_{s}`", "sin", "cos", "cos", "cos", "sin", "cos" ":math:`w_{s}`", "cos", "sin", "cos", "sin", "sin", "cos" ":math:`P_{g}`", "cos", "cos", "sin", "cos", "sin", "cos" ":math:`T_{g}`", "cos", "cos", "sin", "cos", "sin", "cos" ":math:`T_{s}`", "cos", "cos", "sin", "cos", "sin", "cos" ":math:`\varepsilon_{s}`", "cos", "cos", "sin", "--", "--", "--" The frequency constants (:math:`a_{\phi x}`, :math:`a_{\phi y}`, :math:`a_{\phi xy}`, etc.) and the amplitude constants (:math:`\phi_{0}`, :math:`\phi_{x}`, :math:`\phi_{\text{xy}}`, etc.) are selected to ensure functions that are smooth but show reasonable periodicity and magnitude within the domain. The frequency constants selected are shown in :numref:`tableA2`. .. _tableA2: .. csv-table:: Frequencies in baseline manufactured solutions. :widths: auto :header: "Variable, :math:`ϕ`", ":math:`a_{ϕx}`", ":math:`a_{ϕy}`", ":math:`a_{ϕz}`", ":math:`a_{ϕxy}`", ":math:`a_{ϕyz}`", ":math:`a_{ϕzx}`" ":math:`u_{g}`", "0.5", "0.85", "0.4", "0.6", "0.8", "0.9" ":math:`v_{g}`", "0.8", "0.8", "0.5", "0.9", "0.4", "0.6" ":math:`w_{g}`", "0.85", "0.9", "0.5", "0.4", "0.8", "0.75" ":math:`u_{s}`", "0.5", "0.85", "0.4", "0.6", "0.8", "0.9" ":math:`v_{s}`", "0.8", "0.8", "0.5", "0.9", "0.4", "0.6" ":math:`w_{s}`", "0.85", "0.9", "0.5", "0.4", "0.8", "0.75" ":math:`P_{g}`", "0.4", "0.45", "0.85", "0.75", "0.7", "0.8" ":math:`T_{g}`", "0.75", "1.25", "0.8", "0.65", "0.5", "0.6" ":math:`T_{s}`", "0.5", "0.9", "0.8", "0.5", "0.65", "0.4" ":math:`\varepsilon_{s}`", "0.4", "0.5", "0.5", "--", "--", "--" The amplitude constants selected are shown :numref:`tableA3`. .. _tableA3: .. csv-table:: Amplitudes in baseline manufactured solutions. :widths: auto :header: "Variable, :math:`ϕ`", ":math:`ϕ_{0}`", ":math:`ϕ_{x}`", ":math:`ϕ_{y}`", ":math:`ϕ_{z}`", ":math:`ϕ_{xy}`", ":math:`ϕ_{yz}`", ":math:`ϕ_{zx}`" ":math:`u_{g}`", "7", "3", "-4", "-3", "2", "1.5", "2" ":math:`v_{g}`", "9", "-5", "4", "5", "-3", "2.5", "3.5" ":math:`w_{g}`", "8", "-4", "3.5", "4.2", "-2.2", "2.1", "2.5" ":math:`u_{s}`", "7", "3", "-4", "-3", "2", "1.5", "2" ":math:`v_{s}`", "9", "-5", "4", "5", "-3", "2.5", "3.5" ":math:`w_{s}`", "8", "-4", "3.5", "4.2", "-2.2", "2.1", "2.5" ":math:`P_{g}`", "100", "20", "-50", "20", "-25", "-10", "10" ":math:`T_{g}`", "350", "10", "-30", "20", "-12", "10", "8" ":math:`T_{s}`", "300", "15", "-20", "15", "-10", "12", "10" ":math:`\varepsilon_{s}`", "0.3", "0.06", "0.1", "0.06", "--", "--", "--" .. Two-Phase, 3D, Manufactured Solutions .. ------------------------------------- The baseline manufactured solutions presented above are used to generate manufactured solutions for the two-phase flow test cases. As an example, the manufactured solution for the test case presented in :numref:`sec-2p6` is provided next. The manufactured solutions for the scalar variables (:math:`P_{g}`, :math:`T_{g}`, and :math:`T_{s}`) are simply obtained from :eq:`a1eq1` and by substituting the appropriate functions and constants described above. For example, for the pressure variable (:math:`P_{g}`), this function is as follow: .. math:: :label: a1eq2 P_{g} = 100& + 20\cos\left( 0.4\pi x \right) - 50\cos\left( 0.45\pi y \right) + 20\sin\left( 0.85\pi z \right) \\ & - 25\cos\left( 0.75\pi xy \right) - 10\sin\left( 0.7\pi yz \right) + 10\cos\left( 0.8\pi zx \right) The manufactured solutions for velocity components of the gas phase are obtained by taking the curl of the baseline velocity vector field, i.e., .. math:: {\overrightarrow{V}}_{g} = u_{g}\widehat{i} + v_{g}\widehat{j} + w_{g}\widehat{k}\ = \left| \begin{matrix} \widehat{i} & \widehat{j} & \widehat{k} \\ \frac{\partial}{\partial x} & \frac{\partial}{\partial y} & \frac{\partial}{\partial y} \\ \phi(u_{g}) & \phi(v_{g}) & \phi(w_{g}) \\ \end{matrix} \right| :label: a1eq3 where, for example, :math:`\phi\left( u_{g} \right)` is the baseline manufactured solution obtained from :eq:`a1eq1`, the functions, and the constants described above for the variable :math:`u_{g}`. This results in a divergence free velocity field because :math:`\nabla \cdot (\nabla \times \overrightarrow{H})` is identically zero for any vector field, :math:`\overrightarrow{H}`. Thus, the manufactured solution for :math:`u_{g}` is given as: .. math:: :label: a1eq4 u_{g} =& - \pi y\cos\left( 0.4\pi yz \right) + 2.5\pi\sin\left( 0.5\pi z \right) + 2.1\pi x\sin\left( 0.6\pi zx \right) \\ & - \ 0.88\pi x\cos\left( 0.4\pi xy \right) + \ 3.15\pi\cos\left( 0.9\pi y \right) + 0.68\pi z\cos\left( 0.8\pi yz \right) Similarly, the manufactured solution for :math:`v_{g}` and :math:`w_{g}` can be derived. Finally, the manufactured solution for velocity components of the solids phase is selected as simply the following divergence free field: .. math:: u_{s} = 5\operatorname{}\left( 0.5\pi\left( x + y + z \right) \right) :label: a1eq5 .. math:: v_{s} = 5\operatorname{}\left( 0.5\pi\left( x + y + z \right) \right) :label: a1eq6 .. math:: w_{s} = 5 :label: a1eq7 Manufactured solutions for other MMS test cases presented are derived using the baseline manufactured solutions and appropriate constraints (divergence free field, boundary conditions, etc.). For a complete look at the MMS function and MMS source terms, please see the MMS_MOD.f file under the respective test case of the MFIX distribution. .. toctree:: :caption: MMS expressions :maxdepth: 2 appendix_a2 appendix_a3 appendix_a4 appendix_a5 .. image57 .. .. image58\ **Charles Zeh** .. .. Acting Executive Director .. .. Technology Development & Integration Center .. .. National Energy Technology Laboratory .. .. U.S. Department of Energy .. .. **Randall Gentry** .. .. Deputy Director .. .. Science & Technology Strategic Plans & Programs .. .. National Energy Technology Laboratory .. .. U.S. Department of Energy .. .. **Technology Manager** .. .. Strategic Planning .. .. Science & Technology Strategic Plans & Programs .. .. National Energy Technology Laboratory .. .. U.S. Department of Energy .. .. image59 .. .. **Bryan Morreale** .. .. Executive Director .. .. Research & Innovation Center .. .. National Energy Technology Laboratory .. .. U.S. Department of Energy