На главную страницу

Как пользоваться программой EasyStrain

Программа EasyStrain запускается из командной строки с тремя параметрами, представляющими собой имена файлов:
easystrain2d.exe struct.txt input.dat output.dat
или
easystrain3d.exe struct.txt input.dat output.dat
(естественно, имена файлов могут быть любыми, на ваш выбор).

Первый аргумент (struct.txt в нашем примере) - это имя файла, из которого программа читает информацию о рассчитываемой структуре - форма, размеры и местоположение включения, рассогласование решёток, коэффициент Пуассона среды.

Второй аргумент (input.dat) - это имя файла, в котором указаны координаты точек, в которых следует вычислить тензор деформации.

Третий аргумент (output.dat) - это имя файла, в который программа записывает результаты расчёта.

Структура файлов несколько различается в "двумерном" и "трёхмерном" случаях, поэтому рассмотрим их по отдельности.

Структура файлов для "двумерной" программы easystrain2d

Файл struct.txt может выглядеть примерно так:
 
_[  Пример: два треугольных включения, стоящих рядом друг с другом   _]
_[  по горизонтали (см. рисунок).                                    _]

_vertices 6               _[  Здесь указывается полное число вершин.                            _]
@  1  0                   _[  После символа @ указываются x- и y-координаты очередной вершины.  _]
@  3  0                   _[  Вершины для каждого включения перечисляются в порядке следования  _]
@  2  0.5                 _[  (можно по часовой стрелке, можно против - это не важно).          _]
@@                        _[  Символ @@ разделяет вершины, относящиеся к разным включениям.     _]
@ -3  0                   _[  Если имеется только одно включение, то символ @@ не нужен.        _]
@ -1  0
@ -2  0.5

_eps0    0.04             _[  Рассогласование решёток          _]
_Poisson 0.25             _[  Коэффициент Пуассона             _]
_end

После слова "_end" можно писать что угодно.
Файл состоит из отдельных слов, разделённых пробелами, знаками табуляции,
переносами строки. Количество пробелов и т. п. между словами не играет
роли, также не важно и разбиение файла на строки.
Комментарии можно вставлять в любом месте файла, 
они начинаются со слова "_[" и заканчиваются словом "_]".
Координаты можно указывать в любых единицах измерения, 
выбор единицы длины не влияет на результат.
Рассогласование решёток определяется как (A_inclusion - A_matrix) / A_matrix,
где A_inclusion и A_matrix - постоянные решёток включения и матрицы, соответственно.
 
Картинка к этому примеру: 

Файл input.dat содержит две колонки цифр. Первая колонка - это x-координаты, вторая - это y-координаты; каждая строка соответствует одной точке плоскости (x,y). Например:
 
0.85     -0.15
0.85     -0.05
0.85      0.05
0.85      0.15
0.95     -0.15
0.95     -0.05
0.95      0.05
0.95      0.15
1.05     -0.15
1.05     -0.05
1.05      0.05
1.05      0.15
1.15     -0.15
1.15     -0.05
1.15      0.05
1.15      0.15
 
Файл может содержать и дополнительные колонки - программа на них не обращает внимания.
В файле можно задавать какие угодно точки в любой последовательности. Но следует иметь в виду, что значения деформации на поверхности включения (т. е. на границе раздела двух сред) не определены, так как там тензор деформации терпит скачок (а в вершинах ещё и уходит в бесконечность). Программа, тем не менее, выдаст ответ и для точки на поверхности включения. Этот ответ можно рассматривать как результат, относящийся к некоторой окрестности указанной точки.

Если вы хотите сосчитать деформацию в узлах некоторой прямоугольной сетки, то файл input.dat можно сгенерировать следующей простенькой программой: make_grid2d.exe (текст программы: make_grid2d.c). Например, приведённый выше файл input.dat может быть создан следующей командой:
make_grid2d.exe 0.85 0.1 1.15 -0.15 0.1 0.15 input.dat
У этой программы 7 аргументов. 1-й, 2-й и 3-й аргументы - это минимальное значение x-координаты, шаг по x, и максимальное значение x-координаты. 4-й, 5-й и 6-й аргументы - это то же самое для y-координаты. 7-й аргумент - это имя создаваемого файла.
В целях безопасности программа make_grid2d не выдаёт в файл более миллиона строк.

Файл output.dat - это результат работы программы. Он содержит все данные из input.dat, но в конце каждой строки добавлены 4 числа. Первое число равно 1, если данная точка попала внутрь включения, и 0 иначе. Второе, третье и четвёртое числа - это xx-, yy- и xy-компоненты тензора деформации, соответственно.
Например, команда "easystrain2d.exe struct.txt input.dat output.dat" создаёт из приведённых выше файлов struct.txt и input.dat такой файл output.dat:
 
0.85     -0.15   0.00   -0.004832    0.004832   -0.004027
0.85     -0.05   0.00   -0.006686    0.006686   -0.003110
0.85      0.05   0.00   -0.007693    0.007693   -0.000853
0.85      0.15   0.00   -0.007096    0.007096    0.001221
0.95     -0.15   0.00   -0.004687    0.004687   -0.006210
0.95     -0.05   0.00   -0.008658    0.008658   -0.006391
0.95      0.05   0.00   -0.011582    0.011582   -0.000222
0.95      0.15   0.00   -0.008771    0.008771    0.002903
1.05     -0.15   0.00   -0.002903    0.002903   -0.008477
1.05     -0.05   0.00   -0.004845    0.004845   -0.012608
1.05      0.05   0.00   -0.014375    0.014375    0.006869
1.05      0.15   0.00   -0.009540    0.009540    0.006021
1.15     -0.15   0.00   -0.000246    0.000246   -0.009291
1.15     -0.05   0.00    0.000053   -0.000053   -0.012350
1.15      0.05   1.00   -0.038037    0.024703   -0.015631
1.15      0.15   0.00   -0.008630    0.008630    0.009060

Структура файлов для "трёхмерной" программы easystrain3d

Здесь мне придётся во многом повторяться, т. к. трёхмерный случай имеет много общего с двумерным.

Файл struct.txt может выглядеть примерно так:
 
_[  Пример: включение в форме пирамиды (см. рисунок).   _]

_vertices 5               _[  Здесь указывается полное число вершин.                            _]
@1 -1 -1  0               _[  После символа @ указываются номер вершины (без пробела),          _]
@2  1 -1  0               _[  затем x-, y- и z-координаты вершины.                              _]
@3  1  1  0               _[  Вершины нумеруются в произвольном порядке,                        _]
@4 -1  1  0               _[  и в файле они могут появляться в произвольном порядке.            _]
@5  0  0  1

_faces 5                  _[  Здесь указывается полное число граней.                            _]
@1  1  2  5               _[  После символа @ указываются номер грани (без пробела),            _]
@2  2  3  5               _[  затем номера вершин, составляющих грани (по порядку -             _]
@3  3  4  5               _[  по часовой стрелке или против часовой стрелки).                   _]
@4  4  1  5               _[  Сами грани нумеруются в произвольном порядке,                     _]
@5  1  2  3  4            _[  и в файле их не обязательно располагать по порядку.               _]

_eps0    0.067            _[  Рассогласование решёток          _]
_Poisson 0.28             _[  Коэффициент Пуассона             _]
_end

После слова "_end" можно писать что угодно.
Файл состоит из отдельных слов, разделённых пробелами, знаками табуляции,
переносами строки. Количество пробелов и т. п. между словами не играет
роли, также не важно и разбиение файла на строки.
Комментарии можно вставлять в любом месте файла, 
они начинаются со слова "_[" и заканчиваются словом "_]".
Координаты можно указывать в любых единицах измерения, 
выбор единицы длины не влияет на результат.
Рассогласование решёток определяется как (A_inclusion - A_matrix) / A_matrix,
где A_inclusion и A_matrix - постоянные решёток включения и матрицы, соответственно.
 
Картинка к этому примеру: 

Файл input.dat содержит три колонки цифр. Первая колонка - это x-координаты, вторая - y-координаты, третья - z-координаты. Каждая строка соответствует одной точке (x,y,z) пространства. Например:
 
0   0   0.5
0   0   1.5
0   1   0.5
0   1   1.5
1   0   0.5
1   0   1.5
1   1   0.5
1   1   1.5
 
Файл может содержать и дополнительные колонки - программа на них не обращает внимания.
В файле можно задавать какие угодно точки в любой последовательности. Но следует иметь в виду, что значения деформации на поверхности включения (т. е. на границе раздела двух сред) не определены, так как там тензор деформации терпит скачок (а на рёбрах и в вершинах ещё и уходит в бесконечность). Программа, тем не менее, выдаст ответ и для точки на поверхности включения. Этот ответ можно рассматривать как результат, относящийся к некоторой окрестности указанной точки.

Если вы хотите сосчитать деформацию в узлах некоторой прямоугольной сетки, то файл input.dat можно сгенерировать следующей простенькой программой: make_grid3d.exe (текст программы: make_grid3d.c). Например, приведённый выше файл input.dat может быть создан следующей командой:
make_grid3d.exe 0 1 1 0 1 1 0.5 1 1.5 input.dat
У этой программы 10 аргументов. 1-й, 2-й и 3-й аргументы - это минимальное значение x-координаты, шаг по x, и максимальное значение x-координаты. 4-й, 5-й и 6-й аргументы - это то же самое для y-координаты. 7-й, 8-й и 9-й аргументы - то же самое для z-координаты. 10-й аргумент - это имя создаваемого файла.
В целях безопасности программа make_grid3d не выдаёт в файл более миллиона строк.

Файл output.dat - это результат работы программы. Он содержит все данные из input.dat, но в конце каждой строки добавлены 7 чисел. Первое число равно 1, если данная точка попала внутрь включения, и 0 иначе. 2-е - 7-е числа - это xx-, yy-, zz-, xy-, xz- и yz-компоненты тензора деформации, соответственно.
Например, команда "easystrain3d.exe struct.txt input.dat output.dat" создаёт из приведённых выше файлов struct.txt и input.dat такой файл output.dat:
 
0   0   0.5   1.00   -0.032439   -0.032439   -0.017011    0.000000    0.000000    0.000000
0   0   1.5   0.00    0.004990    0.004990   -0.009980    0.000000    0.000000    0.000000
0   1   0.5   0.00    0.007997   -0.013977    0.005981    0.000000    0.000000   -0.012409
0   1   1.5   0.00    0.002587    0.000035   -0.002622    0.000000    0.000000   -0.003708
1   0   0.5   0.00   -0.013977    0.007997    0.005981    0.000000   -0.012409    0.000000
1   0   1.5   0.00    0.000035    0.002587   -0.002622    0.000000   -0.003708    0.000000
1   1   0.5   0.00   -0.001595   -0.001595    0.003189   -0.007372   -0.003990   -0.003990
1   1   1.5   0.00    0.000468    0.000468   -0.000937   -0.001290   -0.001850   -0.001850

Рассмотрим ещё в качестве примера, как были построены картинки распределения деформации на главной странице:
1. Был создан файл struct.txt - тот самый файл, содержимое которого приведено выше.
2. С помощью программы make_grid3d создан файл input.dat:
make_grid3d.exe -2 0.02 2 0 1 0 -1 0.02 2 input.dat
Обратите внимание: минимальное и максимальное значения y совпадают. Это значит, что имеется единственное значение y, т. е. мы создали не трёхмерную, а двумерную сетку в сечении y=0.
3. Запускаем программу easystrain3d:
easystrain3d.exe struct.txt input.dat output.dat
В результате появился файл output.dat, состоящий из 10 колонок цифр. 1-я и 3-я колонка соответствуют x- и z-координатам; 2-я колонка (y-координата) равна нулю. В 5-й, 6-й, 7-й и 9-й колонках располагаются вычисленные значения xx-, yy-, zz- и xz-компонент тензора деформации. Оставшиеся xy- и yz-компоненты (8-я и 10-я колонки) равны нулю в сечении y=0.
4. Данные из файла output.dat импортированы в программу Surfer, и с помощью этой программы построены изолинии четырёх компонент тензора деформации.

 
Вернуться на главную страницу

 

Hosted by uCoz