Skip to content

[Structural] Add system for generic pre-tensioning#14400

Open
matekelemen wants to merge 22 commits intomasterfrom
structural/pretension
Open

[Structural] Add system for generic pre-tensioning#14400
matekelemen wants to merge 22 commits intomasterfrom
structural/pretension

Conversation

@matekelemen
Copy link
Copy Markdown
Contributor

@matekelemen matekelemen commented Apr 23, 2026

Copying the docs here because they explain the same thing.

Pre-Tensioning

Apply pre-tensioning to 1D, 2D, or 3D structural parts.

Pre-tensioning approximately models connector parts (e.g., bolts, screws, etc.) subject to initial loading within an assembly. It is intended as a simplified alternative to high-fidelity analyses of such assemblies, placing less emphasis on the connector itself while still capturing similar effects on the surrounding structure.


Pre-Tensioning Surface

The pre-tensioning system acts on a surface defined by a set of geometries within a model part. The following requirements apply:

  • They must be defined on element boundaries (faces of polyhedra, edges of polygons, vertices of lines).
  • They must partition the connector part's elements into two distinct sets.
  • They should lie on the same plane as much as possible.
  • They must be stored in a separate sub model part containing only these geometries.

A pre-tensioning plane is computed by averaging the pre-tensioning surface. The normal of this plane serves as the basis for displacement constraints introduced later.


Node Duplication

The pre-tensioning surface partitions adjacent elements into two groups:

  • Positive side
  • Negative side

Nodes lying on the surface are duplicated. Nodes belonging to negative-side elements are replaced with duplicates, while positive-side elements remain unchanged.

This effectively cuts the connector part in half along the pre-tensioning surface. Duplicated nodes are inserted into the sub model part containing the surface geometries.


In-Plane Constraints

After duplicating nodes, constraints are introduced to restrict displacements and rotations.

If nodes have rotational degrees of freedom, the rotations of duplicates must match their originals:

$$\phi_o^i - \phi_d^i = 0 \quad \forall \quad 1 \leq i \leq m$$

Where:

  • $\phi_o^i$: rotation of the original node $i$
  • $\phi_d^i$: rotation of the duplicate of node $i$
  • $m$: number of original nodes on the surface

Additionally, the in-plane displacement difference must vanish:

$$u_o^i - u_d^i - \left< u_o^i - u_d^i, n \right> n = 0 \quad \forall \quad 1 \leq i \leq m$$

Where:

  • $u_o^i$: displacement of the original node $i$
  • $u_d^i$: displacement of the duplicate node $i$
  • $n$: unit normal of the pre-tensioning plane
  • $\langle \cdot , \cdot \rangle)$: inner product

Out-of-Plane Constraints

To apply a single pre-tensioning value (force or displacement), the out-of-plane displacement components are averaged and tied to virtual degrees of freedom:

$$\begin{align} u_v^o - \frac{1}{m} \sum_{i=1}^m{ \left< u_o^i, n \right> } &= 0 \\\ u_v^d - \frac{1}{m} \sum_{i=1}^m{ \left< u_d^i, n \right> } &= 0 \end{align}$$

Where:

  • $u_v^o$: virtual DoF for original nodes
  • $u_v^d$: virtual DoF for duplicate nodes

These virtual degrees of freedom can then be either loaded (Neumann-type) or fixed (Dirichlet-type).


Neumann-Type Pre-Tensioning

Given a pre-tensioning force $f$, enforce:

$$\begin{align} r_v^o - f &= 0 \\ r_v^d + f &= 0 \end{align}$$

Where:

  • $r_v^o$: reaction of $u_v^o$
  • $r_v^d$: reaction of $u_v^d$

Dirichlet-Type Pre-Tensioning

Fix the relative average out-of-plane displacement to a prescribed value $\alpha$:

$$u_v^o - u_v^d - \alpha = 0$$

Implementation Notes

In-plane displacement constraints reuse degrees of freedom and are dense. They cannot be imposed via master-slave elimination unless DoFs are rotated to align with the pre-tensioning plane.

Since there is no robust way to perform this rotation in Kratos, constraints must be enforced using the augmented Lagrange multiplier method, implemented in PMultigridBuilderAndSolver.

Note: Any analysis involving pre-tensioning must use PMultigridBuilderAndSolver.

@matekelemen matekelemen marked this pull request as ready for review April 29, 2026 16:47
@matekelemen matekelemen requested review from a team as code owners April 29, 2026 16:47
@matekelemen matekelemen requested a review from sunethwarna April 29, 2026 16:47
@matekelemen matekelemen self-assigned this Apr 29, 2026
@philbucher
Copy link
Copy Markdown
Member

Interesting, this appears to be similar to bolt preloads

Are there plans to port the ALM also to the standard B&S?

@matekelemen
Copy link
Copy Markdown
Contributor Author

matekelemen commented Apr 30, 2026

Yes I think they should be rather similar. Abaqus also has a system for doing this kind of analysis.

Long story short, I don't think ALM will be supported with other B&S types unfortunately.

The TC is adamant about keeping constraints strictly master-slave imposed, meaning that other types of impositions (penalty, lagrange, ALM) have to be implemented as elements. This has several unsavory consequences:

  1. every constraint type has to be implemented for each kind of imposition method separately,
  2. the ALM loop, which normally would only require updating a subset of the RHS coming from constraints, can only exist as part of a full-blown non-linear analysis. This not only means that a complete assembly must happen in every iteration, but also prohibits taking advantage of linear solvers that benefit from pre-factorizing the LHS matrix,
  3. changing imposition methods requires major changes to the analysis (different meshes with different constraint elements, change between linear and non-linear analyses, etc.)

These were all deal breakers for me, so I wrote my own B&S instead. The silver lining is that PMGB&S can do everything the standard B&S can, except MPI (for now).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants