op2_interface Package

op2_codes Module

digraph inheritancec88becc3be { bgcolor=transparent; rankdir=LR; size=""; "pyNastran.op2.op2_interface.op2_codes.Op2Codes" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; }
pyNastran.op2.op2_interface.op2_codes.determine_sort_bits_meaning(table_code: int, sort_code: int, sort_bits: tuple[int, int, int]) tuple[int, bool, bool][source]

Value Sort type Data format Random ===== ========= =========== ====== 0 SORT1 Real No 1 SORT1 Complex No 2 SORT2 Real No 3 SORT2 Complex No 4 SORT1 Real Yes 5 SORT2 ??? Yes 6 SORT2 Real Yes

table_code%1000 = function3()

SPCForce = table_code % 1000 (function 3)

pyNastran.op2.op2_interface.op2_codes.get_format_word(format_code: int) str[source]
pyNastran.op2.op2_interface.op2_codes.get_result_word(result_type: int) str[source]
pyNastran.op2.op2_interface.op2_codes.get_scode_word(s_code: int, stress_bits: list[int]) str[source]
pyNastran.op2.op2_interface.op2_codes.get_scode_word_assert(s_code: int, stress_bits: list[int]) str[source]
pyNastran.op2.op2_interface.op2_codes.get_sort_method_from_table_name(table_name: bytes) int[source]

helper method

pyNastran.op2.op2_interface.op2_codes.get_table_from_table_code(table_code: int, table_name: str, is_msc: bool = True) str[source]

translates that a key of say 1 is the ‘OUG - Displacement vector’ table

op2_f06_common Module

digraph inheritance7399eee4e6 { bgcolor=transparent; rankdir=LR; size=""; "pyNastran.op2.op2_interface.op2_f06_common.OP2_F06_Common" [URL="#pyNastran.op2.op2_interface.op2_f06_common.OP2_F06_Common",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "pyNastran.op2.op2_interface.op2_f06_common.Op2F06Attributes" [URL="#pyNastran.op2.op2_interface.op2_f06_common.Op2F06Attributes",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "pyNastran.op2.op2_interface.op2_f06_common.OP2_F06_Common" -> "pyNastran.op2.op2_interface.op2_f06_common.Op2F06Attributes" [arrowsize=0.5,style="setlinewidth(0.5)"]; }
class pyNastran.op2.op2_interface.op2_f06_common.OP2_F06_Common[source]

Bases: object

property cbar_force
property cbar_force_10nodes
property cbar_strain
property cbar_strain_10nodes
property cbar_strain_energy
property cbar_stress
property cbar_stress_10nodes
property cbeam3_strain_energy
property cbeam_force
property cbeam_strain
property cbeam_strain_energy
property cbeam_stress
property cbear_force
property cbend_force
property cbend_strain
property cbend_strain_energy
property cbend_stress
property cbush1d_stress_strain
property cbush_force
property cbush_strain
property cbush_strain_energy
property cbush_stress
property cconeax_force
property cdamp1_force
property cdamp1_strain_energy
property cdamp2_force
property cdamp2_strain_energy
property cdamp3_force
property cdamp3_strain_energy
property cdamp4_force
property cdamp4_strain_energy
property cdum8_strain_energy
property celas1_force
property celas1_strain
property celas1_strain_energy
property celas1_stress
property celas2_force
property celas2_strain
property celas2_strain_energy
property celas2_stress
property celas3_force
property celas3_strain
property celas3_strain_energy
property celas3_stress
property celas4_force
property celas4_strain
property celas4_strain_energy
property celas4_stress
property cfast_force
property cfast_strain
property cfast_strain_energy
property cfast_stress
property cgap_force
property cgap_strain_energy
property chexa_composite_strain
property chexa_composite_stress
property chexa_pressure_force
property chexa_strain
property chexa_strain_energy
property chexa_stress
property conm2_strain_energy
property conrod_force
property conrod_strain
property conrod_strain_energy
property conrod_stress
property cpenta_composite_strain
property cpenta_composite_stress
property cpenta_pressure_force
property cpenta_strain
property cpenta_strain_energy
property cpenta_stress
property cplstn3_strain
property cplstn3_stress
property cplstn4_strain
property cplstn4_stress
property cplstn6_strain
property cplstn6_stress
property cplstn8_strain
property cplstn8_stress
property cplsts3_strain
property cplsts3_stress
property cplsts4_strain
property cplsts4_stress
property cplsts6_strain
property cplsts6_stress
property cplsts8_strain
property cplsts8_stress
property cpyram_pressure_force
property cpyram_strain
property cpyram_strain_energy
property cpyram_stress
property cquad4_composite_strain
property cquad4_composite_stress
property cquad4_force
property cquad4_strain
property cquad4_strain_energy
property cquad4_stress
property cquad8_composite_strain
property cquad8_composite_stress
property cquad8_force
property cquad8_strain
property cquad8_strain_energy
property cquad8_stress
property cquadr_composite_strain
property cquadr_composite_stress
property cquadr_force
property cquadr_strain
property cquadr_strain_energy
property cquadr_stress
property cquadx_strain_energy
property crod_force
property crod_strain
property crod_strain_energy
property crod_stress
property cseam_strain_energy
property cshear_force
property cshear_strain
property cshear_strain_energy
property cshear_stress
property ctetra_pressure_force
property ctetra_strain
property ctetra_strain_energy
property ctetra_stress
property ctria3_composite_strain
property ctria3_composite_stress
property ctria3_force
property ctria3_strain
property ctria3_strain_energy
property ctria3_stress
property ctria6_composite_strain
property ctria6_composite_stress
property ctria6_force
property ctria6_strain
property ctria6_strain_energy
property ctria6_stress
property ctriar_composite_strain
property ctriar_composite_stress
property ctriar_force
property ctriar_strain
property ctriar_strain_energy
property ctriar_stress
property ctriax6_strain
property ctriax6_strain_energy
property ctriax_strain
property ctriax_strain_energy
property ctriax_stress
property ctube_force
property ctube_strain
property ctube_strain_energy
property ctube_stress
property cvisc_force
property cweld_force
property cweld_strain
property cweld_strain_energy
property cweld_stress
del_result(result_name)[source]

delattr, but considers sub-objects

property dmig_strain_energy
property genel_strain_energy
get_op2_stats(short=False)[source]

Gets info about the contents of the different attributes of the OP2 class.

Examples

*Detailed OP2 Stats* >>> self.get_op2_stats()

displacements[1]

isubcase = 1 type=RealDisplacementArray nnodes=72 data: [t1, t2, t3, r1, r2, r3] shape=[1, 72, 6] dtype=float32 gridTypes sort1 lsdvmns = [1]

spc_forces[1]

isubcase = 1 type=RealSPCForcesArray nnodes=72 data: [t1, t2, t3, r1, r2, r3] shape=[1, 72, 6] dtype=float32 gridTypes sort1 lsdvmns = [1]

ctetra_stress[1]

type=RealSolidStressArray nelements=186 nnodes=930 nodes_per_element=5 (including centroid) eType, cid data: [1, nnodes, 10] where 10=[oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, von_mises] data.shape = (1, 930, 10) element name: CTETRA sort1 lsdvmns = [1]

*Appreviated OP2 Stats* >>> self.get_op2_stats(short=True) displacements[1]; RealDisplacementArray; [1, 72, 6]; [t1, t2, t3, r1, r2, r3]

get_result(result_name: str) dict[source]

Getattr, but considers sub-objects

Examples

Example 1 >>> self.eigenvectors = get_result(‘eigenvectors’)

Example 2 >>> self.ato.displacements = get_result(‘ato.displacements’)

get_table_types()[source]

Gets the names of the results.

has_result(result_name: str) bool[source]

checks to see if a result exists

property hyperelastic_cquad4_strain
property hyperelastic_cquad4_stress
isubcase_name_map

a dictionary that maps an integer of the subcaseName to the subcase_id

property rbe1_strain_energy
property rbe3_strain_energy
remove_empty_results()[source]
title

BDF Title

class pyNastran.op2.op2_interface.op2_f06_common.Op2F06Attributes[source]

Bases: OP2_F06_Common

result_set Module

digraph inheritance6f7a17e2ea { bgcolor=transparent; rankdir=LR; size=""; "pyNastran.op2.op2_interface.result_set.ResultSet" [URL="#pyNastran.op2.op2_interface.result_set.ResultSet",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="This class is private storage interface class."]; }
Defines:
  • ResultSet(allowed_results)

    • allowed

    • found

    • saved

    • is_saved(result)

    • is_not_saved(result)

    • clear()

    • add(result)

    • remove(results)

    • _found_result(result)

    • update(self, results)

class pyNastran.op2.op2_interface.result_set.ResultSet(allowed_results: list[int], results_map, log)[source]

Bases: object

This class is private storage interface class.

It’s an interface tool between the code and the results the user requests.

add(results: str | list[str]) list[str][source]

adds a list/str of results

clear() None[source]

clears all the results

is_not_saved(result: str) bool[source]

checks to see if a result is saved

is_saved(result: str) bool[source]

checks to see if a result is saved

remove(results: str | list[str]) list[str][source]

removes a list/str of results

update(results: list[str]) None[source]

write_utils Module

Defines methods for the op2 & hdf5 writer

pyNastran.op2.op2_interface.write_utils.export_to_hdf5(self, group, log)[source]

exports the object to HDF5 format

pyNastran.op2.op2_interface.write_utils.get_complex_fdtype(dtype)[source]

complex64 -> float32; complex128 -> float64

pyNastran.op2.op2_interface.write_utils.set_table3_field(str_fields, ifield: int, value)[source]

ifield is 1 based

pyNastran.op2.op2_interface.write_utils.to_column_bytes(data_list: list[ndarray], dtype_out: str, debug: bool = False) ndarray[source]

Takes an stackable numpy array of mixed types (e.g., ints/strings) and casts them to the appropriate output datatype (typically float32/float64).

An array is stackable if it’s the same shape (e.g., ints/floats). This requirement is a bit looser for strings (4 characters per 32-bit float)

pyNastran.op2.op2_interface.write_utils.view_dtype(array_obj: ndarray, dtype) ndarray[source]

handles downcasting data

pyNastran.op2.op2_interface.write_utils.view_idtype_as_fdtype(int_array: ndarray, fdtype: str) ndarray[source]

If we’re downcasting from int64 to float32, we can’t directly go to float32. We need to first go to int32, then to float32.

pyNastran.op2.op2_interface.write_utils.write_table_header(op2_file: BinaryIO, fascii: TextIO, table_name: str)[source]

Writes the beginning of an op2 table

Parameters:
op2_filefile

the op2 file object

table_namestr

the table name to write