def test_case_control_03(self): lines = [ 'SUBCASE 1', ' ACCELERATION(PLOT,PRINT,PHASE) = ALL', ' DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', ' DLOAD = 32', ' M2GG = 111', ' SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79, ' '100 THRU 300', ' SET 99 = 1 THRU 10', ' SET 105 = 1.009, 10.2, 13.4, 14.0, 15.0', ' SET 111 = MAAX1,MAAX2', ' SET 1001 = 101/T1, 501/T3, 991/R3', ' SET = ALL', ' SPC = 42', ' TSTEPNL = 22', ' VELOCITY(PLOT,PRINT,PHASE) = ALL', 'BEGIN BULK', ] deck = CaseControlDeck(lines) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase(2, 'SET 2 = 11,12,13,14,15,16,17,18,' '19,20,21,22,23,24,25,26,' '1000000000000000000000000000000000000000000000000000000,33') deck_msg = '%s' % deck #print('%r' % deck_lines) deck_lines = deck_msg.split('\n') lines_expected = [ 'SUBCASE 1', ' SET = ALL', ' SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79,', ' 100 THRU 300', ' SET 99 = 1 THRU 10', ' SET 105 = 1.009, 10.2, 13.4, 14.0, 15.0', ' SET 111 = MAAX1, MAAX2', ' SET 1001 = 101/T1, 501/T3, 991/R3', ' ACCELERATION(PLOT,PRINT,PHASE) = ALL', ' DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', ' DLOAD = 32', ' M2GG = 111', ' SPC = 42', ' TSTEPNL = 22', ' VELOCITY(PLOT,PRINT,PHASE) = ALL', 'SUBCASE 2', ' SET 2 = 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,', ' 25, 26,', ' 1000000000000000000000000000000000000000000000000000000,', ' 33', ] for line, line_expected in zip(deck_lines, lines_expected): line = line.rstrip() msg = 'The lines are not the same...\n' msg += 'line = %r\n' % line msg += 'expected = %r' % line_expected msg += '-------------\n--Actual--\n%s' % deck_msg msg += '-------------\n--Expected--\n%s' % '\n'.join(lines_expected) self.assertEqual(line, line_expected, msg)
def test_case_control_05(self): lines = [ 'SUBCASE 1', ' ACCELERATION(PLOT,PRINT,PHASE) = ALL', ' DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', ' DLOAD = 32', ' M2GG = 111', ' SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79, ' '100 THRU 300', ' SET 99 = 1 THRU 10', ' SET 105 = 1.009, 10.2, 13.4, 14.0, 15.0', ' SET 111 = MAAX1,MAAX2', ' SET 1001 = 101/T1, 501/T3, 991/R3', #' SET = ALL', ' SET 20 = ALL', ' SPC = 42', ' TSTEPNL = 22', ' VELOCITY(PLOT,PRINT,PHASE) = ALL', 'BEGIN BULK', ] deck = CaseControlDeck(lines) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase(2, 'SET 2 = 11,12,13,14,15,16,17,18,' '19,20,21,22,23,24,25,26,' '1000000000000000000000000000000000000000000000000000000,33') deck_msg = '%s' % deck #print('%r' % deck_lines) deck_lines = deck_msg.split('\n') lines_expected = [ 'SUBCASE 1', #' SET = ALL', ' SET 20 = ALL', ' SET 88 = 77, 78, 79, 5 THRU 14, 17 THRU 55, 100 THRU 300', ' SET 99 = 1 THRU 10', ' SET 105 = 1.009, 10.2, 13.4, 14.0, 15.0', ' SET 111 = MAAX1, MAAX2', ' SET 1001 = 101/T1, 501/T3, 991/R3', ' ACCELERATION(PLOT,PRINT,PHASE) = ALL', ' DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', ' DLOAD = 32', ' M2GG = 111', ' SPC = 42', ' TSTEPNL = 22', ' VELOCITY(PLOT,PRINT,PHASE) = ALL', 'SUBCASE 2', ' SET 2 = 33,', ' 1000000000000000000000000000000000000000000000000000000,', ' 11 THRU 26', ] compare_lines(self, deck_lines, lines_expected, has_endline=False)
def test_case_control_05(self): lines = [ 'TITLE= VIBRATION OF A BEAM.', 'dsaprt=(end=sens)', 'ECHO = UNSORT', 'OLOAD = ALL', 'DISP = ALL', 'DESSUB = 2', 'METHOD = 1', 'ANALYSIS = MODES', 'DESOBJ = 1', 'SUBCASE 1', 'DESSUB = 1', ' SUPER 1', 'SUBCASE 2', 'BEGIN BULK', ] lines_expected = [ 'ANALYSIS = MODES', 'DESOBJ = 1', 'DESSUB = 2', 'DISPLACEMENT = ALL', 'ECHO = UNSORT', 'METHOD = 1', 'OLOAD = ALL', 'TITLE = VIBRATION OF A BEAM.', 'dsaprt=(end=sens)', 'SUBCASE 1', ' SUPER 1', ' DESSUB = 1', 'SUBCASE 2', ' ANALYSIS = MODES', ' DESOBJ = 1', ' DESSUB = 2', ' DISPLACEMENT = ALL', ' ECHO = UNSORT', ' METHOD = 1', ' OLOAD = ALL', ' TITLE = VIBRATION OF A BEAM.', ' dsaprt=(end=sens)', 'BEGIN BULK', ] deck = CaseControlDeck(lines) deck_msg = '%s' % deck #print('%s' % deck_msg) deck_lines = deck_msg.split('\n') #print "--------" #print deck_msg for line, line_expected in zip(deck_lines, lines_expected): line = line.rstrip() msg = 'The lines are not the same...\n' msg += 'line = %r\n' % line msg += 'expected = %r\n' % line_expected msg += '-------------\n--Actual--\n%s' % deck_msg msg += '-------------\n--Expected--\n%s' % '\n'.join( lines_expected) self.assertEqual(line, line_expected, msg)
def test_case_control_04(self): seti = 'SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79, 100 THRU 300' lines = [] deck = CaseControlDeck(lines) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase(2, seti) values, options = deck.get_subcase_parameter(2, 'SET 88') check = [ (7, True), (13, True), (15, False), (16, False), (55, True), (77, True), (99, False), (150, True), ] for value, exists in check: if exists: assert value in values, 'value=%s should be in values=%s' % (value, values) else: assert value not in values, 'value=%s should NOT be in values=%s' % (value, values) msg = write_set(values, options) singles, doubles = collapse_thru_packs(values) assert singles == [77, 78, 79], singles assert doubles == [[5, 'THRU', 14], [17, 'THRU', 55], [100, 'THRU', 300]], doubles
def test_case_control_03(self): lines = [ 'SUBCASE 1', ' ACCELERATION(PLOT,PRINT,PHASE) = ALL', ' DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', ' DLOAD = 32', ' M2GG = 111', ' SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79, ' '100 THRU 300', ' SET 99 = 1 THRU 10', ' SET 105 = 1.009, 10.2, 13.4, 14.0, 15.0', ' SET 111 = MAAX1,MAAX2', ' SET 1001 = 101/T1, 501/T3, 991/R3', ' SET = ALL', ' SPC = 42', ' TSTEPNL = 22', ' VELOCITY(PLOT,PRINT,PHASE) = ALL', 'BEGIN BULK', ] deck = CaseControlDeck(lines) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase( 2, 'SET 2 = 11,12,13,14,15,16,17,18,' '19,20,21,22,23,24,25,26,' '1000000000000000000000000000000000000000000000000000000,33') deck_msg = '%s' % deck #print('%r' % deck_lines) deck_lines = deck_msg.split('\n') lines_expected = [ 'SUBCASE 1', ' SET = ALL', ' SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79,', ' 100 THRU 300', ' SET 99 = 1 THRU 10', ' SET 105 = 1.009, 10.2, 13.4, 14.0, 15.0', ' SET 111 = MAAX1, MAAX2', ' SET 1001 = 101/T1, 501/T3, 991/R3', ' ACCELERATION(PLOT,PRINT,PHASE) = ALL', ' DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', ' DLOAD = 32', ' M2GG = 111', ' SPC = 42', ' TSTEPNL = 22', ' VELOCITY(PLOT,PRINT,PHASE) = ALL', 'SUBCASE 2', ' SET 2 = 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,', ' 25, 26,', ' 1000000000000000000000000000000000000000000000000000000,', ' 33', ] for line, line_expected in zip(deck_lines, lines_expected): line = line.rstrip() msg = 'The lines are not the same...\n' msg += 'line = %r\n' % line msg += 'expected = %r' % line_expected msg += '-------------\n--Actual--\n%s' % deck_msg msg += '-------------\n--Expected--\n%s' % '\n'.join( lines_expected) self.assertEqual(line, line_expected, msg)
def test_case_control_04(self): lines_expected = [ 'ACCELERATION(PLOT,PRINT,PHASE) = ALL', 'DISPLACEMENT(PLOT,PRINT,PHASE) = ALL', 'BEGIN BULK', ] deck = CaseControlDeck(lines_expected) deck_msg = '%s' % deck deck_lines = deck_msg.split('\n') for line, line_expected in zip(deck_lines, lines_expected): line = line.rstrip() msg = 'The lines are not the same...\n' msg += 'line = %r\n' % line msg += 'expected = %r' % line_expected self.assertEqual(line, line_expected, msg)
def test_case_control_01(self): lines = ['SPC=2', 'MPC =3', 'STRESS= ALL', 'DISPLACEMENT(PLOT,PUNCH) = 8', ] deck = CaseControlDeck(lines) deck.write_begin_bulk = False self.assertTrue(deck.has_parameter(0, 'SPC')) self.assertTrue(deck.has_parameter(0, 'sPC')) self.assertFalse(deck.has_parameter(0, 'JUNK')) #print("get_subcase_parameter(MPC) 3 = ", deck.get_subcase_parameter(0, 'MPC')) deck.add_parameter_to_global_subcase('GPFORCE = 7') deck.create_new_subcase(1) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase(1, 'STRAIN = 7') out = deck.get_subcase_parameter(0, 'GPFORCE') deck.add_parameter_to_local_subcase(1, 'ANALYSIS = SAERO') deck.add_parameter_to_local_subcase(2, 'ANALYSIS = STATIC') out = deck.get_subcase_parameter(2, 'ANALYSIS') deck.add_parameter_to_local_subcase(1, 'SET 1 = 100') deck.add_parameter_to_local_subcase(1, 'SET 2 = 200') lines_expected = [ 'DISPLACEMENT(PLOT,PUNCH) = 8', 'GPFORCE = 7', 'MPC = 3', 'SPC = 2', 'STRESS = ALL', 'SUBCASE 1', ' SET 1 = 100', ' SET 2 = 200', ' ANALYSIS = SAERO', ' STRAIN = 7', 'SUBCASE 2', ' ANALYSIS = STATIC',] deck_string = '%s' % deck deck_lines = deck_string.strip().splitlines() msg = '\n' + '\n'.join(deck_lines) self.assertEqual(lines_expected, deck_lines, msg=msg) compare_lines(self, deck_lines, lines_expected, has_endline=False)
def test_case_control_01(self): lines = ['SPC=2', 'MPC =3', 'STRESS= ALL', 'DISPLACEMENT(PLOT,PUNCH) = 8', ] deck = CaseControlDeck(lines) deck.write_begin_bulk = False self.assertTrue(deck.has_parameter(0, 'SPC')) self.assertTrue(deck.has_parameter(0, 'sPC')) self.assertFalse(deck.has_parameter(0, 'JUNK')) #print("get_subcase_parameter(MPC) 3 = ", deck.get_subcase_parameter( # 0, 'MPC')) deck.add_parameter_to_global_subcase('GPFORCE = 7') deck.create_new_subcase(1) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase(1, 'STRAIN = 7') out = deck.get_subcase_parameter(0, 'GPFORCE') deck.add_parameter_to_local_subcase(1, 'ANALYSIS = SAERO') deck.add_parameter_to_local_subcase(2, 'ANALYSIS = STATIC') out = deck.get_subcase_parameter(2, 'ANALYSIS') deck.add_parameter_to_local_subcase(1, 'SET 1 = 100') deck.add_parameter_to_local_subcase(1, 'SET 2 = 200') lines = ['DISPLACEMENT(PLOT,PUNCH) = 8', 'GPFORCE = 7', 'MPC = 3', 'SPC = 2', 'STRESS = ALL', 'SUBCASE 1', ' SET 1 = 100', ' SET 2 = 200', ' ANALYSIS = SAERO', ' STRAIN = 7', 'SUBCASE 2', ' ANALYSIS = STATIC',] deck_string = '%s' % deck deck_lines = deck_string.strip().splitlines() self.assertEqual(lines, deck_lines)
def test_case_control_01(self): lines = ['SPC=2', 'MPC =3', 'STRESS= ALL', 'DISPLACEMENT(PLOT,PUNCH) = 8', ] deck = CaseControlDeck(lines) self.assertTrue(deck.has_parameter(0, 'SPC')) self.assertTrue(deck.has_parameter(0, 'sPC')) self.assertFalse(deck.has_parameter(0, 'JUNK')) #print("get_subcase_parameter(MPC) 3 = ", deck.get_subcase_parameter( # 0, 'MPC')) deck.add_parameter_to_global_subcase('GPFORCE = 7') deck.create_new_subcase(1) deck.create_new_subcase(2) deck.add_parameter_to_local_subcase(1, 'STRAIN = 7') out = deck.get_subcase_parameter(0, 'GPFORCE') deck.add_parameter_to_local_subcase(1, 'ANALYSIS = SAERO') deck.add_parameter_to_local_subcase(2, 'ANALYSIS = STATIC') out = deck.get_subcase_parameter(2, 'ANALYSIS') deck.add_parameter_to_local_subcase(1, 'SET 1 = 100') deck.add_parameter_to_local_subcase(1, 'SET 2 = 200') lines = ['DISPLACEMENT(PLOT,PUNCH) = 8', 'GPFORCE = 7', 'MPC = 3', 'SPC = 2', 'STRESS = ALL', 'SUBCASE 1', ' ANALYSIS = SAERO', ' STRAIN = 7', ' SET 1 = 100', ' SET 2 = 200', 'SUBCASE 2', ' ANALYSIS = STATIC',] deck_string = '%s' %(deck) deck_lines = deck_string.strip().splitlines() self.assertEqual(lines, deck_lines)