Репозиторий для лабораторных работ и РГР по предметам "Численное моделирование в математических пакетах" и пр.
Для запуска необходимы пакеты numpy, matplotlib, scipy. установить нужные пакеты так:
pip install --user numpy scipy matplotlib
В Windows проще всего установить стек Anaconda.
В папке res находятся ресурсы с теорией: книги и пр. а также ссылки.
(лабы будут добавляться по мере написания.)
Реализованы:
- решение задачи методом конечных элементов в одномерном случае
- Метод Зейделя решения СЛАУ (Seidel method)
- Метод прогонки (Tridiagonal matrix algorithm - TDMA)
Лабораторная работа №2. Решение задачи Дирихле в двумерном случае методом конечных элементов, область - единичный квадрат.
Реализован обход области по узла и сборка глобальной матрицы жёсткости. Т.к. область квадратная - то реализация тривиальная.
...
(код находится в папке lab-04)
(код к ргр находится в папке lab-05)
Собственно, плоская задача теории упругости, область -- квадрат. В подпапке integrals - Jupyter ноутбук с вычислениями интегралов КЭ. Запускать через Анаконду, требует SymPy.
-
Установить интерпретатор Python 3 с добавлением в переменную Path
-
Проверить, запускается ли Python из командной строки, набрав в ней:
python
должен запуститься интерактивный режим Python (там же отобразиться версия Python)
-
Для удобства работы можно установить эмулятор терминала -- Cmdr, версию с Git for Windows.
-
Установить virtualenv и virtualenvwrapper-win (инструкция здесь, или здесь или здесь).
-
Склонировать проект. Для этого в терминале перейти в папку отведенную для хранения проектов и выполнить:
git clone https://github.com/OrionApplePie/Mathematical-physics.git
-
Создать виртуальное окружения для этого проекта. Для этого перейти в каталог содержащий репозиторий и выполнить
mkvirtualenv -a Mathematical-physics math-phys
где math-phys - имя для виртуального окружения.
-
Установить зависимости:
pip install -r requirements.txt
-
Прейти в нужную папку с лабораторной/РГР и запустить main.py:
python main.py
- Добавить картинок области, КЭ
(решение пока не получено)
Задача теории упругости. Без учета трения.
При сборке списка узлов - граничные узлы верхней и нижней границ игнорируются, т.к. на этих границах = жесткое закрепление и перемещения равны нулю. Эти узлы не нумеруются. Также не учитываются функциями вычисления типа узла и типа соседства узлов.
P1, P2 в уравнениях -- компоненты поверхностной силы. На стороны слева и справа (это все граница Гамма1) действуют поверхностные силы -- сжимают тело. Т.е. на левой границе задается, например P = (100, 0), а на правой - P = (-100, 0).
TODO:
- проверить интеграл по границе в п.ч.
- проверить значения вычисленных интегралов, особенно комбинации с граничными узлами.