本文整理汇总了Python中pyNastran.bdf.dev_vectorized.bdf.BDF.add_card方法的典型用法代码示例。如果您正苦于以下问题:Python BDF.add_card方法的具体用法?Python BDF.add_card怎么用?Python BDF.add_card使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyNastran.bdf.dev_vectorized.bdf.BDF
的用法示例。
在下文中一共展示了BDF.add_card方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_solid_03
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_solid_03(self):
"""checks linear static solid material"""
mid = 2
pid = 4
rho = 0.1
tableID = 42
cards = [
#$ Solid Nodes
['GRID', 11, 0, 0., 0., 0., 0],
['GRID', 12, 0, 1., 0., 0., 0],
['GRID', 13, 0, 1., 1., 0., 0],
['GRID', 14, 0, 0., 1., 0., 0],
['GRID', 15, 0, 0., 0., 2., 0],
['GRID', 16, 0, 1., 0., 2., 0],
['GRID', 17, 0, 1., 1., 2., 0],
['GRID', 18, 0, 0., 1., 2., 0],
# Solids
['CHEXA', 7, pid, 11, 12, 13, 14, 15, 16, 17, 18],
['CTETRA', 8, pid, 11, 12, 13, 15],
# Solid Nodes
['GRID', 21, 0, 0., 0., 0., 0,],
['GRID', 22, 0, 1., 0., 0., 0,],
['GRID', 23, 0, 1., 1., 0., 0,],
['GRID', 24, 0, 0., 0., 2., 0,],
['GRID', 25, 0, 1., 0., 2., 0,],
['GRID', 26, 0, 1., 1., 2., 0,],
['CPENTA', 9, pid, 21, 22, 23, 24, 25, 26],
# static
['PSOLID', pid, mid, 0],
['MAT1', mid, 1.0, 2.0, 3.0, rho],
['MATS1', mid, tableID, 'PLASTIC', 0.0, 1, 1, 100000., ],
#['TABLEST'],
['TABLES1', tableID, 1, None, None, None, None, None, None,
1.0, 10.0, 2.0, 10.0, 'ENDT'],
]
card_count = {
'GRID' : 14,
'CPENTA6': 1,
'CTETRA4': 1,
'PSOLID': 1,
'CHEXA8' : 1,
'MAT1': 1,
'MATS1': 1,
'TABLES1': 1,
}
model = BDF(debug=False)
model.allocate(card_count)
for fields in cards:
model.add_card(fields, fields[0], is_list=True)
model.cross_reference()
mat = model.materials[mid]
print('----MAT----', type(mat))
print(mat)
print('E = %s' % mat.get_E_by_material_index())
print('E = %s' % mat.get_E_by_material_id())
示例2: add_card
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def add_card(self, card_lines, card_name, comment='', is_list=True):
card_name = card_name.upper()
self._increase_card_count(card_name)
if card_name in ['DEQATN']:
card_obj = card_lines
card = card_lines
else:
if is_list:
fields = card_lines
else:
fields = to_fields(card_lines, card_name)
# apply OPENMDAO syntax
if self._is_dynamic_syntax:
fields = [self._parse_dynamic_syntax(field) if '%' in
field[0:1] else field for field in fields]
card = wipe_empty_fields([interpret_value(field, fields)
if field is not None
else None for field in fields])
else: # leave everything as strings
card = wipe_empty_fields(fields)
card_obj = BDFCard(card)
if card_name == 'HYPER':
hyper = HYPER(card_obj, comment)
self.hyper[hyper.pid] = hyper
return
elif card_name == 'FLOW':
flow = FLOW(card_obj, comment)
self.flow[flow.flow_id] = flow
return
BDF.add_card(self, card, card_name, comment=comment, is_list=True)
示例3: test_cord1_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord1_01(self):
model = BDF(debug=False)
card_count = {
'CCORD1R' : 1,
'GRID' : 3,
}
model.allocate(card_count)
cards = [
['CORD1R', 1, 1, 2, 3], # fails on self.k
['GRID', 1, 0, 0., 0., 0.],
['GRID', 2, 0, 1., 0., 0.],
['GRID', 3, 0, 1., 1., 0.],
]
for card in cards:
model.add_card(card, card[0], comment='comment', is_list=True)
c1 = model.Coord(1)
self.assertEquals(c1.G1(), 1)
self.assertEquals(c1.G2(), 2)
self.assertEquals(c1.G3(), 3)
model.cross_reference()
self.assertEquals(c1.G1(), 1)
self.assertEquals(c1.G2(), 2)
self.assertEquals(c1.G3(), 3)
self.assertEquals(c1.NodeIDs(), [1, 2, 3])
示例4: test_solid_02
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_solid_02(self):
mid = 2
pid = 4
rho = 0.1
cards = [
#$ Solid Nodes
['GRID', 11, 0, 0., 0., 0., 0],
['GRID', 12, 0, 1., 0., 0., 0],
['GRID', 13, 0, 1., 1., 0., 0],
['GRID', 14, 0, 0., 1., 0., 0],
['GRID', 15, 0, 0., 0., 2., 0],
['GRID', 16, 0, 1., 0., 2., 0],
['GRID', 17, 0, 1., 1., 2., 0],
['GRID', 18, 0, 0., 1., 2., 0],
# Solids
['CHEXA', 7, pid, 11, 12, 13, 14, 15, 16, 17, 18],
['CTETRA', 8, pid, 11, 12, 13, 15],
# Solid Nodes
['GRID', 21, 0, 0., 0., 0., 0,],
['GRID', 22, 0, 1., 0., 0., 0,],
['GRID', 23, 0, 1., 1., 0., 0,],
['GRID', 24, 0, 0., 0., 2., 0,],
['GRID', 25, 0, 1., 0., 2., 0,],
['GRID', 26, 0, 1., 1., 2., 0,],
['CPENTA', 9, pid, 21, 22, 23, 24, 25, 26],
# hyperelastic
['PLSOLID', pid, mid, 'GRID'],
['MATHP', mid, None, None, None, rho],
]
card_count = {
'GRID' : 14,
'CTETRA4': 1,
'CPENTA6': 1,
'CHEXA8' : 1,
'PLSOLID': 1,
'MATHP': 1,
}
model = BDF(debug=True)
model.allocate(card_count)
for fields in cards:
model.add_card(fields, fields[0], is_list=True)
model.cross_reference()
# CTETRA
eid = 8
nsm = 0.
V = 1. / 3.
self.check_solid(model, eid, 'CTETRA4', pid, 'PLSOLID', mid, 'MATHP', nsm, rho, V)
eid = 9
V = 1.0
self.check_solid(model, eid, 'CPENTA6', pid, 'PLSOLID', mid, 'MATHP', nsm, rho, V)
eid = 7
V = 2.0
self.check_solid(model, eid, 'CHEXA8', pid, 'PLSOLID', mid, 'MATHP', nsm, rho, V)
示例5: test_cord1c_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord1c_01(self):
lines = ['cord1c,2,1,4,3']
grids = [
['GRID', 4, 0, 0.0, 0., 0.],
['GRID', 3, 0, 0.0, 0., 1.],
['GRID', 1, 0, 0.0, 1., 0.],
]
card_count = {
'CORD1C' : 1,
'GRID' : 3,
}
model = BDF(debug=False)
model.allocate(card_count)
model.add_card(lines, 'CORD1C', is_list=False)
for grid in grids:
model.add_card(grid, grid[0], is_list=True)
model.build()
size = 8
bdf_file = StringIO()
card = model.coords.slice_by_coord_id(2)
self.assertEquals(card.get_cid_by_coord_id(), 2)
self.assertEquals(card.get_rid_by_coord_id(), 0)
card.write_card(bdf_file, size=8, is_double=False)
示例6: test_cord2r_02
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord2r_02(self):
grid = ['GRID 20143 7 -9.31-4 .11841 .028296']
coord = ['CORD2R 7 1.135 .089237 -.0676 .135 .089237 -.0676',
' 1.135 .089237 .9324']
model = BDF(debug=False)
card_count = {
'GRID' : 1,
'CORD2R' : 1,
}
model.allocate(card_count)
card = model.process_card(grid)
model.add_card(card, card[0])
card = model.process_card(coord)
model.add_card(card, card[0])
model.cross_reference()
g = model.Node(20143)
#xyz = g.Position()
xyz = model.coords.get_global_position_by_node_id(20143, g.cp[0])[0]
# by running it through Patran...
#GRID 20143 1.1067 .207647 -.068531
expected = array([1.106704, .207647, -0.068531])
diff = xyz - expected
msg = '\nexpected=%s \nactual =%s \ndiff =%s' % (expected, xyz, diff)
assert allclose(diff, 0.), msg
coord = model.Coord(7)
coord.T()
self.assertTrue(array_equal(coord.T(), coord.beta_n(2)))
示例7: getNodes
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def getNodes(self, grids, grids_expected, coords):
model = BDF(debug=False)
card_count = {
'GRID' : len(grids),
'CORD2R' : len(coords),
}
model.allocate(card_count)
for grid in grids:
(nid, cid, x, y, z) = grid
model.add_card(['GRID', nid, cid, x, y, z], 'GRID')
for coord in coords:
(cid, rid, x, y, z) = coord
model.add_card(['CORD2R', cid, rid] + x + y + z, 'CORD2R')
#coordObj = model.Coord(cid)
model.cross_reference()
for (i, grid) in enumerate(grids_expected):
(nid, cid, x, y, z) = grid
nodes = model.grid
pos = nodes.get_position_by_node_id([nid])[0]
n = array([x, y, z])
msg = 'i=%s expected=%s actual=%s\n' % (i, n, pos)
print(msg)
assert allclose(n, pos), msg
示例8: test_cord2_rcs_03
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord2_rcs_03(self):
"""
all points are located at <30,40,50>
"""
model = BDF(debug=False)
card_count = {
'GRID' : 3,
'CORD2R' : 1,
'CORD2C' : 1,
'CORD2S' : 2,
}
model.allocate(card_count)
cards = [
[
'CORD2S* 2 0 0. 0.',
'* 0. 0. 0. 1.* ',
'* 1. 0. 1.',],
[
#'$ Femap with NX Nastran Coordinate System 30 : rectangular in spherical',
'CORD2R* 30 2 14. 30.',
'* 70. 13.431863852 32.1458443949 75.2107442927* ',
'* 14.4583462334 33.4569982885 68.2297989286',],
[
#'$ Femap with NX Nastran Coordinate System 31 : cylindrical in spherical',
'CORD2C* 31 2 3. 42.',
'* -173. 2.86526881213 45.5425615252 159.180363517* ',
'* 3.65222385965 29.2536614627 -178.631312271',],
[
#'$ Femap with NX Nastran Coordinate System 32 : spherical in spherical',
'CORD2S* 32 2 22. 14.',
'* 85. 22.1243073983 11.9537753718 77.9978191005* ',
'* 21.0997242967 13.1806120497 88.4824763008',],
[
'GRID* 30 30 40.7437952957 -23.6254877994',
'* -33.09784854 0',],
[
'GRID* 31 31 62.9378078196 15.9774797923',
'* 31.0484428362 0',],
[
'GRID* 32 32 53.8270847449 95.8215692632',
'* 159.097767463 0',],
]
for lines in cards:
card = model.process_card(lines)
model.add_card(card, card[0])
model.build()
for nid in model.nodes:
a = array([30., 40., 50.])
b = model.Node(nid).get_position()
self.assertTrue(allclose(array([30., 40., 50.]), model.Node(nid).get_position()), str(a - b))
示例9: test_cord2_rcs_02
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord2_rcs_02(self):
"""
all points are located at <30,40,50>
"""
model = BDF(debug=False)
card_count = {
'GRID' : 3,
'CORD2R' : 1,
'CORD2C' : 2,
'CORD2S' : 1,
}
model.allocate(card_count)
cards = [
[
'CORD2C* 1 0 0. 0.',
'* 0. 0. 0. 1.* ',
'* 1. 0. 1.',],
[
#'$ Femap with NX Nastran Coordinate System 20 : rectangular defined in cylindrical',
'CORD2R* 20 1 7. 20.',
'* -6. 7.07106781187 28.1301023542 -6.* ',
'* 7.70710678119 20. -5.29289321881',],
[
#'$ Femap with NX Nastran Coordinate System 21 : cylindrical defined in cylindrical',
'CORD2C* 21 1 15. -30.',
'* 12. 14.6565766735 -30.3177805524 12.9355733712* ',
'* 14.6234241583 -26.4257323272 11.9304419665',],
[
#'$ Femap with NX Nastran Coordinate System 22 : spherical defined in cylindrical',
'CORD2S* 22 1 5. -75.',
'* 20. 5.66032384035 -82.9319986389 19.8502545865* ',
'* 4.88876051026 -73.8006653677 19.0116094889',],
[
'GRID* 20 20 64.2559135157 -14.9400459772',
'* 27.3271005317 0',],
[
'GRID* 21 21 52.8328862418 -28.8729017195',
'* 34.615939507 0',],
[
'GRID* 22 22 61.1042111232 158.773483595',
'* -167.4951724 0',],
]
for lines in cards:
card = model.process_card(lines)
model.add_card(card, card[0])
model.build()
for nid in model.nodes:
a = array([30., 40., 50.])
b = model.Node(nid).get_position()
self.assertTrue(allclose(array([30., 40., 50.]), model.Node(nid).get_position()), str(a - b))
示例10: test_crod_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_crod_01(self):
model = BDF(debug=debug)
model.allocate({"CROD": 1})
lines = ["CROD 10 100 10 2"]
model.add_card(lines, "CROD", is_list=False)
size = 8
f = StringIO()
# card = CROD(card)
card = model.crod.slice_by_element_id([10])
card.write_card(f, size)
# card.rawFields()
self.assertEquals(card.get_element_id_by_element_index(), 10)
self.assertEquals(card.get_property_id_by_element_index(), 100)
示例11: test_cord2_rcs_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord2_rcs_01(self):
"""
all points are located at <30,40,50>
"""
model = BDF(debug=False)
card_count = {
'GRID' : 3,
'CORD2R' : 1,
'CORD2C' : 1,
'CORD2S' : 1,
}
model.allocate(card_count)
cards = [
[
#'$ Femap with NX Nastran Coordinate System 10 : rectangular defined in a rectangular',
'CORD2R* 10 0 10. 5.',
'* 3. 10.3420201433 4.53015368961 3.81379768136* ',
'* 10.7198463104 5.68767171433 3.09449287122',],
[
#'$ Femap with NX Nastran Coordinate System 11 : cylindrical defined in rectangular',
'CORD2C* 11 0 7. 3.',
'* 9. 7.64278760969 2.73799736977 9.71984631039* ',
'* 7.75440650673 3.37968226211 8.46454486422',],
[
#'$ Femap with NX Nastran Coordinate System 12 : spherical defined in rectangular',
'CORD2S* 12 0 12. 8.',
'* 5. 12.6427876097 7.86697777844 5.75440650673* ',
'* 12.6634139482 8.58906867688 4.53861076379',],
[
'GRID* 10 10 42.9066011565 34.2422137135',
'* 28.6442730262 0',],
[
'GRID* 11 11 48.8014631871 78.8394787869',
'* 34.6037164304 0',],
[
'GRID* 12 12 58.0775343829 44.7276544324',
'* 75.7955331161 0',],
]
for lines in cards:
card = model.process_card(lines)
model.add_card(card, card[0])
model.build()
for nid in model.nodes:
a = array([30., 40., 50.])
b = model.Node(nid).get_position()
self.assertTrue(allclose(array([30., 40., 50.]), model.Node(nid).get_position()), str(a - b))
示例12: test_cord1r_02
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_cord1r_02(self):
model = BDF(debug=False)
card_count = {
'CORD1R' : 1,
'GRID' : 3,
}
#model.allocate(card_count)
cards = [
['CORD1R', 1, 1, 2, 3], # fails on self.k
['GRID', 1, 0, 0., 0., 0.],
['GRID', 2, 0, 1., 0., 0.],
['GRID', 3, 0, 1., 1., 0.],
]
for card in cards:
model.add_card(card, card[0], comment='comment\n', is_list=True)
model.build()
c1 = model.coords.slice_by_coord_id(1)
示例13: test_conrod_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_conrod_01(self):
model = BDF(debug=debug)
model.allocate({"CONROD": 1})
eid = 10
nid1 = 2
nid2 = 3
mid = 5
A = 27.0
lines = ["conrod,%i, %i, %i, %i, %f" % (eid, nid1, nid2, mid, A)]
model.add_card(lines, "CONROD", is_list=False)
size = 8
card = model.conrod.slice_by_element_id([eid])
f = StringIO()
card.write_card(f, size)
# card.rawFields()
self.assertEquals(card.get_element_id_by_element_index(), eid)
self.assertEquals(card.get_material_id_by_element_index(), mid)
示例14: test_grid_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_grid_01(self):
model = BDF(debug=False)
cards = [
#['CORD1R', 1, 1, 2, 3], # fails on self.k
['GRID', 1, 0, 0., 0., 0.],
['GRID', 2, 0, 1., 0., 0.],
['GRID', 4, 0, 1., 2., 3.],
]
card_count = {
'GRID': 3,
}
model.allocate(card_count)
for card in cards:
model.add_card(card, card[0], comment='comment', is_list=True)
#+------+-----+----+----+----+----+----+----+------+
#| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
#+======+=====+====+====+====+====+====+====+======+
#| GRID | NID | CP | X1 | X2 | X3 | CD | PS | SEID |
#+------+-----+----+----+----+----+----+----+------+
node = model.Node(4)
示例15: test_grid_01
# 需要导入模块: from pyNastran.bdf.dev_vectorized.bdf import BDF [as 别名]
# 或者: from pyNastran.bdf.dev_vectorized.bdf.BDF import add_card [as 别名]
def test_grid_01(self):
model = BDF(debug=False)
card_lines = [
#['CORD1R', 1, 1, 2, 3], # fails on self.k
['GRID', 1, 0, 0., 0., 0.],
['GRID', 2, 0, 1., 0., 0.],
['GRID', 4, 0, 1., 2., 3.],
]
#card_count = {
#'GRID': 3,
#}
cards, card_count = model.add_cards_lines(card_lines)
model.allocate(card_count, cards)
for card in cards:
model.add_card(card, card[0], comment='comment', is_list=True)
model.build()
#+------+-----+----+----+----+----+----+----+------+
#| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
#+======+=====+====+====+====+====+====+====+======+
#| GRID | NID | CP | X1 | X2 | X3 | CD | PS | SEID |
#+------+-----+----+----+----+----+----+----+------+
node = model.grid.slice_by_node_id(4)