N2PUpdateFastener User Manual#
Overview#
The N2PUpdateFastener Module is designed to update the stiffness of the fastener unions when the property of the fastener or the properties of the plates change.
Example Usage#
1. Importing the module#
import NaxToPy as n2p
from NaxToPy.Modules.static.fastener import N2PUpdateFastener
2. Load the model#
model = n2p.load_model(r"file path")
3. Define Fasteners Properties#
prop1 = {"E": 70000, "D": 4.8}
prop2 = {"E": 140000, "D": 7.2, "connection_type": "rivet", "shear_type": "double"}
4. Create and Configure N2PUpdateFastener#
update = N2PUpdateFastener()
update.Model = model # Assign the model
update.FastenerInformation = {
(1000, "0"): prop1,
(1001, "0"): prop1,
(1000, "1"): prop2,
(1001, "1"): prop2
}
5. Run Calculations#
update.calculate()
6. Rewrite the Input Data File#
update.write_bdf() # With the model updated, the model is rewritten
Setup#
Prerequisites#
Python Environment: Ensure you have a compatible Python environment with the following libraries:
NaxToPy modules
NaxToPy Framework: The module integrates with the NaxToPy library, which must be installed and configured in your environment.
Module Inputs#
The N2PNeuber class provides methods and attributes for defining the model, associating materials, and calculating Neuber stresses.
Mandatory Inputs#
Property |
Type |
Description |
---|---|---|
.Model |
|
FEM model to be updated |
.FastenerInformation |
|
Dictionary with the dictionary of properties for each rivet |
In addiction, each dictionary in .FastenerInformation must have the keys "E"
and "D"
:
Key |
Value |
Description |
---|---|---|
|
|
Young modulus of the fastener material |
|
|
Diameter of the fastener |
Example:
prop1 = {"E": 70000.0, "D": 4.8} # "E" and "D" are mandatory
prop2 = {"E": 110000.0, "D": 7.2}
.FastenerInformation = {
(1000, "0"): prop1,
(1001, "0"): prop2,
}
FEM Requirements#
For this module to function properly, the FEM model must be a Nastran or Optistruc Input File (usually called bdf and fem).
Warning
This module doesn’t support superlements (parts). All components must be in the superelement "0"
.
Supported Type Files#
Solver |
File Extension |
---|---|
Nastran Input Data |
.bdf or .dat |
Optistruct Input Data |
.fem |
Optional Inputs#
The only optional property is the method (StiffnessMethod
) to use. By default is used "HUTH"
.
Property |
Type |
Description |
---|---|---|
.StiffnessMethod |
|
Method to be used ( |
Note
The available methods are: "HUTH"
, "BOEING"
, "TATE_ROSENFELD"
, "GRUMMAN"
, "SWIFT"
and "NELSON"
.
Each dictionary in .FastenerInformation may have the optional keys:
Key |
Value |
Default |
Description |
---|---|---|---|
|
|
|
May be |
|
|
|
May be |
|
|
0 |
Height of the head |
|
|
0 |
Height of the nut |
|
|
0.33 |
Poisson Ratio |
|
|
\(\frac{E}{2(1+\nu)}\) |
Shear Modulus |
|
|
0.5 |
beta value for Nelson method |
Example:
prop = {
"E": 110000.0, # Mandatory
"D": 7.2, # Mandatory
"connection_type": "rivet", # Optional
"shear_type": "double", # Optional
"h_head": 1, # Optional
"h_nut": 2, # Optional
"nu": 0.31, # Optional
"beta": 0.55 # Optional
}
.FastenerInformation = {
(1000, "0"): prop,
(1001, "0"): prop,
}
Output Description#
This module calculates the stiffness of the fasteners unions and update the N2PModelContent instance. When the method write_bdf()
is called it generates the same file structure from the input but with the stiffness values of the cards PFAST
or PBUSH
updated.
Common Errors#
E311: Young modulus is not found.
E499: The stiffness method introduced is no allowed.
E498: The dictionary must have the keys “D” and “E”.
Methodology#
Background Theory#
The calculation of the axial stiffness is always made using the same formula:
But the shear stiffness uses different formulas. The available methods are:
A) Tate-Rosenfeld (1946)#
Preliminary investigation of the loads carried by individual bolts. See [Ref-1].
B) Boeing (1969)#
Formerly, Tate & Rosenberg formulation was used. The new derivation for single Single configuration (presented in [Ref-2] and [Ref-3]):
Single shear:
Double shear (see [Ref-2]):
C) Swift (1971)#
See [Ref-4]:
D) Nelson (1983)#
Published by NASA in [Ref-5]. Uses the Tate & Rosenberg formulation to derive the shear stiffness. They account for the possibility of unbalanced laminates with different in-plane stiffness values parallel (“L”) to perpendicular (“LT”) the loading direction.
Single Shear:
Double Shear:
E) Huth (1984)#
Published in [Ref-6].
The constants depend of the type of lot and the materials of the plates:
Plate 1 |
Plate 2 |
Type |
a |
b1 |
b2 |
---|---|---|---|---|---|
Metallic |
Metallic |
Bolted |
2/3 |
3.0 |
3.0 |
Metallic |
Metallic |
Riveted |
2/5 |
2.2 |
2.2 |
Graphite/Epoxy |
Graphite/Epoxy |
Bolted |
2/3 |
4.2 |
4.2 |
Metallic |
Graphite/Epoxy |
Bolted |
2/3 |
3.0 |
4.2 |
Hint
The Huth Method is preferred nowadays by Airbus.
F) Grumman#
Its derivation comes from unpublished report from Grumman Aerospace Corporation.
Implementation#
The module use the ids of the fasteners introduced in FastenerInformation
to find the CBUSH
or CFAST
with that ids. Then, the elements that makes the plates that are joined by the fastener are searched.
In the case of CBUSH
connected to RBE3
we need to find out to which element the RBE3
is connected. To do this, we need to find out to which nodes it is connected, and then find out to which elements those nodes are connected. The element we are looking for will be linked to those nodes. However, there is one node that we do not need to consider, and that is the reference node. To do this:
We go through all the nodes in rbe3A.FreeNodes except rbe3A.RefGrid, and for each of them, we find their connectivity, obtaining a set of elements for each node of the RBE3
. Finally, we apply the intersection of the sets, that is, we keep a set containing the items repeated in all the sets, which is the element we are looking for.
When the elements are selected, the property and then the material properties are searched to use the engineer values of the materials to calculate the stiffness value of the union using one of the available methods.
Extra Examples#
import NaxToPy as n2p
from NaxToPy.Modules.static.fasteners import N2PUpdateFastener
model = n2p.load_model("C:\\my_directory\\my_model.bdf")
prop1 = {"D": 4.8, "E": 70000}
prop2 = {"D": 7.2, "E": 110000, "nu": 0.27, "shear_type": "double"}
# Add the prop2 to all the CFAST of the model
info = {
(fastener.EID, "0"): prop2
for fastener in model.ModelInputData.get_cards_by_field(["CFAST"])
}
# Add the prop1 to all the CBUSH of the model updating info
info.update(
{(fastener.EID, "0"): prop1
for fastener in model.ModelInputData.get_cards_by_field(["CBUSH"])}
)
update1 = N2PUpdateFastener()
update1.Model = model
update1.FastenerInformation = info
update1.StiffnessMethod = "TATE_ROSENFELD"
update1.calculate()
update1.write_bdf("C:\\my_directory\\out")
Validation#
The Huth method for bolt and rivet, for composite and metallic unions have been compared against the Fastener Setup from HyperMesh:
Fastener |
Plates |
HyperMesh |
NaxToPy |
Difference |
---|---|---|---|---|
Bolt |
metallic-metallic |
57632.72 |
57640.56 |
0.01136 % |
Rivet |
metallic-metallic |
79461.08 |
79461.07 |
-0.00001 % |
Bolt |
metallic-cfrp |
7064.92 |
7055.08 |
-0.01392 % |
Rivet |
metallic-cfrp |
6361.43 |
6361.43 |
0.00000 % |
Note
The stiffness using a CFAST
, a CBUSH
to plates or CBUSH
to RBE3
is the same. The results after running the mesh may differ.
References#
[Ref-1]: S. R. Manford Tate, «Preliminary Investigation of the Loads Carried by Individual Bolts in Bolted Joints,» NASA, 1946.
[Ref-2]:«Development of the Fail-safe Design Features of the DC-10,» ASTM Compass, pp. 164-214, 1971.
[Ref-3]: J. K. Luca Massera, «Analytical and Numerical Investigation of Multi-fastener Joints in Composite Structures,» DLR-Interner Bericht , p. 167, 2019.
[Ref-4]: V. Eremihn, «Methods for flexibility determination of bolted,» de International Conference “Aviation and Cosmonautics”, 2021.
[Ref-5]: W. D. Nelson, B. L. Bunin y L. J. Hart-Smith, «Critical Joints in Large Composite Aircraft Structure,» NASA Technical Report, 1983.
[Ref-6]: H. Huth, «Influence of Fastener Flexibility on Load Transfer and Fatigue Life Predictions for Multirow Bolted and Riveted Joints.,» NASA Foreign Exchange Program, 1984.
All rights reserved. This document is licensed under the terms of the LICENSE of the NaxToPy package.