|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
22.09.2016, 15:02 | #1 | |
Почему не работает внутреннее условие? ansys
Пермь
Регистрация: 20.09.2016
Сообщений: 8
|
||
Просмотров: 2000
|
|
||||
Регистрация: 20.09.2016
Пермь
Сообщений: 8
|
Да, именно так. Получается, что у меня выполняется внешний цикл 35, в соответствии с условием *do, хотя он должен в середине цикла прерываться, я это точно знаю. Так выглядит мой полный цикл.
*do,m,1,35 /solu ESEL,ALL Finish /POST1 ESORT,ETAB,SEQV,1,0, , *GET,SORTMAX,SORT,,MAX *IF,SORTMAX,GE,PRED,THEN ! Условие 1 *IF,h,LT,0.5E-5,THEN /POST1 *GET,SORTM,SORT,,IMAX esel,s,,,SORTM,,,0 /solu EKILL,ALL ! Убить элемент ESEL,ALL ! Выделить все элементы /STATUS,SOLU SOLVE ! Решить FINISH /POST1 ETABLE, REFL ! Обновить базу *ELSEIF,h,EQ,0.5e-5,stop *ENDIF *ELSEIF,SORTMAX,lt,PRED! Условие 2 /solu ESEL,ALL ! Выделить все элементы h=h+0.005E-5 DL,3, ,UY,h /STATUS,SOLU SOLVE ! Решить FINISH /POST1 ETABLE, REFL ! Обновить базу FINISH *ENDIF *enddo |
|||
|
||||
Dr Регистрация: 16.10.2011
Днепропетровск
Сообщений: 1,020
|
Превратите h в массив *dim
И пишите значение в каждом цикле,на основе увиденного, делайте вывод. Тяжело что-то сказать, так как у вас по коду h меняется внутри условия, то я не уверен что вы его меняете вообще, Посчитали-треснуло-убили-h не изменилось, также не уверен что вы продолжаете расчёт таким образом, а не делаете на каждом шаге новый. |
|||
|
||||
Регистрация: 20.09.2016
Пермь
Сообщений: 8
|
немного не понимаю, зачем мне h превращать в массив? объясните поподробней.
h в моей задаче-это приложенное перемещение, которое изменяется при невыполнении условия if. И, прежде чем его приложить, я выделяю все элементы, те я прикладываю его ко всей конструкции, и, соответственно, я продолжаю расчет уже при большем перемещении. Вроде как, все логично. |
|||
|
||||
Dr Регистрация: 16.10.2011
Днепропетровск
Сообщений: 1,020
|
Превратив в массив увидите как h меняется с каждой итерацией, ваш код по моему проскакивал этап наращивания h.
Могу и ошибаться, но по моему без доп команд, каждый раз вызывая solve вы запускаете новый расчёт из нас состояния без напряжений и деформаций. Если я правильно понял ваш алгоритм, то на каждом шаге вы проверяете элементы на разрушение, затем убиваете те что разрушились, затем продолжаете нагружать. Без продолжения расстегну с предыдущего места можно получить деформации конструкции в предположении что она была разрушена с самого начала нагруженная. |
|||
|
||||
Регистрация: 20.09.2016
Пермь
Сообщений: 8
|
Я изменила условия и у меня все заработало. Получилось так.
*IF,SORTMAX,GE,PRED,AND,h,LT,0.5E-5,THEN тело цикла *ELSEIF,h,EQ,0.5E-5,stop *ELSEIF,SORTMAX,lt,PRED тело цикла 2 *ENDIF Сейчас этап наращивания перемещения не пропускается и за ним я буду следить через график сила-перемещение, который в дальнейшем построю, хотя, пока еще не придумала как. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите почему не работает генерация ферм | C@DbIK | Лира / Лира-САПР | 3 | 23.05.2013 14:20 |
Не могу понять, почему программа не работает? Помогите плз. | dimon_hub | Программирование | 5 | 05.05.2013 02:25 |
Почему не работает entdel | hydushko | Программирование | 1 | 18.04.2013 07:52 |
почему не работает lisp | Jonas | LISP | 11 | 25.01.2012 18:41 |