# 4.4.3. Bulk Nodes

For some engineering problems the variation of a field variable over the problem domain can be roughly represented by some average behavior. In these cases it may be more appropriate to understand the averaged behavior rather than to resolve the behavior in fine detail. When numerically modeling these types of problems, it is convenient to devise lumped parameter models that simulate this averaged behavior.

One such modeling strategy, a bulk node model, is included in Aria to capture bulk fluid behavior without regard to spatial resolution. In this document the terms “bulk fluid element” and “bulk node” are often used interchangeably.

A bulk node defines a single new degree-of-freedom in your problem (often temperature) and sets up a conservation equation on that single node. The node can then be linked to the rest of the domain through boundary conditions coupled between sidesets on the mesh and the bulk node.

A general conservation equation containing mass and source terms for the bulk node degrees of freedom is included in the fully finite element model system of equations.

Some care is needed when selecting the heat transfer coefficient for a bulk node convection boundary condition. For example if modeling the fluid between two parallel plates via a bulk node, using a convection coefficient appropriate for the convective heat transfer between two plates would under-predict the heat transfer because that convection coefficient already accounts for the effect of the intervening fluid.

Example usage of the bulk node capability is outlined below, and a full command reference is available here. A bulk node requires a material model definition (a `Begin Aria Material` block at the Sierra level) as well as the `Begin bulk fluid element` block itself.

    Begin Sierra myJob
      .
      Begin Aria Material a_bulk_volume
        # properties for bulk volume
      End
      .
      Begin Procedure My_Aria_Procedure
        .
        Begin Aria Region My_Region
          .
          Begin bulk fluid element bulk_volume_name
            material = a_bulk_volume
            bulk EQ Energy for temperature using P0 with mass
            .
          End
          .
        End
        .
      End
      .
    End Sierra myJob

A few example bulk node definitions are included below, showing how to set up the bulk node with a few standard configurations.

A simple thermal bulk node with a user-specified volume could be specified with:

    Begin bulk fluid element bulk_volume_name
      material = a_bulk_volume
      bulk EQ Energy for temperature using P0 with mass
      initial temperature = 300
      bulk element volume = constant v = 0.01
    End

On the other hand, the volume can be computed automatically by Aria based on the enclosing surfaces. The list of enclosing surfaces is determined by the boundary conditions that you link to this bulk node.

    Begin bulk fluid element bulk_volume_name
      material = a_bulk_volume
      bulk EQ Energy for temperature using P0 with mass
      initial temperature = 300
      Calculate Volume From Enclosing Surface
    End

You may also want to be able to set up a bulk node that just has a constant temperature on it (volume is still required, although not directly used here). A similar effect can also be obtained by just making the bulk element volume very large (or by increasing density or specific heat) and keeping the `bulk EQ` line.

    Begin bulk fluid element bulk_volume_name
      material = a_bulk_volume
      initial temperature = 300
      bulk element volume = constant v = 0.25
    End

## 4.4.3.1. Boundary Conditions

Bulk nodes can be linked with either `BC BULKNODE_FLUX` boundary conditions, or the older block-style boundary conditions. Boundary conditions linked to a bulk node generally behave the same way as their non-bulk-node versions, except that any required reference temperature now comes from the bulk node, and the flux lost from the boundary condition is added to the bulk node automatically.

For all equations boundary conditions may be applied by using a line command of the form:

    BC BULKNODE_FLUX FOR energy ON surface_name = generalized_nat_conv BULK_NODE=my_bulk_node
    BC BULKNODE_FLUX FOR energy ON surface_name = generalized_rad BULK_NODE=my_bulk_node

The older block-style boundary conditions for bulk nodes also work, although using the line commands is recommended. For the block-style boundary conditions, add the `Use Bulk Element` command to link it to a bulk node.

    Begin Convective Flux Boundary Condition
      Use Bulk Element my_bulk_node
      .
    End

In some cases it is desirable to couple equations being solved for different degrees of freedom on the volume and the bulk fluid element. For example coupling a porous media equation for the gas phase temperature on a volume block to an overall temperature on the bulk fluid element, or an equation solved for enthalpy to an equation solved for temperature. If the same degree of freedom is not present on the bulk node and the volume then the following mappings are checked for:

- Same degree of freedom (e.g. temperature, pressure, mass fraction) but without a material phase specification on the bulk node when one is present on the volume block.

- Temperature degrees of freedom on the volume will check for enthalpy in either the same material phase or no material phase on the bulk node (and vice versa for an enthalpy degree of freedom on the volume). Additional mappings can be supported where they make sense, please email sierra-help@sandia.gov if you have such a use case.

If either no valid mapping or multiple valid mappings are found the simulation will terminate during initialization.

In addition to boundary conditions coupling a bulk fluid element to the surface of a volumetric block it is possible to directly couple bulk fluid elements to one another via the bulk node coupling block. One common use case for this is coupling between pressurization zones.

## 4.4.3.2. Restarting With Bulk Fluid Element

The bulk fluid element capability is supported for restarted simulations. It is worth noting that while bulk fluid element is generally not part of the original mesh discretization the element is being created internal to the code and is also being added to the results file as well as the restart file if defined. In some cases one may wish to initialize a simulation from a previous restart file that does not contain the bulk fluid element. In this case provision must be made to ignore the fact that the initialization does not include the bulk fluid element so that the bulk fluid element can be created anew.

Input for restart jobs subsequent to the bulk fluid element being added to a model should not contain the BULK NODES IGNORE RESTART command line.