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

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




На страницу 1, 2  След.
 Ищу специалиста по методу конечных элементов!
Ищу человека, который мог бы помочь мне с написанием программы, использующей метод конечных элементов. Мой email: tatjana-kos@yandex.ru

 
Вот я, например, пишу программы по МКЭ (на фортране; в том числе для параллельных машин).
Что конкретно требуется? Но я не в Москве.

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

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

Самая новая и достаточно полная - Это Зинкевич 5-е издание, на английском (Zienkiewicz O.C., Taylor R.L. Vol. 1. The finite element method. The basis). Там есть практически все, начиная от элементов и заканчивая восстановлением градиентов решения. Книга есть на этом сайте (http://lib.mexmat.ru/books/668).

Генераторы сеток - Handbook of Grig Generation, есть в инете в электронном виде, весит 107MB. Есть неплохие подборки статей и ссылок на литературу по генерации сеток (http://www-users.informatik.rwth-aachen.de/~roberts/meshgeneration.html, http://www.andrew.cmu.edu/user/sowen/mesh.html).
По триангуляции Делоне достаточно полно есть на русском - Скворцов А.В. ("Триангуляция Делоне и ее применение", а также в других статьях этого автора).
Также есть в свободном доступе готовый генератор сетки Geompack++, но он идет без исходников, готовой отдельной программой. Все сводится к тому, что нужно из геометрии задачи в своей программе создать исходный файл для Geompack++, запустить его, а потом прочитать файл сетки, созданной Geompack++. В нем есть Делоне и Advancing Front, не доконцца доработаные и немного корявые, но на первое время для отладки расчетного ядра сгодится:)).

Хранение матриц и решатели СЛАУ - есть разнообразные библиотеки, я бы посоветовал MTL и ITL. На мой взгляд, для решения СЛАУ наиболее применим метод сопряженных градиентов (CG) с предобуславливанием неполным разложением Холесского (Incomplete Cholessky Preconditioned Conjaguate Gradient, ICPCG), который используется в комерческих программах.

Для ускорения процесса решения СЛАУ и распараллеливания можно применить метод геометрической декомпозиции (Domain Decomposition). Тут только самая проблема как грамотно разбить матрицу на оптимальное количество частей. Наиболее шустрые алгоритмы разбинения - многоуровневые (Multilevel), есть хороший сайт одного из авторов алгоритмов - Karypis'a - с подборкой его статей, там же есть в свободном доступе его набор программ для разбинения METIS с исходными кодами.

Построение графиков - здесь лучше заглянуть на CodeProject, там есть есть хорошая подборка графопостроителей 2D-3D, на основе чего можно и свое написать.

Задание геометрии - также есть библиотеки, один Open CASCADE чего стоит. Но самое простое, на мой взгляд, это просто написать (или найти готовые) библиотеки чтения DXF-файлов (есть описание форматов файлов на сайте Autodesk) или фалов CATIA, и доделать их для себя.

 
Зинкевич 5-е издание...
Ух-ты! Спасибо за книжку. Стоит она конкретно.

Для генерации узлов сетки можно использовать Triangle (исходники открыты http://www.cs.cmu.edu/~quake/triangle.html).
Для визуального построения - компонент sgaph для Delphi5 или OpenGL

 FEM
And you may use Femlab. It can do all you write about.

 
Уважаемый VLarin, не могли бы Вы более подробнее объяснить сопряжение расчетного алгоритма с указанными сеточными генераторами. Nicola_Petrov"собака"yandex"точка"ru (Защита от спамеров)

---
Странная защита, раз Вы в нике пишете мейл неискаженным. Исправляю. (dm)

 
Смотря, что именно.
Если сопряжения сеточных генераторов в целом к расчетному ядру, то это одно. Если сопряжение с GeomPack++ - то тут все просто. В мануале к нему изложен формат его входных и выходных файлов. Входные - геометрия (точки, линии и арки, их соединение в циклы (loop)), тип сетки, параметры сетки. Геометрия должна быть задана в виде набора loop'ов, огранивающих подобласти задачи, линии и арки в каждом цикле должны идти друг за другом в порядке против часовой (в мануале все описано).
Выходные - узлы и элементы.
В своей программе создаем входной файл, запускаем отдельным процессом файл программы, ждем когда сетка сгенерится, считываем файл сетки, затем убиваем промежуточные файлы.

 
Понятно. Скажите, пожалуйста, а Вы не пробовали для этих целей к примеру ICEM CFD - коммерческий пакет?
Мне интересно сопряжение сеточного генератора к расчетному ядру. А вообще можно во что-нибудь конвертить выходные файлы Geompack+?
P.S. Я неправильно указал почту первый раз Nicola-Petrov[a]yandex[точка]ru

 
Geompack++ - это примитивный генератор 2D и 3D, и на мой взгляд его можно использовать только для отладки своей программы. А для Ansys'a - там своих заточенных под него генераторов вроде как хватает.
А так - выходные файлы Geompack++ можно прочитать и потом конвертнуть во что-нибудь (написать простой конвертер ручками), но как я уже говорил - сетку он строит примитивную и для серьезных вещей его лучше не использовать.

 
Кто знает в какой программе лучше подготавливать геометрию для 3D моделей, написать самому 3D редактор на мой взгляд довольно трудно?

 любой CAD
Anonymous писал(а):
Кто знает в какой программе лучше подготавливать геометрию для 3D моделей, написать самому 3D редактор на мой взгляд довольно трудно?


ДАРАГОЙ!!!

Возьми ты любой CAD (Solid Works/Edge, UG, Pro/E) и сваргань что надо.

Иван ФМФ.

 
А кто-нить занимался решением конвективно-диффузионных задач(лучше, с конвективным преобладанием) методом КЭ?
если да, то интересует:
1) как формировать матрицу масс, при условии, что сомножитель неизвестного вектора не константа, а переменное.
2) как аппроксимировать конвективные члены.

Если матрица масс была получена методом конечных объемов, разностей или разностей/элементов(МКО, МКР, МКР/Э), напишите, тожа будет полезно.

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

 
2udaw
Для таких задач можно использовать расщепление по физическим процессам:
Пусть есть задача вида
\partial U/ \partial t} =k \Delta U + D \vec{v}\nabla U \\
U(0)=U_0

Сначала решаете для t от нуля до tau задачу
\partial V / \partial t = k \Delta V\\
V(0)=U_0
а потом
\partial U / \partial t = D \vec{v}\nabla U\\
U(0)=V(tau) (!!!)
Это задачи в дифференциальной постановке. Аппроксимируйте каждую как удобно -
шаги по времени можно выбрать разные.

Что касается формирования матрицы СЛАУ в случае переменных коэффициентов - коэффициенты можно аппроксимовать линейно, представить как комбинацию L_k. Для вычисления слагаемых вида (L_k,L_k) используйте КФ Гаусса - они есть в любом Зенкевиче. Но нужно внимательно следить за принципом максимума - может нарушаться. Возможно, проще взять их константами на каждом элементе.

А какие конкретно проблемы с конвективными членами?

 [ Сообщений: 28 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group