oes_stressStrain Package

oes Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.oes

Contains the OES class that is used to read stress/strain data

class pyNastran.op2.tables.oes_stressStrain.oes.OES[source]

Bases: pyNastran.op2.op2_common.OP2Common

Defines the OES class that is used to read stress/strain data

OESRT_CQUAD4_95(data)[source]
_create_oes_object2(nelements, result_name, result_vector_name, slot, slot_vector, obj, obj_vector)[source]

Creates the self.obj parameter based on if this is vectorized or not. :param self: the object pointer :param nelements: the number of elements to preallocate for vectorization :type nelements: integer :param result_name: unused :type result_name: string :param result_vector_name: unused :type result_vector_name: string :param slot: the self dictionary that will be filled with a

non-vectorized result
Parameters:
  • slot_vector – the self dictionary that will be filled with a vectorized result
  • obj – a pointer to the non-vectorized class
  • obj_vector – a pointer to the vectorized class
Returns auto_return:
 

a flag indicating a return n should be called

Returns result_name:
 

string of result_name or result_vector_name

Since that’s confusing, let’s say we have real CTETRA stress data. We’re going to fill self.solidStress with the class RealSolidStress. If it were vectorized, we’d fill self.ctetra_stress. with RealSolidStressArray. So we call:

if self._is_vectorized(RealSolidStressArray, self.ctetra_stress):
if result_vector_name not in self._saved_results:
return len(data)
else:
if result_name not in self._saved_results:
return len(data)
auto_return = self._create_oes_object2(self, nelements,
‘solidStress’, ‘ctetra_stress’, self.solidStress, self.ctetra_stress, RealSolidStress, RealSolidStressArray)
if auto_return:
return nelements * ntotal
_is_vectorized(obj_vector, slot_vector)[source]
_parse_stress_code()[source]

s_code = 0 -> stress_bits = [0,0,0,0,0] s_code = 1 -> stress_bits = [0,0,0,0,1] s_code = 2 -> stress_bits = [0,0,0,1,0] s_code = 3 -> stress_bits = [0,0,0,1,1] etc. s_code = 32 -> stress_bits = [1,1,1,1,1]

stress_bits[0] = 0 -> isMaxShear=True isVonMises=False stress_bits[0] = 1 -> isMaxShear=False isVonMises=True

stress_bits[1] = 0 -> isStress=True isStrain=False stress_bits[2] = 0 -> isFiberCurvature=True isFiberDistance=False stress_bits[3] = 0 -> duplicate of Bit[1] (stress/strain) stress_bits[4] = 0 -> material coordinate system flag

_read_oes1_3(data)[source]

reads OES1 subtable 3

_read_oes1_4(data)[source]

Reads the Stress/Strain Table 4

_read_oes1_4_sort1(data)[source]

The actual function exec’d by the decorated function.

_read_oes_loads(data)[source]

Reads OES self.thermal=0 stress/strain

_read_oes_thermal(data)[source]

Reads OES self.thermal=1 tables

print_obj_name_on_crash(func)[source]

Debugging function to print the object name and an needed parameters

oes_nonlinear Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.oes_nonlinear

class pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.HyperelasticQuad(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

add_new_eid_sort1(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, eid, data)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearQuad(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

add_new_eid_sort1(eType, dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=None)[source]
class pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRod(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

add_new_transient(dt)[source]
add_sort1(eType, dt, data)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
ELEMENT-ID =     102
                         N O N L I N E A R   S T R E S S E S   I N   R O D   E L E M E N T S      ( C R O D )
  TIME          AXIAL STRESS         EQUIVALENT         TOTAL STRAIN       EFF. STRAIN          EFF. CREEP        LIN. TORSIONAL
                                       STRESS                             PLASTIC/NLELAST          STRAIN              STRESS
2.000E-02        1.941367E+01        1.941367E+01        1.941367E-04        0.0                 0.0                 0.0
3.000E-02        1.941367E+01        1.941367E+01        1.941367E-04        0.0                 0.0                 0.0