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

Выгрузка результатов


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

Здравствуйте. Такой вопрос. Мне необходимо подсчитать некоторое значение такого вида - uTKu, где u-вектор перемещений элемента, а K соответственно матрица жесткости элемента. Так вот вопрос в том, каким образом мне получить перемещения элемента. 

Что я попробовал и узнал. Я могу получить эту величину через стандартный get. В таком случае возникает проблема с нумерацией. Как я узнал, в Ansys есть 3 типа нумерации. Первый - пользовательский, это то, что мы видим на экране. Второй - внутренний, это то, как видит нумерацию Ansys(убирает ненужные узлы из общей системы). И третий тип - нумерация решателя, это использование внутренней нумерации, а также возможные оптимизации в ходе решения, которые эту нумерацию еще раз возможно тасуют. Ту величину, что мне нужно посчитать, мне надо посчитать по каждому элементу и просуммировать. С помощью DMAT, SMAT и линейного решателя я сразу могу получить величину всей модели, вытащив общий вектор U и общую матрицу К, в таком случае их нумерация будет совпадать и умножаться будут нужные величины. Но дальше мне нужно использовать именно элементные величины и вот команды для получения вектора перемещений для конкретного элемента с нужной нумерацией я не нашел, пока что метод проб не работает и с помощью DMAT и SMAT я не могу получить вектор для конкретного элемента. Может есть те, кто занимался таким вопросом и сможет помочь. Спасибо.

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


UnPinned posts

@fakemade

Есть команда *EXPORT

Посмотрите, может быть как то сможете ее использовать. Но хз.

 

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, Борман сказал:

@fakemade

Есть команда *EXPORT

Посмотрите, может быть как то сможете ее использовать. Но хз.

 

Команда EXPORT отвечает за запись результатов в файл. У меня проблема не с записью, а с получением результатов в нужном формате, так как Ansys перенумеровывает все узлы по своему для оптимизации, соответственно и матрицы жесткости элементов составлены с учетом нумерации, которая использовалась при решении.

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

@fakemade

Если у вас не особо большая модель, то можно матрицу K получить, если закрепить все, за исключением нужной степени свободы, за которую дернуть на расстояние 1.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, fakemade сказал:

так как Ansys перенумеровывает все узлы по своему для оптимизации, соответственно и матрицы жесткости элементов составлены с учетом нумерации

Вряд ли Ansys перенумеровывает узлы. Когда вы работаете с матрицами, то вы работаете со степенями свободы.

Перенумеровывают степени свободы. 

Вам нужно найти соответствие номеров степеней свободы номерам узлов. 

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

 Первый - пользовательский

Для пользователя он и последний. Нет смысла давать ему внутреннюю кухню :) 

Выбрать элемент и узлы его и все дела. 

Цитата

Вряд ли Ansys перенумеровывает узлы

Тут могут быть для подхода .  Я обычно оптимизировал как раз по узлам граф связности. Просто ради скорости.  Но можно и по степеням свободы. Кстати у Джорджа и Лю была статья где рассматривались как раз матрицы из матриц и их решение. Обычно клетки связанные с узлом полностью заполненные и можно решать сразу относительно них как элементов глобальной матрицы.  Вместо деления будет обращение небольших матриц, а в остальном алгоритмы такие же будут.   Когда-то Икрамов присылал мне список статей на эту тему, если найду письмо, то сфотографирую и размещу   :)   

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

https://ru.wikipedia.org/wiki/Блочная_матрица   Блок можно связать с узлом   :)

Изменено пользователем Fedor
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Fedor сказал:

Я обычно оптимизировал как раз по узлам граф связности.

Вы оптимизировали нумерацию степеней свободы. Но использовали для этого узлы. Скорее всего это был алгоритм Катхилла - Макки. Это ленточный алгоритм. 

Оптимизация это перестановка строк и столбцов в матрице.  Размер матрицы >= количеству узлов. Вы переставляли не одну строку-столбец, а сразу блок степеней свободы (3 или 5 или 6... степеней свободы).

Ansys для оптимизации использует Метис. Это уже оптимизация заполняемости.

 

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

https://en.wikipedia.org/wiki/Graph_partition   граф то не меняется при любых оптимизациях, насколько понимаю... 

Цитата

Это ленточный алгоритм

скорее уж профильный... 

 

https://en.wikipedia.org/wiki/METIS   

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

https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_column_(CSC_or_CCS)   тема потихоньку развивается, коды новые появляются :)

Интересно, существует ли разреженное представление блочных разреженных матриц  на SQL ?  

Цитата

Ansys для оптимизации использует Метис

Может и что-то свое учитывая кто покупает Ansys , как тут писали... 

Изменено пользователем Fedor
Ссылка на сообщение
Поделиться на других сайтах
21 час назад, fakemade сказал:

Здравствуйте. Такой вопрос. Мне необходимо подсчитать некоторое значение такого вида - uTKu, где u-вектор перемещений элемента, а K соответственно матрица жесткости элемента. Так вот вопрос в том, каким образом мне получить перемещения элемента. 

Что я попробовал и узнал. Я могу получить эту величину через стандартный get. В таком случае возникает проблема с нумерацией. Как я узнал, в Ansys есть 3 типа нумерации. Первый - пользовательский, это то, что мы видим на экране. Второй - внутренний, это то, как видит нумерацию Ansys(убирает ненужные узлы из общей системы). И третий тип - нумерация решателя, это использование внутренней нумерации, а также возможные оптимизации в ходе решения, которые эту нумерацию еще раз возможно тасуют. Ту величину, что мне нужно посчитать, мне надо посчитать по каждому элементу и просуммировать. С помощью DMAT, SMAT и линейного решателя я сразу могу получить величину всей модели, вытащив общий вектор U и общую матрицу К, в таком случае их нумерация будет совпадать и умножаться будут нужные величины. Но дальше мне нужно использовать именно элементные величины и вот команды для получения вектора перемещений для конкретного элемента с нужной нумерацией я не нашел, пока что метод проб не работает и с помощью DMAT и SMAT я не могу получить вектор для конкретного элемента. Может есть те, кто занимался таким вопросом и сможет помочь. Спасибо.

Посмотрите в Help "Degree of Freedom Ordering"  Там есть примеры, как конвертировать из internal в user ordering и наоборот или solver.

Не подойдет?

Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, Fedor сказал:

скорее уж профильный... 

Строка умножается на коэффициент и складывается с другой строкой. Ленточный алгоритм.

23 часа назад, Fedor сказал:

Может и что-то свое учитывая кто покупает Ansys

Дешевле купить разреженный оптимизатор, чем писать свой лучше чем Метис с непонятным результатом.

Предобуславливатель купили, символьную и численную факторизацию купили.

  Это давно уже бизнес, поэтому и покупают, чтобы делать деньги, а не писать что-то своё.

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

Почти все матричные алгоритмы используют скалярные произведения.  :)   

Ссылка на сообщение
Поделиться на других сайтах
37 минут назад, Fedor сказал:

Почти все матричные алгоритмы используют скалярные произведения.  :)   

Если алгоритм решения работает со строками матрицы, то это ленточный алгоритм, если со столбцами, то профильный.

 

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

Я привык к другой терминологии. Лента когда ненулевые по диагоналям. Вот как тут  https://openlibrary.org/works/OL15166836W/Справочник_алгоритмов_на_языке_АЛГОЛ   определяется.  Ну а профильные это как в алгоритмах https://studizba.com/files/show/djvu/303-1-dzhordzh-lyu--chislennoe-reshenie-bol.html этой книжки ... 

 

 

"то это ленточный алгоритм, если со столбцами, то профильный" при LDLt  один раз как со столбцами, другой раз как со строками . У Джорджа и Лю все расписано :) 

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, Fedor сказал:

Лента когда ненулевые по диагоналям.

:biggrin:

Разреженная матрица заполняется при решении.

Пример разреженной матрицы. 

22.png

При решении матрица полностью заполнится. А если перевернуть матрицу, сделать обратную нумерацию, то получим такую матрицу.

23.png

Если матрицу хранить по столбцам, то заполняемости при решении не будет. Это и есть профильный способ оптимизации и хранения матриц.

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

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

Это как обычно ваша интерпретация общепринятых концептов :)   

 

image.png

https://translated.turbopages.org/proxy_u/en-ru.ru.8dc4425f-65b4dd52-5e292b15-74722d776562/https/en.wikipedia.org/wiki/Band_matrix

 

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

L+1 - ширина ленты матрицы. Я дал такое же определение.

А теперь напишите чему равен профиль для этой матрицы. Дайте определение профиля.

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

 

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

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • gemini74
      Вы даете пример, которая подпадает под классическую поверхностную модель. Само собой строить ее из твердотельных нет смысла. Опять же простая геометрия с двумя размерами. Это все задачи , относительно далекие от реальной геометрии серийных , массовых изделий. Задач, которых можно упростить до примитивных поверхностей мне попадалось не так много. Это теоретические задачи, далекие от практики. Поверхности, акцент на них в расчетах делался когда мощности компов были далеки от желаемых. Сейчас вроде времена изменились. И в большинстве случаев не требуются считать динамику или нелинейные задачи ,  разрушения в краш-тестах, задействуя типа LS DYNA. Не знаю , что у Вас за практика, но в моем опыте расчеты CAE не стоят на первом месте в приоритете по сравнению с работой конструктора. Большинство контор опирается на практику. Легче и проще сделать, испытать, чем провести полные расчеты, это и сложно, и штат расчетчиков нужно держать, чтобы были спецы и сопромате, и теплотехнике и гидравлики. Такое может позволить только типа РОСАТОМ. В конторах попроще  рассчитывают все проще. И расчетчик только проверяет работу конструктора в каких то моментах, но особо не вмешивается в процесс конструирования. Производство требует как обычно быстрый результат. Да еще сроки изготовления у нас всегда ограничены.  Поверхности  нужны для сокращения ресурсов в расчетах на треть , т.е из модели убирается третья координата. Но говорить , что это панацея и всегда нужно это делать я не соглашусь. Да , можно к этому стремится, но не считать, что только поверхности являются единственно верным правильным и точным решением. Это всего лишь вариант упрощения модели .  
    • Jesse
      Ресурсы компьютера. Попробуйте пож-ста посчитать изгиб стальной мембраны толщиной 0.5 мм и длиной 2 метра. Тетрами. Тогда вы поймёте что я имею в виду :)
    • alex0800
      у вас в примере в первом кадре цикла не хватает  R --глубина чистового прохода. это раз  второе большая высота резьбы при таком шаге резьбы при нарезании резьбы м60*1.5   глубина резьбы Р920
    • AlexKaz
      Есть другой подход. Конструктор сначала советуется с прочнистом, предоставляю ему полную сборку в нативном каде; прочнист вычищает в нативном всю ненужную мелочь и проводит расчёты, модя геометрию под себя и советуясь с конструктором; потом в несколько этапов таких "советов" конструктор финалит геометрию и КД. А не наоборот... 100500 вариантов голимого stp никому не впёрлось заново вычищать и пересчитывать с нуля...
    • Борман
    • Bot
      19-27 августа 2024 г. состоится серия вебинаров, организованная компанией «Топ Системы», по работе с системой T‑FLEX CAD для преподавателей и специалистов в сфере образования. Летняя школа САПР для преподавателей проходит в рамках программы «Факультет САПР». Ведущими темами онлайн мероприятия будут базовые функции и логика работы в системе T‑FLEX CAD. Летняя школа САПР это: Обмен опытом в сфере технического образования; Знакомство с подходами к процессам оцифровки учебных материалов средствами T FLEX CAD; Метод поддержки образовательных учреждений при обучении будущего поколения инженеров и специалистов управления производством. Темы Ключевые возможности T FLEX CAD 17 и их применение в учебном процессе; Элементы геометрического черчения; Формообразование; Конструктивные элементы; Вспомогательная геометрия. 3D–моделирование; Проекционные виды. Оформление чертежа; Сборка, Анимация разборки. Сборочный чертёж; Средства анализа [...] View the full article
    • artberesta
      Спасибо вам, я понял. У меня не выходило раскрасить готовые прямоугольники которые я уже смоделировал чёрный линией.Как можно выбрать линию которая наслаивается на другую линию для того что бы придать ей цвет   который нужен?  
    • sapr71
      Проверил. Сработало. Теперь выводит правильно. Все оказалось проще, чем я думал. Спасибо mr_Voden.
    • ЮрЮрыч
      У меня это возникает на виртуальных листовых компонентах при выполнении выреза. Поэтому листовые сразу сохраняю во внешнем файле. 
    • mr_Voden
×
×
  • Создать...