op2/result_objects Package

design_response Module

Inheritance diagram of pyNastran.op2.result_objects.design_response
class pyNastran.op2.result_objects.design_response.Convergence(ndesign_variables)[source]

Bases: object

append(self, design_iter, iconvergence, conv_result, obj_initial, obj_final, constraint_max, row_constraint_max, desvar_values)[source]
get_convergence(self)[source]
get_stats(self, short=False)[source]
class pyNastran.op2.result_objects.design_response.FlutterResponse[source]

Bases: object

append(self, internal_id, dresp_id, response_label, region, subcase, type_flag, seid, mode, mach, velocity, density, flutter_id)[source]
get_stats(self, short=False)[source]
name = 'flutter'
class pyNastran.op2.result_objects.design_response.ForceResponse[source]

Bases: pyNastran.op2.result_objects.design_response.GeneralResponse

name = 'force'
class pyNastran.op2.result_objects.design_response.GeneralResponse[source]

Bases: object

common class for StressResponse, StrainResponse, and ForceResponse

append(self, internal_id, dresp_id, response_label, region, subcase, type_flag, seid, item_code, pid)[source]
get_stats(self, short=False)[source]
class pyNastran.op2.result_objects.design_response.Responses[source]

Bases: object

Defines SOL 200 responses

get_stats(self, short=False)[source]
class pyNastran.op2.result_objects.design_response.StrainResponse[source]

Bases: pyNastran.op2.result_objects.design_response.GeneralResponse

name = 'strain'
class pyNastran.op2.result_objects.design_response.StressResponse[source]

Bases: pyNastran.op2.result_objects.design_response.GeneralResponse

name = 'stress'
class pyNastran.op2.result_objects.design_response.WeightResponse[source]

Bases: object

add_from_op2(self, out, log)[source]

Weight Response

1 IRID I Internal response identification number 2 RID I External response identification number 3 TYPE(C) I Response type 4 LABEL(2) CHAR4 Label 6 REGION I Region identifier 7 SCID I Subcase identification number 8 UNDEF(2) I Not used 10 SEID I Superelement identification number or ALL 11 UNDEF(2) I Not used

13 UNDEF I Not used 14 TYFLG I Flag to indicate how response is referenced 15 SEID I Superelement identificaiton number

—> 3i 8s 7i 3i

# —– WEIGHT RESPONSE —– # ——————————————————————————— # INTERNAL DRESP1 RESPONSE ROW COLUMN LOWER INPUT OUTPUT UPPER # ID ID LABEL ID ID BOUND VALUE VALUE BOUND # ——————————————————————————— # 1 1 WEIGHT 3 3 N/A 2.9861E+05 2.9852E+05 N/A

# ? ? ? LABEL? ? ? ROW_ID? COL_ID? ? ? ? ? ? ? #(1, 1, 1, ‘WEIGHT ‘, 0, 1011, 3, 3, 0, 0, 0, 0, 0, 0) #(1, 1000, 1, ‘W ‘, 0, 1, 3, 3, 0, 0, 0, 0, 0, 0) # # per dev forum; 538976288 is probably just ‘ ‘ #(1, 1, 1, ‘WEIGHT ‘, 0, 1, 3, 3, 0, 0, 538976288, 538976288, 0, 0)

append(self, internal_id, dresp_id, response_label, region, subcase, type_flag, seid, row_id, column_id)[source]
get_stats(self, short=False)[source]

grid_point_weight Module

#.. inheritance-diagram:: pyNastran.op2.result_objects.grid_point_weight

defines the GridPointWeight class

class pyNastran.op2.result_objects.grid_point_weight.GridPointWeight[source]
get_stats(self, short=True)[source]
object_attributes(self, mode='public', keys_to_skip=None)[source]
object_methods(self, mode='public', keys_to_skip=None)[source]
read_grid_point_weight(self, lines)[source]
0- REFERENCE POINT = 0 1- M O 2- * 2.338885E+05 2.400601E-13 -7.020470E-15 -1.909968E-11 2.851745E+06 -5.229834E+07 * 3- * 2.400601E-13 2.338885E+05 -2.520547E-13 -2.851745E+06 2.151812E-10 2.098475E+08 * 4- * -7.020470E-15 -2.520547E-13 2.338885E+05 5.229834E+07 -2.098475E+08 -1.960403E-10 * 5- * -1.909968E-11 -2.851745E+06 5.229834E+07 2.574524E+10 -5.566238E+10 -4.054256E+09 * 6- * 2.851745E+06 2.151812E-10 -2.098475E+08 -5.566238E+10 2.097574E+11 -2.060162E+09 * 7- * -5.229834E+07 2.098475E+08 -1.960403E-10 -4.054256E+09 -2.060162E+09 2.336812E+11 * 8- S 9- * 1.000000E+00 0.000000E+00 0.000000E+00 *

10- * 0.000000E+00 1.000000E+00 0.000000E+00 * 11- * 0.000000E+00 0.000000E+00 1.000000E+00 * 12- DIRECTION 13- MASS AXIS SYSTEM (S) MASS X-C.G. Y-C.G. Z-C.G. 14- X 2.338885E+05 -8.166148E-17 2.236038E+02 1.219276E+01 15- Y 2.338885E+05 8.972118E+02 9.200164E-16 1.219276E+01 16- Z 2.338885E+05 8.972118E+02 2.236038E+02 -8.381786E-16 17- I(S) 18- * 1.401636E+10 8.739690E+09 1.495636E+09 *

  • 8.739690E+09 2.144496E+10 1.422501E+09 *
  • 1.495636E+09 1.422501E+09 3.370946E+10 *
    I(Q)
  • 3.389001E+10 *
  • 8.073297E+09 *
  • 2.720748E+10 *
Q
  • -3.599259E-02 -8.305739E-01 5.557441E-01 *
  • -8.850329E-02 -5.512702E-01 -8.296194E-01 *
  • 9.954254E-01 -7.904533E-02 -5.366689E-02 *

Note

pyNastran’s BDF mass_properties method uses the following (not totally correct as there technically isn’t one xcg):

DIRECTION
MASS AXIS SYSTEM (S) MASS X-C.G. Y-C.G. Z-C.G.
X mass 0.000000E+00 ycg zcg Y mass xcg 0.000000E+00 zcg Z nass xcg ycg 0.000000E+00

The inertias are close to I(S), but not exact as the method doesn’t use the mass matrix, but is close for sufficiently complex models. The terms are:

  • Ixx Ixy Ixz *
  • Iyx Iyy Iyz *
  • Izz Izy Izz *

or inertia = [Ixx, Iyy, Izz, Ixy, Ixz, Iyz]

set_grid_point_weight(self, reference_point, MO, S, mass, cg, IS, IQ, Q)[source]
write_f06(self, f06_file, page_stamp, page_num)[source]

writes the f06

Parameters:
f06_file : file / StringIO

a file-like object

page_stamp : str

the page formatter (e.g., ‘PAGE %i’)

page_num : int

the active page number

Returns:
page_num : int

the new page number

# :show-inheritance:

matrix Module

#.. inheritance-diagram:: pyNastran.op2.result_objects.matrix

Defines the Matrix class

class pyNastran.op2.result_objects.matrix.Matrix(name, form, is_matpool=False)[source]

Defines a Matrix object that’s stored in op2.matrices

Attributes:
name : str

the name of the matrix

data : varies

dense : np.ndarray sparse : coo_matrix data is initialized by setting the matrix.data attribute externally

is_matpool : bool

is this a matpool matrix

Initializes a Matrix

Parameters:
name : str

the name of the matrix

form : int

the matrix type

is_matpool : bool

is this a matpool matrix

+——+—————–+
| Form | Meaning |
+======+=================+
| 1 | Square |
| 2 | Rectangular |
| 6 | Symmetric |
| 9 | Pseudo identity |
+——+—————–+
build_dataframe(self)[source]

exports the object to pandas format

export_to_hdf5(self, group, log)[source]

exports the object to HDF5 format

object_attributes(self, mode='public', keys_to_skip=None, filter_properties=False)[source]
object_methods(self, mode='public', keys_to_skip=None)[source]
shape_str

gets the matrix description

write(self, mat, print_full=True)[source]

writes to the F06

class pyNastran.op2.result_objects.matrix.MatrixDict(name)[source]

storage object for KDICT, MDICT, BDICT, etc. is op2.matdicts

add(self, eltype, numwids, numgrid, dof_per_grid, form, eids, ge, address, sil, xform=None)[source]

Sets the next set of the KDICT

element_names
nelements

# :show-inheritance:

monpnt Module

#.. inheritance-diagram:: pyNastran.op2.result_objects.monpnt

class pyNastran.op2.result_objects.monpnt.MONPNT1(frequencies, matrices, comp_matrices)[source]

MONPNT1 table

write(self, f06_file, page_stamp='', page_num=1)[source]
class pyNastran.op2.result_objects.monpnt.MONPNT3(frequencies, matrix)[source]

MONPNT3 table

write(self, f06_file, page_stamp='', page_num=1)[source]

# :show-inheritance: