Source code for pyNastran.op2.tables.oef_forces.oef_thermalObjects

#pylint disable=C0103,C0301
from __future__ import (nested_scopes, generators, division, absolute_import,
                        print_function, unicode_literals)

from pyNastran.op2.resultObjects.op2_Objects import ScalarObject
from pyNastran.f06.f06_formatting import get_key0

[docs]class HeatFlux_VU_3D(ScalarObject): # 146-VUPENTA, 147-VUTETRA, 148-VUPENTA def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) #self.eType = {} self.parent = {} self.grad = {} self.flux = {} # TODO if dt=None, handle SORT1 case if is_sort1: if dt is not None: self.add = self.add_sort1 else: assert dt is not None self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() nelements = len(self. parent) if self.nonlinear_factor is not None: # transient ntimes = len(self.grad) 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(' parent, grad, flux\n') return msg
[docs] def add_new_transient(self, dt): self.grad[dt] = {} self.flux[dt] = {}
[docs] def add(self, nNodes, dt, data): [eid, parent, gradFluxes] = data self.parent[eid] = parent #self.eType[eid] = eType self.grad[eid] = {} self.flux[eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[eid][nid] = [xGrad, yGrad, zGrad] self.flux[eid][nid] = [xFlux, yFlux, zFlux]
[docs] def add_sort1(self, nNodes, dt, data): [eid, parent, gradFluxes] = data if dt not in self.grad: self.add_new_transient(dt) self.parent[eid] = parent #self.eType[eid] = eType self.grad[dt][eid] = {} self.flux[dt][eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[dt][eid][nid] = [xGrad, yGrad, zGrad] self.flux[dt][eid][nid] = [xFlux, yFlux, zFlux]
[docs] def addSort2(self, nNodes, eid, data): [dt, parent, gradFluxes] = data if dt not in self.fApplied: self.add_new_transient(dt) self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord self.theta[eid] = theta #self.eType[eid] = eType self.grad[dt][eid] = {} self.flux[dt][eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[dt][eid][nid] = [xGrad, yGrad, zGrad] self.flux[dt][eid][nid] = [xFlux, yFlux, zFlux]
[docs]class HeatFlux_VU(ScalarObject): # 189-VUQUAD 190-VUTRIA,191-VUBEAM def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) #self.eType = {} self.parent = {} self.coord = {} self.icord = {} self.theta = {} self.grad = {} self.flux = {} # TODO if dt=None, handle SORT1 case if is_sort1: if dt is not None: self.add = self.add_sort1 else: assert dt is not None self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() nelements = len(self. parent) if self.nonlinear_factor is not None: # transient ntimes = len(self.grad) 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(' parent, coord, icord, theta, grad, flux\n') return msg
[docs] def add_new_transient(self, dt): self.grad[dt] = {} self.flux[dt] = {}
[docs] def add(self, nNodes, dt, data): [eid, parent, coord, icord, theta, gradFluxes] = data self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord self.theta[eid] = theta #self.eType[eid] = eType self.grad[eid] = {} self.flux[eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[eid][nid] = [xGrad, yGrad, zGrad] self.flux[eid][nid] = [xFlux, yFlux, zFlux]
[docs] def add_sort1(self, nNodes, dt, data): [eid, parent, coord, icord, theta, gradFluxes] = data if dt not in self.grad: self.add_new_transient(dt) self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord self.theta[eid] = theta #self.eType[eid] = eType self.grad[dt][eid] = {} self.flux[dt][eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[dt][eid][nid] = [xGrad, yGrad, zGrad] self.flux[dt][eid][nid] = [xFlux, yFlux, zFlux]
[docs] def addSort2(self, nNodes, eid, data): [dt, parent, coord, icord, theta, gradFluxes] = data if dt not in self.fApplied: self.add_new_transient(dt) self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord self.theta[eid] = theta #self.eType[eid] = eType self.grad[dt][eid] = {} self.flux[dt][eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[dt][eid][nid] = [xGrad, yGrad, zGrad] self.flux[dt][eid][nid] = [xFlux, yFlux, zFlux]
[docs]class HeatFlux_VUBEAM(ScalarObject): # 191-VUBEAM def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) #self.eType = {} self.parent = {} self.coord = {} self.icord = {} self.grad = {} self.flux = {} # TODO if dt=None, handle SORT1 case if is_sort1: if dt is not None: self.add = self.add_sort1 else: assert dt is not None self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() nelements = len(self. parent) if self.nonlinear_factor is not None: # transient ntimes = len(self.grad) 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(' parent, coord, icord, theta, grad, flux\n') return msg
[docs] def add_new_transient(self, dt): self.grad[dt] = {} self.flux[dt] = {}
[docs] def add(self, nNodes, dt, data): [eid, parent, coord, icord, gradFluxes] = data self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord #self.eType[eid] = eType self.grad[eid] = {} self.flux[eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[eid][nid] = [xGrad, yGrad, zGrad] self.flux[eid][nid] = [xFlux, yFlux, zFlux]
[docs] def add_sort1(self, nNodes, dt, data): [eid, parent, coord, icord, gradFluxes] = data if dt not in self.grad: self.add_new_transient(dt) self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord #self.eType[eid] = eType self.grad[dt][eid] = {} self.flux[dt][eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[dt][eid][nid] = [xGrad, yGrad, zGrad] self.flux[dt][eid][nid] = [xFlux, yFlux, zFlux]
[docs] def addSort2(self, nNodes, eid, data): [dt, parent, coord, icord, gradFluxes] = data if dt not in self.fApplied: self.add_new_transient(dt) self.parent[eid] = parent self.coord[eid] = coord self.icord[eid] = icord #self.eType[eid] = eType self.grad[dt][eid] = {} self.flux[dt][eid] = {} for gradFlux in gradFluxes: [nid, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = gradFlux self.grad[dt][eid][nid] = [xGrad, yGrad, zGrad] self.flux[dt][eid][nid] = [xFlux, yFlux, zFlux]
[docs]class HeatFlux_1D(ScalarObject): # 1-ROD, 2-BEAM, 3-TUBE, 10-CONROD, 34-BAR, 69-BEND def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) self.eType = {} self.grad = {} self.flux = {} # TODO if dt=None, handle SORT1 case if is_sort1: if dt is not None: self.add = self.add_sort1 else: assert dt is not None self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() nelements = len(self.eType) if self.nonlinear_factor is not None: # transient ntimes = len(self.grad) 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, grad, flux\n') return msg
[docs] def add_new_transient(self, dt): self.grad[dt] = {} self.flux[dt] = {}
[docs] def add(self, dt, data): [eid, eType, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = data self.eType[eid] = eType self.grad[eid] = [xGrad, yGrad, zGrad] self.flux[eid] = [xFlux, yFlux, zFlux]
[docs] def add_sort1(self, dt, data): [eid, eType, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = data if dt not in self.grad: self.add_new_transient(dt) self.eType[eid] = eType self.grad[dt][eid] = [xGrad, yGrad, zGrad] self.flux[dt][eid] = [xFlux, yFlux, zFlux]
[docs] def addSort2(self, eid, data): [dt, eType, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = data if dt not in self.fApplied: self.add_new_transient(dt) self.eType[eid] = eType self.grad[dt][eid] = [xGrad, yGrad, zGrad] self.flux[dt][eid] = [xFlux, yFlux, zFlux]
[docs]class HeatFlux_2D_3D(ScalarObject): # 33-QUAD4, 39-TETRA, 53-TRIAX6,64-QUAD8, 67-HEXA, 68-PENTA, 74-TRIA3, 75-TRIA6 def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) self.eType = {} self.grad = {} self.flux = {} # TODO if dt=None, handle SORT1 case if is_sort1: self.add = self.add_sort1 else: self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() nelements = len(self.eType) if self.nonlinear_factor is not None: # transient ntimes = len(self.grad) 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, grad, flux\n') return msg
[docs] def add_new_transient(self, dt): self.grad[dt] = {} self.flux[dt] = {}
[docs] def add_sort1(self, dt, data): [eid, eType, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = data if dt not in self.grad: self.add_new_transient(dt) self.eType[eid] = eType self.grad[dt][eid] = [xGrad, yGrad, zGrad] self.flux[dt][eid] = [xFlux, yFlux, zFlux]
[docs] def addSort2(self, eid, data): [dt, eType, xGrad, yGrad, zGrad, xFlux, yFlux, zFlux] = data if dt not in self.fApplied: self.add_new_transient(dt) self.eType[eid] = eType self.grad[dt][eid] = [xGrad, yGrad, zGrad] self.flux[dt][eid] = [xFlux, yFlux, zFlux]
[docs]class HeatFlux_CONV(ScalarObject): # 110-CONV def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) self.cntlNode = {} self.freeConv = {} self.freeConvK = {} # TODO if dt=None, handle SORT1 case if is_sort1: if dt is not None: self.add = self.add_sort1 else: assert dt is not None self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() if self.nonlinear_factor is not None: # transient ntimes = len(self.cntlNode) times0 = get_key0(self.cntlNode) nelements = len(self.cntlNode[times0]) msg.append(' type=%s ntimes=%s nelements=%s\n' % (self.__class__.__name__, ntimes, nelements)) else: nelements = len(self.cntlNode) msg.append(' type=%s nelements=%s\n' % (self.__class__.__name__, nelements)) msg.append(' cntlNode, freeConv, freeConvK\n') return msg
[docs] def add_new_transient(self, dt): self.cntlNode[dt] = {} self.freeConv[dt] = {} self.freeConvK[dt] = {}
[docs] def add(self, dt, data): [eid, cntlNode, freeConv, freeConvK] = data #self.eType[eid] = eType self.cntlNode[eid] = cntlNode self.freeConv[eid] = freeConv self.freeConvK[eid] = freeConvK
[docs] def add_sort1(self, dt, data): [eid, cntlNode, freeConv, freeConvK] = data if dt not in self.freeConv: self.add_new_transient(dt) #self.eType[eid] = eType self.cntlNode[dt][eid] = cntlNode self.freeConv[dt][eid] = freeConv self.freeConvK[dt][eid] = freeConvK
[docs] def addSort2(self, eid, data): [dt, eType, fApplied, freeConv, forceConv, fRad, fTotal] = data if dt not in self.freeConv: self.add_new_transient(dt) #self.eType[eid] = eType self.fApplied[dt][eid] = fApplied self.freeConv[dt][eid] = freeConv self.forceConv[dt][eid] = forceConv self.fRad[dt][eid] = fRad self.fTotal[dt][eid] = fTotal
[docs]class HeatFlux_CHBDYx(ScalarObject): # 107-CHBDYE 108-CHBDYG 109-CHBDYP def __init__(self, data_code, is_sort1, isubcase, dt): ScalarObject.__init__(self, data_code, isubcase) self.eType = {} self.fApplied = {} self.freeConv = {} self.forceConv = {} self.fRad = {} self.fTotal = {} # TODO if dt=None, handle SORT1 case if is_sort1: if dt is not None: self.add = self.add_sort1 else: assert dt is not None self.add = self.addSort2
[docs] def get_stats(self): msg = self.get_data_code() nelements = len(self.eType) if self.nonlinear_factor is not None: # transient ntimes = len(self.fApplied) 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, fApplied, freeConv, forceConv, fRad, fTotal\n') return msg
[docs] def add_new_transient(self, dt): self.fApplied[dt] = {} self.freeConv[dt] = {} self.forceConv[dt] = {} self.fRad[dt] = {} self.fTotal[dt] = {}
[docs] def add(self, dt, data): [eid, eType, fApplied, freeConv, forceConv, fRad, fTotal] = data self.eType[eid] = eType self.fApplied[eid] = fApplied self.freeConv[eid] = freeConv self.forceConv[eid] = forceConv self.fRad[eid] = fRad self.fTotal[eid] = fTotal
[docs] def add_sort1(self, dt, data): [eid, eType, fApplied, freeConv, forceConv, fRad, fTotal] = data if dt not in self.fApplied: self.add_new_transient(dt) self.eType[eid] = eType self.fApplied[dt][eid] = fApplied self.freeConv[dt][eid] = freeConv self.forceConv[dt][eid] = forceConv self.fRad[dt][eid] = fRad self.fTotal[dt][eid] = fTotal
[docs] def addSort2(self, eid, data): [dt, eType, fApplied, freeConv, forceConv, fRad, fTotal] = data if dt not in self.fApplied: self.add_new_transient(dt) self.eType[eid] = eType self.fApplied[dt][eid] = fApplied self.freeConv[dt][eid] = freeConv self.forceConv[dt][eid] = forceConv self.fRad[dt][eid] = fRad self.fTotal[dt][eid] = fTotal