на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Алгоритмы параллельных процессов при исследовании устойчивости подкрепленных пологих оболочек
абота докладывалась на седьмой всероссийской конференции "Математическое моделирование и краевые задачи (ММ-2010)", проходившей 3-6 июня 2010 в г. Самара. Получила одобрение и положительные отзывы от оргкомитета и участников конференции.

Литература

1. Антонов А.С. Параллельное программирование с использованием технологии MPI - М.: Изд-во МГУ, 2004. - 71 с.

2. Бондаренко В.М., Бондаренко С.В. Инженерные методы нелинейной теории железобетона. - М.: Стройиздат, 1982. - 288 с.

3. Васильев А.Н. Самоучитель C++ с задачами и примерами - М.: Наука и Техника, 2010. - 480 с.

4. Воеводин В.В. Вычислительная математика и структура алгоритмов - М.: Изд-во МГУ, 2006. - 112 с.

5. Воеводин В.В. Математические модели и методы в параллельных процессах - М.: Наука. Гл. ред. физ. - мат. лит., 1986. - 296 с.

6. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления - СПб.: БХВ-Петербург, 2002. - 608 с.

7. Воеводин Вл.В., Жуматий С.А. Вычислительное дело и кластерные системы - М.: Изд-во МГУ, 2007. - 150 с.

8. Жгутов В.М. Математические модели и алгоритмы исследования устойчивости пологих ребристых оболочек при учете различных свойств материала // Известия Орловского гос. техн. ун-та. Серия "Строительство, транспорт". - 2007. №4. - С. 20-23.

9. Ильюшин А.А. Пластичность. М.: Гостехиздат. 1948. - 376 с.

10. Карпов В.В. Математическое моделирование, алгоритмы исследования модели, вычислительный эксперимент в теории оболочек: учеб. пособие - СПб.: СПбГАСУ, 2006. - 330 с.

11. Карпов В.В., Баранова Д.А., Беркалиев Р.Т. Программный комплекс исследования устойчивости оболочек - СПб.: СПбГАСУ, 2009. - 102 с.

12. Карпов В.В., Сальников А.Ю. Вариационные методы и вариационные принципы механики при расчете строительных конструкций: учеб. пособие - СПб.: СПбГАСУ, 2009. - 75 с.

13. Керниган Б, Ритчи Д. Язык программирования C - М.: Вильямс, 2009. - 304 с.

14. Климанов В.И., Тимашев С.А. Нелинейные задачи подкрепленных оболочек. Свердловск: УНЦ АН СССР, 1985. - 291 с.

15. Петров В.В., Овчинников И.Г., Ярославский В.И. Расчет пластинок и оболочек из нелинейно-упругого материала. - Саратов: Изд-во Сарат. ун-та, 1976. - 136 с.

16. Хьюз К., Хьюз Т. Параллельное и распределенное программирование с использованием C++ - М.: Вильямс, 2004. - 672 с.

Приложения

Приложение 1. Код программы

Main. cpp:

/*

Main. cpp

Сизов А.С. ПМ5

2010 г.

*/

// Подключение необходимых заголовочных файлов

#include "mpi. h" // библиотека mpi

#include <stdio. h>

/*

stdio. h (от англ. standard input/output header -

стандартный заголовочный файл ввода/вывода) заголовочный файл

стандартной библиотеки языка Си, содержащий определения макросов,

константы и объявления функций и типов, используемых для различных

операций стандартного ввода и вывода. Функциональность унаследована

от "портативного пакета ввода/вывода" ("portable I/O package"),

написанного Майком Леском из Bell Labs в начале 1970-х.

Функции, объявленные в stdio. h, являются весьма популярными благодаря тому,

что являясь частью Стандартной библиотеки языка Си, они гарантируют работу

на любой платформе, поддерживающей Си. Приложения на отдельных платформах

могут, тем не менее, иметь причины для использования функций ввода/вывода

самой платформы вместо функций stdio. h.

*/

#include <stdlib. h>

/*

stdlib. h - заголовочный файл стандартной библиотеки

общего назначения языка Си, который содержит в себе функции,

занимающиеся выделением памяти, контроль процесса выполнения программы,

преобразования типов и другие.

*/

#include <math. h>

/*

math. h - заголовочный файл стандартной библиотеки языка программирования С,

разработанный для выполнения простых математических операций. Большинство

функций привлекают использование чисел с плавающей точкой. Все эти функции

принимают double, если не определено иначе. Для работы с типами float и

long double используются функции с постфиксами f и l соответственно.

Все функции, принимающие или возвращающие угол, работают с радианами.

*/

#include "matrix. h"

/*

matrix. h - заголовочный файл библиотеки, содержащей определения

класса матрицы matrix, использованного в дальнейшем в программе.

Содержит объявление класса, методы для работы с ним, такие как:

произведение матрицы на матрицу;

сложение матрицы с матрицей;

выделение памяти под матрицу;

выгрузка данных;

загрузка данных;

копирование матрицы;

сравнение полученной единичной матрицы с эталоном единичной матрицы;

обращение матрицы.

*/

// Объявление переменных

double *X1, *X2, *X3, *Y1, *Y2, *Y3; // Коэффициенты аппроксимирующих // функций

double *C1, *C2; // Коэффициенты системы

int N, n, m, E;

double q, h, mu, r, Pi, mu1, Kx, Ky, R1, R2, W;

double a,b;

/*

N - количество членов в приближении по методу Ритца;

n - количество ребер по x;

m - количество ребер по y;

E - модуль упругости материала;

q - поперечная равномерно-распределенная нагрузка;

h - толщина оболочки;

mu - коэффициент Пуассона;

r - ширина ребер;

Pi - число Пи;

R1 - радиус кривизны по x;

R2 - радиус кривизны по y;

a - длина оболочки по x;

b - длина оболочки по y;

*/

// Процедуры вычисления производных функций

double sin_0 (double k, double x)

{

return sin (k * x);

}

double sin_1 (double k, double x) // первая производная

{

return k * cos (k * x);

}

double sin_2 (double k, double x) // вторая производная

{

return - k * k * sin (k * x);

}

double Fx (int k, int i, int j, double arg) // выборка произведений

{ // аппроксимирующих

switch (k) // функций для х

{

case 1:

return sin_1 (X1 [i], arg) * sin_1 (X1 [j], arg);

case 2:

return sin_0 (X1 [i], arg) * sin_0 (X1 [j], arg);

case 3:

return sin_1 (X1 [i], arg) * sin_0 (X2 [j], arg);

case 4:

return sin_0 (X1 [i], arg) * sin_1 (X2 [j], arg);

case 5:

return sin_1 (X1 [i], arg) * sin_0 (X3 [j], arg);

case 6:

return sin_0 (X2 [i], arg) * sin_0 (X2 [j], arg);

case 7:

return sin_1 (X2 [i], arg) * sin_1 (X2 [j], arg);

case 8:

return sin_0 (X2 [i], arg) * sin_0 (X3 [j], arg);

case 9:

return sin_0 (X3 [i], arg) * sin_1 (X1 [j], arg);

case 10:

return sin_0 (X3 [i], arg) * sin_0 (X3 [j], arg);

case 11:

return sin_2 (X3 [i], arg) * sin_2 (X3 [j], arg);

case 12:

return sin_2 (X3 [i], arg) * sin_0 (X3 [j], arg);

case 13:

return sin_1 (X3 [j], arg) * sin_1 (X3 [j], arg);

case 14:

return sin_0 (X3 [j], arg);

default:

return 0;

}

}

double simpsonFx (double a, double b, int k, int i, int j)

{ // метод Симпсона для х

int n = 1000;

double locI, h, xi, s1 = 0.0, s2 = 0.0, y [10000] ;

int f;

h = (b - a) / n;

xi = a;

for (f = 0; f <= 2 * n; f++)

{

y [f] = Fx (k, i,j,xi);

xi = xi + h/2;

}

locI = y [0] + y [2*n] ;

for (f = 2; f < 2*n; f = f + 2)

s1 = s1 + y [f] ;

for (f = 1; f < 2*n; f = f + 2)

s2 = s2 + y [f] ;

locI = (locI + 2.0 * s1 + 4.0 * s2) * (h / 6);

return (locI);

}

double Fy (int k, int i, int j, double arg) // выборка произведений

{ // аппроксимирующих

switch (k) // функций для y

{

case 1:

return sin_0 (Y1 [i], arg) * sin_0 (Y1 [j], arg);

case 2:

return sin_1 (Y1 [i], arg) * sin_1 (Y1 [j], arg);

case 3:

return sin_0 (Y1 [i], arg) * sin_1 (Y2 [j], arg);

case 4:

return sin_1 (Y1 [i], arg) * sin_0 (Y2 [j], arg);

case 5:

return sin_0 (Y1 [i], arg) * sin_0 (Y3 [j], arg);

case 6:

return sin_1 (Y2 [i], arg) * sin_1 (Y2 [j], arg);

case 7:

return sin_0 (Y2 [i], arg) * sin_0 (Y2 [j], arg);

case 8:

return sin_1 (Y2 [i], arg) * sin_0 (Y3 [j], arg);

case 9:

return sin_0 (Y3 [i], arg) * sin_0 (Y1 [j], arg);

case 10:

return sin_0 (Y3 [i], arg) * sin_0 (Y3 [j], arg);

case 11:

return sin_2 (Y3 [i], arg) * sin_2 (Y3 [j], arg);

case 12:

return sin_2 (Y3 [i], arg) * sin_0 (Y3 [j], arg);

case 13:

return sin_1 (Y3 [i], arg) * sin_1 (Y3 [j], arg);

case 14:

return sin_0 (Y3 [j], arg);

default:

return 0;

}

}

double simpsonFy (double a, double b, int k, int i, int j)

{ // метод Симпсона для y

int n = 1000;

double locI, h, xi, s1 = 0.0, s2 = 0.0, y [10000] ;

int f;

h = (b - a) / n;

xi = a;

for (f = 0; f <= 2 * n; f++)

{

y [f] = Fy (k, i,j,xi);

xi = xi + h/2;

}

locI = y [0] + y [2*n] ;

for (f = 2; f < 2*n; f = f + 2)

s1 = s1 + y [f] ;

for (f = 1; f < 2*n; f = f + 2)

s2 = s2 + y [f] ;

locI = (locI + 2.0 * s1 + 4.0 * s2) * (h / 6);

return (locI);

}

double C (int k, int i, int j) // коэффициэнты в ФПЭД

{

switch (k)

{

case 1:

return 2*h*simpsonFx (0.0,a,1, i,j) *simpsonFy (0.0,a,1, i,j) +2*mu1*h*simpsonFx (0.0,a,2, i,j) *simpsonFy (0.0,a,2, i,j);

case 2:

return 2*h*mu*simpsonFx (0.0,a,3, i,j) *simpsonFy (0.0,a,3, i,j) +2*mu1*h*simpsonFx (0.0,a,4, i,j) *simpsonFy (0.0,a,4, i,j);

case 3:

return - 2*h* (Kx+mu*Ky) *simpsonFx (0.0,a,5, i,j) *simpsonFy (0.0,a,5, i,j);

case 4:

return 2*h*mu*simpsonFx (0.0,a,3, i,j) *simpsonFy (0.0,a,3, i,j) +2*mu1*h*simpsonFx (0.0,a,4, i,j) *simpsonFy (0.0,a,4, i,j);

case 5:

return 2*h*simpsonFx (0.0,a,6, i,j) *simpsonFy (0.0,a,6, i,j) +2*mu1*h*simpsonFx (0.0,a,7, i,j) *simpsonFy (0.0,a,7, i,j);

case 6:

return - 2*h* (mu*Kx+Ky) *simpsonFx (0.0,a,8, i,j) *simpsonFy (0.0,a,8, i,j);

case 7:

return - 2*h* (Kx+mu*Ky) *simpsonFx (0.0,a,9, i,j) *simpsonFy (0.0,a,9, i,j);

case 8:

return - 2*h* (mu*Kx+Ky) *simpsonFx (0.0,a,8, i,j) *simpsonFy (0.0,a,8, i,j);

case 9:

return 2*h* (Kx*Kx+2*mu*Kx*Ky+Ky*Ky) *simpsonFx (0.0,a,10, i,j) *simpsonFy (0.0,a,10, i,j) +pow (h,3) /12

* (2*simpsonFx (0.0,a,11, i,j) *simpsonFy (0.0,a,10, i,j) +2*mu*simpsonFx (0.0,a,12, i,j)

*simpsonFy (0.0,a,12, i,j) +2*mu*simpsonFx (0.0,a,12, i,j) *simpsonFy (0.0,a,12, i,j) +2*simpsonFx (0.0,a,10, i,j)

*simpsonFy (0.0,a,11, i,j) +8*mu1*simpsonFx (0.0,a,13, i,j) *simpsonFy (0.0,a,13, i,j));

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.