shell
Module¶
All shell elements are defined in this file. This includes:
CTRIA3
CTRIA6
CSHEAR
CQUAD
CQUAD4
CQUAD8
CQUADR
CPLTSN3
CPLSTN4
CPLSTN6
CPLSTN8
SNORM
All tris are TriShell, ShellElement, and Element objects. All quads are QuadShell, ShellElement, and Element objects.
-
class
pyNastran.bdf.cards.elements.shell.
CTRIA3
(eid: int, pid: int, nids: List[int], zoffset: float = 0.0, theta_mcid: Union[int, float] = 0.0, tflag: int = 0, T1: Optional[float] = None, T2: Optional[float] = None, T3: Optional[float] = None, comment: str = '')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.TriShell
1
2
3
4 | 5
6
7
8
CTRIA3
EID
PID
N1 | N2
N3
THETA/MCID
ZOFFSET
TFLAG
T1
T2
T3
Creates a CTRIA3 card
- Parameters
- eidint
element id
- pidint
property id (PSHELL/PCOMP/PCOMPG)
- nidsList[int, int, int]
node ids
- zoffsetfloat; default=0.0
Offset from the surface of grid points to the element reference plane. Requires MID1 and MID2.
- theta_mcidfloat; default=0.0
- floatmaterial coordinate system angle (theta) is defined
relative to the element coordinate system
- intx-axis from material coordinate system angle defined by
mcid is projected onto the element
- tflagint; default=0
0 : Ti are actual user specified thicknesses 1 : Ti are fractions relative to the T value of the PSHELL
- T1 / T2 / T3float; default=None
If it is not supplied, then T1 through T3 will be set equal to the value of T on the PSHELL entry.
- commentstr; default=’’
a comment for the card
-
_properties
= ['cp_name_map', '_field_map']¶
-
classmethod
add_card
(card: str, comment: str = '')[source]¶ Adds a CTRIA3 card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cp_name_map
= {'T1': 'T1', 'T2': 'T2', 'T3': 'T3'}¶
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CTRIA3'¶
-
class
pyNastran.bdf.cards.elements.shell.
CTRIA6
(eid, pid, nids, theta_mcid=0.0, zoffset=0.0, tflag=0, T1=None, T2=None, T3=None, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.TriShell
1
2
3
4 | 5
6
7
8
9
CTRIA3
EID
PID
N1 | N2
N3
N4
N5
N6
THETA/MCID
ZOFFSET
T1
T2
T3
Creates a CTRIA6 card
- Parameters
- eidint
element id
- pidint
property id (PSHELL/PCOMP/PCOMPG)
- nidsList[int, int, int, int/None, int/None, int/None]
node ids
- zoffsetfloat; default=0.0
Offset from the surface of grid points to the element reference plane. Requires MID1 and MID2.
- theta_mcidfloat; default=0.0
- floatmaterial coordinate system angle (theta) is defined
relative to the element coordinate system
- intx-axis from material coordinate system angle defined by
mcid is projected onto the element
- tflagint; default=0
0 : Ti are actual user specified thicknesses 1 : Ti are fractions relative to the T value of the PSHELL
- T1 / T2 / T3float; default=None
If it is not supplied, then T1 through T3 will be set equal to the value of T on the PSHELL entry.
- commentstr; default=’’
a comment for the card
-
AreaCentroidNormal
()[source]¶ Returns area, centroid, normal as it’s more efficient to do them together
-
Normal
()[source]¶ Get the normal vector, \(n\).
\[n = \frac{(n_0-n_1) \times (n_0-n_2)}{\lvert (n_0-n_1) \times (n_0-n_2) \lvert}\]
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CTRIA6 card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
flip_normal
()[source]¶ Flips normal of element.
1 1 ** ** * * * * 4 6 --> 6 4 * * * * 2----5---3 3----5---2
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CTRIA6'¶
-
class
pyNastran.bdf.cards.elements.shell.
CSHEAR
(eid, pid, nids, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.QuadShell
1
2
3
4 | 5
6
7
CSHEAR
EID
PID
N1 | N2
N3
N4
Creates a CSHEAR card
- Parameters
- eidint
element id
- pidint
property id (PSHEAR)
- nidsList[int, int, int, int]
node ids
- commentstr; default=’’
a comment for the card
-
Area
() → float[source]¶ - \[A = \frac{1}{2} \lvert (n_1-n_3) \times (n_2-n_4) \rvert\]
where a and b are the quad’s cross node point vectors
-
AreaCentroid
() → Tuple[NDArray3float, NDArray3float][source]¶ - ::
1—–2 | /| | A1/ | | / | |/ A2 | 4—–3
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CSHEAR card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
eid
= None¶ Element ID
-
property
node_ids
¶
-
repr_fields
() → List[Union[str, int]][source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CSHEAR'¶
-
class
pyNastran.bdf.cards.elements.shell.
CQUAD
(eid, pid, nids, theta_mcid=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.QuadShell
1
2
3
4
5
6
7
8
9
CQUAD
EID
PID
G1
G2
G3
G4
G5
G6
G7
G8
G9
THETA/MCID
theta_mcid is an MSC specific variable
Creates a CQUAD card
- Parameters
- eidint
element id
- pidint
property id (PSHELL/PCOMP/PCOMPG)
- nidsList[int, int, int, int, int/None, int/None,
int/None, int/None, int/None]
node ids
- theta_mcidfloat; default=0.0
- floatmaterial coordinate system angle (theta) is defined
relative to the element coordinate system
- intx-axis from material coordinate system angle defined by
mcid is projected onto the element
- commentstr; default=’’
a comment for the card
-
Area
()[source]¶ - \[A = \frac{1}{2} \lvert (n_1-n_3) \times (n_2-n_4) \rvert\]
where a and b are the quad’s cross node point vectors
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CQUAD card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
eid
= None¶ Element ID
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CQUAD'¶
-
class
pyNastran.bdf.cards.elements.shell.
CQUAD4
(eid, pid, nids, theta_mcid=0.0, zoffset=0.0, tflag=0, T1=None, T2=None, T3=None, T4=None, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.QuadShell
1
2
3
4 | 5
6
7
8
9
CQUAD4
EID
PID
N1 | N2
N3
N4
THETA/MCID
ZOFFSET
TFLAG
T1
T2
T3
T4
Creates a CQUAD4 card
- Parameters
- eidint
element id
- pidint
property id (PSHELL/PCOMP/PCOMPG)
- nidsList[int, int, int, int]
node ids
- zoffsetfloat; default=0.0
Offset from the surface of grid points to the element reference plane. Requires MID1 and MID2.
- theta_mcidfloat; default=0.0
- floatmaterial coordinate system angle (theta) is defined
relative to the element coordinate system
- intx-axis from material coordinate system angle defined by
mcid is projected onto the element
- tflagint; default=0
0 : Ti are actual user specified thicknesses 1 : Ti are fractions relative to the T value of the PSHELL
- T1 / T2 / T3 / T4float; default=None
If it is not supplied, then T1 through T4 will be set equal to the value of T on the PSHELL entry.
- commentstr; default=’’
a comment for the card
-
_properties
= ['cp_name_map', '_field_map']¶
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CQUAD4 card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cp_name_map
= {'T1': 'T1', 'T2': 'T2', 'T3': 'T3', 'T4': 'T4'}¶
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
eid
= None¶ Element ID
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
split_to_ctria3
(eida, eidb)[source]¶ Splits a CQUAD4 into two CTRIA3s
Todo
doesn’t consider theta_mcid if a float correctly (use an integer)
Todo
doesn’t optimize the orientation of the nodes yet…
-
type
= 'CQUAD4'¶
-
class
pyNastran.bdf.cards.elements.shell.
CQUAD8
(eid, pid, nids, theta_mcid=0.0, zoffset=0.0, tflag=0, T1=None, T2=None, T3=None, T4=None, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.QuadShell
1
2
3
4
5
6
7
8
9
CQUAD8
EID
PID
G1
G2
G3
G4
G5
G6
G7
G8
T1
T2
T3
T4
THETA/MCID
ZOFFS
TFLAG
Creates a CQUAD8 card
- Parameters
- eidint
element id
- pidint
property id (PSHELL/PCOMP/PCOMPG)
- nidsList[int, int, int, int, int/None, int/None, int/None, int/None]
node ids
- zoffsetfloat; default=0.0
Offset from the surface of grid points to the element reference plane. Requires MID1 and MID2.
- theta_mcidfloat; default=0.0
- floatmaterial coordinate system angle (theta) is defined
relative to the element coordinate system
- intx-axis from material coordinate system angle defined by
mcid is projected onto the element
- tflagint; default=0
0 : Ti are actual user specified thicknesses 1 : Ti are fractions relative to the T value of the PSHELL
- T1 / T2 / T3 / T4float; default=None
If it is not supplied, then T1 through T4 will be set equal to the value of T on the PSHELL entry.
- commentstr; default=’’
a comment for the card
-
Area
() → float[source]¶ - \[A = \frac{1}{2} \lvert (n_1-n_3) \times (n_2-n_4) \rvert\]
where a and b are the quad’s cross node point vectors
-
AreaCentroid
() → Tuple[float, numpy.ndarray][source]¶ 1-----2 | /| | A1/ | | / | |/ A2 | 4-----3 centroid c = sum(ci*Ai)/sum(A) where: c=centroid A=area
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CQUAD8 card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
eid
= None¶ Element ID
-
classmethod
export_to_hdf5
(h5_file: Any, model, eids)[source]¶ exports the elements in a vectorized way
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CQUAD8'¶
-
class
pyNastran.bdf.cards.elements.shell.
CQUADR
(eid, pid, nids, theta_mcid=0.0, zoffset=0.0, tflag=0, T1=None, T2=None, T3=None, T4=None, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.QuadShell
1
2
3
4 | 5
6
7
8
9
CQUADR
EID
PID
N1 | N2
N3
N4
THETA/MCID
ZOFFSET
TFLAG
T1
T2
T3
T4
Creates a CQUADR card
- Parameters
- eidint
element id
- pidint
property id (PSHELL/PCOMP/PCOMPG)
- nidsList[int, int, int, int]
node ids
- zoffsetfloat; default=0.0
Offset from the surface of grid points to the element reference plane. Requires MID1 and MID2.
- theta_mcidfloat; default=0.0
- floatmaterial coordinate system angle (theta) is defined
relative to the element coordinate system
- intx-axis from material coordinate system angle defined by
mcid is projected onto the element
- tflagint; default=0
0 : Ti are actual user specified thicknesses 1 : Ti are fractions relative to the T value of the PSHELL
- T1 / T2 / T3 / T4float; default=None
If it is not supplied, then T1 through T4 will be set equal to the value of T on the PSHELL entry.
- commentstr; default=’’
a comment for the card
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CQUADR card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
eid
= None¶ Element ID
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CQUADR'¶
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTN3
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx3
NX specific card
-
type
= 'CPLSTN3'¶
-
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTN4
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx4
dummy init
-
type
= 'CPLSTN4'¶
-
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTN6
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx6
dummy init
-
type
= 'CPLSTN6'¶
-
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTN8
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx8
dummy init
-
type
= 'CPLSTN8'¶
-
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTS3
(eid, pid, nids, theta=0.0, tflag=0, T1=1.0, T2=1.0, T3=1.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.TriShell
1
2
3
4 | 5
6
7
8
9
CPLSTS3
EID
PID
N1 | N2
N3
THETA
TFLAG
T1
T2
T3
dummy init
-
classmethod
add_card
(card, comment='')[source]¶ Adds a CPLSTS3 card from
BDF.add_card(...)
- Parameters
- cardBDFCard()
a BDFCard object
- commentstr; default=’’
a comment for the card
-
cross_reference
(model: BDF) → None[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
property
node_ids
¶
-
repr_fields
()[source]¶ Gets the fields in their simplified form
- Returns
- fieldsList[varies]
the fields that define the card
-
safe_cross_reference
(model: BDF, xref_errors)[source]¶ Cross links the card so referenced cards can be extracted directly
- Parameters
- modelBDF()
the BDF object
-
type
= 'CPLSTS3'¶
-
classmethod
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTS4
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx4
1
2
3
4
5
6
7
8
9
CPLSTS4
EID
PID
N1
N2
N3
N4
THETA
TFLAG
T1
T2
T3
T4
[‘CPLSTS4’, ‘1’, ‘5’, ‘17’, ‘18’, ‘19’, ‘20’, ‘0.0’]
dummy init
-
type
= 'CPLSTS4'¶
-
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTS6
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx6
dummy init
-
type
= 'CPLSTS6'¶
-
-
class
pyNastran.bdf.cards.elements.shell.
CPLSTS8
(eid, pid, nids, theta=0.0, comment='')[source]¶ Bases:
pyNastran.bdf.cards.elements.shell.CPLSTx8
dummy init
-
type
= 'CPLSTS8'¶
-
-
pyNastran.bdf.cards.elements.shell.
_triangle_area_centroid_normal
(nodes, card)[source]¶ Gets the area, centroid and normal for a triangle.
- Parameters
- nodesList[np.ndarray]
List of three triangle vertices.
- Returns
- areafloat
Area of triangle.
- centroidndarray
Centroid of triangle.
- unit_normalndarray
Unit normal of triangles.
- cardCTRIA3(), CTRIA6()
the self parameter