Перейти к публикации

Ошибка BAD_VIEW_FACTOR... при расчете в NX SST


tuly666

Рекомендованные сообщения

Доброго времени суток, уважаемые форумчане!) 

При тепловом расчете 2D-сетки после расчета излучения (Radiation) на этапе расчета суммы угловых коэффициентов для элементов (должны быть примерно равны единице) возникает ошибка BAD_VIEW_FACTOR... с последующей критической ошибкой (Fatal Error) e06d7363.

post-44861-0-33074900-1444818737_thumb.jpg

 

Программа выдает список конфликтных элементов, однако неясно, что с ними делать: все они "разбросаны" по всей сборке, у всех нормали элементов сонаправлены с находящимися рядом корректными элементами, отсутствуют острые углы и тп:

post-44861-0-75802900-1444818954_thumb.jpgpost-44861-0-14976600-1444818975_thumb.jpg

 

Не могли бы Вы пожалуйста подсказать, с чем может быть связана данная ошибка?

Может быть она связана с недостаточным количеством "выпускаемых" методом Монте-Карло лучей? (использовал 2000 лучей на элемент). 

 

В сборке присутствуют нулевые оболочки, имитирующие теплоизоляцию, почему-то элементов с ошибками в них на порядок больше...

В коллекторе сеток данных групп элементов учитывается проводимость между верхним и нижним слоем, задан коэффициент теплопередачи, также учитывается излучение для верхнего и нижнего слоев теплоизоляции. Ошибок при проверке и запуске нет, нормали "перебивал" вручную, ориентируя нормали связанных элементов в соответствии с заданным элементом-образцом, так как NX изначально сам неправильно строил нормали этих элементов и выдавал предупреждение по этому поводу при начале расчета.

Ссылка на сообщение
Поделиться на других сайтах


Насколько я понял, к вышеописанной ошибке ведет неправильный расчет угловых коэффициентов элементов (у меня по ряду групп минимум ~0.94, а максимум- 6!). Что влияет на ошибку при расчете угловых коэффициентов элементов сетки?

Ссылка на сообщение
Поделиться на других сайтах

Влияет многое. В том числе ГУ и параметры расчета.

А какой источник излучения?

Модельку бы, ато так тяжело разобраться.

Вообще то, что только часть элементов на поверхности в списке "некорректного коэффициента вида" не означает, что остальные рассчитаны правильно. Возможно просто они не вышли за критерий.

С другой стороны сам коэффициент вида не является непосредственной причиной "развала расчета". Недаром он в списке Warning-ов, а не Error-ов. Непосредственной причиной может быть дисбаланс энергии, спровоцированный некорректными результатами расчетов коэффициентов вида и т.п.

А это уже нужно разыскивать в полном логе.

Да. Малое количество лучей в методе Монте-Карло может приводить к некорректному расчету коэффициентов вида. Но увеличение количества лучей приводит к большим накладным расходам при расчете, поэтому прежде чем увеличивать эту величину желательно найти и устранить другие возможные причины. Попробуйте также другие методы расчетов коэффициентов вида, например Hemicube. Монте-Карло вообще затратный и капризный метод.

Изменено пользователем 0Q0
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

0Q0, в очередной раз благодарю Вас за оперативный ответ!) Сам, к сожалению, не смог так же быстро отписаться в данной теме)

Моделируется орбитальный нагрев тела, источником излучения является Солнце, собственный ИК-поток от Земли, и также отраженный от Земли поток солнечного излучения) В параметрах sim-файла выбрано "All Radiation" = Излучают все элементы) Модель, к сожалению, не могу прикрепить- уж очень большая сборка вышла)

 

Действительно,  малое количество лучей в методе Монте-Карло приводило к некорректному расчету коэффициентов вида, проблема была решена выбором Детерминического(?) метода расчета лучей с критерием ошибки 0.05, что безусловно примело к увеличению объема используемой в расчете оперативной памяти до ~25 ГБ на мои ~30000 элементов)

 

Фундаментальной ошибкой, из-за которой разваливался расчет, было отсутствие ряда тепловых связей (пропустил их случайно), что приводило к перегреву ряда элементов и ошибке при расчете. Исправил.

 

Однако далее в процессе расчета возник ряд проблем, которые я не могу исправить самостоятельно, поэтому прошу Вашей помощи:

1) Имеется две рабочие машины одинаковой конфигурации оборудования, установленных драйверов, ОС (Win 7) и версии Siemens NX 10, за тем исключением, что на одной стоит обновление Siemens NX 8.0-10.0 TMG Thermal/Flow Simulation Win (July 2015 update only), а на другой за Август. И на "июльской" расчет идет, а на августовской останавливается (и не идет дальше, висит на одном месте) после расчета угловых коэффициентов с сообщением:

**  WARNING **
     **  Electrical elements are present without proper electrical boundary
     **  conditions. No electrical power dissipation is computed.
 
Отдельно отмечу, что на машине с обновлением за июль это предупреждение также возникает, но выводится 30 раз (по числу используемых в расчете ядер), и дальше расчет продолжается. В модели нет электрических элементов, есть 2D-сетка и 0D-узлы, из нагрузок- только статические тепловые нагрузки и "управляемые нагреватели". В некоторых используемых материалах был параметр "электрическое сопротивление" (по умолчанию записан в библиотеке материалов NX), везде такие материалы скопировал, заменив на аналогичные, но удалив вызывающий вопросы параметр электрического сопротивления- не помогло. Возникала ли у Вас такая ошибка? Как Вы ее решали?
 
Далее речь пойдет только о рабочей машине где идет расчет, т.е. компьютер с обновлением TMG от Июля.
 
2) Тепловые связи 0D-узлов
 
Почему-то при расчете тепловых связей элеметов для 0D - улов берется нулевая площадь, хотя в коллекторе сеток 0D узлов я задавал не только массу интересующей точки, но также и ее диаметр, соответственно он подбирался таким образом, чтобы площадь получившейся гипотетической сферы совпадала с площадью объекта, заменяемого 0D-узлом. Однако в логе пишется вот что:
 
9 - *удалено имя*                       1.000E+02 W/m^2-C     (обычная связь 2D-элементов)    
       Type: Contact,Heat Transfer Coefficient                              
       Primary Area:    1.737E-02 m^2                                       
       Secondary Area:  8.197E-03 m^2    
 
 43 - *удалено имя*                             9.000E+02 W/m^2-C        (связь 2D-элементов с 0D- узлом)
       Type: Contact,Heat Transfer Coefficient                              
       Primary Area:    7.771E-02 m^2                                       
       Secondary Area:  0.000E+00 m^2   

 

Может ли это быть причиной развала расчета? Ошибок и предупреждений именно по этой причине программой не выдается.

 

3) NX генерирует искривленные элементы

 

В процессе работы в сетке возникали искривленные элементы, позже при запуске расчета они были отмечены предупреждением, список подобных элементов был внесен в файл "groups.unv", в общем проблема была быстро исправлена) Однако при расчете NX самостоятельно генерирует новые элементы, разбивая старые (по схеме, изложенной в хелпере),  и строит их искривленными:

 

Calculating geometrical parameters...
 
     **  WARNING **
     **  The following        82 elements are warped:
     **       60126     60126     60138     60138     60145     60145     60181     
60181
     **  A complete element list appears in file groups.unv with group:
     **  WARPED_ELEMENTS_001349
 
 
   ...done.
 
Т.к. общее число узлов в модели составляет 27000, а элементов ~29000, можно однозначно судить о том, что это именно те элементы, что строил сам NX. Сталкивался ли кто-нибудь с подобной проблемой?
 
4) Ошибка в решателе сопряженных градиентов.
 
Собственно говоря, это именно та проблема, после которой идет fatal error, и расчет прекращается. Возникает она в нестационарном расчете, причем каждый раз в разное время.  Были выбраны следующие настройки решателя:
post-44861-0-55407800-1445858019_thumb.jpg
 
Т.е. уже было скорректирован релаксационный коэффициент (для лучшей сходимости), критерий сходимости в решателе сопряженных градиентов, а также итеративные пределы.
Однако возникает следующая ошибка, которая поначалу успешно решателем NX устранаяется, а позже нет:
 
Time= 0.000000000000E+00 Integration timestep= 6.000000E+01
 
     Minimum temperature                 =    30.000 at element     19645 INIT_BC
     Maximum temperature                 =    30.000 at element     19645 INIT_BC
     Average temperature                 =    30.000
 
 Heat Flow+Load Summary Into Different Sink Entities:
        Sink Entity                       Temperature     Heat   Energy absorbed
                                                       Flow+Load   since start 
 
 Space Enclosure                          -2.691E+02   6.681E+02   0.000E+00
 
     After 1000 iterations the Conjugate-Gradient solver did not converge.
     Residual=  2.184E-05, target residual=  1.000E-04, matrix fill=   10.
     The solution is restarting with matrix fill=   20, iteration limit= 1000.
 
 
     After 1000 iterations the Conjugate-Gradient solver did not converge.
     Residual=  5.085E-04, target residual=  1.000E-04, matrix fill=   20.
     The solution is restarting with matrix fill=   20, iteration limit=  200.
 
 
     After  200 iterations the Conjugate-Gradient solver did not converge.
     Residual=  3.785E-04, target residual=  1.000E-03, matrix fill=   20.
     The solution is restarting with matrix fill=   20, iteration limit=  200.
 
 
     After  200 iterations the Conjugate-Gradient solver did not converge.
     Residual=  2.593E-04, target residual=  1.000E-03, matrix fill=   20.
     The solution is restarting with matrix fill=   30, iteration limit=  200.
 
 
     Conjugate-Gradient solver successfully converged after  119 iterations.
     Residual=  7.517E-08, target residual=  1.000E-03, matrix fill=   30.
 
Из этого лога непонятно 2 вещи: почему написано, что критерий сходимости не достигнут, хотя он, как видно выше (выделил "жирным") превышает требуемое значение на порядок, а также почему решатель самостоятельно изменяет параметры сходимости (с 1000 итераций на 200, критерий сходимости с -4-й степени на -3-ю).
Далее вообще странно: 
 
 After  200 iterations the Conjugate-Gradient solver did not converge.
     Residual=  2.150E-24, target residual=  1.000E-03, matrix fill=  200.
     The solution is restarting with matrix fill=  210, iteration limit=  200.
 
 
     Conjugate-Gradient solver successfully converged after   98 iterations.
     Residual=  1.044E-28, target residual=  1.000E-03, matrix fill=  200.
 
 
     After  200 iterations the Conjugate-Gradient solver did not converge.
     Residual=  2.729E-25, target residual=  1.000E-03, matrix fill=  200.
     The solution is restarting with matrix fill=  210, iteration limit=  200.
 
То есть решатель сопряженных градиентов сошелся, но продолжает писать, что не сошелся и продолжает уточняться...) Что в конце концов ведет к надписи Fatal Error и прекращению расчета. 
 
Сталкивались Вы с подобным? Есть ли у Вас идеи по решению проблемы?)
Для удобства анализа прикрепил к сообщению часть лога расчета. Errors.txt
Заранее спасибо за помощь.
Ссылка на сообщение
Поделиться на других сайтах
Отдельно отмечу, что на машине с обновлением за июль это предупреждение также возникает, но выводится 30 раз (по числу используемых в расчете ядер), и дальше расчет продолжается. В модели нет электрических элементов, есть 2D-сетка и 0D-узлы, из нагрузок- только статические тепловые нагрузки и "управляемые нагреватели".

Свойства материала связанные с электрическими эффектами не причем. Это опять таки предупреждение, а не ошибка. Не факт что расчет "зависает" по этой причине. У Вас точно нет ничего, что связано с электричеством, например электрического нагрева или элемента Пельтье? Нет ли в логе указания на номер проблемного элемента или ГУ?

Возможно дело и в "управляемых нагревателях". Проще всего их для проверки временно отключить.

 

Почему-то при расчете тепловых связей элеметов для 0D - улов берется нулевая площадь, хотя в коллекторе сеток 0D узлов я задавал не только массу интересующей точки, но также и ее диаметр, соответственно он подбирался таким образом, чтобы площадь получившейся гипотетической сферы совпадала с площадью объекта, заменяемого 0D-узлом.
 

Какую именно тепловую связь и с какими настройками Вы использовали? Возможно все дело в том, что выбранные Вами элементы не перекрываются (не проецируются друг на друга) в пространстве (вы не указали в вопросе, что была определена фиксированная площадь теплопередачи, значит система должна эту площадь вычислить?), тогда площадь будет равна нулю.

Тут лучше всего оттестировать настройки на отдельной модели. Может явиться опосредованной причиной развала расчета. Т.к. в худшем случае получится просто нулевой тепловой поток через связь.

 

В процессе работы в сетке возникали искривленные элементы, позже при запуске расчета они были отмечены предупреждением, список подобных элементов был внесен в файл "groups.unv", в общем проблема была быстро исправлена) Однако при расчете NX самостоятельно генерирует новые элементы, разбивая старые (по схеме, изложенной в хелпере),  и строит их искривленными:

Нет. С подобным не сталкивался. Могу только предположить, что проблемные элементы (исходные) изначально сильно искривлены или имеют острые углы или сильно вытянуты и т.п. Лучше посмотреть или изображение или выложить здесь конкретный пример такой поверхности с такими элементами (всю модель конечно же ненужно, только проблемную поверхность).Термин "wrapped" часто используется в смысле складок на ткани или процесса драпировки.

 

Из этого лога непонятно 2 вещи: почему написано, что критерий сходимости не достигнут, хотя он, как видно выше (выделил "жирным") превышает требуемое значение на порядок, а также почему решатель самостоятельно изменяет параметры сходимости (с 1000 итераций на 200, критерий сходимости с -4-й степени на -3-ю).

Ну  "Residual" - это остаток остаток чего? Не понятно, надо копать доки. Вовсе не факт, что это тот самый критерий сходимости. Для анализа невязок наверное полезнее смотреть графики (если есть). По сути критерием сходимости в тепловом расчете критерием должен быть тепловой поток и/или изменение стредней/максимальной температуры между итерациями. Нужно искать именно эти данные. Или просто загрубить критерии до того момента, как начнет решать и выдаст результат, а потом смотреть аномалии. Кстати сетка ОЧЕНЬ сильно влияет на сходимость.

Если подходить строго, то решатель сошелся для какого-то шага нагружения. Это далеко не весь расчет.

 

Будет время, покопаюсь в Вашем логе.

Ссылка на сообщение
Поделиться на других сайтах

Считаю своим долгом отписаться, что расчет пошел, и отлично сходится на обоих машинах)

Для этого (в дополнение к вышеописанному) было сделано:

 

1) В свойствах материалов везде, где это можно, был удален параметр электрического сопротивления.

    Увы, почему-то расчет на одной из машин останавливался на вышеописанном предупреждении. Удаление параметра "электрическое сопротивление" решило проблему. Электрический нагрев или элементы Пельтье в расчете не использовались)

2) Для минимизации ошибок при расчете излучения (в т.ч. орбитального нагрева) были использованы параметры:

Метод расчета- Детерминистский

Разбиение элемента - По критерию ошибки

Значение критерия - 0.005

(грани твердотельных элементов не использовались)

 

Также параллельно на другой машине использовался метод Монте-Карло, с данными параметрами ошибок тоже не возникает:

Снята галочка "расчитать только угловые коэф-ты (см. Helper)

Управление плотностью луча - По критерию ошибки

Критерий ошибки - 0.02

Доверительный уровень- 95%

Генератор случайных чисел- Автоматически

 

Заморачиваться с излучением приходилось из-за того, что в исследуемая модель представляет собой многоэлементную сборку с 2D-сеткой, в ней идет лучистый теплообмен, поэтому "косяки" с угловыми коэф-ми нужно было минимизировать)

 

3) Была проведена настройка решателя SST:

Ну, тут явно легче просто предоставить снимок экрана) В Hepler'e каждый параметр подробно расписан)

post-44861-0-42451800-1446150884_thumb.jpg

 

4) Был выбран полуявный метод интегрирования:

Расчет был нестационарным, рассматривался очень крупный интервал времени, принудительно малую дискретизацию выбирать было нельзя. В настройках переходного процесса был задан фиксированный шаг dt и выбран полуявный метод интегрирования. С ним сходимость стала на порядок лучше, счет не разваливался. Да, в русской версии "косяк" перевода- там 2 "неявных" стоят, по-моему нужно выбирать второй)

 

Искренне надеюсь, что данная информация поможет кому-то с расчетами своих моделей в Siemens NX SST =)

В очередной раз выражаю свою глубочайшую благодарность участнику форума 0Q0. Ваши советы не только помогали решать мои проблемы с расчетом, но и направляли мысли в правильное русло)

 

Ниже напишу еще пару комментариев о проблемах, описанных в предыдущем сообщении:

-То, что в логе тепловые связи с 0D-узлами имеют нулевую площадь, никак не влияет на расчет. Важно отметить, что при задании тепловой связи площадки с точечным узлом  0D-элемент всегда должен добавляться только во вторичную группу, иначе действительно будет ошибка в тепловой связи (см. Helper). Галочку "соединять перекрывающиеся элементы" в данном случае тоже лучше снять)

- По поводу искривленных элементов... NX сам создавал ошибочные элементы, исходная сетка проблемной не была, проверял. Возможно, предупреждение связано с тем, что до этого элементы, принадлежащие данному коллектору сеток, были заданы нулевой оболочкой, после же к ним было применено свойство "тонкостенный элемент" с принудительным заданием толщины 2D-элементов. Преобразовал обратно в "нулевую оболочку", проблема исчезла)

-С "остатком" до сих пор непонятно. Почему-то, несмотря на принудительное изменение настроек, решатель SST использует максимальное число итераций в 200 единиц. Да и остаток, заранее более малый чем требуемый, также вызывает вопрос. Возможно кто-то сможет прокомментировать эту ситуацию, я пока довольствуюсь тем, что "считается" =)

Ссылка на сообщение
Поделиться на других сайтах

Рад, что у Вас расчет получается.

Вы преувеличиваете степень моего участия, но рад был помочь.

По поводу максимального числа итераций надо будет попробовать на тестовой задаче, как найду время. В тех кусках лога, что Вы привели упоминается предел и 1000 и 200. Это вызывает удивление.

Остаток более малый чем требуемый, скорее всего вызван тем, что имеется несколько критериев сходимости. Из Вашего сообщения я так и не понял о каком именно остатке шла речь в этом куске лога.

Я имею в виду случай, когда, например, по тепловым потокам задача сошлась, а по максимальным/минимальным температурам нет. Представьте себе, например, элемент конструкции с относительно хорошей теплоизоляцией. В этом случае невязка по суммарным тепловым потокам достигнет малой величины при относительно больших колебаниях невязки по температурам. Есть также параметр, определяющий максимальное приращение температуры за одну итерацию.

Но это все наверное не так важно, если расчет сходится.

Изменено пользователем 0Q0
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



×
×
  • Создать...