2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Метод конечных элементов ореn source
Сообщение25.03.2008, 12:19 


17/03/08
40
МИФИ, каф. Прикладная математика.
Расскажите, кто сталкивался, какой открытый код проверенный и его стоит использовать?

 Профиль  
                  
 
 Свободный софт для конечных элементов
Сообщение25.03.2008, 18:43 


25/03/08
6
Добрый день!

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

 Профиль  
                  
 
 
Сообщение25.03.2008, 19:21 


17/03/08
40
МИФИ, каф. Прикладная математика.
Спасибо большое за статью, очень полезно!

Мне нужно решать задачу электростатики 3D, встраивать модуль этого решения в свою программу, я так понял, что мне больше подойдёт GetDP или Deal.II, правильно?

А Вы сами писали МКЭ, как находите, это неблагодарный труд при наличии подобных открытых проектов?
Как оцените производительность этих библиотек?

Есть ещё векторный МКЭ. Имеет ли смысл реализовывать его самому при таком положении дел с МКЭ, как считаете?


Тему создал после того, как у меня разбежались глаза вот здесь - http://freshmeat.net/search/?q=finite+e ... x=0&Go.y=0
может, для Вас это будет интересно.

 Профиль  
                  
 
 
Сообщение25.03.2008, 20:29 


25/03/08
6
GetDP видимо подойдёт и позволит сократить время написания программы (если вообще способен решить Вашу задачу). Я сам GetDP не использовал (к моим задачам он увы не подходит), но использовал идейно похожий на него FreeFEM++. Очень приятно получать решение лишь сформулировав задачу, да число строк кода сокращается на порядок, если не на два, но производительность расчётной программы страдает. FiPy тоже пробовал, на удивление быстр (медленнее, чем аналогичные программы на си/фортране, конечно), но далеко не для всего применим.

Deal.II библиотека универсальная. Писать придётся на C++ и перед этим дольше читать документацию и примеры. Работать будет скорее всего быстрее. Я пробовал использовать, в целом весьма понравилось. LibMesh должна быть примерно такой же быстрой (есть знакомый, её использующий, доволен). GetFEM++ на скорость не проверял (меня в нём Python-интерфейс интересовал прежде всего).

Спасибо за ссылку на Freshmeat. Кое-что оттуда надо будет посмотреть повнимательнее и возможно включить в обзор.

P.S. Сам я реализовывал методы вручную с нуля и КР, и КЭ. И согласен с Вами, что в целом это было неэффективно потраченное время. Даже если получалось достичь большей производительности, затраты времени на разработку были слишком большие. Как результат изучения того, что уже есть — этот обзор.

 Профиль  
                  
 
 
Сообщение26.03.2008, 10:42 


17/03/08
40
МИФИ, каф. Прикладная математика.
Спасибо за ценный опыт! Представляется, что производительность - один из основных параметров, которые имеет смысл описать в Вашем обзоре.

 Профиль  
                  
 
 
Сообщение26.03.2008, 16:16 


17/03/08
40
МИФИ, каф. Прикладная математика.
Не могу уловить один момент связанный с распределёнными вычислениями в deal.lI и libMesh. Не можете рассказать, в чём отличия между ними, а то пока я увидел, что один для параллельных машин с распределённой памятью, другой для распределённых кластеров.
В чём разница слабо улавливаю, не подскажете?

Добавлено спустя 1 час 6 минут 54 секунды:

ни deal.II ни libMesh не работают нормально под Windows, как я понял, получается, что универсальных библиотек не со встроенным языком нет?

 Профиль  
                  
 
 
Сообщение27.03.2008, 13:07 


25/03/08
6
Производительность вещь очень тонкая, и очень зависит от задачи.

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

В случае LibMesh и Deal.II как раз недавно в их списках рассылки их разработчики обсуждали между собой этот вопрос. Смотрите соответственно:

http://ganymed.iwr.uni-heidelberg.de/pi ... 02342.html
и
http://www.mail-archive.com/libmesh-use ... 00126.html

Распараллелить решение линейной системы по MPI могут обе библиотеки. Точнее не они сами, а используемая ими обеими PETSc. Параллельная сборка линейной системы на SMP-машине возможна в deal.II, но буквально недавно появилась (появляется) и в LibMesh (находится в стадии разработки/тестирования). Совмещение же SMP-паралллизма c MPI-параллелизмом (с использованием PETSc) уже довольно сложно, потому что PETSc не является thread-safe библиотекой.

Разница, как я понимаю, сейчас больше лежит в наборе поддерживаемых элементов. В качестве документации и примеров. В личном вкусе, синтаксис какой библиотеки удобнее (нравится больше). Как я понимаю, LibMesh сейчас не умеет делать hp-адаптацию, а deal.II умеет. Зато с новой ParallelMesh LibMesh позволяет хранить только часть сетки на каждом из узлов кластера (deal.II пока так не умеет).

Обе библиотеки вроде бы работают и в Windows+CYGWIN. Но пользоваться GNU/Linux конечно проще (и быстрее;). Здесь список ОС и компиляторов на которых собирается и работает deal.II: http://www.dealii.org/developer/readme.html А здесь списко компиляторов, которыми собирается LibMesh: http://libmesh.sourceforge.net/installation.php Как можно видеть, почти все основные *NIX-системы поддерживаются.

Здесь я бы также не забывал и о GetFEM++, которая занимает ту же нишу высокоуровневой FEM-библиотеки для C++. Вот как сами разработчики GetFEM++ сравнивают себя с Deal.II:
http://home.gna.org/getfem/getfem_faq.html

Вкратце: Deal.II может работать только с отрезками/четырёхугольниками/шестигранниками (у LibMesh выбор шире), но зато поддерживает параллельность, есть возможности создавать и адаптировать сетки, поддерживается hp-адаптация; А в GetFEM++ зато много уже готовых, заранее запрограммированных методов, есть интерфейсы для Matlab и Python, возможность решать задачи любой размерности (не только 1-2-3D), но сетки надо генерировать внешними программами и никакой параллельности нет.

 Профиль  
                  
 
 Оpen Source для МКЭ + МГЭ (FEM+BEM)
Сообщение29.04.2008, 11:29 


17/03/08
40
МИФИ, каф. Прикладная математика.
Пожалуйста, поделитесь опытом использования подобных продуктов или хотя бы назовите их!

 Профиль  
                  
 
 ОО библиотека конечных элементов
Сообщение25.11.2008, 21:42 


26/11/06
76
Нужно разработать объектно - ориентированную библиотеку конечных элементов. Конечные элементы будут применяться для расчета строительных конструкций. Прежде чем что - либо разрабатывать нужно спроектировать, а именно представить как будет выглядеть иерархия КЭ (Диаграмма классов КЭ). КЭ, которые будут использоваться в программе:
стержневые, пластинчатые, Объемные КЭ, оболочечные и др...
На вершине иерархии будет находится абстрактный элемент, с наиболее общими свойствами и методами, присущими всем КЭ. Где можно взять описание класса такого элемента?
2-ой уровень тоже частично абстрактен. Например класс - Универсальный стержневой элемент - Какие свойства и методы он должен инкапсулировать в себе, чтобы однозначно определять любой стержневой элемент, будь то балка, ферма, рама или любой другой стержневой элемент.. Тоже самое для пластин и объемных КЭ.
3 - ий уровнень иерархии это уже конкретные КЭ: плоский(2D) КЭ рамы, 3-х узловой КЭ пластины, и .т.д.
Где можно найти такую информацию? Может - кто нибудь занимался чем - то подобным?

 Профиль  
                  
 
 Re: Метод конечных элементов ореn source
Сообщение29.11.2009, 09:44 


02/09/06
33
Здравствуйте!
Спасибо автору за "обзор свободного софта для решения уравнений в частных производных"!

Кто-нибудь пользовался для расчета на основе МКЭ инструментами Diffpack (на С++) (_www.diffpack.com)? Я так понимаю раньше Diffpack был бесплатным проектом, сейчас платный. Цитата взята из файла _http://www.thermophysics.ru/pdf_doc/diffpack_ru.pdf
Цитата:
Diffpack является объектно-ориентированным окружением, работающим под С++, предназначенным для решения дифференциальных уравнений в частных производных. Он представляет собой совокупность текстов программ, написанных на языке C++, и библиотек, соответствующих основным принципам объектно-ориентированного программирования, которые позволяют с минимальными затратами времени создавать консольные приложения или приложения Windows для решения уравнения или системы уравнений в частных производных.
Diffpack реализует новый подход к решения задач математической физики и обеспечивает выход на новый уровень моделирования. Структура Diffpack, позволяющая пользователю самому задавать решаемое уравнение или систему дифференциальных уравнений в частных производных, обеспечивает высокую гибкость его использования.

Если это частично верно и если есть возможность создавать «свои» модели и нестандартные уравнения писать самому в PDE форме и в слабой форме (weak form), то думаю что это сильный и универсальный инструмент. Радует что в продаже на английском есть две книги по Diffpack, автор Hans Petter Langtangen.
Кто-нибудь пользовался этим Diffpack? Какие впечатления? Есть ли в России коллективы пользующиеся Diffpack?
Спасибо.

 Профиль  
                  
 
 Re: Метод конечных элементов ореn source
Сообщение07.02.2011, 18:33 


03/11/10
32
Как можно сделать триангуляцию конечным элементом второго порядка? Какие есть для этого алгоритмы, пакеты и прочее.

 Профиль  
                  
 
 Re: Метод конечных элементов ореn source
Сообщение12.02.2011, 16:22 


03/11/10
32
Некому ответить что ли?

 Профиль  
                  
 
 Re: Метод конечных элементов ореn source
Сообщение17.02.2011, 10:24 


01/12/06
463
МИНСК
triangle.exe

 Профиль  
                  
 
 Re: Метод конечных элементов ореn source
Сообщение18.02.2011, 16:30 


03/11/10
32
Андрей123 в сообщении #413932 писал(а):
triangle.exe

ХЕРНЯ, А НЕ ПРОГРАММА.

 Профиль  
                  
 
 Re: Метод конечных элементов ореn source
Сообщение21.02.2011, 17:00 


01/12/06
463
МИНСК
Что именно в ней такого "херового"?

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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