3.7. Contact

The term “contact” refers to a situation where a simulation needs to be performed that spans a non-contiguously meshed interface, i.e. a nonconformal interface. One example of a nonconformal interface is one that has adjacent blocks and there appears to be a single node at a certain location in space on the interfaces between blocks, but in fact there are distinct nodes that have identical, or nearly identical coordinates. In other words, the mesh nodes have not been merged or equivalenced. More generally, a nonconformal interface does not require that mesh lines match at the interface between block boundaries.

There are two modeling situations that lead to the use of nonconformal interfaces in analyses. The first occurs when compatibility conditions are enforced at the interface to require that the conserved quantity be continuous across the interface. This situation arises as a convenient way to generate the mesh for particularly complex geometries since both parts can be meshed independently. The second modeling situation that occurs is not a matter of convenience, but of physics. It may be that two parts are known to fit imperfectly, so that there is a gap between the two parts that has a certain known resistance. In this case, the enforcement is known as gap conductance (or resistance) and enforces a discontinuous solution across the gap by modeling the flux that is “lost” across the gap. This situation is similar to Interface Conditions when the discontinuous properties exists at an interface that is in a contiguous portion of the mesh.

The contact algorithm is implemented as a Discontinuous Galerkin (DG)-like method that most closely follows the “Generalized Algorithm” discussed in [20] and references therein, and users are encouraged to read that report for more details regarding the nuances associated with the various types of contact enforcement.

3.7.1. Contact Interface

Contact is often enforced across an interface with a noncontiguous mesh, as seen in Fig. 3.8. The surfaces between two subdomains may be meshed independently, so that there may be a physical gap between them, or the nodes on the two surfaces may not align. Moreover, in parallel computations, these surfaces will in general have different processor decompositions so that all of the required information may not be available locally on a given processor. This nonlocality of information complicates the implementation, because this information must be constructed in a consistent way on all processors. Aria uses the stk::search and Dash packages to detect when facets that lie on separate surfaces are close enough to be in contact in a parallel consistent manner.

Discontinuous Galerkin-based contact enforcement strategy

Fig. 3.8 In a Discontinuous Galerkin-based contact enforcement strategy, the elements involved on the right side \Gamma_R, are those whose sides intersect the quadrature points of the element on the left side \Gamma_L. In general, the sides of elements on the right side, \Gamma_R^i, and \Gamma_R^j, may not be contiguous.

Even in cases of collocated nodes, the DG-nature of the method means that the conserved quantity is doubly defined along the contact interface, which is shown as \Gamma_{ij} in Fig. 3.9. The preferred contact enforcement strategy for the case with no contact resistance, i.e., physically a continuous conserved quantity field, is TIED_CONTACT, which is derived similarly to Discontinuous Galerkin (DG) and Interior Penalty (IP) methods [20, 21]. In practice, the continuity in the conserved quantity is only enforced weakly; however, the jump is convergent with mesh refinement. TIED_CONTACT is useful for analyzing systems whose geometry is so complex that a contiguous mesh is difficult or impossible to obtain. Also available as an enforcement strategy is GAP_CONDUCTANCE, which allows a discontinuous conserved quantity across the interface, and specifies a flux according to a contact resistance. Contact resistance is generally used when the system being analyzed consists of at least two parts that touch, and it is important to model their imperfect fit with a finite resistance.

Contact interface between subdomains

Fig. 3.9 Contact interface between subdomains \Omega_i and \Omega_j

3.7.2. Contact Enforcement

In Aria TIED_CONTACT and GAP_CONDUCTANCE are implemented in a variational form. Consider a 2D or 3D domain \Omega that consists of a set of subdomains \Omega_{i} with interfaces \Gamma_{ij} at the intersection of each pair \Omega_{i} and \Omega_{j}, i \neq j where n_{i,j} denote the unit outward normal vector on each subdomain boundary \partial\Omega_{i,j}, as shown in Fig. 3.9. On each subdomain \Omega_{i}, we pose a standard scalar conduction problem of the form

(3.124)\nabla \cdot \boldsymbol{q} = f , \quad x \in \Omega_{i} ,

where \boldsymbol{q} is the heat flux, and f is a volumetric source term, along with appropriate boundary conditions on \partial \Omega_{i} / \Gamma. The flux is defined as \boldsymbol{q} \equiv -k \grad b, where b is the scalar conserved quantity, and k is the conductivity. The notion of average and jump notations are useful in describing this method. The average notation is defined as

\lbrace b \rbrace = \frac{1}{2}(b_i + b_j)

for both scalar and vector quantities and the jump operator is defined as

\left[ b \right] \equiv b_{i}\boldsymbol{n}_i + b_{j}\boldsymbol{n}_j

and

\left[ \boldsymbol{q} \right] \equiv \boldsymbol{q}_{i}\cdot \boldsymbol{n}_i + \boldsymbol{q}_{j} \cdot \boldsymbol{n}_j

for scalar and vector variables, respectively.

To write (3.124) in a variational statement, let v be suitable a test function that is continuous within each subdomain and possibly discontinuous across \Gamma. We first multiply the differential energy (3.124) in each subdomain \Omega_i by a suitable test function v and integrate by parts to get the weak form

\int_{\Omega_i} \grad v \cdot \boldsymbol{q}\, d\Omega + \int_{\Omega_i} vf \, d\Omega
- \int_{\partial \Omega_i} v \left(\boldsymbol{q}_i \cdot \boldsymbol {n}_i\right) \, dS = 0

Assuming for simplicity Dirichlet boundary conditions for \vartemp have been specified on \partial \Omega_{i} \backslash \Gamma, we can assume that v = 0 on \partial \Omega_{i} \backslash \Gamma. Summing over domains gives

(3.125)\int_{\Omega_i} \grad v \cdot \boldsymbol{q}\, d\Omega
+ \int_{\Omega_i} vf \, d\Omega - \sum_K \int_{\partial \Gamma_{ij}} v \left(\hat{\boldsymbol{q}}_k \cdot \boldsymbol {n}_k\right) \, dS = 0

where \hat{\boldsymbol{q}} is an arbitrary numerical flux to be chosen, and the summation is over all surface elements along the interface \Gamma_{ij}. Using the jump operators and noting that \left[ \hat{\boldsymbol{q}} \right] = 0 is necessary for conservation, (3.125) can be written compactly as

(3.126)\int_{\Omega} \grad v \cdot \boldsymbol{q}\, d\Omega_i
+ \int_{\Omega_i} vf \, d\Omega - \int_{\partial \Gamma_{ij}} \left[ v \right] \cdot  \lbrace \hat{\boldsymbol{q}} \rbrace \,dS = 0

As discussed in [21], there are many valid choices for closing the numerical flux. One such method is the Interior Penalty method, which is the method listed as the “Generalized Algorithm” in [20]. In this case the numerical flux is chosen as \hat{\boldsymbol{q}} \equiv -\alpha_h k\grad b + \beta_h \left[ b \right], and this choice can be shown to be both consistent and conservative in the weak form of the problem. The resultant weak form of the problem becomes

(3.127)\int_{\Omega} \grad v \cdot k\grad b\, d\Omega_i
- \int_{\Omega_i} vf \, d\Omega & \\
- \int_{\partial \Gamma_{ij}} \left[ v \right] \cdot  \lbrace \alpha_h k \grad b \rbrace \,dS
+ \int_{\partial \Gamma_{ij}} \beta_h \left[ v \right] \cdot  \left[ b \right] \,dS
& = 0

For the TIED_CONTACT case (an Interior Penalty Method), coefficient \alpha_h\equiv1 and \beta_h is defined as

\beta_h \equiv C \overline{k h^{-1}},

where the overline denotes an average from both sides of the interface \Gamma_{ij}, C is an arbitrary positive number, nominally 1/2, and h is a local mesh length scale.

For the GAP_CONDUCTANCE case, \alpha_h and \beta_h are chosen as in [20], which is repeated here for convenience as

\left(\alpha_h, \beta_h\right) \equiv
\begin{cases}
  \left( 1 - \frac{1}{H}, C\overline{k h^{-1}} \right) & H\gt 1, \\
  \left( 0, R^{-1} \right) & H\leq 1,
\end{cases}

where

H = \frac{R^{-1}}{C \overline{k h^{-1}}}.

As before, the overline notation is used to denote the average from both sides of the interface.

While the above formulation is consistent, i.e. \hat{\boldsymbol{q}}(b) = \boldsymbol{q}(b)\vert_\Gamma, and conservative, i.e., \hat{\boldsymbol{q}} is single valued along \Gamma, the discrete form of the integrals is only conservative in the case of collocated nodes, which is generally not the case in practical usage. However, [20] has shown that the error norms do decrease according to the order of the underlying finite-element scheme, as expected.