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

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


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

Здравствуйте. Такой вопрос. Мне необходимо подсчитать некоторое значение такого вида - 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 пользователей

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




  • Сообщения

    • Мрачный
      При пользовании народным макросом RecordDimM когда корректируешь резьбовое отверстие дважды вылазит в размере М, ММ14х1. Одно М ставит макрос, второе из обозначения отверстия с модели. Как сделать чтоб только одно М было? Забить первое ручками можно, только повторно макрос уже не воспринимает нормально такой правленый размер.
    • mamomot
      Я в свой адрес никогда не употреблял словосочетание "супер профи". Непонятно, чего Вы ко мне прилипли... Если у Вас есть какая-то конкретная критика по содержанию книги, оформлению, то от чего бы не высказать? Какой смысл в Вашем таком проведении?
    • maxx2000
      ну тогда делайте отдельно модель заготовки, либо отдельным файлом через публикацию геометрии, либо отдельным телом. Работайте, дураков работа любит 
    • maxx2000
      как нет? есть ГОСТ на резьбы в целом, канавки, и фаски и т.п. А ссылаться на него или нет это как фломастеры  по желанию
    • lem_on
      Мамомот, а ты и в самом деле не супер профи, просто понторез. 
    • lem_on
      09.02.2024 в 20:22, mamomot сказал: Я со сваркой конкретно имею дело с 1990 года   Чувствуешь что чем то, запахло, учитывая что запах не передаётся через интернет?  Я тебе ещё в той теме сказал, что свой опыт можешь намазать вазелином и засунуть куда подальше. И в этой теме сказал, что годы не значат опыт или мастерство. Так что можешь и дальше прикидываться дурачком. 
    • A_1
      Да, мы использовали её и на токарных и на фрезерных станках.
    • mamomot
      1. Ну, если попросить тебя привести мою цитату, где  я говорил о себе: "опытный супер профи", - ты же обгадишься. Что, в общем, для тебя обычное дело... 2. В 2020 году был карантин, и фирма, в которой я работал, обанкротилась, поэтому в конце апреля того года я выложил резюме, а в июне уже работал на новом месте. 3. Картинки обычные, вырезанные из 3Д редактора.
    • lem_on
      Не, ну ладно бы мужик был, а то сексуальное меньшинство, ему на Евровидение надо, там таких любят. А я то что, глупенький, мне и с бабами хорошо. 
    • Bot
      Оригинал — на сайте компании C3D Labs Результатом проекта стала модернизация первой в России системы комплексной автоматизации для мебельной отрасли «Базис», которая целиком основана на российском ПО и охватывает весь жизненный цикл мебельной продукции — от приема заказа до отгрузки. Компания «Базис-Центр» внедрила в основу конструкторских модулей системы «Базис» геометрическое ядро C3D, которое стало одним из ключевых элементов, определивших ее успех в сегменте мебельных САПР. Заказчик: «Базис-Центр» — ведущий российский разработчик автоматизированных систем проектирования, технологической подготовки и управления производством для предприятий мебельной отрасли и некоторых смежных отраслей, а также программного обеспечения для центров дистрибуции мебельных изделий. Основные направления деятельности: разработка программного обеспечения; подготовка специалистов в области автоматизации бизнес-процессов мебельных предприятий; консалтинговые услуги в области [...] View the full article
×
×
  • Создать...