Multidomain connections (panels.multidomain.connections
)#
Connection between panel domains. Each panel domain has its own set of Bardell approximation functions. Below it is shown the connections currently supported.
kCBFycte#
Connection of type:
_
|
|| --> Flange |
|| |-> Can be used to model a stiffener
====== --> Base |
_|
ycte
indicates the connection exists at a constant \(y_1\) for panel 1
(base) and \(y_2\) for panel 2 (flange).
kCSB#
Connection of type:
====== ==> base
------ --> skin
Takes into account the offset between the two mid-surfaces.
kCSSxcte#
Connection of type:
__________
| |
| | /^\ x2
| S2 | |
| | y2 |
| | <----
|________| (connection at x2=xcte2)
__________ (connection at x1=xcte1)
| |
| | /^\ x1
| S1 | |
| | y1 |
|________| <----
kCSSycte#
Connection of type:
/-> (connection at y1=ycte1)
/
/ /->(connection at y2=ycte2)
_________| |_________
| | | |
| | | |
| S1 | | S2 |
| | | |
|________| |________|
/^\ x1 /^\ x2
| |
y1 | y2 |
<---- <----
Calculating Penalty Constants#
Function calc_kt_kr()
is based on Ref [castro2017Multidomain] and
uses a strain compatibility criterion to calculate penalty constants for
translation (kt
) and rotation (kr
). The aim is to have penalty constants
that are just high enough to produce the desired compatibility, but not too
high such that numerical stability issues start to appear.
- panels.multidomain.connections.calc_kt_kr(p1, p2, connection_type)#
Calculate translation and rotation penalty constants
For details on how to derive these equations, see [castro2017Multidomain] (MD paper eqn 34-40)
- Parameters:
- p1
Panel
First panel.
- p2
Panel
Second panel.
- connection_typestr
- One of the types:
‘xcte’
‘ycte’
‘bot-top’
‘xcte-ycte’: to a 90° connection
‘ycte-xcte’: to a 90° connection
- p1
- Returns:
- kt, krtuple
A tuple with both values.
Damaged connections were implemented by Nathan (2024) [nathan2024MSc] and the
out-of-plane connectivity stiffness in the presence of a damage mapped using
traction-separation law is calculated using calc_kw_tsl()
.
- panels.multidomain.connections.calc_kw_tsl(pA, pB=None, tsl_type=None, k_i=10000.0, k_ipen=1000000.0, del_d=None, tau_o=67, G1c=1.12)#
Calculate out of plane stiffness of the damaged region (where the traction separation law exists)
- Parameters:
- pA
Shell
Top panel.
- pB
Shell
Bottom panel.
- tsl_typestring
Type of TSL to be used. Possible options are: ‘linear’ (no softening), or ‘bilinear’ (with linear softening).
- k_ifloat
Pristine out-of-plane stiffness, in other words, when there is no damage.
- k_ipenfloat
Out-of-plane penalty stiffness to prevent interpenetration between
pA
andpB
.- del_dnp.ndarray
A 2D np.array() corresponding to out-of-plane separation field. This is the out of plane separation between panels, at each point of the input grid.
- tau_ofloat
Traction at damage onset. The default value is in MPa units.
- G1cfloat
Critical fracture energy release rate in mode I. The default value is in kJ/m^2 = N/mm units.
- pA
- Returns:
- kw_tslfloat
The out of plane stiffness, when
tsl_type == 'bilinear'
, this is a map of stiffnesses at each point of the input grid.- dmg_indexnp.ndarray
The calculated damage at each point across the input grid. Note that this is only valid when
tsl_type == 'bilinear'
.