Расчет плоских ферм и арок. Расчетная схема фермы с принятой нумерацией узлов и стержней, страница 4

6. Инициализация внешних связей опор.

7. Создание объектов внешних сил (выделяется динамическая память).

8. Инициализация величин сил.

Расчет.

9. Определение длин стержней по координатам их узлов.

10. Определение углов наклона стержней к горизонтальной оси 0Х по координатам их узлов.

11. Определение коэффициентов матриц для каждого стержня в глобальной системе координат.

12. Создание глобальной матрицы жесткости всей системы (выделяется динамическая память) и обнуление ее элементов.

13. Заполнение глобальной матрицы жесткости всей системы.

14. Создание матрицы-столбца внешних сил (выделяется динамическая память) и обнуление его элементов.

15. Заполнение матрицы-столбца внешних сил.

16. Учет внешних связей.

17. Создание матрицы-столбца перемещений узлов по направлениям, по которым отсутствуют внешние связи (выделяется динамическая память) и обнуление его элементов.

18. Определение перемещений узлов решением системы уравнений в матричном виде методами LU-разложения и Гаусса.

19. Создание матрицы-столбца перемещений узлов (выделяется динамическая память).

20. Заполнение матрицы-столбца перемещений узлов.

21. По найденным перемещениям узлов вычисление усилий в стержнях.

Вывод результатов расчета в файл.

22. Запись в файл таблиц перемещений узлов и усилий в элементах.

Завершение работы программы.

23. Освобождение  динамически выделенной памяти (выделенной в пунктах 1, 3, 7, 12, 14, 17, 19).

Потенциально программа составлена с расчетом ее использования для любого числа элементов. В действительности область применения программы ограничена максимальным индексом массива в среде Windows (примерно 4.109) и в значительно большей степени неэффективным для решения больших систем уравнений методом LU-разложения (пункт 18 алгоритма).

В качестве исходных возьмем данные тестового примера № 1.

Создайте проект Ferma в среде VC++. Для это, если у Вас VC++ 6.0, необходимо:

1. Запустить VC++ 6.0;

2. В меню программы VC++ выбрать пункт "File->New...";

3. В появившемся диалоговом окне выбрать закладку "Projects", на ней выбрать "Win32 Console Application". В окне редактирования с названием "Project name:" ввести "Ferma". Нажать кнопку "OK";

4. В следующем появившемся диалоговом окне выбрать "A simple application.";

5. Нажать кнопку "Finish", а в следующем диалоговом окне нажать кнопку "OK".

В результате этих действий будет создан проект с именем Ferma, который будет содержать файлы:

- Ferma.cpp;

- StdAfx.cpp;

- StdAfx.h;

- ReadMe.txt.

Добавьте в проект к трем существующим файлам новые семь файлов:

- Solve.cpp;

- Node.cpp;

- Rod.cpp;

- Force.cpp;

- Node.h;

- Rod.h;

- Force.h.

Каждый из файлов добавляется выбором в меню программы VC++ пункта "Project->Add To Project->New...", выбором закладки "Files", выбором на этой закладке "C++ Source File" и вводом в окне редактирования с названием "File name:" названия одного из добавляемых перечисленных выше файлов.

Назначение файлов проекта Ferma. Файлы реализации (порядок перечисления файлов может не совпадать с VC++):

- Ferma.cpp - файл с главной функцией main(). Здесь находится "ядро" алгоритма программы;

- Solve.cpp - решение системы уравнений. Функции LUDecomposition() - LU-разложение и Singular() - вспомогательная и используется для извещения пользователя в случае, если глобальная матрица жесткости фермы является нулевой или положительно неопределенной, то есть решение не может быть найдено;

- Node.cpp - реализация класса узла. Переменные класса и его функции;

- Rod.cpp - реализация класса стержня. Переменные класса и его функции;

- Force.cpp - реализация класса внешней силы. Переменные класса и его функции;

- StdAfx.cpp - вспомогательный файл.

Файлы заголовков:

- Node.h - объявление класса узла. Объявление переменных и функций класса;

- Rod.h - объявление класса стержня. Объявление переменных и функций класса;

- Force.h - объявление класса внешней силы. Объявление переменных и функций класса;

- StdAfx.h - вспомогательный файл;

- ReadMe.txt - вспомогательный файл.

Всего одиннадцать файлов.