5.2.1.4. Contact Example

Aria supports using contact to tie the temperature across adjacent interfaces that are not meshed contiguously. For complicated geometries, it is often easier to create quality meshes when the meshes are allowed to be discontiguous between parts.

For example, in the scenario shown below it is desirable to use thin hex elements in the board to accurately capture flux through the board, but using hexes in the shapes mounted on the board may be less feasible. Thermal contact can be used to allow non-contiguous meshes at those interfaces and make the problem setup easier.

Blocks in the mesh

When making such a mesh, the different volumes can be imprinted (but not merged) to force the separate blocks to use contiguous edges. In this case, this forces the mesh on the plate to have edges conformal with the component edges so faces are either fully in contact or fully exposed - although this is not required in order to use contact.

5.2.1.4.1. Problem Files

The files required for this example can be downloaded here, or found at $TESTS/aria_rtest/example/training/contact (where TESTS=/projects/sierra/tests in a CEE environment, or your Sierra test distribution otherwise).

5.2.1.4.2. Input Deck Modification

Regular boundary conditions (like convection) are automatically excluded from faces that are in contact, so nothing special needs to be done for boundary conditions on surfaces that may be in partial contact. In this example, sideset_2 is the entire top surface of the board, including the portions in contact with the components, but we can safely apply a convection BC to that sideset and it will only be applied to the areas that are not in contact. If this is not the desired behavior, one can use a no_coverage_flux BC type to skip this masking and apply the boundary condition everywhere regardless of contact status.

In this case, using block skinning is the easiest approach, and the only change to the input file is the addition of the following block in the Aria region.

Begin Contact Definition res1
    Begin Search Options
        normal tolerance = 0.001
    End

    # All skinned blocks participate
    skin all blocks = on

    begin enforcement enf_1
        Enforcement for Energy = tied_temperature
    end
End

The result is that energy can pass between the different components across the contact interfaces.

Final temperature profile