Exemple #1
0
    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')
Exemple #2
0
    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)
Exemple #3
0
    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
Exemple #4
0
    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)
Exemple #5
0
    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')
Exemple #6
0
    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')
Exemple #7
0
    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
Exemple #8
0
    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
Exemple #9
0
    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
Exemple #10
0
    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')
Exemple #11
0
    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
Exemple #12
0
    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
Exemple #13
0
    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
Exemple #15
0
    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
Exemple #16
0
    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
Exemple #17
0
    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)
Exemple #18
0
    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)
Exemple #19
0
    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')
Exemple #20
0
    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)
Exemple #22
0
    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)
Exemple #23
0
    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')
Exemple #27
0
    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)
Exemple #29
0
    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')
Exemple #30
0
    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