コード例 #1
0
ファイル: test_assign_type.py プロジェクト: umvarma/pynastran
    def test_integer_double_or_string(self):
        # out of range
        with self.assertRaises(SyntaxError):
            integer_or_double(BDFCard([1.]  ), 1, 'field')

        # integer
        self.check_integer(integer_double_or_string)

        # float
        self.check_double(integer_double_or_string)

        # string
        self.assertEqual('LOAD', integer_double_or_string(BDFCard(['load']  ), 0, 'field'))
コード例 #2
0
    def test_integer_double_or_string(self):
        # out of range
        with self.assertRaises(SyntaxError):
            integer_or_double(BDFCard([1.0]), 1, "field")

        # integer
        self.check_integer(integer_double_or_string)

        # float
        self.check_double(integer_double_or_string)

        # string
        self.assertEqual("LOAD", integer_double_or_string(BDFCard(["load"]), 0, "field"))
コード例 #3
0
ファイル: params.py プロジェクト: EPeterE/von_mises_rms
    def __init__(self, card, data=None, comment=''):
        if comment:
            self._comment = comment
        if card:
            self.key = string(card, 1, 'key')
            n = 1
            if self.key == 'ACOUT':
                self.value = string_or_blank(card, 2, 'value', 'PEAK')
            elif self.key == 'ACOWEAK':
                self.value = string_or_blank(card, 2, 'value', 'NO')
            elif self.key == 'ACSYM':
                self.value = string_or_blank(card, 2, 'value', 'YES')
            elif self.key == 'ADJMETH':
                self.value = integer_or_blank(card, 2, 'value', 0)
            elif self.key == 'ADMPOST':
                self.value = string_or_blank(card, 2, 'value', 0)
            elif self.key == 'ADSTAT':
                self.value = string_or_blank(card, 2, 'value', 'YES')
            elif self.key in ['ALPHA1', 'ALPHA2']:
                self.value1 = double_or_blank(card, 2, 'value1', 0.0)
                self.value2 = double_or_blank(card, 2, 'value2', 0.0)
                n = 2
            elif self.key in ['ALPHA1FL', 'ALPHA2FL']:
                self.value1 = double_or_blank(card, 2, 'value1', 0.0)
                self.value2 = double_or_blank(card, 3, 'value2', 0.0)
                n = 2
            elif self.key in [
                    'CB1', 'CB2', 'CK1', 'CK2', 'CK3', 'CM1', 'CM2', 'CP1',
                    'CP2'
            ]:
                self.value1 = double_or_blank(card, 2, 'value1', 1.0)
                self.value2 = double_or_blank(card, 3, 'value2', 0.0)
                n = 2
            else:
                self.value = integer_double_or_string(card, 2, 'value')

            if hasattr(self, 'value1'):
                self.values = [self.value1, self.value2]
            else:
                self.values = [self.value]

            if n == 1:
                assert len(card) == 3, 'len(PARAM card)=%i card=%r' % (
                    len(card), card)
            else:
                assert len(card) == 4, 'len(PARAM card)=%i card=%r' % (
                    len(card), card)
        else:
            self.key = data[0]
            self.value = data[1]
コード例 #4
0
ファイル: params.py プロジェクト: anick107/von_mises_rms
    def __init__(self, card, data=None, comment=''):
        if comment:
            self._comment = comment
        if card:
            self.key = string(card, 1, 'key')
            n = 1
            if self.key == 'ACOUT':
                self.value = string_or_blank(card, 2, 'value', 'PEAK')
            elif self.key == 'ACOWEAK':
                self.value = string_or_blank(card, 2, 'value', 'NO')
            elif self.key == 'ACSYM':
                self.value = string_or_blank(card, 2, 'value', 'YES')
            elif self.key == 'ADJMETH':
                self.value = integer_or_blank(card, 2, 'value', 0)
            elif self.key == 'ADMPOST':
                self.value = string_or_blank(card, 2, 'value', 0)
            elif self.key == 'ADSTAT':
                self.value = string_or_blank(card, 2, 'value', 'YES')
            elif self.key in ['ALPHA1', 'ALPHA2']:
                self.value1 = double_or_blank(card, 2, 'value1', 0.0)
                self.value2 = double_or_blank(card, 2, 'value2', 0.0)
                n = 2
            elif self.key in ['ALPHA1FL', 'ALPHA2FL']:
                self.value1 = double_or_blank(card, 2, 'value1', 0.0)
                self.value2 = double_or_blank(card, 3, 'value2', 0.0)
                n = 2
            elif self.key in ['CB1', 'CB2', 'CK1', 'CK2', 'CK3', 'CM1', 'CM2', 'CP1', 'CP2']:
                self.value1 = double_or_blank(card, 2, 'value1', 1.0)
                self.value2 = double_or_blank(card, 3, 'value2', 0.0)
                n = 2
            else:
                self.value = integer_double_or_string(card, 2, 'value')

            if hasattr(self, 'value1'):
                self.values = [self.value1, self.value2]
            else:
                self.values = [self.value]

            if n == 1:
                assert len(card) == 3, 'len(PARAM card)=%i card=%r' % (len(card), card)
            else:
                assert len(card) == 4, 'len(PARAM card)=%i card=%r' % (len(card), card)
        else:
            self.key = data[0]
            self.value = data[1]
コード例 #5
0
ファイル: params.py プロジェクト: sukhbinder/cyNastran
    def __init__(self, card, data=None, comment=''):
        """
        Creates a PARAM card.

        :param self: the object
        :param card: BDFCard object
        :param data: list of PARAM entries not including 'PARAM';
                     intended to be used by OP2 Reader (default=None)
        :param comment: optional string (default='')
        """
        if comment:
            self._comment = comment
        if data:
            card = BDFCard(['PARAM'] + data)

        self.key = string(card, 1, 'key')
        n = 1
        value = None
        if self.key == 'ACOUT':
            value = string_or_blank(card, 2, 'value', 'PEAK')
        elif self.key == 'ACOWEAK':
            value = string_or_blank(card, 2, 'value', 'NO')
        elif self.key == 'ACSYM':
            value = string_or_blank(card, 2, 'value', 'YES')
        elif self.key == 'ADJMETH':
            value = integer_or_blank(card, 2, 'value', 0)
        elif self.key == 'ADPCON':
            value = float_or_blank(card, 2, 'value', 1.0)
        #elif self.key == 'ADMPOST':
            #value = string_or_blank(card, 2, 'value', 0) ## TODO: 0 is not a string
        elif self.key == 'ADSDISC':
            value = float_or_blank(card, 2, 'value', 1e-8)
        elif self.key == 'AESMAXIT':
            value = integer_or_blank(card, 2, 'value', 15)
        elif self.key == 'AESMETH':
            value = string_or_blank(card, 2, 'value', 'SELECT')
            assert value in ['SELECT', 'AUTO', 'DIRECT', 'RITZ', 'ITER'], 'value=%s' % value
        elif self.key == 'AESTOL':
            value = ifloat_or_blank(card, 2, 'value', 1e-10)
        elif self.key == 'ADSTAT':
            value = string_or_blank(card, 2, 'value', 'YES')
        elif self.key in ['ALPHA1', 'ALPHA2', 'ALPHA1FL', 'ALPHA2FL']:  # check alpha1/alpha1FL
            value1 = double_or_blank(card, 2, 'value1', 0.0)
            value2 = double_or_blank(card, 3, 'value2', 0.0)
            n = 2
        elif self.key in ['CB1', 'CB2', 'CK1', 'CK2', 'CK3', 'CM1', 'CM2', 'CP1', 'CP2']:
            value1 = double_or_blank(card, 2, 'value1', 1.0)
            value2 = double_or_blank(card, 3, 'value2', 0.0)
            n = 2
        elif self.key == 'POST':
            value = integer_or_blank(card, 2, 'value', 1)
        else:
            value = integer_double_or_string(card, 2, 'value')

        if value is None:
            self.values = [value1, value2]
        else:
            self.values = [value]

        if n == 1:
            if len(card) != 3:
                raise RuntimeError('len(PARAM card)=%i card=%r' % (len(card), card))
        else:
            if len(card) != 4:
                raise RuntimeError('len(PARAM card)=%i card=%r' % (len(card), card))
コード例 #6
0
ファイル: rigid.py プロジェクト: umvarma/pynastran
    def __init__(self, card=None, data=None, comment=''):
        RigidElement.__init__(self, card, data)
        if comment:
            self._comment = comment

        self.eid = integer(card, 1, 'eid')
        self.Gni = []
        self.Cni = []

        #fields = [interpret_value(field) for field in card[2:] ]
        iUm = card.index('UM')
        if iUm > 0:
            assert string(card, iUm, 'UM') == 'UM'

        #assert isinstance(card[-1], str), 'card[-1]=%r type=%s' %(card[-1], type(card[-1]))
        alpha_last = integer_double_or_string(card, -1, 'alpha_last')
        if isinstance(alpha_last, float):
            self.alpha = alpha_last
            card.pop(
            )  # remove the last field so len(card) will not include alpha
        else:
            self.alpha = 0.

        # loop till UM, no field9,field10
        #print("iUm = %s" % iUm)

        n = 1
        i = 0
        offset = 2
        while offset + i < iUm - 1:
            #print('field(%s) = %s' % (offset + i, card.field(offset + i)))
            gni = integer_or_blank(card, offset + i, 'gn%i' % n)
            cni = components_or_blank(card, offset + i + 1, 'cn%i' % n)

            if gni:
                #print("gni=%s cni=%s" % (gni ,cni))
                self.Gni.append(gni)
                self.Cni.append(cni)
                n += 1
            else:
                assert cni is None
            i += 2

        #print('Gni =', self.Gni)
        #print('Cni =', self.Cni)
        self.Gmi = []
        self.Cmi = []

        # loop till alpha, no field9,field10
        n = 1
        offset = iUm + 1
        i = 0
        while offset + i < len(card):  # dont grab alpha
            gmi = integer_or_blank(card, offset + i, 'gm%i' % n)
            cmi = components_or_blank(card, offset + i + 1, 'cm%i' % n)
            if gmi:
                #print("gmi=%s cmi=%s" % (gmi ,cmi))
                self.Gmi.append(gmi)
                self.Cmi.append(cmi)
                n += 1
            else:
                assert cmi is None
            i += 2
コード例 #7
0
ファイル: rigid.py プロジェクト: umvarma/pynastran
    def __init__(self, card=None, data=None, comment=''):
        RigidElement.__init__(self, card, data)
        if comment:
            self._comment = comment

        self.eid = integer(card, 1, 'eid')
        self.Gni = []
        self.Cni = []

        #fields = [interpret_value(field) for field in card[2:] ]
        iUm = card.index('UM')
        if iUm > 0:
            assert string(card, iUm, 'UM') == 'UM'

        #assert isinstance(card[-1], str), 'card[-1]=%r type=%s' %(card[-1], type(card[-1]))
        alpha_last = integer_double_or_string(card, -1, 'alpha_last')
        if isinstance(alpha_last, float):
            self.alpha = alpha_last
            card.pop()  # remove the last field so len(card) will not include alpha
        else:
            self.alpha = 0.

        # loop till UM, no field9,field10
        #print("iUm = %s" % iUm)

        n = 1
        i = 0
        offset = 2
        while offset + i < iUm - 1:
            #print('field(%s) = %s' % (offset + i, card.field(offset + i)))
            gni = integer_or_blank(card, offset + i, 'gn%i' % n)
            cni = components_or_blank(card, offset + i + 1, 'cn%i' % n)

            if gni:
                #print("gni=%s cni=%s" % (gni ,cni))
                self.Gni.append(gni)
                self.Cni.append(cni)
                n += 1
            else:
                assert cni is None
            i += 2

        #print('Gni =', self.Gni)
        #print('Cni =', self.Cni)
        self.Gmi = []
        self.Cmi = []

        # loop till alpha, no field9,field10
        n = 1
        offset = iUm + 1
        i = 0
        while offset + i < len(card):  # dont grab alpha
            gmi = integer_or_blank(card, offset + i, 'gm%i' % n)
            cmi = components_or_blank(card, offset + i + 1, 'cm%i' % n)
            if gmi:
                #print("gmi=%s cmi=%s" % (gmi ,cmi))
                self.Gmi.append(gmi)
                self.Cmi.append(cmi)
                n += 1
            else:
                assert cmi is None
            i += 2
コード例 #8
0
ファイル: params.py プロジェクト: afcarl/cyNastran
    def __init__(self, card, data=None, comment=''):
        """
        Creates a PARAM card.

        :param self: the object
        :param card: BDFCard object
        :param data: list of PARAM entries not including 'PARAM';
                     intended to be used by OP2 Reader (default=None)
        :param comment: optional string (default='')
        """
        if comment:
            self._comment = comment
        if data:
            card = BDFCard(['PARAM'] + data)

        self.key = string(card, 1, 'key')
        n = 1
        value = None
        if self.key == 'ACOUT':
            value = string_or_blank(card, 2, 'value', 'PEAK')
        elif self.key == 'ACOWEAK':
            value = string_or_blank(card, 2, 'value', 'NO')
        elif self.key == 'ACSYM':
            value = string_or_blank(card, 2, 'value', 'YES')
        elif self.key == 'ADJMETH':
            value = integer_or_blank(card, 2, 'value', 0)
        elif self.key == 'ADPCON':
            value = float_or_blank(card, 2, 'value', 1.0)
        #elif self.key == 'ADMPOST':
        #value = string_or_blank(card, 2, 'value', 0) ## TODO: 0 is not a string
        elif self.key == 'ADSDISC':
            value = float_or_blank(card, 2, 'value', 1e-8)
        elif self.key == 'AESMAXIT':
            value = integer_or_blank(card, 2, 'value', 15)
        elif self.key == 'AESMETH':
            value = string_or_blank(card, 2, 'value', 'SELECT')
            assert value in ['SELECT', 'AUTO', 'DIRECT', 'RITZ',
                             'ITER'], 'value=%s' % value
        elif self.key == 'AESTOL':
            value = ifloat_or_blank(card, 2, 'value', 1e-10)
        elif self.key == 'ADSTAT':
            value = string_or_blank(card, 2, 'value', 'YES')
        elif self.key in ['ALPHA1', 'ALPHA2', 'ALPHA1FL',
                          'ALPHA2FL']:  # check alpha1/alpha1FL
            value1 = double_or_blank(card, 2, 'value1', 0.0)
            value2 = double_or_blank(card, 3, 'value2', 0.0)
            n = 2
        elif self.key in [
                'CB1', 'CB2', 'CK1', 'CK2', 'CK3', 'CM1', 'CM2', 'CP1', 'CP2'
        ]:
            value1 = double_or_blank(card, 2, 'value1', 1.0)
            value2 = double_or_blank(card, 3, 'value2', 0.0)
            n = 2
        elif self.key == 'POST':
            value = integer_or_blank(card, 2, 'value', 1)
        else:
            value = integer_double_or_string(card, 2, 'value')

        if value is None:
            self.values = [value1, value2]
        else:
            self.values = [value]

        if n == 1:
            if len(card) != 3:
                raise RuntimeError('len(PARAM card)=%i card=%r' %
                                   (len(card), card))
        else:
            if len(card) != 4:
                raise RuntimeError('len(PARAM card)=%i card=%r' %
                                   (len(card), card))