diff --git a/docs/source_docs/user_guide/inputs/boundary_conditions.rst b/docs/source_docs/user_guide/inputs/boundary_conditions.rst index ba98905b7ad52778a76428c15f96819db1eefd78..322adba17c14c10814199ef695372a8e0c7c1dca 100644 --- a/docs/source_docs/user_guide/inputs/boundary_conditions.rst +++ b/docs/source_docs/user_guide/inputs/boundary_conditions.rst @@ -34,13 +34,13 @@ The type of the boundary conditions in the BC region must be defined with the pr | | * ``pi`` - pressure inflow | | | | | * ``po`` - pressure outflow | | | | | * ``mi`` - mass inflow | | | -| | * ``nsw`` - no-slip wall | | | | | * ``eb`` - embedded boundary - for inhomogeneous Dirichlet BCs | | | | | of temperature or fluid velocity (mass inflow) on the | | | | | contained EBs | | | +---------------------+-----------------------------------------------------------------------+-------------+-----------+ + Fluid settings ~~~~~~~~~~~~~~ @@ -52,7 +52,6 @@ using the prefix ``bc.[region_name].[fluid_name]``: | | Description | Type | Default | +========================+========================================================================+=============+===========+ | volfrac | Volume fraction [required if bc type is ``mi``] | Real | 0 | -| | | | | +------------------------+------------------------------------------------------------------------+-------------+-----------+ | density | Fluid density [required if bc type is ``mi`` or ``pi``] | Real | 0 | +------------------------+------------------------------------------------------------------------+-------------+-----------+ @@ -97,6 +96,138 @@ Below is an example for specifying boundary conditions for fluid (``fluid``). bc.outflow.fluid.pressure = 0.0 +Below is an example for specifying a normal inflow velocity magnitude for a region `eb-flow`. + +.. code-block:: none + + bc.regions = eb-flow + + bc.eb-flow = eb + + bc.eb-flow.my_fluid.volfrac = 1.0 + bc.eb-flow.my_fluid.velocity = 0.1 + +Below is an example where only specific cells are imposed a velocity inflow in the x-direction. + +.. code-block:: none + + bc.regions = eb-flow + + bc.eb-flow = eb + + bc.eb-flow.eb.normal_tol = 3.0 + bc.eb-flow.eb.normal = 0.9848 0.0000 0.1736 # 10 deg + + bc.eb-flow.my_fluid.volfrac = 1.0 + bc.eb-flow.my_fluid.velocity = 0.1 0.0 0.0 + + +.. _InputsBCSolids: + +Solids settings +~~~~~~~~~~~~~~~ + +For each inflow boundary condition region, general solids inputs are defined using the prefix ``bc.[region_name]``: + ++----------------------+------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++======================+==================================================================+=============+===========+ +| solids | Name of solid type in BC region. Only one solid is allowed in | String | None | +| | an BC region. | | | ++----------------------+------------------------------------------------------------------+-------------+-----------+ + +.. warning:: + + Mass inflow boundary conditions, ``bc.[region_name] = mi``, only support PIC parcels. EB inflow boundary conditions, + ``bc.[region_name] = eb``, support DEM particles and PIC parcels. + +For inflow boundary conditions , the solid inputs are defined using the prefix ``bc.[region_name].[solid_name]``: +Note that diameter distributions must define a weighting type, +please refer to :ref:`ReferenceParticleDistributions `. + ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++========================+=======================================================================+=============+===========+ +| volfrac | Volume fraction | Real | 0 | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| temperature | Temperature | Real | 0 | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| species.[species_name] | Mass fraction of ``species_name`` | Real | 0 | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| velocity | Velocity components | Reals | 0 0 0 | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| volflow | Volumetric flow rate. | Real | 0 | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| massflow | Mass flow rate. | Real | 0 | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter | Method to specify particle diameter in the IC region. This is | String | None | +| | only used for auto-generated particles. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``constant`` - specified constant | | | +| | * ``uniform`` - uniform distribution | | | +| | * ``normal`` - normal distribution | | | +| | * ``custom`` - user-defined distribution | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| type | Distribution weighting. | String | N/A | +| | | | | +| | Options: | | | +| | | | | +| | * ``number-weighted`` | | | +| | * ``volume-weighted`` | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| bins | Number of bins used when discretizing the distribution to approximate | Int | 64 | +| | the number of particles within an initial condition region. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter.constant | Monodisperse (single valued) particle diameter. | Real | 0 | +| | Required for ``constant`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter.mean | Distribution mean. | Real | 0 | +| | Required for ``normal`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter.std | Distribution standard deviation. | Real | 0 | +| | Required for ``normal`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter.min | Minimum diameter to clip distribution. | Real | 0 | +| | Required for ``normal`` distributions and ``uniform`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter.max | Maximum diameter to clip distribution. | Real | 0 | +| | Required for ``normal`` distributions and ``uniform`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| diameter.custom | File name that specifies either the cumulative or probability | String | None | +| | distribution. Required for ``custom`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density | Method to specify particle density in the IC region. This is | String | None | +| | only used for auto-generated particles. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``constant`` - specified constant | | | +| | * ``uniform`` - uniform distribution | | | +| | * ``normal`` - normal distribution | | | +| | * ``custom`` - user-defined distribution | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density.constant | Monodisperse (single valued) particle density. | Real | 0 | +| | Required for ``constant`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density.mean | Distribution mean. | Real | 0 | +| | Required for ``normal`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density.std | Distribution standard deviation. | Real | 0 | +| | Required for ``normal`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density.min | Minimum diameter to clip distribution. | Real | 0 | +| | Required for ``normal`` distributions and ``uniform`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density.max | Maximum diameter to clip distribution. | Real | 0 | +| | Required for ``normal`` distributions and ``uniform`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ +| density.custom | File name that specifies either the cumulative or probability | String | None | +| | distribution. Required for ``custom`` distributions. | | | ++------------------------+-----------------------------------------------------------------------+-------------+-----------+ + + Transient boundary conditions ----------------------------- @@ -125,96 +256,128 @@ transient BCs. .. image:: ./images/transient-bc.png -Embedded boundary options -------------------------- - -In MFIX-Exa it is possible to set boundary conditions on the embedded -boundaries. For instance, it is possible to set inhomogeneous Dirichlet boundary -conditions for the fluid temperature variable on the subpart of the embedded -boundaries which is contained in the BC region (which in this case has to be -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 preceded by the prefix ``bc.[region_name]`` - -+---------------------+-----------------------------------------------------------------------+-------------+-----------+ -| | Description | Type | Default | -+=====================+=======================================================================+=============+===========+ -| eb.temperature | Inhomogeneous Dirichlet BC value for temperature on EBs contained in | Real | 0.0 | -| | the (tridimensional) region [required if advect_enthalpy=1 and | | | -| | bc_region_type='eb']. | | | -+---------------------+-----------------------------------------------------------------------+-------------+-----------+ +Thermal boundary conditions +--------------------------- -Below is an example for specifying boundary conditions for a fluid `myfluid`. +Boundary conditions can be applied to embedded boundaries (EBs). For example, a constant wall temperature can be +imposed on the entire EB or restricted to a specific region. + +To apply a boundary condition to only a portion of an EB, a face normal vector and tolerance can be specified. This +allows the condition to be applied only to EB faces whose normals align with the specified direction within a given +angular tolerance. The following inputs are defined using the prefix ``bc.[region_name].eb``: + ++--------------------+-----------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++====================+=======================================================================+=============+===========+ +| normal | [Optional] Specifies the target face normal direction. Only EB faces | Reals | 0 0 0 | +| | whose normals are parallel (within the specified tolerance) will have | | | +| | the boundary condition applied. | | | ++--------------------+-----------------------------------------------------------------------+-------------+-----------+ +| normal_tol | [Optional] Angular tolerance (in degrees) used with ``eb.normal`` to | Real | 0 | +| | select EB faces. A value of 0 requires exact alignment. | | | ++--------------------+-----------------------------------------------------------------------+-------------+-----------+ + + +The following table lists the thermal boundary condition options that can be applied to embedded boundaries (EBs), with +inputs defined using the prefix ``bc.[region_name].eb``. + ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++======================+=======================================================================+=============+===========+ +| temperature | Specify a wall temperature model for the embedded boundary. | String | adiabatic | +| | | | | +| | Options: | | | +| | | | | +| | * ``adiabatic`` - no heat flux through the wall | | | +| | * ``constant`` - impose a constant temperature along the EB. | | | +| | * ``CHT-1D`` - compute a temperature for the wall using the 1D | | | +| | conjugate heat transfer model. | | | +| | | | | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| temperature.constant | Constant wall temperature. | Real | None | +| | A valid is required for ``constant`` EB temperature model. | | | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ + +The conjugate heat transfer model approximates heat transfer through the embedded boundary using one-dimensional, +steady-state conduction. The external environment is treated as a thermal reservoir with a constant temperature +in both space and time. This approach is illustrated in :numref:`fig_conjugate_heat_transfer_bc`, where heat flows +through a series of thermal resistances: from the fluid to the inner wall surface, through the wall, and finally +to the environment. The direction of heat transfer---into or out of the system---is governed by the temperature +gradient between the fluid and the surroundings. + +.. _fig_conjugate_heat_transfer_bc: + +.. figure:: ./images/CHT-1D.png + :height: 2in + :align: center + :alt: Schematic of the conjugate heat transfer boundary condition. + + Schematic of the conjugate heat transfer boundary condition. + +An effective resistance is calculated based on the convective heat transfer coefficient between the fluid +and wall, :math:`h_{int}`, conduction through the wall with thickness :math:`L_w` and thermal conductivity +:math:`\kappa_w`, and convective heat transfer from the exterior wall to the environment :math:`h_{ext}`. + +.. math:: + + R_{eff} = \left( \frac{1}{h_{int}} + \frac{L_w}{\kappa_w} + \frac{1}{h_{ext}} \right)^{-1} + +The interior wall temperature is determined by balancing the heat flux contributions from internal +convection, wall conduction, and external convection, resulting in a closed-form expression based +on the effective thermal resistance of the system. + +.. math:: + + T_{w,int} = T_f - \frac{1}{h_{int}}\left[ \frac{T_f - T_{\infty}}{R_{eff}} \right] + + +The model settings are defined using the prefix ``bc.[region_name].eb.temperature.CHT-1D``: + +.. |avg_T| replace:: :math:`T = \varepsilon_f T_f + (1-\varepsilon_f) \overline{T}_p` + +.. |avg_Tp| replace:: :math:`\overline{T}_p = \left( {\sum_p^{N_p} T_p V_p} \right) / \left( {\sum_p^{N_p} V_p} \right)` + ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++============================+========================================================================+=============+===========+ +| T_env | Environment temperature | Real | None | ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ +| h_int | Heat Transfer Coefficient (fluid–wall, internal) | Real | None | +| | | | | +| | Specifies the convective heat transfer coefficient [W/m² K] between | | | +| | the fluid and adjacent solid walls (EBs) located within the interior | | | +| | of the computational domain. | | | +| | | | | ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ +| h_ext | Heat Transfer Coefficient (wall-environment, external) | Real | None | +| | | | | +| | Specifies the convective heat transfer coefficient [W/m² K] between | | | +| | the wall and the external environment. | | | +| | | | | ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ +| wall.conductivity | The thermal conductivity of the wall. | Real | None | ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ +| wall.thickness | Wall thickness. | Real | None | ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ +| phase_averaged_temperature | Use a phase averaged temperature for simulations containing particles. | Bool | false | +| | The phase averaged temperature is computed as the volume fraction | | | +| | weighted sum of the fluid and averaged particle temperatures. | | | +| | | | | +| | |avg_T| | | | +| | | | | +| | The averaged particle temperature is computed by depositing the | | | +| | volume-averaged particle temperature to the grid. | | | +| | | | | +| | |avg_Tp| | | | ++----------------------------+------------------------------------------------------------------------+-------------+-----------+ + + +Below is an example for specifying a constant temperature boundary condition in the ``hot-walls`` region. .. code-block:: none bc.regions = hot-wall bc.hot-walls = eb - bc.hot-walls.eb.temperature = 800 - -In addition to the temperature, it is possible to set an inflow condition for fluid -on an embedeed boundary. We recall that, on the remaining part of the EBs, -no slip velocity conditions are assumed by default. - -In the following table is a list of the possible entries for inflow EB boundary -conditions. Each entry must be preceded by the prefix ``bc.[region_name]``. Like traditional mass -inflows, the fluid temperature, pressure, and species composition must be -provided when appropriate. - -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| | Description | Type | Default | -+=======================+=======================================================================+=============+===========+ -| [fluid_name].velocity | [Required if not `volflow` or `massflow`] | | | -| | Inflow fluid velocity on EB faces | Reals | 0 0 0 | -| | contained in the (tridimensional) region. | | | -| | Note that if only one value is specified, that is assumed to | | | -| | be the magnitude in the direction of the EB face's normal. | | | -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| [fluid_name].volflow | [Required if not `velocity` or `massflow`] | | | -| | Inflow BC for fluid volumetric flow | Real | 0 | -| | rate in the (tridimensional) region. The flow is assumed to be | | | -| | normal to the EB surface in the region. | | | -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| [fluid_name].massflow | [Required if not `velocity` or `volflow`] | | | -| | Inflow BC for fluid mass flow rate in the (tridimensional) region. | Real | 0 | -| | The flow is assumed to be normal to the EB surface in the region. | | | -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| [fluid_name].volfrac | [Required] Volume fraction. | Real | 0 | -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| eb.normal | [Optional] When specified, only cells with EB face normal that is | Reals | 0 0 0 | -| | parallel and opposite in direction to the specified values | | | -| | are imposed with the inflow velocity. | | | -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| eb.normal_tol | [Optional] Used in conjunction with `eb.normal`. It determines the | Real | 0 | -| | tolerance (in degrees) for choosing cells with a specific normal. | | | -+-----------------------+-----------------------------------------------------------------------+-------------+-----------+ - -Note that only one of ``velocity`` or ``volflow`` or ``massflow`` should be specified. - -Below is an example for specifying a normal inflow velocity magnitude for a region `eb-flow`. - -.. code-block:: none - - bc.regions = eb-flow - - bc.eb-flow = eb - - bc.eb-flow.my_fluid.volfrac = 1.0 - bc.eb-flow.my_fluid.velocity = 0.1 - -Below is an example where only specific cells are imposed a velocity in the x-direction. - -.. code-block:: none - - bc.regions = eb-flow - - bc.eb-flow = eb - - bc.eb-flow.eb.normal_tol = 3.0 - bc.eb-flow.eb.normal = 0.9848 0.0000 0.1736 # 10 deg - - bc.eb-flow.my_fluid.volfrac = 1.0 - bc.eb-flow.my_fluid.velocity = 0.1 0.0 0.0 + bc.hot-walls.eb.temperature = constant + bc.hot-walls.eb.temperature.constant = 800 diff --git a/docs/source_docs/user_guide/inputs/images/CHT-1D.png b/docs/source_docs/user_guide/inputs/images/CHT-1D.png new file mode 100644 index 0000000000000000000000000000000000000000..4e428ba55cb180854e7a86505498d8bbd8b14414 Binary files /dev/null and b/docs/source_docs/user_guide/inputs/images/CHT-1D.png differ