4.7. Scalars

The MFiX GUI supports adding user-defined scalars.

This section defines how scalars are implemented into MFIX GUI. An example layout of the Scalar Pane is provided in scalars_pane. The layout is similar to the Solids Model pane: a table summarizes previously defined scalars and add/delete buttons allow scalars to be added and removed. Select a row of the table to edit the corresponding Scalar’s Name and Phase.

A table lists the user-defined scalar name, the convecting phase, and the scalar index.

../_images/scalars.png

4.7.1. Add/Delete Scalars

To add a Scalar, navigate to the Scalars pane from the Modeler View, and click the (+) button.

To remove a Scalar, navigate to the Scalars pane from the Modeler View, select the scalar to remove, and click the (-) button.

4.7.2. Scalar Name: GUI-only description

By default, scalars are named “Scalar ID” where ID is the index of the scalar. It is recommended to edit the Name to something more descriptive. However, the scalar name is local to the GUI and not provided to the solver; in the solver and UDFs the Scalar is only referred to by Index.

4.7.3. Scalar Phase: Fluid or TFM Solid

There is a drop-down box to select the convecting phase from the phases defined in Fluids or Solids panes.

Selecting a phase with index PHASE sets keyword PHASE4SCALAR(ID) = PHASE where ID is the scalar index for the current scalar. PHASE is 0 for the fluid phase, or a positive integer for TFM solids.

The fluid phase is only an option when the fluid solver is enabled (Disable Fluid Solver is unchecked on Model Pane). Any defined TFM solids phases are listed as options for PHASE, but DEM and PIC solids phases are not listed as options.

4.7.4. Scalar ID (Index)

Each Scalar has an ID, indexed starting at zero.

4.7.4.1. Deleting Scalars and Contiguous indices

The MFiX solver assumes scalar array inputs are contiguous. As a result, if one or more scalar equations is removed or the order of the scalars is changed, then all scalar input arrays must be updated. For example, consider three scalars that are convected with a different phase.

NScalar = 3
Phase4Scalar(1) = 0
Phase4Scalar(2) = 1
Phase4Scalar(3) = 2

If a user deletes the second scalar, then array values assigned to the third scalar must be shifted down.

NScalar = 2
Phase4Scalar(1) = 0
Phase4Scalar(2) = 2

Array inputs for scalars include the following:

Phase4Scalar(1:NScalar)

IC_Scalar(:, 1:NScalar)

BC_HW_Scalar(:, 1:NScalar)
BC_ScalarW(:, 1:NScalar)
BC_C_Scalar(:, 1:NScalar)
BC_Scalar(:, 1:NScalar)

VTK_Scalar(:,1:NScalar)
MONITOR_Scalar(:,1:NScalar)