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