Source code for pyNastran.op2.tables.oes_stressStrain.real.oes_gap

from __future__ import (nested_scopes, generators, division, absolute_import,
                        print_function, unicode_literals)

from pyNastran.op2.tables.oes_stressStrain.real.oes_objects import StressObject


[docs]class NonlinearGapStress(StressObject): def __init__(self, data_code, is_sort1, isubcase, dt): StressObject.__init__(self, data_code, isubcase) self.eType = {} self.element_name = self.data_code['element_name'] self.code = [self.format_code, self.sort_code, self.s_code] self.compX = {} self.shearY = {} self.shearZ = {} self.axialU = {} self.shearV = {} self.shearW = {} self.slipV = {} self.slipW = {} self.dt = dt if is_sort1: if dt is not None: #self.add = self.add_sort1 self.add_new_eid = self.add_new_eid_sort1 else: assert dt is not None #self.add = self.addSort2 self.add_new_eid = self.add_new_eid_sort2
[docs] def is_real(self): return True
[docs] def is_complex(self): return False
[docs] def get_stats(self): nelements = len(self.eType) eTypes = list(set(self.eType.values())) msg = self.get_data_code() if self.dt is not None: # transient ntimes = len(self.compX) msg.append(' type=%s ntimes=%s nelements=%s\n' % (self.__class__.__name__, ntimes, nelements)) else: msg.append(' type=%s nelements=%s\n' % (self.__class__.__name__, nelements)) msg.append(' eType, compX, shearY, shearZ, axialU, shearV, shearW, slipV, slipW\n') msg.append(' eTypes = %s\n' %(', '.join(eTypes))) return msg
[docs] def getLength(self): return (8, 'f')
[docs] def delete_transient(self, dt): del self.compX[dt]
[docs] def get_transients(self): k = self.compX.keys() k.sort() return k
[docs] def add_new_transient(self, dt): """initializes the transient variables""" self.element_name = self.data_code['element_name'] self.dt = dt self.compX[dt] = {} self.shearY[dt] = {} self.shearZ[dt] = {} self.axialU[dt] = {} self.shearV[dt] = {} self.shearW[dt] = {} self.slipV[dt] = {} self.slipW[dt] = {}
[docs] def add_new_eid(self, dt, eid, cpx, shy, shz, au, shv, shw, slv, slp, form1, form2): self.eType[eid] = self.element_name self.compX[eid] = cpx self.shearY[eid] = shy self.shearZ[eid] = shz self.axialU[eid] = au self.shearV[eid] = shv self.shearW[eid] = shw self.slipV[eid] = slv self.slipW[eid] = slp
[docs] def add_new_eid_sort1(self, dt, eid, cpx, shy, shz, au, shv, shw, slv, slp, form1, form2): if dt not in self.compX: self.add_new_transient(dt) self.eType[eid] = self.element_name self.compX[dt][eid] = cpx self.shearY[dt][eid] = shy self.shearZ[dt][eid] = shz self.axialU[dt][eid] = au self.shearV[dt][eid] = shv self.shearW[dt][eid] = shw self.slipV[dt][eid] = slv self.slipW[dt][eid] = slp
[docs] def add_new_eid_sort2(self, eid, dt, cpx, shy, shz, au, shv, shw, slv, slp, form1, form2): if dt not in self.compX: self.add_new_transient(dt) self.eType[eid] = self.element_name self.compX[dt][eid] = cpx self.shearY[dt][eid] = shy self.shearZ[dt][eid] = shz self.axialU[dt][eid] = au self.shearV[dt][eid] = shv self.shearW[dt][eid] = shw self.slipV[dt][eid] = slv self.slipW[dt][eid] = slp