[Structural] Add system for generic pre-tensioning#14400
Open
matekelemen wants to merge 22 commits intomasterfrom
Open
[Structural] Add system for generic pre-tensioning#14400matekelemen wants to merge 22 commits intomasterfrom
matekelemen wants to merge 22 commits intomasterfrom
Conversation
…into structural/pretension
…into structural/pretension
Member
|
Interesting, this appears to be similar to bolt preloads Are there plans to port the ALM also to the standard B&S? |
Contributor
Author
|
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:
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). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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:
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:
Where:
Additionally, the in-plane displacement difference must vanish:
Where:
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:
Where:
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:
Where:
Dirichlet-Type Pre-Tensioning
Fix the relative average out-of-plane displacement to a prescribed value$\alpha$ :
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.