ShellElement module

Classes for failure analyisis of shell element.

Revision: 1.0.0 $Date: 23/01/2023 17:32$

History

  1. 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

calc_ms_mises()[source]

Calculate MS for Mises criteria.

Parameters

None

Returns

MS for Mises criteria

Return type

ms (float)

Documentation last updated: Jan. 23, 2023 - Shugo Date

get_ms()[source]

Output function of MS data

Parameters

None

Returns

dictionary of MSs

Return type

ms (dict)

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
  1. In-plane stiffness matrix

  2. Homogenized in-plane stiffness matrix \(\pmb{A}\)

  3. Homogenized bending stiffness matrix \(\pmb{D}\)

  4. Averaged stress in thickneswise direction

  5. 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

get_ms()[source]

Output function of MS data

Parameters

None

Returns

dictionary of MSs

Return type

ms (dict)

Documentation last updated: Jan. 23, 2023 - Shugo Date