contact Module

Inheritance diagram of pyNastran.bdf.cards.contact

Defines the following contact cards:

nx contact:
  • BCONP

  • BLSEG

  • BCPARA

  • BCRPARA

  • BCTPARA

  • BCTADD

  • BCTSET

  • BSURF

  • BSURFS

  • BFRIC

msc contact:
  • BCAUTOP (todo)

  • BCBDPRP (todo)

  • BCBMRAD (todo)

  • BCBODY (todo)

  • BCBODY1 (todo)

  • BCBZIER (todo)

  • BCGRID (todo)

  • BCHANGE (todo)

  • BCMATL (todo)

  • BCMOVE (todo)

  • BCNURB2 (todo)

  • BCONECT (todo)

  • BCONP (todo)

  • BCONPRG (todo)

  • BCONPRP (todo)

  • BCONUDS (todo)

  • BCPARA (todo)

  • BCPROP (todo)

  • BCRIGID (todo)

  • BCRGSRF (todo)

  • BCSCAP (todo)

  • BCSEG (todo)

  • BCTABLE (todo)

  • BCTABL1 (todo)

  • BCTRIM (todo)

  • BFRlC (todo)

  • BOUTPUT (todo)

  • BSURF

  • BWIDTH (todo)

  • DYPARAM,CONTACT (todo)

glue:
  • BGADD

  • BGSET

class pyNastran.bdf.cards.contact.BCBODY(contact_id, dim, behav, bsid, istype, fric, idispl, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

TODO

BCBODY | BID | DIM | BEHAV | BSID | ISTYP | FRIC | IDSPL | CONTROL |
| NLOAD | ANGVEL | DCOS1 | DCOS2| DCOS3 | VELRB1 | VELRB2 | VELRB3 |
| ADVANCE | SANGLE | COPTB | USER | | | | |
| CTYPE | ISMALL | ITYPE | IAUG | PENALT | AUGDIST |
| RIGID | CGID | NENT | — Rigid Body Name — |
| APPROV | A | N1 | N2 | N3 | V1 | V2 | V3 |
| RTEMP | G(temp)| Tempr | T(Tempr) | | | | |
| SINK | G(sink)| Tsink | T(Tsink) | | | | |
| GROW | GF1 | GF2 | GF3 | TAB-GF1 | TAB-GF2 | TAB-GF3 | |
| HEAT | CFILM | TSINK | CHEAT | TBODY | HCV | HNC | ITYPE |
| BNC | EMISS | HBL | | | | | |
classmethod add_card(card, comment='')[source]

Adds a BCBODY card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

BIDint (4,1)

Contact body identification number referenced by BCTABLE, BCHANGE, or BCMOVE. (Integer > 0; Required)

DIMstr; default=’3D’

Dimension of body. DIM=2D planar body in x-y plane of the basic coordinate system,

composed of 2D elements or curves.

DIM=3D any 3D body composed of rigid surfaces, shell elements or solid

elements.

BEHAV (4,8)

Behavior of curve or surface (Character; Default = DEFORM) DEFORM body is deformable, RIGID body is rigid, SYMM body is a symmetry body, ACOUS indicates an acoustic body, WORK indicates body is a workpiece, HEAT indicates body is a heat-rigid body. See Remark 3. for Rigid Bodies..

BSIDint

Identification number of a BSURF, BCBOX, BCPROP or BCMATL entry if BEHAV=DEFORM. (Integer > 0)

ISTYPint (4,3)

Check of contact conditions. (Integer > 0; Default = 0)

ISTYPint

is not supported in segment-to-segment contact. For a deformable body: =0 symmetric penetration, double sided contact. =1 unsymmetric penetration, single sided contact. (Integer > 0) =2 double-sided contact with automatic optimization of contact constraint

equations (this option is known as “optimized contact”). Notes: single-sided contact (ISTYP=1) with the contact bodies arranged properly using the contact table frequently runs much faster than ISTYP=2. For a rigid body:

=0 no symmetry condition on rigid body. =1 rigid body is a symmetry plane.

FRICint/float (6,7)

Friction coefficient. (Real > 0 or integer; Default = 0) If the value is an integer it represents the ID of a TABL3Di.

IDSPLint (4,5)

Set IDSPL=1 to activate the SPLINE (analytical contact) option for a deformable body and for a rigid contact surface. Set it to zero or leave blank to not have analytical contact. (Integer; Default = 0)

NLOADint or None

Enter a positive number if “load controlled” and rotations are allowed (Integer). The positive number is the grid number where the moments or rotations are applied. The rotations are specified using SPCD at grid ID NLOAD and can be specified using dof’s 1-3 (for rotation about x, y, z respectively), or by dof’s 4-6 (for rotation about x, y, z respectively). Note: This rotation takes the position of the grid point defined in CGID field as the center of rotation.

ANGVELint/float; default=0.0

Angular velocity or angular position about local axis through center of rotation. If the value is an integer it represents the ID of a TABLED1, TABLED2 or TABL3D, i.e., a time-dependent or multi-dimensional table; however, no log scales, only linear scales. (Real or Integer; Default = 0.0)

DCOSiint/float; default=0.0

Components of direction cosine of local axis if ANGVEL is nonzero. If the value is an integer, it represents the ID of a TABLED1, TABLED2 or TABL3D, i.e., a time-dependent or multi-dimensional table; however, no log scales, only linear scales. (Real or Integer; Default=0.0) In 2D contact only DCOS3 is used and the Default is 1.0.

VELRBiint/float; default=0.0

Translation velocity or final position (depending on the value of CONTROL) of rigid body at the grid point defined in CGID filed. For velocity control only, if the value is an integer, it represents the ID of TABLED1, TABLED2 or TABL3D, i.e., a time-dependent or multi-dimensional table; however, no log scales, only linear scales. Only VELRB1 and VELRB2 are used in 2D contact. (Real or Integer; Default = 0.0)

raw_fields()[source]
type = 'BCBODY'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCONP(contact_id, slave, master, sfac, friction_id, ptype, cid, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

3D Contact Region Definition by Shell Elements (SOLs 101, 601 and 701)

Defines a 3D contact region by shell element IDs.

1

2

3

4

5

6

7

8

9

BCONP

ID

SLAVE

MASTER

SFAC

FRICID

PTYPE

CID

BCONP

95

10

15

1.0

33

1

Cid() → int[source]
FrictionId() → int[source]
Master() → int[source]
Slave() → int[source]
classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BCONP card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

cross_reference(model: BDF) → None[source]
raw_fields()[source]
type = 'BCONP'
uncross_reference() → None[source]
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCPARA(csid, params, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Defines contact parameters used in SOL 600.

1

2

3

4

5

6

7

8

BCPARA

CSID

Param1

Value1

Param2

Value2

Param3

Value3

Param4

Value4

Param5

Value5

etc.

BCPARA

NBODIES

4

BIAS

0.5

Creates a BCPARA card

Parameters
csidint

ID is not used and should be set to zero. Only one BCPARA should be entered and it applies to all subcases.

csidint

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

paramsdict[key]

the optional parameters

commentstr; default=’’

a comment for the card

_finalize_hdf5(encoding)[source]

hdf5 helper function

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BCPARA card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

csid = None

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

raw_fields()[source]
type = 'BCPARA'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCRPARA(crid, offset=None, surf='TOP', Type='FLEX', grid_point=0, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

1

2

3

4

5

6

7

8

9

10

BCRPARA

CRID

SURF

OFFSET

TYPE

GP

Creates a BCRPARA card

Parameters
cridint

CRID Contact region ID.

offsetfloat; default=None

Offset distance for the contact region (Real > 0.0). None : OFFSET value in BCTPARA entry

surfstr; default=’TOP’

SURF Indicates the contact side. See Remark 1. {‘TOP’, ‘BOT’; )

Typestr; default=’FLEX’

Indicates whether a contact region is a rigid surface if it is used as a target region. {‘RIGID’, ‘FLEX’}. This is not supported for SOL 101.

grid_pointint; default=0

Control grid point for a target contact region with TYPE=RIGID or when the rigid-target algorithm is used. The grid point may be used to control the motion of a rigid surface. (Integer > 0). This is not supported for SOL 101.

commentstr; default=’’

a comment for the card

Type = None

Indicates whether a contact region is a rigid surface if it is used as a target region. See Remarks 3 and 4. (Character = “RIGID” or “FLEX”, Default = “FLEX”). This is not supported for SOL 101.

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BCRPARA card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

crid = None

CRID Contact region ID. (Integer > 0)

grid_point = None

Control grid point for a target contact region with TYPE=RIGID or when the rigid-target algorithm is used. The grid point may be used to control the motion of a rigid surface. (Integer > 0) This is not supported for SOL 101.

offset = None

Offset distance for the contact region. See Remark 2. (Real > 0.0, Default =OFFSET value in BCTPARA entry)

raw_fields()[source]
surf = None

SURF Indicates the contact side. See Remark 1. (Character = “TOP” or “BOT”; Default = “TOP”)

type = 'BCRPARA'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCTADD(csid, contact_sets, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

1

2

3

4

5

6

7

8

9

BCTADD

CSID

SI

S2

S3

S4

S5

S6

S7

S8

S9

etc.

Remarks: 1. To include several contact sets defined via BCTSET entries in a model,

BCTADD must be used to combine the contact sets. CSID in BCTADD is then selected with the Case Control command BCSET.

  1. Si must be unique and may not be the identification of this or any other BCTADD entry.

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BCTADD card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

contact_sets = None

Identification numbers of contact sets defined via BCTSET entries. (Integer > 0)

csid = None

Contact set identification number. (Integer > 0)

raw_fields()[source]
type = 'BCTADD'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCTPARA(csid, params, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Defines parameters for a surface-to-surface contact region.

1

2

3

4

5

6

7

8

BCTPARA

CSID

Param1

Value1

Param2

Value2

Param3

Value3

Param4

Value4

Param5

Value5

etc.

BCTPARA

1

TYPE

0

NSIDE

2

SEGNORM

-1

CSTIFF

1

OFFSET

0.015

Creates a BCTPARA card

Parameters
csidint

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

paramsdict[key]

the optional parameters

commentstr; default=’’

a comment for the card

_finalize_hdf5(encoding)[source]

hdf5 helper function

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BCTPARA card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

csid = None

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

raw_fields()[source]
type = 'BCTPARA'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCTPARM(csid, params, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Contact Parameters (SOLs 101, 103, 111, 112, and 401). Control parameters for the contact algorithm.

1

2

3

4

5

6

7

8

BCTPARM

CSID

Param1

Value1

Param2

Value2

Param3

Value3

Param4

Value4

Param5

Value5

etc.

BCTPARM

1

PENN

10.0

PENT

0.5

CTOL

0.001

SHLTHK

1

Creates a BCTPARM card

Parameters
csidint

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

paramsdict[key]

the optional parameters

commentstr; default=’’

a comment for the card

_finalize_hdf5(encoding)[source]

hdf5 helper function

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BCTPARM card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

csid = None

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

raw_fields()[source]
type = 'BCTPARM'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BCTSET(csid, sids, tids, frictions, min_distances, max_distances, comment='', sol=101)[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

3D Contact Set Definition (SOLs 101, 601 and 701 only) Defines contact pairs of a 3D contact set.

1

2

3

4

5

6

7

BCTSET

CSID

SID1

TID1

FRIC1

MIND1

MAXD1

SID2 | TID2

FRIC2

MIND2

MAXD2

etc.

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='', sol=101)[source]
csid = None

CSID Contact set identification number. (Integer > 0)

frictions = None

FRICi Static coefficient of friction for contact pair i. (Real; Default=0.0)

max_distances = None

MAXDi Maximum search distance for contact. (Real) (Sol 101 only)

min_distances = None

MINDi Minimum search distance for contact. (Real) (Sol 101 only)

raw_fields()[source]
sids = None

SIDi Source region (contactor) identification number for contact pair i. (Integer > 0)

tids = None

TIDi Target region identification number for contact pair i. (Integer > 0)

type = 'BCTSET'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BFRIC(friction_id: int, mu1: float, fstiff=None, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Slideline Contact Friction Defines frictional properties between two bodies in contact.

1

2

3

4

5

BFRIC

FID

FSTIF

MU1

Creates a BFRIC card, which defines a frictional contact.

Parameters
friction_idint

Friction identification number.

mu1float

Coefficient of static friction.

fstifffloat; default=None

Frictional stiffness in stick. See Remarks 2 and 3 Default=automatically selected by the program.

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]
raw_fields()[source]
type = 'BFRIC'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BGADD(glue_id, contact_sets, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

1

2

3

4

5

6

7

8

9

BGADD

GSID

SI

S2

S3

S4

S5

S6

S7

S8

S9

etc.

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BGADD card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

contact_sets = None

Identification numbers of contact sets defined via BCTSET entries. (Integer > 0)

glue_id = None

Glue identification number. (Integer > 0)

raw_fields()[source]
type = 'BGADD'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BGSET(glue_id, sids, tids, sdists, exts, comment='', sol=101)[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

1

2

3

4

5

6

7

8

9

BGSET

GSID

SID1

TID1

SDIST1

EXT1

SID2

TID2

SDIST2

EXT2

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='', sol=101)[source]
exts = None

EXTi Extension factor for target region (SOLs 402 and 601 only).

glue_id = None

GSID Glue set identification number. (Integer > 0)

raw_fields()[source]
sdists = None

SDISTi Search distance for glue regions (Real); (Default=10.0)

sids = None

SIDi Source region (contactor) identification number for contact pair i. (Integer > 0)

tids = None

TIDi Target region identification number for contact pair i. (Integer > 0)

type = 'BGSET'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BLSEG(line_id, nodes, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

3D Contact Region Definition by Shell Elements (SOLs 101, 601 and 701)

Defines a 3D contact region by shell element IDs.

+=======+====+====+======+====+====+=====+====+====+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +——-+—-+—-+——+—-+—-+—–+—-+—-+ | BLSEG | ID | G1 | G2 | G3 | G4 | G5 | G6 | G7 | +——-+—-+—-+——+—-+—-+—–+—-+—-+ | BLSEG | ID | G1 | THRU | G2 | BY | INC | | | +——-+—-+—-+——+—-+—-+—–+—-+—-+

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BLSEG card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

cross_reference(model: BDF) → None[source]
property node_ids

returns nodeIDs for repr functions

raw_fields()[source]
type = 'BLSEG'
uncross_reference() → None[source]
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BSURF(sid, eids, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

3D Contact Region Definition by Shell Elements (SOLs 101, 601 and 701)

Defines a 3D contact region by shell element IDs.

1

2

3

4

5

6

7

8

9

BSURF

ID

EID1

EID2

EID3

EID4

EID5

EID6

EID7

EID8

EID9

EID10

etc.

BSURF

ID

EID1

THRU

EID2

BY

INC

EID8

EID9

EID10

EID11

etc.

EID8

THRU

EID9

BY

INC

BSURF

15

5

THRU

21

BY

4

27

30

32

33

35

THRU

44

67

68

70

85

92

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BSURF card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

eids = None

Element identification numbers of shell elements. (Integer > 0)

raw_fields()[source]
sid = None

Set identification number. (Unique Integer > 0)

type = 'BSURF'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.contact.BSURFS(bsurfs_id, eids, g1s, g2s, g3s, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Defines a 3D contact region by the faces of the CHEXA, CPENTA or CTETRA elements.

Notes

  1. The continuation field is optional.

  2. BSURFS is a collection of one or more element faces on solid elements. BSURFS defines a contact region which may act as a contact source (contactor) or target.

  3. The ID must be unique with respect to all other BSURFS, BSURF, and BCPROP entries.

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a BSURFS card from BDF.add_card(...)

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

eids = None

Element identification numbers of solid elements. (Integer > 0)

g1s = None

Identification numbers of 3 corner grid points on the face (triangular or quadrilateral) of the solid element. (Integer > 0)

id = None

Identification number of a contact region. See Remarks 2 and 3. (Integer > 0)

raw_fields()[source]
type = 'BSURFS'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

pyNastran.bdf.cards.contact._get_bcbody_section_values(card, i: int, word: str) → Tuple[int, List[Any]][source]

gets all the values of a multi-line section