Skip to content

Лабы по ЧММ (решение краевых задач Дирихле, Неймана, Синьорини, 1d FEM, 2d FEM)

Notifications You must be signed in to change notification settings

OrionApplePie/Mathematical-physics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Репозиторий для лабораторных работ и РГР по предметам "Численное моделирование в математических пакетах" и пр.

Установка

Для запуска необходимы пакеты numpy, matplotlib, scipy. установить нужные пакеты так:

pip install --user numpy scipy matplotlib

В Windows проще всего установить стек Anaconda.

В папке res находятся ресурсы с теорией: книги и пр. а также ссылки.

(лабы будут добавляться по мере написания.)


Лабораторная работа №1. Одномерная задача.

Реализованы:

  • решение задачи методом конечных элементов в одномерном случае
  • Метод Зейделя решения СЛАУ (Seidel method)
  • Метод прогонки (Tridiagonal matrix algorithm - TDMA)

Лабораторная работа №2. Решение задачи Дирихле в двумерном случае методом конечных элементов, область - единичный квадрат.

Реализован обход области по узла и сборка глобальной матрицы жёсткости. Т.к. область квадратная - то реализация тривиальная.


...

РГР "Модельная Задача Синьорини"

(код находится в папке lab-04)

РГР "Плоская задача теории упругости" (2 курс, 3 семестр)

(код к ргр находится в папке lab-05)

Собственно, плоская задача теории упругости, область -- квадрат. В подпапке integrals - Jupyter ноутбук с вычислениями интегралов КЭ. Запускать через Анаконду, требует SymPy.

Как запустить в Windows

  1. Установить интерпретатор Python 3 с добавлением в переменную Path

  2. Проверить, запускается ли Python из командной строки, набрав в ней:

    python
    

    должен запуститься интерактивный режим Python (там же отобразиться версия Python)

  3. Для удобства работы можно установить эмулятор терминала -- Cmdr, версию с Git for Windows.

  4. Установить virtualenv и virtualenvwrapper-win (инструкция здесь, или здесь или здесь).

  5. Склонировать проект. Для этого в терминале перейти в папку отведенную для хранения проектов и выполнить:

    git clone https://github.com/OrionApplePie/Mathematical-physics.git
    
  6. Создать виртуальное окружения для этого проекта. Для этого перейти в каталог содержащий репозиторий и выполнить

    mkvirtualenv -a Mathematical-physics math-phys
    

    где math-phys - имя для виртуального окружения.

  7. Установить зависимости:

    pip install -r requirements.txt
    
  8. Прейти в нужную папку с лабораторной/РГР и запустить main.py:

    python main.py
    

TODO

  • Добавить картинок области, КЭ

Лаб. 5

(решение пока не получено)

Задача теории упругости. Без учета трения.

При сборке списка узлов - граничные узлы верхней и нижней границ игнорируются, т.к. на этих границах = жесткое закрепление и перемещения равны нулю. Эти узлы не нумеруются. Также не учитываются функциями вычисления типа узла и типа соседства узлов.

P1, P2 в уравнениях -- компоненты поверхностной силы. На стороны слева и справа (это все граница Гамма1) действуют поверхностные силы -- сжимают тело. Т.е. на левой границе задается, например P = (100, 0), а на правой - P = (-100, 0).

TODO:

  • проверить интеграл по границе в п.ч.
  • проверить значения вычисленных интегралов, особенно комбинации с граничными узлами.

About

Лабы по ЧММ (решение краевых задач Дирихле, Неймана, Синьорини, 1d FEM, 2d FEM)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published