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'))
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"))
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]
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]
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))
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
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
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))