2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5  След.
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение22.04.2013, 20:30 
Аватара пользователя


05/01/13

3968
ryazanov в сообщении #714191 писал(а):
В первую очередь не всегда корректны матричные преобразования. Это мнение Ю.П. Петрова. Он читает спецкурс в Санкт-Петербургском государственном университете. Без обоснованных им проверок программ можно прийти к неверному результату и связанной с этим аварийной ситуации. С этим согласны в РАН.

А где об этом можно почитать?

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение22.04.2013, 20:54 
Заблокирован


03/01/13

115
У него есть свой сайт. Но начните отсюда: http://www.koob.ru/petrov_yuriy/

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение29.05.2013, 12:05 


28/05/13
18
Крайне интересная для меня тема. Решил, в целях овладения методом конечных элементов, написать свою программу. Но возникла методическая проблема. Помогите разобраться - может после завершения своей программы присоединюсь к Вашему проекту.
Задача - линейно упругое тело, статика. Основное уравнение $K\cdot W=F$ . Где K - матрица жёсткости системы, W - матрица столбец перемещений, F - сил. В некоторых узлах приложены силы, в некоторых узлах запрещены перемещения.
Вопрос: Чему равны элементы матрицы столбца F, отвечающие за силы в тех узлах где они не приложены? Они равны 0 или они неизвестны?
Если они равны 0, то систему можно решить, например, методом Гаусса, учитывая, что некоторые элементы W известны.
Если они не известны, то не понятно каким методом решать систему, где частично неизвестны элементы столбца - W, частично - F.
Если поможете разобраться, буду безмерно благодарен.

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение10.06.2013, 06:26 


11/01/12
50
В узлах, где внешние силы не приложены, силы неизвестны. В узлах, где перемещения не заданы, перемещения неизвестны. Возможны узлы, в которых не задано ни то, ни другое. Там разбирается задача, в которой в каждом из четырух узлов заданы либо внешняя сила, либо перемещение.

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

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение19.06.2013, 13:19 


28/05/13
18
Написано - файл удалён.
Я дошёл самостоятельно до того, что Вы написали в ответе, но , всё - равно, спасибо.
Более того я таки разобрался в методе конечных элементов и написал простенькую программу, рассчитывающую деформированное состояние прямоугольной пластины.
Но в программе засела ошибка, по - видимому, методического характера. Программа показывает качественно верный результат, а количественно - нет.
Могу ли я попросить Вас оказать помощь в её поиске. Возможно, даже, за вознаграждение.

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение26.06.2013, 21:25 
Заблокирован


03/01/13

115
brddrdtt в сообщении #729925 писал(а):
Крайне интересная для меня тема. Решил, в целях овладения методом конечных элементов, написать свою программу. Но возникла методическая проблема. Помогите разобраться - может после завершения своей программы присоединюсь к Вашему проекту.
Задача - линейно упругое тело, статика. Основное уравнение $K\cdot W=F$ . Где K - матрица жёсткости системы, W - матрица столбец перемещений, F - сил. В некоторых узлах приложены силы, в некоторых узлах запрещены перемещения.
Вопрос: Чему равны элементы матрицы столбца F, отвечающие за силы в тех узлах где они не приложены? Они равны 0 или они неизвестны?
Если они равны 0, то систему можно решить, например, методом Гаусса, учитывая, что некоторые элементы W известны.
Если они не известны, то не понятно каким методом решать систему, где частично неизвестны элементы столбца - W, частично - F.
Если поможете разобраться, буду безмерно благодарен.

Собственно, никто ничего писать не решается, так как возникает масса проблем. Почитайте книги А. В. Андреева "Передача трением" (М., Машиностроение, 1978) и А.П. Лещенко "Фундаментальная строительная механика упругих систем" (Издательство "Сфинкс", Таганрог, 2003, 974с.). Это помимо уже вышеупомянутых книг Ю.П. Петрова.

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение01.07.2013, 21:48 


30/06/11
11
пост интересный, автор молодец конечно, высказался, так сказать, начистую...
Что я скажу,
1. Некоммерческий проект...хм ))) уважаемый meteese Вам "они" не нужны? Или у Вас спонсоры?)) Людям нужно платить ипотеки, заправлять машины, водить девушек в кино, и делать вид, что ещё кое-что осталось))
понимаете, я работал в проектировании...и я вижу какое бабло зашибает руководство этих фирм, крупных фирм я имею ввиду. С учётом того, что они отваливают астрономические суммы за лицензионный софт. Вы хотите пересадить этих ребят с рендж роверов на бентли?
2. Другое дело собрать команду для написания коммерческого, конкурентно-способного комплекса для дальнейшего выхода на рынок(а выходить есть куда, т.к. за нормальный софт просят очень немаленькие деньги, там есть поле для конкуренции) и дележа доходов согласно трудового вклада разумеется, тогда народ подтянется
3. Отбросьте этот патриотизм - на linux. Вообще то щяс есть такая штука как кроссплатформенность, если сделал для linux сделаешь и даже для (о Боже) ненавистной американской MacOs )
4. Я делал программу по расчёту МКЭ(помню тогда млел от собственной крутизны) на С++(первые мои пробы на С++), там много каких заморочек было. Естественно прога элементарная, с одним видом КЭ(тетраэдр), геометрия самая примитивная - параллелепипед. Систему решал Холецким, максимум что тянуло - это 80000 х 80000, т.к. мой решатель был не очень оптимизирован и не поддерживал многопоточность. (не так давно общался с ребятами, которые программировали что-то подобное, так вот эта цифра вообще несерьёзная, да и холецкий как метод конечно крут, но есть и другие, что пошустрее будут) Короче "жопочасов" за компьютером не мало надо потратить.
5. И ещё самое главное: браться за чтото типа Ansys не имеет смысла, только промышленные комплексы, их рынок намного намного шире и там есть кого подвинуть.
P.S. В общем по этой теме у меня есть своя точка зрения, тема интересная (добавлю в закладки), есть вопросы, пишите - отвечу

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение04.07.2013, 08:41 


11/01/12
50
По первому и второму пункту я полностью сдулся. Патриотизм отбросил. А по пятому, главному, хотел бы узнать мнение более развернутое, мне просто интересно это мнение. Хотя, по пятому пункту я тоже сдулся. Я уже не хочу никого вытеснять ни в промышленности, ни в образовании. Извините. Однако, здесь есть интересные собеседники, передаю флаг общения в их и в ваши руки.

В последнее время у меня появился скромный интерес к Nvidia CUDA - расчет МКЭ не на процессоре ПК, а на видеокарте. А также я недавно попробовал создавать трехмерные объекты в OpenSCAD, где это делается не возней мыши, а написанием скрипта и его компиляцией. Мне понравилось. Это приятно, однако. Сейчас начал изучать специальные оболочечные конечные элементы, мне нужно большую работу по этой теме проделать (расчет частот собственных колебаний цилиндрических оболочек с присоединенной массой).

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение04.07.2013, 12:47 


30/06/11
11
не надо сдуваться)) промышленные комплексы(и scad, и lira) отстали в развитии, они не эффективно используют мощности современных процессоров(считают долго), стоят очень дорого и рынок их огромен, а не промышленные комплексы - не особо отстают в развитии и рынок их не большой,эксклюзивный, но правда и стоят они ещё дороже - вот и всё мнение
А Cuda - это правильный интерес, перспективный, не надо тут скромничать) книга "боресков харламов - основы работы с технологией Cuda" есть такая, думаю нашли уже. Cuda создана для параллельных вычислений, а это очень важно в программировании МКЭ, что сказать тут, можно раз 5-6 быстрей решить одну и туже задачу на одном и том же компе(не одноядерном конечно), если грамотно использовать параллельные вычисления.
P.S. openscad прикольная штука) тема у тебя интересная, я считал осесимметричную оболочку, правда до колебаний не дошёл

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение06.07.2013, 02:41 


11/01/12
50
Fred в сообщении #743148 писал(а):
А Cuda - это правильный интерес, перспективный, не надо тут скромничать. Cuda создана для параллельных вычислений, а это очень важно в программировании МКЭ, что сказать тут, можно раз 5-6 быстрей решить одну и туже задачу на одном и том же компе(не одноядерном конечно), если грамотно использовать параллельные вычисления.


Всё-таки я почитал мнения людей о CUDA, и признаю необходимость крайней осторожности с этой технологией. Ее разработала Nvidia для того, чтобы математические вычисления производить не на процессоре компьютера, а на видеокартах Nvidia, в которых каждый шейдер будет как ядро процессора. Если в процессоре ядер от одного до четырех, то в современной видеокарте (тысяч на шесть рублей) их 64 и более, причем в компьютер можно вставить несколько видеокарт (зависит от материнки). Поэтому вычисления МКЭ можно производить быстрее не в 5-6 раз, а в 100-10000 раз!

Но беда в крайней непереносимости программы, написанной на CUDA. Во-первых, работа программы зависит от конкретной видеокарты: на одной ведет себя так, на другой немного по-другому, на третьей вообще не заработает. Например, на видеокартах AMD такие программы работать не будут вообще. Во-вторых, программа зависит от наличия драйвера к видеокарте в используемой ОС, то есть в современных Windows и Mac OS программа заработает, а в старых Windows, Linux и прочих малопопулярных ОС не будет драйвера. В третьих работа программы зависит от качества драйвера видеокарты: с проверенным драйвером 2010 года программа работает нормально, а с глючным драйвером 2013 показывает глюки. В-четвертых, зависимость от чипсета, процессов обмена информацией между процессором и видеокартой, прочими компонентами материнки. Всё это в совокупности делает разработку программ на CUDA очень утомительной и затратной: нужно тестировать программу на всех видеокартах со всеми ревизиями драйверов, в сочетании со всеми чипсетами, на всех вариантах процессоров, на всех ОС. Поэтому на CUDA сейчас пишут программы только для своего собственного ПК, не думая об их распространении на другие ПК. Либо пишут программы строго для определенных брендов, например, для бренда Tesla. Либо отказываются от прелестей CUDA и пишут программы для исполнения на обычных процессорах, пусть и многоядерных.

В моем ноутбуке стоит видеокарта Intel HD 3000, значит, программировать на CUDA я не смогу и программы на CUDA не запустятся. Я могу поиграться с программирование на OpenCL, хотя и здесь встречу море трудностей и ограничений. Запасаюсь попкорном и наблюдаю дальше за развитием CUDA и ее конкурентами.

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение06.07.2013, 09:46 
Аватара пользователя


05/01/13

3968
meteese в сообщении #743751 писал(а):
Во-вторых, программа зависит от наличия драйвера к видеокарте в используемой ОС, то есть в современных Windows и Mac OS программа заработает, а в старых Windows, Linux и прочих малопопулярных ОС не будет драйвера.

Для Linux есть драйвер CUDA:

NVIDIA CUDA Getting Started Guide for Linux

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение21.07.2013, 23:39 


15/04/12
50
CUDA классная штука, но под нее долго адаптировать код. Есть компиляторы которые C переводят в CUDA заменяя соответственно С/С++ на CUDA.

Для справки - видеокарты NVIDIA менее производительные чем видеокарты ATI которые позволяет выполнять код в видеокартах аналогично. Например видеокарта RADEON 4870x2 обладает мощностью для вычислений одинарной точности 2 Террафлопа (в 90х такая мощность мало кому снилась) и стоит не дороже 5000 руб. Видеокарта HD 7990 (двухпроцессораная) стоит 30 000 руб, но обладает мощностью 2x 3789 , 2x 947, т.е. более 7 террафлоп одинароной и почти два террафлопа двойной точности.

http://radeon.ru/reference/cardtable/

GTX TITAN от NVIDIA обладает существенно меньшей мощностью и большим энергопотреблением чем RADEON HD 7990. Меньшая мощность и большее энергопотреблоение это то чем характеризуются ВСЕ продукты NVIDIA в сравнении с продуктами ATI RADEON, т.к. у NVIDIA один и тот-же процессор предлагается в трех решениях - одно для игр (GTX), второе для инженерной графики (QUADRO) и третье для вычислений (TESLA) и соответственно в видеокартах для игр (GTX) вычисления с двойной точностью NVIDIA специально уменьшает в отличии от TESLA.

Поэтому я бы рекомендовал не писать код под CUDA а писать на OpenCL (ATI) и однозначно использовать видеокарты, причем, марки ATI RADEON.

Особенно я бы не рекомендовал писать код под XEON PHI - код пишется быстро, но мощность маленькая (1 Террафлоп), а цена космическая (больше 3000 $) ...

-- 22.07.2013, 00:43 --

meteese


Цитата:
В моем ноутбуке стоит видеокарта Intel HD 3000, значит, программировать на CUDA я не смогу и программы на CUDA не запустятся.


Есть фирменный эмулятор, можно программировать и тестировать, но скорости не будет хотя код будет выполнятся. Но в любом случае, что такое ноутбук для таких дел... винты медленные (БД с данными будут тормозить), ОЗУ сильно не увеличить, шина медленная... настольная машина подходит лучше.

В старых драйверах CUDA распарралелить код на 2 и более видеокарты было нельзя, как сейчас с этим не знаю...

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение01.12.2013, 12:42 


01/12/13
1
Нашел эту тему случайно из гугла...
Я считаю, что как раз-таки разработка мкэ-решатели с закрытым кодом не смогут окупиться в ближайшие n лет. Для достижения чего-нить отдаленно похожего на настран с ансисом нужно огромное кол-во челочасов. И кто за это дело будет платить? Где взять сотню энтузиастов, готовых вкалывать в надежде на какие-то там отдаленные перспективы? Ответ - нигде, единственный вар-т это щедро платить этим математикам и программистам за проделанную работу.
Опен сорс же тут выглядит много более привлекательно. Народа, что интересуется мкэ прямо или косвенно в мире я думаю предостаточно...Кто прожку на сях напишет, кто над оптимизацией хранения матричных данных в памяти задумается... Для начала нужно иметь какую-нить поделку, пусть и на основе других фреймворков, и несколько человек, которым реально интересно этим заниматься... А дальше общий аккаунт на любом репозитарии, рассказать о проекте на тематических форумах и тд, и народ сам потянется... В этом-то и основной плюс опен сорса - любой интересующийся может качать/комитить/выкладывать свои наработки по теме. Люди приходят, люди уходят... А код никуда не девается. Если за всем этим следить, и самому принимать деятельное участие в исправлениях/написании кода... То тут надежда есть, что проект в итоге превратиться во что-то дельное. А на разработку коммерческого МКЭ ПО никто и денег не даст, потому что уже есть настран и ансис, и их цена по сравнению с затратами на разработку нового пакета это просто копейки. Только если с госфинансированием....
По поводу cuda и openCL - там вся фишка в архитектуре видеоядра и способе исполнения кода... Если кратко - код автоматически исполняется в многопоточном режиме, в отличие от ЦПУ, где очень остро стоит вопрос каким образом будем разбивать и синхронизировать потоки. Из минусов - количество памяти на gpu не такое уж чтобы и высокое (~1-2 gb), поэтому если для решения задачи нужно хранение больших объемов данных, то производительность при использовании gpu сильно падает. Ansys последних версий имеет поддержку cuda на некоторых решателях. В сети много pdf'ок лежит со сравнительными тестами без/с gpu, прирост иногда очень даже значительный. Неясно правда, почему видеокарты от ati они обошли стороной

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение07.12.2013, 23:54 


02/04/11
3
Nick_90 в сообщении #794886 писал(а):
... Для достижения чего-нить отдаленно похожего на настран с ансисом нужно огромное кол-во челочасов. И кто за это дело будет платить? Где взять сотню энтузиастов, готовых вкалывать в надежде на какие-то там отдаленные перспективы? Ответ - нигде, единственный вар-т это щедро платить этим математикам и программистам за проделанную работу.
Опен сорс же тут выглядит много более привлекательно. Народа, что интересуется мкэ прямо или косвенно в мире я думаю предостаточно...Кто прожку на сях напишет, кто над оптимизацией хранения матричных данных в памяти задумается... Для начала нужно иметь какую-нить поделку, пусть и на основе других фреймворков, и несколько человек, которым реально интересно этим заниматься... А дальше общий аккаунт на любом репозитарии, рассказать о проекте на тематических форумах и тд, и народ сам потянется... В этом-то и основной плюс опен сорса - любой интересующийся может качать/комитить/выкладывать свои наработки по теме. Люди приходят, люди уходят... А код никуда не девается. Если за всем этим следить, и самому принимать деятельное участие в исправлениях/написании кода... То тут надежда есть, что проект в итоге превратиться во что-то дельное. А на разработку коммерческого МКЭ ПО никто и денег не даст, потому что уже есть настран и ансис, и их цена по сравнению с затратами на разработку нового пакета это просто копейки. Только если с госфинансированием....

Все это так, да не совсем. Например, известная программа ELMER (Open Source) создана на деньги финского правительства для университетов и теперь развивается самостоятельно. Также и Calculix первоначально создан програмистами немецкой фирмы (за деньги) и далее развивается ими (уже, похоже, просто из интереса).
Проблема, самая главная, на мой взгляд, это языковой барьер!
Для меня же актуальна конкретная задача. Как с помощью бесплатной программы создать модель и рассчитать напряженно деформированное состояние (простая статическая модель)? Собственно говоря, может, кто-нибудь знает ресурсы (форумы, на русском или английском) по Elmer или литературу?

 Профиль  
                  
 
 Re: Метод конечных элементов. Русская и свободная программа.
Сообщение16.04.2014, 23:46 


16/04/14
4
Добрый день.
Имею опыт разработки собственной мкэ-программы (ERTFEM), с нуля без использования каких-либо библиотек или решателей. Конечно, по сравнению с замахом на рубль в этой теме моя прога похожа на студенческие работы, но свои небольшие задачи решает. Висит уже года три в allsoft.ru, стоит копейки, хоть бы кто заплатил бы хоть рубль - никого. Хоть бы для смеха)). Хоть бы кто скачал совершенно бесплатную версию
http://dfiles.ru/files/beqaw5j7b одна модель
http://dfiles.ru/files/v7huq294f полнофункциональная 30-дневная, которая мало чем отличается от платной - никого.
Страница проекта http://ertfem.bl.ee/.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 69 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: tolstopuz


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group