def write_f06(self, f, header=None, page_stamp='PAGE %s', page_num=1, is_mag_phase=False, is_sort1=True): if header is None: header = [] f.write( 'GridPointStressesVolumeObject write_f06 is not implemented...\n') return page_num #raise NotImplementedError() if self.nonlinear_factor is not None: return self._write_f06_transient( header, page_stamp, page_num, f, is_mag_phase=is_mag_phase, is_sort1=is_sort1) msg = header + [ ' S T R E S S E S A T G R I D P O I N T S - - S U R F A C E 5\n', '0 SURFACE X-AXIS X NORMAL(Z-AXIS) Z REFERENCE COORDINATE SYSTEM FOR SURFACE DEFINITION CID 0\n', ' GRID ELEMENT STRESSES IN SURFACE SYSTEM PRINCIPAL STRESSES MAX \n', ' ID ID FIBRE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR SHEAR VON MISES\n' ] #'0 13683 3736 TRIAX6 4.996584E+00 0.0 1.203093E+02 0.0 0.0 0.0' #' 13683 3737 TRIAX6 -4.996584E+00 0.0 -1.203093E+02 0.0 0.0 0.0' #' 13683 *TOTALS* 6.366463E-12 0.0 -1.364242E-12 0.0 0.0 0.0' for ekey, nxs in sorted(iteritems(self.nx)): ekey2 = ekey zero = '0' for iLoad, nx in enumerate(nxs): ny = self.ny[ekey][iLoad] nz = self.nz[ekey][iLoad] txy = self.txy[ekey][iLoad] tyz = self.tyz[ekey][iLoad] txz = self.txz[ekey][iLoad] pressure = self.pressure[ekey][iLoad] ovm = self.ovm[ekey][iLoad] #(elemName) = self.elemName[ekey][iLoad] #eid = self.eids[ekey][iLoad] vals = [nx, ny, nz, txy, tyz, txz, pressure, ovm] vals2 = write_floats_10e(vals) [nx, ny, nz, txy, tyz, txz, pressure, ovm] = vals2 msg.append('%s%8s %s %s %s %s %s %s %s %-s\n' % (zero, ekey, nx, ny, nz, txy, tyz, txz, pressure, ovm.rstrip())) zero = ' ' ekey2 = ' ' msg.append(page_stamp % page_num) f.write(''.join(msg)) return page_num
def write_f06(self, f, header=None, page_stamp='PAGE %s', page_num=1, is_mag_phase=False, is_sort1=True): if header is None: header = [] if self.nonlinear_factor is not None: return self._write_f06_transient( header, page_stamp, page_num, f, is_mag_phase=is_mag_phase, is_sort1=is_sort1) msg = header + [ ' S T R E S S E S A T G R I D P O I N T S - - S U R F A C E 5\n', '0 SURFACE X-AXIS X NORMAL(Z-AXIS) Z REFERENCE COORDINATE SYSTEM FOR SURFACE DEFINITION CID 0\n', ' GRID ELEMENT STRESSES IN SURFACE SYSTEM PRINCIPAL STRESSES MAX \n', ' ID ID FIBRE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR SHEAR VON MISES\n' ] #'0 13683 3736 TRIAX6 4.996584E+00 0.0 1.203093E+02 0.0 0.0 0.0' #' 13683 3737 TRIAX6 -4.996584E+00 0.0 -1.203093E+02 0.0 0.0 0.0' #' 13683 *TOTALS* 6.366463E-12 0.0 -1.364242E-12 0.0 0.0 0.0' for ekey, nxs in sorted(iteritems(self.nx)): ekey2 = ekey zero = '0' for iLoad, nx in enumerate(nxs): ny = self.ny[ekey][iLoad] txy = self.txy[ekey][iLoad] angle = self.angle[ekey][iLoad] majorP = self.majorP[ekey][iLoad] minorP = self.minorP[ekey][iLoad] tmax = self.tmax[ekey][iLoad] ovm = self.ovm[ekey][iLoad] (elemName) = self.elemName[ekey][iLoad] eid = self.eids[ekey][iLoad] vals = [nx, ny, txy, majorP, minorP, tmax, ovm] vals2 = write_floats_10e(vals) [nx, ny, txy, majorP, minorP, tmax, ovm] = vals2 if eid == 0: eid = zero angle = write_floats_8p4f([angle]) anglei = angle[0] msg.append( '%s%8s %8s %4s %s %s %s %8s %10s %10s %10s %s\n' % (zero, ekey2, eid, elemName, nx, ny, txy, anglei, majorP, minorP, tmax, ovm)) zero = ' ' ekey2 = ' ' msg.append(page_stamp % page_num) f.write(''.join(msg)) return page_num
def write_f06(self, f, header=None, page_stamp='PAGE %s', page_num=1, is_mag_phase=False, is_sort1=True): if header is None: header = [] f.write( 'GridPointStressesVolumeObject write_f06 is not implemented...\n') return page_num #raise NotImplementedError() if self.nonlinear_factor is not None: return self._write_f06_transient(header, page_stamp, page_num, f, is_mag_phase=is_mag_phase, is_sort1=is_sort1) msg = header + [ ' S T R E S S E S A T G R I D P O I N T S - - S U R F A C E 5\n', '0 SURFACE X-AXIS X NORMAL(Z-AXIS) Z REFERENCE COORDINATE SYSTEM FOR SURFACE DEFINITION CID 0\n', ' GRID ELEMENT STRESSES IN SURFACE SYSTEM PRINCIPAL STRESSES MAX \n', ' ID ID FIBRE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR SHEAR VON MISES\n' ] #'0 13683 3736 TRIAX6 4.996584E+00 0.0 1.203093E+02 0.0 0.0 0.0' #' 13683 3737 TRIAX6 -4.996584E+00 0.0 -1.203093E+02 0.0 0.0 0.0' #' 13683 *TOTALS* 6.366463E-12 0.0 -1.364242E-12 0.0 0.0 0.0' for ekey, nxs in sorted(iteritems(self.nx)): ekey2 = ekey zero = '0' for iLoad, nx in enumerate(nxs): ny = self.ny[ekey][iLoad] nz = self.nz[ekey][iLoad] txy = self.txy[ekey][iLoad] tyz = self.tyz[ekey][iLoad] txz = self.txz[ekey][iLoad] pressure = self.pressure[ekey][iLoad] ovm = self.ovm[ekey][iLoad] #(elemName) = self.elemName[ekey][iLoad] #eid = self.eids[ekey][iLoad] vals = [nx, ny, nz, txy, tyz, txz, pressure, ovm] vals2 = write_floats_10e(vals) [nx, ny, nz, txy, tyz, txz, pressure, ovm] = vals2 msg.append('%s%8s %s %s %s %s %s %s %s %-s\n' % (zero, ekey, nx, ny, nz, txy, tyz, txz, pressure, ovm.rstrip())) zero = ' ' ekey2 = ' ' msg.append(page_stamp % page_num) f.write(''.join(msg)) return page_num
def write_f06(self, f, header=None, page_stamp='PAGE %s', page_num=1, is_mag_phase=False, is_sort1=True): if header is None: header = [] if self.nonlinear_factor is not None: return self._write_f06_transient(header, page_stamp, page_num, f, is_mag_phase=is_mag_phase, is_sort1=is_sort1) msg = header + [ ' S T R E S S E S A T G R I D P O I N T S - - S U R F A C E 5\n', '0 SURFACE X-AXIS X NORMAL(Z-AXIS) Z REFERENCE COORDINATE SYSTEM FOR SURFACE DEFINITION CID 0\n', ' GRID ELEMENT STRESSES IN SURFACE SYSTEM PRINCIPAL STRESSES MAX \n', ' ID ID FIBRE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR SHEAR VON MISES\n' ] #'0 13683 3736 TRIAX6 4.996584E+00 0.0 1.203093E+02 0.0 0.0 0.0' #' 13683 3737 TRIAX6 -4.996584E+00 0.0 -1.203093E+02 0.0 0.0 0.0' #' 13683 *TOTALS* 6.366463E-12 0.0 -1.364242E-12 0.0 0.0 0.0' for ekey, nxs in sorted(iteritems(self.nx)): ekey2 = ekey zero = '0' for iLoad, nx in enumerate(nxs): ny = self.ny[ekey][iLoad] txy = self.txy[ekey][iLoad] angle = self.angle[ekey][iLoad] majorP = self.majorP[ekey][iLoad] minorP = self.minorP[ekey][iLoad] tmax = self.tmax[ekey][iLoad] ovm = self.ovm[ekey][iLoad] (elemName) = self.elemName[ekey][iLoad] eid = self.eids[ekey][iLoad] vals = [nx, ny, txy, majorP, minorP, tmax, ovm] vals2 = write_floats_10e(vals) [nx, ny, txy, majorP, minorP, tmax, ovm] = vals2 if eid == 0: eid = zero angle = write_floats_8p4f([angle]) anglei = angle[0] msg.append( '%s%8s %8s %4s %s %s %s %8s %10s %10s %10s %s\n' % (zero, ekey2, eid, elemName, nx, ny, txy, anglei, majorP, minorP, tmax, ovm)) zero = ' ' ekey2 = ' ' msg.append(page_stamp % page_num) f.write(''.join(msg)) return page_num
def write_f06(self, f06_file, header=None, page_stamp='PAGE %s', page_num=1, is_mag_phase=False, is_sort1=True): if header is None: header = [] cid = self.refid #axis_int = self.oCoord #axis_map = {0 : 'X', 1 : 'Y', 2 : 'Z'} #axis = axis_map[axis_int] msg = [ ' D I R E C T S T R E S S E S A T G R I D P O I N T S - - V O L U M E %3i\n' ' OUTPUT COORDINATE SYSTEM = %7i ELEMENT \n' ' GRID NORMAL-X NORMAL-Y NORMAL-Z SHEAR-XY SHEAR-YZ SHEAR-ZX MEAN VON MISES\n' ' ID PRESSURE\n' % ( #' 8086 6.136E-02 2.131E-01 8.353E-02 -2.268E+00 -2.274E-13 1.525E-13 -1.193E-01 3.930E+00' self.ogs_id, cid) ] ntimes = self.data.shape[0] nids = self.node zero = ' ' for itime in range(ntimes): dt = self._times[itime] header = _eigenvalue_header(self, header, itime, ntimes, dt) f06_file.write(''.join(header + msg)) nx = self.data[itime, :, 0] ny = self.data[itime, :, 1] nz = self.data[itime, :, 2] txy = self.data[itime, :, 3] tyz = self.data[itime, :, 4] txz = self.data[itime, :, 5] pressure = self.data[itime, :, 6] ovm = self.data[itime, :, 7] for (nid, nxi, nyi, nzi, txyi, tyzi, txzi, pressurei, ovmi) in zip(nids, nx, ny, nz, txy, tyz, txz, pressure, ovm): [nxi, nyi, nzi, txyi, tyzi, txzi, pressurei, ovmi] = write_floats_10e( [nxi, nyi, nzi, txyi, tyzi, txzi, pressurei, ovmi]) f06_file.write( '%s%8s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-s\n' % (zero, nid, nxi, nyi, nzi, txyi, tyzi, txzi, pressurei, ovmi.rstrip())) f06_file.write(page_stamp % page_num) page_num += 1 return page_num - 1
def write_f06(self, f06_file, header=None, page_stamp='PAGE %s', page_num=1, is_mag_phase=False, is_sort1=True): if header is None: header = [] cid = self.refid axis_int = self.oCoord axis_map = {0 : 'X', 1 : 'Y', 2 : 'Z'} axis = axis_map[axis_int] msg = [ ' S T R E S S E S A T G R I D P O I N T S - - S U R F A C E %s\n' % self.ogs_id, '0 SURFACE X-AXIS X NORMAL(Z-AXIS) %s REFERENCE COORDINATE SYSTEM FOR SURFACE DEFINITION CID %s\n' % (axis, cid), ' GRID ELEMENT STRESSES IN SURFACE SYSTEM PRINCIPAL STRESSES MAX \n', ' ID ID FIBRE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR SHEAR VON MISES\n'] #'0 13683 3736 TRIAX6 4.996584E+00 0.0 1.203093E+02 0.0 0.0 0.0' #' 13683 3737 TRIAX6 -4.996584E+00 0.0 -1.203093E+02 0.0 0.0 0.0' #' 13683 *TOTALS* 6.366463E-12 0.0 -1.364242E-12 0.0 0.0 0.0' ntimes = self.data.shape[0] nids = self.node_element[:, 0] eids = self.node_element[:, 1] for itime in range(ntimes): dt = self._times[itime] header = _eigenvalue_header(self, header, itime, ntimes, dt) f06_file.write(''.join(header + msg)) nx = self.data[itime, :, 0] ny = self.data[itime, :, 1] txy = self.data[itime, :, 2] angle = self.data[itime, :, 3] majorp = self.data[itime, :, 4] minorp = self.data[itime, :, 5] tmax = self.data[itime, :, 6] ovm = self.data[itime, :, 7] fibers = self.location nid_old = -1 for (nid, eid, fiber, nxi, nyi, txyi, anglei, majorpi, minorpi, tmaxi, ovmi) in zip( nids, eids, fibers, nx, ny, txy, angle, majorp, minorp, tmax, ovm): [nxi, nyi, txyi, majorpi, minorpi, tmaxi, ovmi] = write_floats_10e([ nxi, nyi, txyi, majorpi, minorpi, tmaxi, ovmi]) if nid > nid_old: f06_file.write( '0%8s %8s %4s %-10s %-10s %-10s %8.4f %10s %10s %10s %s\n' % ( nid, eid, fiber, nxi, nyi, txyi, anglei, majorpi, minorpi, tmaxi, ovmi)) else: f06_file.write( ' %8s %8s %4s %-10s %-10s %-10s %8.4f %10s %10s %10s %s\n' % ( '', '', fiber, nxi, nyi, txyi, anglei, majorpi, minorpi, tmaxi, ovmi)) nid_old = nid f06_file.write(page_stamp % page_num) page_num += 1 return page_num - 1
def write_f06(self, f06_file, header=None, page_stamp='PAGE %s', page_num: int=1, is_mag_phase: bool=False, is_sort1: bool=True): if header is None: header = [] cid = self.refid axis_int = self.oCoord axis_map = {0 : 'X', 1 : 'Y', 2 : 'Z'} axis = axis_map[axis_int] msg = self._get_f06_message(self.ogs_id, cid, axis) ntimes = self.data.shape[0] nids = self.node_element[:, 0] eids = self.node_element[:, 1] for itime in range(ntimes): dt = self._times[itime] header = _eigenvalue_header(self, header, itime, ntimes, dt) f06_file.write(''.join(header + msg)) nx = self.data[itime, :, 0] ny = self.data[itime, :, 1] txy = self.data[itime, :, 2] angle = self.data[itime, :, 3] majorp = self.data[itime, :, 4] minorp = self.data[itime, :, 5] tmax = self.data[itime, :, 6] ovm = self.data[itime, :, 7] fibers = self.location nid_old = -1 for (nid, eid, fiber, nxi, nyi, txyi, anglei, majorpi, minorpi, tmaxi, ovmi) in zip( nids, eids, fibers, nx, ny, txy, angle, majorp, minorp, tmax, ovm): [nxi, nyi, txyi, majorpi, minorpi, tmaxi, ovmi] = write_floats_10e([ nxi, nyi, txyi, majorpi, minorpi, tmaxi, ovmi]) if nid > nid_old: f06_file.write( '0%8s %8s %4s %-10s %-10s %-10s %8.4f %10s %10s %10s %s\n' % ( nid, eid, fiber, nxi, nyi, txyi, anglei, majorpi, minorpi, tmaxi, ovmi)) else: f06_file.write( ' %8s %8s %4s %-10s %-10s %-10s %8.4f %10s %10s %10s %s\n' % ( '', '', fiber, nxi, nyi, txyi, anglei, majorpi, minorpi, tmaxi, ovmi)) nid_old = nid f06_file.write(page_stamp % page_num) page_num += 1 return page_num - 1