ShellElement module
Classes for failure analyisis of shell element.
Revision: 1.0.0 $Date: 23/01/2023 17:32$
History
1.0.0 - Initial Class Creation
To Do:
So many
- class ShellElement.ShellElemPshell(mid, thickness, matdata, stress)[source]
Bases:
object
Class for failure analysis of isotropic materials (like aluminum arroy)
Examples:
Example of calculation of Margin of Safety.
>>> elem = ShellElemPshell(mids, thetas, thicknesses, matdata, stress) >>> elem.calc_ms() >>> elem.get_ms()
- __init__(mid, thickness, matdata, stress)[source]
ShellElemPshell Class Initialization.
- Parameters
mid (int) – material id
thickness (float) – thickness
matdata (dict) – dictionary of material properties
stress (pd.DataFrame) – stress
- Returns
None
Note
Thicknesses are divided by 2. This is because the thickness of SMEAR model represents the total thickness of stiffened panel which is assumed to have an EA ratio of 1:1. In the case of DISCRETE model, there is no need to divide the thicknesses.
Note
Pitch of stringer is hard coded. It should be an input parameter. Can someone please refactor it?
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms()[source]
Administrator of MS calculation.
Comment and uncomment lines depending on your case
- Parameters
None –
- Returns
None
Note
Selection of failure should be an input. Can someone please refactor it?
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_buckling_c()[source]
Calculate MS for axial buckling failure.
- Parameters
None –
- Returns
margin of safety
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- class ShellElement.ShellElemPcomp(mids, thetas, thicknesses, matdata, stress)[source]
Bases:
object
Class for failure analysis of orthotropic materials (like composite materials)
Examples:
Example of calculation of Margin of Safety.
>>> elem = ShellElemPcomp(mids, thetas, thicknesses, matdata, stress) >>> elem.calc_ms() >>> elem.get_ms()
- __init__(mids, thetas, thicknesses, matdata, stress)[source]
ShellElemPcomp Class Initialization.
- Parameters
mids (list) – material ids in each layer
thetas (list) – orientation angles in each layer
thicknesses (list) – thickness of each layer
matdata (dict) – dictionary of material properties
stress (pd.DataFrame) – stress
- Returns
None
Note
Thicknesses are divided by 2. This is because the thickness of SMEAR model represents the total thickness of stiffened panel which is assumed to have an EA ratio of 1:1. In the case of DISCRETE model, there is no need to divide the thicknesses.
Note
Pitch of stringer is hard coded. It should be an input parameter. Can someone please refactor it?
Documentation last updated: Jan. 23, 2023 - Shugo Date
- setup()[source]
set up for calculating Margin of Safety.
- This function calculate
In-plane stiffness matrix
Homogenized in-plane stiffness matrix \(\pmb{A}\)
Homogenized bending stiffness matrix \(\pmb{D}\)
Averaged stress in thickneswise direction
Strain in symmetric plane corresponding to the averaged stress
- Parameters
None –
- Returns
None
Note
In the current version, stacking sequence is fixed and thickness of each lamina is sized. Therefore, bending stiffness is greatly affected by the setting of the stacking sequence. For this reason, once the homogenized in-plane stiffness matrix A is calculated, the bending stiffness matrix is calculated. In the future, it is desirable to formulate the design problem that can calculate bending stiffness straightforwardly.
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_sig_bar_eps_sym()[source]
Calcration of averaged stress and strain on symmetric plane.
Rotate stresses vectors in the direction of the element coordinate system. Averaged stress vector is calculated using rotated stress vectors. After that, strain vectors on symmetric plane is calculated by Classical Laminated Theory.
- Parameters
None –
- Returns
None
Note
Plane stress is assumed in the function. Therefore, the modeling is strictly different from MITC4. You may have the option to verify or modify the model.
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_qmat(mat, qmat, theta)[source]
Calculation of constitutive equation of plate \(\pmb{Q}\).
- Parameters
mat (dict) – dictionary of material properties
qmat (ndarray) – np array of \(\pmb{Q}\) matrix
theta (float) – orientation angle in the layer
- Returns
None
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_mat(s, mat)[source]
Calculation of Classical Laminate Theory.
- Matrix is switched parametrically
s = 1. : \(\pmb{A}\) matrix
s = 2. : \(\pmb{B}\) matrix
s = 3. : \(\pmb{D}\) matrix
- Parameters
s (int) – index to switch \(\pmb{A},~\pmb{B},~\pmb{D}\)
mat (ndarray) – np array to store a matrix
- Returns
None
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms()[source]
Administrator of MS calculation.
Comment and uncomment lines depending on your case
- Parameters
None –
- Returns
None
Note
Selection of failure should be an input. Can someone please refactor it?
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_buckling_c()[source]
Calculate MS for axial buckling failure.
- Parameters
None –
- Returns
margin of safety
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_buckling_s()[source]
Calculate MS for shear buckling failure.
- Parameters
None –
- Returns
margin of safety
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_buckling_cs(ms_c, ms_s)[source]
Calculate MS for combined buckling failure.
- Parameters
ms_c (float) – MS for axial buckling
ms_s (float) – MS for shear buckling
- Returns
MS for combined buckling
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_strain_oht()[source]
Calculate MS for OHT strain criteria.
- Parameters
None –
- Returns
MS for OHT strain criteria
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_strain_ohc()[source]
Calculate MS for OHC strain criteria.
- Parameters
None –
- Returns
MS for OHC strain criteria
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_strain_cai()[source]
Calculate MS for CAI strain criteria.
- Parameters
None –
- Returns
MS for CAI strain criteria
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_chris_f(stress, mat, theta)[source]
Calculate MS for fiber-dominant Christensen’s criteria.
- Parameters
stress (dict) – in-plane stress vector of shell elements
mat (dict) – dictionary of material properties
theta (float) – orientation angle in the layer
- Returns
MS for fiber-dominant Christensen’s criteria
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date
- calc_ms_chris_m(stress, mat, theta)[source]
Calculate MS for matrix-dominant Christensen’s criteria.
- Parameters
stress (dict) – in-plane stress vector of shell elements
mat (dict) – dictionary of material properties
theta (float) – orientation angle in the layer
- Returns
MS for matrix-dominant Christensen’s criteria
- Return type
ms (float)
Documentation last updated: Jan. 23, 2023 - Shugo Date