Property for Modules#

Script for the definition of the class Property and its child classes.

class NaxToPy.Modules.common.property.CompSolid[source]#

Bases: Property

Class for homogeneous solid properties. Not implemented yet

class NaxToPy.Modules.common.property.CompositeShell(n2p_property: N2PProperty = None, n2p_material_dict: dict = None)[source]#

Bases: Property

Class for PCOMP property, representing a composite laminate.

_mat_IDs -> List of Material ID for each ply of the laminate.
_thicknesses -> List of thicknesses for each ply of the laminate.
_num_plies -> Total number of plies composing the laminate.
_theta -> List of theta angles - orientation wrt XY directions - for each ply of the laminate.
_ABD_matrix -> Array representing each component of the Global Stiffness Matrix of the laminate,

considering Normal, Bending Loads and the coupling effects.

_bearingAllowable -> Bearing allowable of the laminate
_OHTAllowable -> Open Hole Tension Strains allowable of the laminate [Strength]
_OHCAllowable -> Open Hole Compression Strains allowable of the laminate [Strength]
_FHTAllowable -> Filled Hole Tension Strains allowable of the laminate [Strength]
_FHCAllowable -> Filled Hole Compression Strains allowable of the laminate [Strength]
_CAIAllowable -> Compression After Impact Strength allowable of the laminate [Strength]
_PlainTensionAllowable -> Plain Tension Strength allowable of the laminate [Strength]
_PlainCompressionAllowable -> Plain Compression Strength allowable of the laminate [Strength]
_PTAllowable -> Pull Through strength allowable of the laminate [Strength]

CompositeShell instances can be intitialised both automatically from N2PProperty instances or manualy from user-input.

When instancing from user input. The following atributes are requested:
  • NumPlies : int

  • MatIDs : list[tuple(MatID, PartID)]

  • thicknesses : list[float]

  • theta : list[float]

  • MaterialDict : dict{N2PMaterial}

  • simmetry (optional) : bool

It is mandatory that NumPlies is set in first place. Other attributes might be set with no order.

EXAMPLE

laminate = CompositeShell() laminate.NumPlies = 6 laminate.PartIDs = ‘0’ laminate.MatIDs = [(11100000,’0’),(11100000,’0’),(11100000,’0’),(11100000,’0’),(11100000,’0’),(11100000,’0’)] laminate.thicknesses = [0.1,0.1,0.1,0.1,0.1,0.1] laminate.theta = [0,45,0,90,0,-45] model = n2p.load_model(r””) laminate.MaterialDict = model.MaterialDict laminate.simmetry = True

*** Every given list must have the same length as the number of plies of the laminate. Otherwise, instance will not be created.

EqBenProps()[source]#

Calculate the Homogenized Bending Properties of the laminate using D matrix.

Returns:

A tuple containing (Ex, Ey, nu, G).

  • Ex: Equivalent Bending modulus in the x-direction.

  • Ey: Equivalent Bending modulus in the y-direction.

  • nu: Equivalent Bending Poisson’s ratio.

  • G: Equivalent Bending shear modulus.

Return type:

tuple[float, float, float, float]

Example

>>> CompositeShell: user_laminate = CompositeShell()
>>>                 user_laminate.NumPlies = 6
>>>                 user_laminate.PartIDs = '0'
>>>                 user_laminate.MatIDs = [(11211000,'0'),(11211000,'0'),(11211000,'0'),(11211000,'0'),(11211000,'0'),(11211000,'0')]
>>>                 user_laminate.thicknesses = [0.1,0.1,0.1,0.1,0.1,0.1]
>>>                 user_laminate.theta = [0,45,0,90,0,-45]
>>>                 user_laminate.MaterialDict = model_test.MaterialDict
>>> Ex, Ey, nu, G = user_laminate.EqBenProps()
EqMemProps()[source]#

Calculate the Homogenized Membrane Properties of the laminate using A matrix.

Returns:

A tuple containing (Ex, Ey, nu, G).

  • Ex: Equivalent Membrane modulus in the x-direction.

  • Ey: Equivalent Membrane modulus in the y-direction.

  • nu: Equivalent Membrane Poisson’s ratio.

  • G: Equivalent Membrane shear modulus.

Return type:

tuple[float, float, float, float]

Example

>>> CompositeShell: user_laminate = CompositeShell()
>>>                 user_laminate.NumPlies = 6
>>>                 user_laminate.PartIDs = '0'
>>>                 user_laminate.MatIDs = [(11211000,'0'),(11211000,'0'),(11211000,'0'),(11211000,'0'),(11211000,'0'),(11211000,'0')]
>>>                 user_laminate.thicknesses = [0.1,0.1,0.1,0.1,0.1,0.1]
>>>                 user_laminate.theta = [0,45,0,90,0,-45]
>>>                 user_laminate.MaterialDict = model_test.MaterialDict
>>> Ex, Ey, nu, G = user_laminate.EqMemProps()
QMatrix(i)[source]#

Delegate method from N2PProperty Core class to compute Reduced Stiffness Matrix in each ply of the laminate.

property ABDMatrix#

Property that returns the ABDMatrix of the laminate

property BearingAllowable: float#

Property that returns the Bearing Allowable of the laminate.

property CAIAllowable: float#

Property that returns the Compression After Impact Strength allowable of the laminate.

property FHCAllowable: float#

Property that returns the Filled Hole Compression Strength Strains allowable of the laminate.

property FHTAllowable: float#

Property that returns the Filled Hole Tension Strength Strains allowable of the laminate.

property Laminate: list#

Return the list of laminae objects.

property MatIDs: list[tuple]#

Return the list of tuples which defines the material for each ply of the laminate.

property MaterialDict#

Property that returns that N2PMaterial instances given from user input.

property NumPlies: int#

Return the number of plies of the laminate.

property OHCAllowable: float#

Property that returns the Open Hole Compression Strength Strains allowable of the laminate.

property OHTAllowable: float#

Property that returns the Open Hole Tension Strength Strains allowable of the laminate.

property PTAllowable: float#

Property that returns the Pull Through Strength allowable of the laminate.

property PartIDs: str#

Return the part ID of the element.

property PlainCompressionAllowable: float#

Property that returns the Plain Compression Strength allowable of the laminate.

property PlainTensionAllowable: float#

Property that returns the Plain Tension Strength allowable of the laminate.

property Thickness#

Property that returns the total thickness of the laminate.

property simmetry: bool#

Return the simmetry condition of the laminate.

property theta: list#

Return the list of theta angles.

property thicknesses: list#

Return the list of theta angles.

class NaxToPy.Modules.common.property.Core(index_core: int, core_type: str, n2p_property: N2PProperty, material_dict: dict)[source]#

Bases: object

property CoreType#
property Material#
property Thickness#
class NaxToPy.Modules.common.property.IsotropicShell(thickness: float, isotropic_mat: Isotropic)[source]#

Bases: object

property Allowables#
property Poisson#
property Shear#
property Thickness#
property Young#
class NaxToPy.Modules.common.property.Laminae(lamina_ID: int = None, mat_ID: int = None, thickness: float = None, theta: float = None, n2p_material: N2PMaterial = None)[source]#

Bases: object

Class representing a single layer (lamina) in a composite laminate.

lamina_id#

Identifier for the lamina.

Type:

int

mat_id#

Identifier for the material associated to the lamina.

Type:

int

thickness#

Thickness of the lamina.

Type:

float

theta#

Orientation angle of the lamina in degrees.

Type:

float

Ex, Ey, Nuxy

Mechanical properties of the lamina derived from the material.

Type:

float

Xt, Xc, Yt, Yc, S

Strength properties of the lamina derived from the material.

Type:

float

compute_Qmatrix()[source]#

Method to compute stiffness matrix Q in local axis system using material properties from each lamina

copy()[source]#

Method to create a maual copy of laminae instances

property Ex#
property Ey#
property Nuxy#
property Nuyx#
property QBar#
property Qmatrix#
property S#
property ShearXY#
property Xc#
property Xt#
property Yc#
property Yt#
property isActive#
property lamina_ID#
property mat_ID#
property material#
property theta#
property thickness#
class NaxToPy.Modules.common.property.Property(n2p_property: N2PProperty = None, n2p_material: dict = None)[source]#

Bases: object

Base class for managing properties common to all FEM property types.

property ID#
property Name#
property Type#
class NaxToPy.Modules.common.property.Sandwich(core_type, n2p_property: N2PProperty = None, n2p_material: dict = None, mat_dict: dict = None)[source]#

Bases: object

property LowerFace#
property SandwichCore#
property UpperFace#
class NaxToPy.Modules.common.property.Shell(n2p_property: N2PProperty, n2p_material: dict)[source]#

Bases: Property

Class for defining shell properties. It derives from Property

Attributes: MatMem_ID -> shell material identification number for membrane. tuple (Material ID, ‘Part ID’) MatBen_ID -> shell material identification number for bending. tuple (Material ID, ‘Part ID’) MatShe_ID -> shell material identification number for trasnverse shear. tuple (Material ID, ‘Part ID’) MatCoup_ID -> shell material identification number for membrane-bending coupling. tuple (Material ID, ‘Part ID’) Part_ID -> shell part ID. Thickness -> Total thickness of the shell. Ben_ratio -> Bending moment of inertia ratio of the shell. Tst_ratio -> Transverse shear thickness ratio of the shell. Fbru_e2d -> Ultimate Bearing allowable of the shell for e/D = 2 [Strength] Fbru_e1p5d -> Ultimate Bearing allowable of the shell for e/D = 1.5 [Strength] Ftu -> Ultimate Tension allowable of the shell [Strength] Fcu -> Ultimate Compression allowable of the shell [Strength] Fsu -> Ultimate Shear allowable of the shell [Strength]

property BenMR#

Property that returns the BenMR

property Fbru_e1p5d#

Property that returns the Ultimate Bearing Strength allowable of the shell for e/D = 1.5 [Strength]

property Fbru_e2d#

Property that returns the Ultimate Bearing Strength allowable of the shell for e/D = 2 [Strength]

property Fcu#

Property that returns the Ultimate Compression Strength allowable of the shell [Strength]

property Fsu#

Property that returns the Ultimate Shear Strength allowable of the shell [Strength]

property Ftu#

Property that returns the Ultimate Tension Strength allowable of the shell [Strength]

property MatBenID#

Property that returns the matBen ID

property MatCoupID#

Property that returns the matCoup ID

property MatMemID#

Property that returns the matMem ID

property MatSheID#

Property that returns the matShe ID

property Thickness#

Property that returns the shell thickness

property TrShThickness#

Property that returns the tst ratio