Разработка программы решения гармонической задачи методом конечных элементов (Лабораторная работа № 3), страница 5

       else

              for(int i = 0; i < n; i++)

                     fprintf(file, "%.13le ", le[i]);

       fclose(file);

       return 0;

}

Содержимое файла conditions.h

//     номер краевых

int CN()

{

       return (1);

}

// первые краевые условия

double C1sXLeft      (double y){return(0);}

double C1sXRight     (double y){return(1);}

double C1sYBottom    (double x){return(x);}

double C1sYTop       (double x){return(x);}

double C1cXLeft      (double y){return(1);}

double C1cXRight     (double y){return(1);}

double C1cYBottom    (double x){return(1);}

double C1cYTop       (double x){return(1);}

//     вторые краевые

double C2sXLeft      (double y){return(-1.e5);}

double C2sXRight     (double y){return(1.e5);}

double C2cXLeft      (double y){return(0.);}

double C2cXRight     (double y){return(0.);}

// третьи краевые

//double C3sXLeft    (double y){return(-1.e5);}

//double C3sXRight   (double y){return(1.e5);}

//double C3cXLeft    (double y){return(0.);}

//double C3cXRight   (double y){return(0.);}

Содержимое файла FUNCS.h

struct pixel

{

       double  x,y;

};

#define BIG 1.e50

#define Betta 1.0

void FUNCS(double &lambda, double &sigma, double &Hi, double &omega)

{

       lambda = 1256637061.e-15;

       sigma  = 1.e-3;

       Hi = 8.e-12;

       omega  = 6283185307.e-2;

}

//     значения правых частей системы

double Fs(pixel p)   {return

       ((-1.e-3) - (1.e-10) * p.x);

}

double Fc(pixel p)   {return

       ((1.e-3)*p.x - (1.e-10));

}

//     точное значение неизвестных

double Us(pixel p)   {return (p.x) ;}

double Uc(pixel p)   {return (1.)  ;}


Содержимое файла files.h

//     исходные файлы

#define Grid  "input/grid.txt"

#define Kuslau "input/kuslau.txt"

//     результирующие файлы

//            разреженно - строчный формат (для LOS)

#define       IG                          "matrix/RSformat/ig.txt"    // индексный массив матрицы

#define       JG                          "matrix/RSformat/jg.txt"    // массив номеров столбцов (строк)

#define       GGL                         "matrix/RSformat/ggl.txt"   // нижний треугольник

#define       GGU                         "matrix/RSformat/ggu.txt"   // верхний треугольник

#define       DI                          "matrix/RSformat/di.txt"    // диагональ

#define       PR                          "matrix/RSformat/pr.txt"    // правая часть

#define       KUSLAU               "matrix/RSformat/kuslau.txt"// параметры матрицы (размерность, макс. итерацийб точность)

#define       U                           "matrix/RSformat/u.txt"            // точное решение

#define       XY                          "matrix/xy.txt"                           // координаты узлов

//            профильный формат (для LU-разложения)

#define       MATRIX               "matrix/Pformat/matrix.txt" // размер, индексный массив, профиль

#define       VECTOR               "matrix/Pformat/vector.txt" // вектор правой части

4.  Набор тестов