Constraints

Constraints are typically implemented in structural analysis programs through the use of (i) Geometrical Transformations, (ii) Penalty Functions, or (iii) Lagrange Multipliers. In geometrically nonlinear analysis (large displacement/rotations), however, the first of these three tends to lead to difficulties in numerical convergence, for which reason only the latter two are commonly employed, and have thus been implemented in SeimoStruct.

Whilst readers are advised to refer to the existing literature [e.g. Cook et al., 1989; Felippa, 2004] for further information on this topic, herein it is simply noted that whilst Penalty Functions have the advantage of introducing no new variables (and hence the stiffness matrix does not increase and remains positive definite), they may significantly increase the bandwidth of the structural equations [Cook et al., 1989]. In addition, Penalty Functions have the disadvantage that penalty numbers must be chosen in an allowable range (large enough to be effective but not so large as to induce numerical difficulties), and this is not necessarily straightforward [Cook et al., 1989], and may potentially lead to erroneous results. However, the use of the conceptually superior Lagrange Multipliers may slow analyses considerably, and, as such, the Penalty Functions are suggested as default in SeismoStruct.

In those cases where the employment of Lagrange Multipliers leads to numerical difficulties, and users opt for the utilisation of Penalty Functions, then the corresponding penalty coefficients, for diaphragm (typically smaller) and rigid links (typically larger) need to be defined; the Penalty Factors are then computed as the product of these penalty coefficients and the highest value found in the stiffness matrix.

It is noted that, contrary to what could perhaps be one's intuition, the use of large values of penalty coefficients is not always required. Indeed, in models where very stiff structural elements already exist, penalty coefficients may need not to be extremely large, since their product by such large values found in the structural stiffness matrix will already lead to a large penalty factor, as shown in the study by Pinho et al. [2008a].

Note: Felippa [2004] suggests that the optimum penalty functions value should be the average of the maximum stiffness and the processors precision (1e20, in the case of SeismoStruct).