Помощь - Поиск - Пользователи - Календарь
Полная Версия: Solver и Solve Setup
Форум по Ansoft Maxwell ANSYS Maxwell (ANSYS Electronics) > Общие вопросы по моделированию в Maxwell ®
Страницы: 1, 2
Админ
Попробую ответить на вопрос, заданный в другом форуме...
Цитата
Заметил еще одну особенность Maxwell. Решал задачу о силовом взаимодействии цилиндра с током и катушки с током. Задача решилась часа за два. Прорезал в цилиндре окошки - еще 4 часа. Стал изменять размер окошка. Задал в Box по оси Z значение 8,75 мм., в воскресение поставил на решение. В понедельник машинка все еще тужилась. Решил, что что-то не так, может где-то ляпсус. Снял задачу, убил проект, перерисовал все заново. Во вторник, запустил проект на обсчет и уехал в командировку. В четверг, возвращаюсь - машинка все еще считает. Хмм... И тут припоминаю одну особенность. Когда я в Solid Works создаю модель, то ее координаты (допустим центра окружности) могут быть заданы с точностью до сотых долей микрона, когда я импортировал модель в Maxwell, то эти координаты округлялись до целых миллиметров (заметил, т.к. после решения прокладывал non-model линию, для нахождения распределения поля вдоль нее). Так вот, стоило переназначить окно в Box по оси Z со значения 8,75 мм в 9 мм, как задача решилась за 4 часа. Вопрос, почему Maxwell так не любит сотые доли мм и что с этим делать, если такая необходимость объективно возникает?

Первое, что надо отметить... Процесс решения не всегда стоит оставлять на самотек... И время расчета определяется не прихотью Maxwell'а, а всяческими настройками (в контекстном меню записи Setup1 в Project Manager выбрать Properties, где Setup1 - название Solution Setup'а по умолчанию). Все зависит от того, какие вы там зададите критерии остановки расчета.
Более того... Вы можете следить за тем, как идет расчет и прервать его на любом шаге. Ведь после каждого шага в принципе имеется полноценное решение, только погрешность с каждым шагом уменьшается...
Для слежения за процессом решения в контекстном меню записи Setup1 выбрать Convergence. Появится таблица. В первом столбце номера шагов, которые уже успели просчитаться. Во втором - количество тетраэдров сетки. Чем их больше в последнем просчитанном шаге, тем дольше будет считаться следующий шаг. В следующих столбцах можно увидеть, в какой степени выполняется критерий сходимости.
Если кажется, что уже достаточно, можно сделать расчету Abort, и строить поля и т.д. по результатам последнего просчитанного шага.
По моему опыту вообще лучше всего рассчитывать в основном на критерий количества шагов. Так время расчета будет наиболее предсказуемым.
Это во-первых...

Во-вторых приведу переведенную на русский язык цититу из Help:
Цитата
Даже если геометрия корректна, создание сетки все же может дать сбой. Возможные причины – присутствие очень коротких граней, очень маленьких поверхностей, длинных и тонких расщепленных поверхностей, а также небольших несоосностей между поверхностями, которые, как предполагается, являются совпадающими.
Админ
Valodores: Ну так как там силовое взаимодействие цилиндра и катушки? Разобрались?
Valodores
Цитата (Админ @ 01 Декабрь 2008 11:51)
Valodores: Ну так как там силовое взаимодействие цилиндра и катушки? Разобрались?

Разбираюсь, проганяю разные варианты, накапливаю статистику. Но вот вопрос на эту тему: коническая катушка, ток проходит по ней и через полый цилиндр, расположеный внутри по оси катушки, возвращается назад, замыкая цепь. Т.е. объект в моделе один (все объединено через Unit). Но как теперь найти силовое взаимодействие между участками цепи, а именно катушкой и цилиндром?
Valodores
Цитата (Админ @ 28 Ноябрь 2008 13:29)
Первое, что надо отметить... Процесс решения не всегда стоит оставлять на самотек... И время расчета определяется не прихотью Maxwell'а, а всяческими настройками (в контекстном меню записи Setup1 в Project Manager выбрать Properties, где Setup1 - название Solution Setup'а по умолчанию). Все зависит от того, какие вы там зададите критерии остановки расчета.
Более того... Вы можете следить за тем, как идет расчет и прервать его на любом шаге. Ведь после каждого шага в принципе имеется полноценное решение, только погрешность с каждым шагом уменьшается...
Для слежения за процессом решения в контекстном меню записи Setup1 выбрать Convergence. Появится таблица. В первом столбце номера шагов, которые уже успели просчитаться. Во втором - количество тетраэдров сетки. Чем их больше в последнем просчитанном шаге, тем дольше будет считаться следующий шаг. В следующих столбцах можно увидеть, в какой степени выполняется критерий сходимости.
Если кажется, что уже достаточно, можно сделать расчету Abort, и строить поля и т.д. по результатам последнего просчитанного шага.
По моему опыту вообще лучше всего рассчитывать в основном на критерий количества шагов. Так время расчета будет наиболее предсказуемым.

Можно поподробнее о настройках (как я понимаю Maxwell>Analis setup) т.к. хотелось бы выставляя эти настройки уже приблизительно предполагать, на что по времени приходится расчитывать. Какие настройки на что влияют и какие разумные (рекомендуемые) пределы существуют для того или иного параметра.
Админ
Расчет состоит из одного или нескольких шагов. В начале каждого шага создается новая сетка конечных элементов. Расчет на каждом шаге заключается в том, что просчитывается поле в каждом узле сетки. После прохождения каждого шага программа проверяет, не сработал ли один из критериев остановки расчета:
1) Номер шага сравнялся с величиной Maximum Number Of Passes из настроек.
2) Вычисленная ошибка (error energy) оказалась меньше заданной (Percent Error из настроек).
Есть еще настройка Refinement Per Pass на закладке Convergence. По умолчанию - 30%. Это значит, что на каждом шаге количество элементов сетки увеличивается на 30%. Я эту настройку никогда не меняю.
Вот эти настройки и влияют на время расчета. Ну и в первую очередь сложность геометрии влияет. В задачах eddy current помимо этого влияет еще и количество элементов, в которых нужно вычислять вихревые токи. В общем, факторов очень много. И разброс времени расчета в разных задачах очень широкий. Так что прогнозировать время расчета имеет смысл только опытным путем. Только учесть, что время расчета шага экспоненциально зависит от количества элементов сетки на этом шаге.
Если просчитан хотя бы один шаг, то, зная про 30%, определить, сколько будет элементов на каждом последующем шаге - это первый класс, вторая четверть...
В общем, для прогнозов я бы рекомендовал следующее...
1) Запустить расчет шага на 3-4 (Percent Error можно искусственно занизить до долей процента).
2) Посмотреть, сколько времени занял каждый шаг и сколько тетраэдров сетки получилось в каждом шаге (в контекстном меню записи Setup1 посмотреть Convergence и Profile).
3) Учитывая экспоненциальность зависимости времени расчета от количества элементов сетки, прогнозировать время расчета.

Ну и, конечно же, если вы заранее знаете, какая точность вычисления абсолютных величин вам нужна, то просто ставите соответствующую величину в Percent Error, неограниченное количество шагов и все...
Valodores
По причине неудобства прикрепления изображений, сообщение повесил на электрониксе http://electronix.ru/forum/index.php?showt...id=509668&#. Однако не понятно, почему у меша возникли затруднения, ведь отдельные узлы просчитывались. Может нужно где-то в настройках что-то подправить?
Админ
Уже ответил на том форуме biggrin.gif
Valodores
А кто-нибудь пробовал Maxwell на двуядерном процессоре гонять? Просто интересно, он загружает два ядра или одно? Вообще, для Maxwell есть смысл в многоядерности или это только в будущем будет?
Админ
По-моему они пишут, что даже рекомендуется 2 ядра. Но сам не пробовал...
Valodores
На счет ручного управления меша есть идеи, как можно заставить его сетку ложить не так густо, как ему хочется? Может это управляется через задание погрешности в Analysis Setup? Может увеличить Percent Error?
Админ
Это как раз тема про Solver. Перенес...

Самый радикальный способ - это установить Maximum Number Of Passes = 1. Тогда сетка будет самой минимально возможной вне зависимости от остальных настроек.
Собственно, в этом посте я подробно написал, что от чего зависит...
Valodores
Цитата (Админ @ Дек. 20 2008, 07:37 PM)
Самый радикальный способ - это установить Maximum Number Of Passes = 1. Тогда сетка будет самой минимально возможной вне зависимости от остальных настроек.
Собственно, в этом посте я подробно написал, что от чего зависит...

Ну это если устанавливается единый меш на всю модель, а если нужно локально изменить в каком-то узле?
Админ
Цитата (Valodores @ Дек. 20 2008, 10:40 PM)
Ну это если устанавливается единый меш на всю модель, а если нужно локально изменить в каком-то узле?

Локально можно задавать только сгущение сетки, а не наоборот.
Минимальная сетка на то и минимальная, что сделать ее более редкой нельзя.
Valodores
Цитата (Админ @ Дек. 20 2008, 07:37 PM)
Самый радикальный способ - это установить Maximum Number Of Passes = 1. Тогда сетка будет самой минимально возможной вне зависимости от остальных настроек.
Собственно, в этом посте я подробно написал, что от чего зависит...

Что-то неладное творится с форумом. Один раз ответил - ответ появился, потом перезашел - ответ исчез, поэтому пишу еще раз.
Этот способ хорош, когда нужно положить равномерно меш на всю модель, а если нужно локально управлять густотой меша в каком-нибудь узле?
Админ
Цитата (Valodores @ Дек. 20 2008, 11:22 PM)
Этот способ хорош, когда нужно положить равномерно меш на всю модель, а если нужно локально управлять густотой меша в каком-нибудь узле?

Выделить в районе этого узла какой-нибудь объект или часть объекта (поверхность, грань, точку). Затем Mesh Operation/Assign/On Selection/Lenght Based.
Там выбрать дискретность сетки в этой области.
Админ
Цитата (Админ @ Дек. 20 2008, 10:55 PM)
Локально можно задавать только сгущение сетки, а не наоборот.
Минимальная сетка на то и минимальная, что сделать ее более редкой нельзя.

Это я все-таки неправильно сказал... Во всяком случае если в модели много неплоских поверхностей...
Дело в том, что конечные элементы модели (элементы сетки) - это тетраэдры с плоскими поверхностями. И никаких круглых поверхностей там нет. Т.е. все окружности все равно заменяются на многоугольники. И вопрос в том, сколько граней будет у многоугольника.
Так вот с помощью настроек сетки можно упростить модель: Mesh Operation/Assign/Surface Approximation.
Например, если в вашей модели задать в Maximum Surface Normal Deviation 60 градусов (т.е. замена окружностей на 6-гранники), а в Maximum Surface Deviation - 0,3 мм, то количество элементов сетки в первом шаге получается около 30 000 (в отличие от 150 000 по умолчанию).
Правда, все равно программа будет долго "думать" перед началом просчета. Потому что модель очень сложная...
Valodores
Цитата (Админ @ Дек. 22 2008, 12:02 PM)
Это я все-таки неправильно сказал... Во всяком случае если в модели много неплоских поверхностей...
Дело в том, что конечные элементы модели (элементы сетки) - это тетраэдры с плоскими поверхностями. И никаких круглых поверхностей там нет. Т.е. все окружности все равно заменяются на многоугольники. И вопрос в том, сколько граней будет у многоугольника.
Так вот с помощью настроек сетки можно упростить модель: Mesh Operation/Assign/Surface Approximation.
Например, если в вашей модели задать в Maximum Surface Normal Deviation 60 градусов (т.е. замена окружностей на 6-гранники), а в Maximum Surface Deviation - 0,3 мм, то количество элементов сетки в первом шаге получается около 30 000 (в отличие от 150 000 по умолчанию).
Правда, все равно программа будет долго "думать" перед началом просчета. Потому что модель очень сложная...

Спасибо, сегодня опробую, результатами поделюсь.
Valodores
Сегодня попросился в одном институте арендовать двуядерную машину для расчета своей модели и был неприятно удивлен тем, что загрузка процессора идет лишь на 50%. Причем неравномерно - одно ядро загружено на 100%, а второе практически свободно, итого получается 50%. И это при наивысшем выставленном приоритете. А как бы поплотнее загрузить ядра?
Админ
Tools/Options/Maxwell Options/Solver/Number Of Processors
Valodores
Цитата (Админ @ Дек. 22 2008, 07:40 PM)
Tools/Options/Maxwell Options/Solver/Number Of Processors

Итак, праздники начались - есть возмжность спокойно поработать biggrin.gif
Задал я по вышеуказанному пути 2 процессора, но судя по результату, Number Of Processors здесь следует переводить действительно, как номер процессора smile.gif . Когда я установил двоечку и запустил задачу, вся нагрузка переползла с первого процессора на второй, а общая так и осталась на уровне 50 %.
Valodores
В процессе решения модели, солвер выдал следующую ошибку
[error] Mesh generation has failed. Specific details may be found in 3D Modeler>Model Analysis>Show Analysis Dialog>Last Simulation Mesh.
[error] Simulation completed with execution error on server: Local Machine.
Пройдя по указанному пути за подробностями, увидел следующую картинку. Как понимать эту ошибку?
Админ
Раз это ошибка сетки, значит причина должна быть одной из описанных вот тут.
Valodores
Цитата (Админ @ Янв. 2 2009, 09:24 AM)
Раз это ошибка сетки, значит причина должна быть одной из описанных вот тут.

Модель я не импортировал, а сразу создавал в Maxwell, соответственно и смешаных размерностей тоже нет, пересечений объектов модели так же нет, проверка на валидность проходит успешно. Остаются только мелкие детали, но куда ж от этого деться? Как обойти эту ошибку?
Админ
Цитата (Valodores @ Янв. 2 2009, 03:03 PM)
Как обойти эту ошибку?

Если дело именно в этом, то, возможно, упрощать модель. Способ я описывал несколькими постами выше...
Valodores
Провожу параметрический анализ. Исследую зависимость силы Лоренса от положения модели. Для этого задаю move и вместо одной из координат указываю параметр буковкой. Теперь хочу провести анализ по другой координате, но никак не могу убить старый параметр. убил и move и parametric и все равно, при запуске солвера откуда-то всплывает старый параметр. Подскажите, где он (параметр) прячется и как его достать?
Админ
Где переменные прячутся?
Переменные проекта: в Project Manager правой кнопкой по проекту - Project Variables. Переменные модели: в Project Manager правой кнопкой по MaxwellDesign - Design Properties.
Valodores
Цитата (Админ @ Вев. 1 2009, 04:27 PM)
Где переменные прячутся?
Переменные проекта: в Project Manager правой кнопкой по проекту - Project Variables. Переменные модели: в Project Manager правой кнопкой по MaxwellDesign - Design Properties.

О, нашел, спасибо. smile.gif
Ann_m
В установках анализа я задаю процент ошибки, ну скажем 1 процент. Насколько я понимаю это касается расчета индукции. Т.е., я задаю ошибку, а прога в соответствии с этим строит сетку, если я правильно понимаю. Но, когда я рассчитываю параметры такие как сила, в зависимости от мелкости сетки, значение параметра может меняться почти в два раза. Я очень слаба в численных методах, нет ли какого нибудь простого метода посчитать параметр с заданной ошибкой?
Админ
Цитата (Ann_m @ Янв. 4 2011, 03:40 PM)
В установках анализа я задаю процент ошибки, ну скажем 1 процент. Насколько я понимаю это касается расчета индукции.

Это касается расчета ошибки по энергии.

Цитата (Ann_m @ Янв. 4 2011, 03:40 PM)
Т.е., я задаю ошибку, а прога в соответствии с этим строит сетку, если я правильно понимаю.

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

Цитата (Ann_m @ Янв. 4 2011, 03:40 PM)
Но, когда я рассчитываю параметры такие как сила, в зависимости от мелкости сетки, значение параметра может меняться почти в два раза. Я очень слаба в численных методах, нет ли какого нибудь простого метода посчитать параметр с заданной ошибкой?

Solve Setup - Expression Cache - Add - выбрать параметр - ткнуть на "None" под Convergence и указать заданную ошибку.
Ann_m
Спасибо! :-)
Ann_m
Я задала ошибку в статике. А в transient так нельзя? Там просто нет convergence...
Админ
В transient вообще нету итерационного сгущения сетки. Так что абсолютное значение можно взять из статики. А из transient - тенденцию при движении.
Чтобы сетка в transient была более-менее нормальной, можно использовать Mesh Operations.
Ann_m
Цитата (Админ @ Янв. 5 2011, 03:22 PM)
В transient вообще нету итерационного сгущения сетки. Так что абсолютное значение можно взять из статики. А из transient - тенденцию при движении.
Чтобы сетка в transient была более-менее нормальной, можно использовать Mesh Operations.

Ага, спасибо!
Ann_m
Я тут решаю задачу по магнитостатике, в качестве параметра меня интересует поток. Я задала ошибку, как вы подсказали, сделала её 0,05%. Тем не менее поток зависит от сетки на площадке, через которую я считаю поток. Уменьшив сетку в 10 раз, поток уменьшился на 7%. Вы не знаете почему так происходит?
Админ
Цитата (Ann_m @ Янв. 11 2011, 05:04 PM)
Уменьшив сетку в 10 раз, поток уменьшился на 7%. Вы не знаете почему так происходит?

Имеется в виду сгущение сетки в 10 раз относительно той итерации, на которой программа остановилась? Она могла остановиться по другому критерию - количество итераций достигло максимально заданного.
Ann_m
Цитата (Админ @ Янв. 11 2011, 02:48 PM)
Имеется в виду сгущение сетки в 10 раз относительно той итерации, на которой программа остановилась?

Нет, я указала длину в mesh operations: 10 раз меньше по сравнению с той, которая стояла по умолчанию. Просто на поверхности площадки по которой считаю поток указала on selection length и значение потока от этого изменилось.
Админ
И в обоих случаях не было превышено максимальное количество итераций?
Ann_m
Цитата (Админ @ Янв. 12 2011, 11:50 AM)
И в обоих случаях не было превышено максимальное количество итераций?

Знаете, я сейчас убрала эту свою установку длины. Сделала revert to initial mesh и он стал считать совсем по другому. Как будто только сейчас заметил установленную ошибку... Стал считать гораздо медленнее... А раньше я делала apply mesh operations...
Админ
В смысле медленнее? Вообще скорость зависит от полного количества тетраэдров в сетке на каждой итерации. Вы вообще на количество итерраций обращаете внимание?
Ann_m
Цитата (Админ @ Янв. 12 2011, 12:50 PM)
В смысле медленнее? Вообще скорость зависит от полного количества тетраэдров в сетке на каждой итерации. Вы вообще на количество итерраций обращаете внимание?

Сейчас, когда он стал считать медленно стала обращать внимание. Сейчас у меня стоит максимальное количество итерраций 10. И только сейчас, он похоже стал делать много итерраций, чтобы довести ошибку до заданного значения. Почему считает медленно понятно, выше вы объясняли. Но, странно то, что он начал это делать только после того как я сделала revert to initial mesh.
Админ
Revert to initial mesh - это возвращение к исходной сетке и к первой итерации.
Когда лимит итераций (например, 10) исчерпан, то при повторном запуске на расчет программа может начать с 10-й итерации, и на ней же и закончить.
inkblot
Привет. Разбираюсь с параметрическим моделированием на стандартном примере "Rotational_actuator ", не могу "въехать"

По пункту помощи "Parameterization and Parametric Analysis" следует следующий текст:

Цитата
Parameters can be easily added to the setup for the purpose of changing assigned values (making "what if" type of analysis easy to perform) or for the purpose of setting up and running parametric analysis. The quantities that can be parameter­ized include geometric attributes, material properties, exci­tations, etc.

In this application we define the rotation angle of the Inner_arm object as a parameter and then perform a para­metric analysis aimed at obtaining the self and mutual induc­tance of the two coils as well as the torque for a whole range of rotation angles. The rotation angle was specified as a vari­able during the creation of the geometric model.

To define the angle variable as a design parameter:

1 Right-click the Optimetrics row in the project tree.
A shortcut menu appears.

2 Select Add>Parametric from the shortcut menu.

3 In the Setup Sweep Analysis dialog, click Add to add a variable to the sweep.

4 Select the variable angle from the drop-down list....


На что следует следующее сообщение приложения

Цитата
No real variables are marked for inclusion in Parametric Analysis. To include variables in Parametric Analysis, go to either Project Variables or Design Properties and click on the "Parametric" option, and click on the "indude" box for the variable(s) you want to use in the Parametric Analysis.



В общем я так и не нашёл этой переменной angle ни в переменных модели ни в переменных проекта. Пробовал сам создавать, но от того что созданная переменная меняется толка нет, как она должна быть привязана к элементу Inner_Arm (ротору) так же не понятно. Объясните пожалуйста, что делать? sad.gif
Админ
В разделе "Finalize the Geometry" написано, как вводится angle.
inkblot
Действительно, тупо пропустил. Спасибо!
AlexxHerz777
Как сделать, чтобы расчет выполнялся только ОДИН шаг.
Параметры сетки и ошибка меня устраивают уже после первого шага.
Админ
Number Of Passes = 1
AlexxHerz777
Цитата (Админ @ Мар. 30 2011, 10:27 AM)
Number Of Passes = 1

Это не работает, все равно делает минимум два шага, потому что ошибка по дельте на первом шаге неопределена
Админ
Странно. У меня всегда работает.
Покажите что ли проект...
AlexxHerz777
пример
Админ
Solve Setup
Закладка General
Maximum Number of Passes
Именно там надо ставить 1
Это архивная версия. Здесь расположена полная версия этой страницы.
Работает на IP.Board © 2023 IPS, Inc.