def build(self): """sizes the vectorized attributes of the RealChbdyHeatFluxArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) if self.is_built: return assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = np.zeros(self.ntimes, dtype=dtype) self.element = np.zeros(self.nelements, dtype='int32') self.element_type = np.empty(self.nelements, dtype='|U8') #[fapplied, free_conv, force_conv, frad, ftotal] self.data = np.zeros((self.ntimes, self.ntotal, 5), dtype='float32')
def build(self): """sizes the vectorized attributes of the RealStrainEnergyArray""" del self.dt_temp #print(self._ntotals) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal self.ntotal = max(self._ntotals) #if max(self._ntotals) != min(self._ntotals): #raise RuntimeError('variable length in RealStrainEnergyArray') #self.names = [] #self.nelements = self.ntotal // self.ntimes self.nelements = self.ntotal self.itime = 0 self.ielement = 0 self.itotal = 0 #self.itotal2 = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) self.build_data(dtype, idtype, fdtype)
def build(self): """sizes the vectorized attributes of the RealTriaxArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal unused_nnodes_per_element = self.nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) _times = zeros(self.ntimes, dtype=dtype) element_node = zeros((self.ntotal, 2), dtype='int32') # [radial, azimuthal, axial, shear, omax, oms, ovm] data = zeros((self.ntimes, self.ntotal, 7), dtype='float32') if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element_node = group.create_dataset('element_node', data=element_node) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element_node = element_node self.data = data
def build(self): """sizes the vectorized attributes of the RealRodArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 if self.is_sort1: ntimes = self.ntimes nelements = self.ntotal else: nelements = self.ntimes ntimes = self.ntotal dtype = self._get_analysis_code_dtype() #self.ntimes = 0 #self.nelements = 0 #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self.build_data(ntimes, nelements, dtype, idtype=idtype, fdtype=fdtype)
def build(self): """sizes the vectorized attributes of the RealShearArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) if self.is_sort1: ntimes = self.ntimes nelements = self.nelements else: ntimes = self.nelements nelements = self.ntimes dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = zeros(ntimes, dtype=dtype) self.element = zeros(nelements, dtype='int32') # [max_shear, avg_shear] self.data = zeros((ntimes, nelements, 2), dtype='float32')
def build(self): """sizes the vectorized attributes of the RealBush1DStressArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, #self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = zeros(self.ntimes, dtype=dtype) self.element = zeros(self.ntotal, dtype='int32') self.is_failed = zeros((self.ntimes, self.ntotal, 1), dtype='int32') # [element_force, axial_displacement, axial_velocity, axial_stress, axial_strain, plastic_strain, is_failed] self.data = zeros((self.ntimes, self.ntotal, 6), dtype='float32')
def build(self): """sizes the vectorized attributes of the RealNonlinearSpringStressArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) _times = zeros(self.ntimes, dtype=dtype) element = zeros(self.nelements, dtype='int32') #[force, stress] data = zeros((self.ntimes, self.nelements, 2), dtype='float32') if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element = group.create_dataset('element', data=element) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element = element self.data = data
def build(self): """sizes the vectorized attributes of the RealCompositePlateArray""" assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal if self.element_type == 95: # CQUAD4 nnodes_per_element = 1 elif self.element_type == 96: # CQUAD8 nnodes_per_element = 1 elif self.element_type == 97: # CTRIA3 nnodes_per_element = 1 elif self.element_type == 98: # CTRIA6 nnodes_per_element = 1 #elif self.element_type == 232: # CQUADR #nnodes_per_element = 1 #elif self.element_type == 233: # CTRIAR #nnodes_per_element = 1 else: # pragma: no cover msg = 'element_name=%s element_type=%s' % (self.element_name, self.element_type) raise NotImplementedError(msg) self.nnodes = nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) if self.is_sort1: ntimes = self.ntimes ntotal = self.ntotal else: ntimes = self.ntotal ntotal = self.ntimes _times = zeros(ntimes, dtype=dtype) element_layer = zeros((ntotal, 2), dtype=idtype) #[strength_ratio_ply, failure_index_bonding, strength_ratio_bonding] data = zeros((ntimes, ntotal, 3), dtype=fdtype) # [failure_theory, flag] failure_theory_flag = np.empty((ntotal, 2), dtype='U8') #if self.load_as_h5: # #for key, value in sorted(self.data_code.items()): # #print(key, value) # group = self._get_result_group() # self._times = group.create_dataset('_times', data=_times) # self.element_layer = group.create_dataset('element_layer', data=element_layer) # self.data = group.create_dataset('data', data=data) #else: self._times = _times self.element_layer = element_layer self.failure_theory_flag = failure_theory_flag self.data = data
def build(self): """sizes the vectorized attributes of the RealCompositePlateArray""" assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal if self.element_type == 95: # CQUAD4 nnodes_per_element = 1 elif self.element_type == 96: # CQUAD8 nnodes_per_element = 1 elif self.element_type == 97: # CTRIA3 nnodes_per_element = 1 elif self.element_type == 98: # CTRIA6 nnodes_per_element = 1 elif self.element_type == 232: # CQUADR nnodes_per_element = 1 elif self.element_type == 233: # CTRIAR nnodes_per_element = 1 else: # pragma: no cover msg = 'element_name=%s element_type=%s' % (self.element_name, self.element_type) raise NotImplementedError(msg) self.nnodes = nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) if self.is_sort1: ntimes = self.ntimes ntotal = self.ntotal else: ntimes = self.ntotal ntotal = self.ntimes _times = zeros(ntimes, dtype=dtype) element_layer = zeros((ntotal, 2), dtype=idtype) #[o11, o22, t12, t1z, t2z, angle, major, minor, ovm] data = zeros((ntimes, ntotal, 9), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element_layer = group.create_dataset('element_layer', data=element_layer) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element_layer = element_layer self.data = data
def build(self): """sizes the vectorized attributes of the HyperelasticQuadArray""" #print("self.ielement = %s" % self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] #if self.element_type in [33, 74]: #nnodes_per_element = 1 #elif self.element_type == 144: #nnodes_per_element = 5 #elif self.element_type == 64: # CQUAD8 #nnodes_per_element = 5 #elif self.element_type == 82: # CQUADR #nnodes_per_element = 5 #elif self.element_type == 70: # CTRIAR #nnodes_per_element = 4 #elif self.element_type == 75: # CTRIA6 #nnodes_per_element = 4 #else: if self.element_type == 139: # QUAD4FD nnodes_per_element = 4 else: raise NotImplementedError('name=%r type=%s' % (self.element_name, self.element_type)) #print('nnodes_per_element[%s, %s] = %s' % (self.isubcase, self.element_type, nnodes_per_element)) #self.nnodes = nnodes_per_element #self.nelements //= nnodes_per_element self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = np.zeros(self.ntimes, dtype=dtype) self.element_node = np.zeros((self.ntotal, 2), dtype='int32') #self.Type[eid] = Type #self.oxx[dt] = {eid: [oxx]} #self.oyy[dt] = {eid: [oyy]} #self.txy[dt] = {eid: [txy]} #self.angle[dt] = {eid: [angle]} #self.majorP[dt] = {eid: [majorP]} #self.minorP[dt] = {eid: [minorP]} #[oxx, oyy, txy, angle, majorp, minorp] self.data = np.zeros((self.ntimes, self.ntotal, 6), dtype='float32')
def build(self): """sizes the vectorized attributes of the RealSolidArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) _times = zeros(self.ntimes, dtype=dtype) # TODO: could be more efficient by using nelements for cid element_node = zeros((self.ntotal, 2), dtype=idtype) element_cid = zeros((self.nelements, 2), dtype=idtype) #if self.element_name == 'CTETRA': #nnodes = 4 #elif self.element_name == 'CPENTA': #nnodes = 6 #elif self.element_name == 'CHEXA': #nnodes = 8 #self.element_node = zeros((self.ntotal, nnodes, 2), 'int32') #[oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, ovmShear] data = zeros((self.ntimes, self.ntotal, 10), fdtype) self.nnodes = element_node.shape[0] // self.nelements #self.data = zeros((self.ntimes, self.nelements, nnodes+1, 10), 'float32') if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element_node = group.create_dataset('element_node', data=element_node) self.element_cid = group.create_dataset('element_cid', data=element_cid) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element_node = element_node self.element_cid = element_cid self.data = data
def build(self): """sizes the vectorized attributes of the RealBarArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #if self.element_type == 34: #nnodes_per_element = 1 #else: #raise NotImplementedError(self.element_type) self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) if self.is_sort1: ntimes = self.ntimes ntotal = self.ntotal # nelements else: #print("***name=%s type=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, self.ntimes, self.nelements, self.ntotal)) ntotal = self.ntimes # nelements ntimes = self.ntotal #ss _times = zeros(ntimes, dtype=dtype) element = zeros(ntotal, dtype=idtype) #[s1a, s2a, s3a, s4a, axial, smaxa, smina, MS_tension, # s1b, s2b, s3b, s4b, sminb, sminb, MS_compression] data = zeros((ntimes, ntotal, 15), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element = group.create_dataset('element', data=element) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element = element self.data = data
def build(self): """sizes the vectorized attributes of the RealBushArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) if self.is_built: return assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal assert self.element_type == 102, self.element_type #nnodes_per_element = 1 self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) # [tx, ty, tz, rx, ry, rz] if self.is_sort1: ntimes = self.ntimes ntotal = self.ntotal else: ntimes = self.ntotal ntotal = self.ntimes #print('BUSH SORT2:', ntimes, ntotal) # buggy MSC 2005 (was this ever fixed?) # NX doesn't have this bug if self.table_name in ['OESRMS2', 'OESNO2', 'OSTRRMS2', 'OSTRNO2']: print('flipping the order...') ntimes, ntotal = ntotal, ntimes _times = zeros(ntimes, dtype=dtype) element = zeros(ntotal, dtype=idtype) data = zeros((ntimes, ntotal, 6), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element = group.create_dataset('element', data=element) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element = element self.data = data
def build(self): """sizes the vectorized attributes of the RealBeamArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] if self.element_type == 2: nnodes_per_element = 10 else: raise NotImplementedError(self.element_type) self.nnodes = nnodes_per_element self.nelements //= self.ntimes self.ntotal = self.nelements #* 2 # for A/B #self.nelements //= nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, #self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) _times = zeros(self.ntimes, dtype=dtype) element_node = zeros((self.ntotal, 2), dtype=idtype) # sxc, sxd, sxe, sxf # smax, smin, MSt, MSc xxb = zeros(self.ntotal, dtype=fdtype) data = zeros((self.ntimes, self.ntotal, 8), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element_node = group.create_dataset('element_node', data=element_node) self.xxb = group.create_dataset('xxb', data=xxb) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element_node = element_node self.xxb = xxb self.data = data
def build(self): """sizes the vectorized attributes of the RealBar10NodesArray""" #print("self.ielement =", self.ielement) #print('RealBar10NodesArray isubcase=%s ntimes=%s nelements=%s ntotal=%s' % ( # self.isubcase, self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] if self.element_type == 100: nnodes_per_element = 1 else: raise NotImplementedError(self.element_type) self.nnodes = nnodes_per_element self.nelements //= self.ntimes #self.ntotal = self.nelements #* 2 # for A/B #self.nelements //= nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) _times = zeros(self.ntimes, dtype=dtype) element = zeros(self.ntotal, dtype='int32') #[sd, sxc, sxd, sxe, sxf, axial, smax, smin, MS] data = zeros((self.ntimes, self.ntotal, 9), dtype='float32') if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element = group.create_dataset('element', data=element) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element = element self.data = data
def build(self): """sizes the vectorized attributes of the RealPlateArray""" #print("self.ielement = %s" % self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] nnodes_per_element = self.nnodes_per_element #print('nnodes_per_element[%s, %s] = %s' % ( #self.isubcase, self.element_type, nnodes_per_element)) self.nnodes = nnodes_per_element #self.nelements //= nnodes_per_element self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, #self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) _times = np.zeros(self.ntimes, dtype=dtype) element_node = np.zeros((self.ntotal, 2), dtype=idtype) #[fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm] data = np.zeros((self.ntimes, self.ntotal, 8), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element_node = group.create_dataset('element_node', data=element_node) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element_node = element_node self.data = data
def build(self): """sizes the vectorized attributes of the ComplexBendArray""" if not hasattr(self, 'subtitle'): self.subtitle = self.data_code['subtitle'] #print('ntimes=%s nelements=%s ntotal=%s subtitle=%s' % ( #self.ntimes, self.nelements, self.ntotal, self.subtitle)) nnodes = 1 #self.names = [] #self.nelements //= nnodes self.nelements //= self.ntimes #self.ntotal self.itime = 0 self.ielement = 0 self.itotal = 0 #print('ntotal=%s ntimes=%s nelements=%s' % (self.ntotal, self.ntimes, self.nelements)) self.ntotal = self.nelements * nnodes * 2 if self.is_sort1: ntimes = self.ntimes ntotal = self.ntotal else: #print("ntimes=%s nelements=%s ntotal=%s nnodes=%s" % (self.ntimes, self.nelements, self.ntotal, nnodes)) ntimes = self.ntotal ntotal = self.nelements // 2 #self.ntotal = ntotal #print("**BEND: ntimes=%s ntotal=%s" % (ntimes, ntotal)) #self.ntotal = nelements * nnodes * 2 dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = np.zeros(ntimes, dtype=dtype) #self.ntotal = self.nelements * nnodes self.element_node = np.zeros((ntotal, 2), dtype=idtype) # the number is messed up because of the offset for the element's properties if not self.nelements * nnodes * 2 == self.ntotal: msg = 'ntimes=%s nelements=%s nnodes=%s ne*nn=%s ntotal=%s' % ( self.ntimes, self.nelements, nnodes, self.nelements * nnodes, self.ntotal) raise RuntimeError(msg) # [angle, sc, sd, se, sf, omax, omin, mst, msc] self.data = np.zeros((ntimes, ntotal, 9), dtype=fdtype)
def build(self): """sizes the vectorized attributes of the RealSpringArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, unused_idtype, unused_fdtype = get_times_dtype( self.nonlinear_factor, self.size, self.analysis_fmt) self.build_data(self.ntimes, self.nelements, dtype)
def build(self): """sizes the vectorized attributes of the RealBarArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal # buggy MSC 2005 (was this ever fixed?) # NX doesn't have this bug #if self.table_name in ['OESRMS2', 'OESNO2', 'OSTRRMS2', 'OSTRNO2']: #self.ntotal = self.nelements #if self.element_type == 34: #nnodes_per_element = 1 #else: #raise NotImplementedError(self.element_type) self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) if self.is_sort1: ntimes = self.ntimes nelements = self.ntotal else: nelements = self.ntimes ntimes = self.ntotal #dtype = self._get_analysis_code_dtype() self._times = zeros(ntimes, dtype=dtype) self.element = zeros(nelements, dtype='int32') #[s1a, s2a, s3a, s4a, axial, # s1b, s2b, s3b, s4b] self.data = zeros((ntimes, nelements, 9), dtype='float32')
def build(self): """sizes the vectorized attributes of the RealSolidArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) if self.is_sort1: ntimes = self.ntimes nelements = self.nelements ntotal = self.ntotal else: nelements = self.ntimes ntimes = self.nelements ntotal = self.ntotal dtype = self._get_analysis_code_dtype() self._times = zeros(ntimes, dtype=dtype) # TODO: could be more efficient by using nelements for cid self.element_node = zeros((ntotal, 2), dtype='int32') self.element_cid = zeros((nelements, 2), dtype='int32') #if self.element_name == 'CTETRA': #nnodes = 4 #elif self.element_name == 'CPENTA': #nnodes = 6 #elif self.element_name == 'CHEXA': #nnodes = 8 #self.element_node = zeros((self.ntotal, nnodes, 2), 'int32') #[oxx, oyy, ozz, txy, tyz, txz] self.data = zeros((self.ntimes, self.ntotal, 6), 'float32') self.nnodes = self.element_node.shape[0] // self.nelements
def build(self): """sizes the vectorized attributes of the GridPointStressesArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) #print('self.IDs', self.data) self.itime = 0 self.ielement = 0 self.itotal = 0 assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal self.nelements //= self.ntimes dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self.node = np.zeros(self.ntotal, dtype=idtype) #oxx, oyy, txy, angle, major, minor, ovm self.data = np.zeros((self.ntimes, self.ntotal, 8), dtype=fdtype) self.location = np.empty(self.ntotal, dtype='U8') self._times = np.zeros(self.ntimes, dtype=dtype)
def build(self): """sizes the vectorized attributes of the RealRodArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("ntimes=%s nelements=%s ntotal=%s" % (self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) self.build_data(self.ntimes, self.nelements, dtype, idtype, fdtype)
def build(self): """sizes the vectorized attributes of the NonlinearGapStressArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #if self.element_type == None?: #nnodes_per_element = 1 #else: #raise NotImplementedError(self.element_type) self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, #self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) _times = zeros(self.ntimes, dtype=dtype) element = zeros(self.ntotal, dtype=idtype) # [comp_x, shear_y, shear_z, axial_u, shear_v, shear_w, slip_v, slip_w] data = zeros((self.ntimes, self.ntotal, 8), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element = group.create_dataset('element', data=element) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element = element self.data = data
def build(self): """sizes the vectorized attributes of the RealNonlinearBeamArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] if self.element_type == 94: nnodes_per_element = 10 else: raise NotImplementedError(self.element_type) self.nnodes = nnodes_per_element self.nelements //= self.ntimes self.ntotal = self.nelements #* 2 # for A/B #self.nelements //= nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 self.is_built = True #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, #self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) self._times = zeros(self.ntimes, dtype=dtype) self.element_node = zeros((self.ntotal, 3), dtype=idtype) #gridA, CA, long_CA, eqS_CA, tE_CA, eps_CA, ecs_CA, # DA, long_DA, eqS_DA, tE_DA, eps_DA, ecs_DA, # EA, long_EA, eqS_EA, tE_EA, eps_EA, ecs_EA, # FA, long_FA, eqS_FA, tE_FA, eps_FA, ecs_FA, #gridB, CB, long_CB, eqS_CB, tE_CB, eps_CB, ecs_CB, # DB, long_DB, eqS_DB, tE_DB, eps_DB, ecs_DB, # EB, long_EB, eqS_EB, tE_EB, eps_EB, ecs_EB, # FB, long_FB, eqS_FB, tE_FB, eps_FB, ecs_FB, #self.xxb = zeros(self.ntotal, dtype='float32') self.data = zeros((self.ntimes, self.ntotal, 5), dtype=fdtype)
def build(self): """sizes the vectorized attributes of the GridPointStressesArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) #print('self.IDs', self.data) self.itime = 0 self.ielement = 0 self.itotal = 0 assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal self.nelements //= self.ntimes dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self.node = np.zeros(self.ntotal, dtype=idtype) #lxa, lxb, lxc, lya, lyb, lyc, lza, lzb, lzc, sa, sb, sc, epr, ovm self.data = np.zeros((self.ntimes, self.ntotal, 14), dtype=fdtype) self.location = np.empty(self.ntotal, dtype='U8') self._times = np.zeros(self.ntimes, dtype=dtype)
def build(self): """sizes the vectorized attributes of the RealCPLSTRNPlateArray""" #print("self.ielement = %s" % self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] if self.element_type == 275: # CPLSTS3 nnodes_per_element = 1 elif self.element_type == 276: # CPLSTS4 nnodes_per_element = 5 #elif self.element_type == 64: # CQUAD8 #nnodes_per_element = 5 #elif self.element_type == 82: # CQUADR #nnodes_per_element = 5 #elif self.element_type == 70: # CTRIAR #nnodes_per_element = 4 #elif self.element_type == 75: # CTRIA6 #nnodes_per_element = 4 else: raise NotImplementedError('name=%r type=%s' % (self.element_name, self.element_type)) self.nnodes = nnodes_per_element #self.nelements //= nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = np.zeros(self.ntimes, dtype=dtype) self.element = np.zeros(self.ntotal, dtype='int32') #[fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm] self.data = np.zeros((self.ntimes, self.ntotal, 5), dtype='float32')
def build(self): """sizes the vectorized attributes of the RealBeamArray""" #print("self.ielement =", self.ielement) #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] if self.element_type == 2: nnodes_per_element = 10 else: raise NotImplementedError(self.element_type) self.nnodes = nnodes_per_element self.nelements //= self.ntimes self.ntotal = self.nelements #* 2 # for A/B #self.nelements //= nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 #self.ntimes = 0 #self.nelements = 0 #print("***name=%s type=%s nnodes_per_element=%s ntimes=%s nelements=%s ntotal=%s" % ( #self.element_name, self.element_type, nnodes_per_element, self.ntimes, #self.nelements, self.ntotal)) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) if self.is_sort1: ntimes = self.ntimes ntotal = self.ntotal else: ntimes = self.ntotal ntotal = self.ntimes self._times = zeros(ntimes, dtype=dtype) self.element_node = zeros((ntotal, 2), dtype='int32') # sxc, sxd, sxe, sxf self.xxb = zeros(ntotal, dtype='float32') self.data = zeros((ntimes, ntotal, 4), dtype='float32')
def build(self): """sizes the vectorized attributes of the GridPointStressesArray""" #print('ntimes=%s nelements=%s ntotal=%s' % (self.ntimes, self.nelements, self.ntotal)) #print('self.IDs', self.data) self.itime = 0 self.ielement = 0 self.itotal = 0 assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal #self.names = [] self.nelements //= self.ntimes self.node = np.zeros(self.ntotal, dtype='int32') #oxx, oyy, ozz, txy, pressure self.data = np.zeros((self.ntimes, self.ntotal, 5), dtype='float32') self.location = np.empty(self.ntotal, dtype='U8') dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = np.zeros(self.ntimes, dtype=dtype)
def build(self): """sizes the vectorized attributes of the RealCompositePlateArray""" assert self.ntimes > 0, 'ntimes=%s' % self.ntimes assert self.nelements > 0, 'nelements=%s' % self.nelements assert self.ntotal > 0, 'ntotal=%s' % self.ntotal if self.element_type == 95: # CQUAD4 nnodes_per_element = 1 elif self.element_type == 96: # CQUAD8 nnodes_per_element = 1 elif self.element_type == 97: # CTRIA3 nnodes_per_element = 1 elif self.element_type == 98: # CTRIA6 nnodes_per_element = 1 else: # pragma: no cover msg = 'element_name=%s element_type=%s' % (self.element_name, self.element_type) raise NotImplementedError(msg) self.nnodes = nnodes_per_element self.itime = 0 self.ielement = 0 self.itotal = 0 dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size, self.analysis_fmt) self._times = zeros(self.ntimes, dtype=dtype) self.element_layer = zeros((self.ntotal, 2), dtype='int32') # [oxx, oyy, txy] nresults = 5 if self.has_von_mises: # ovm nresults += 4 #[o11, o22, t12, t1z, t2z]; 5 #[o11, o22, t12, t1z, t2z, angle, major, minor, ovm]; 9 self.data = zeros((self.ntimes, self.ntotal, nresults), dtype='float32')
def build_data(self, ntimes, nelements, dtype): """actually performs the build step""" self.ntimes = ntimes self.nelements = nelements _times = zeros(ntimes, dtype=dtype) dtype, idtype, fdtype = get_times_dtype(self.nonlinear_factor, self.size) element = zeros(nelements, dtype=idtype) #[stress] data = zeros((ntimes, nelements, 1), dtype=fdtype) if self.load_as_h5: #for key, value in sorted(self.data_code.items()): #print(key, value) group = self._get_result_group() self._times = group.create_dataset('_times', data=_times) self.element = group.create_dataset('element', data=element) self.data = group.create_dataset('data', data=data) else: self._times = _times self.element = element self.data = data