Перейти к статье

Блок начальных данных

В начальном блоке последовательность директив не имеет значение, и могут использоваться следующие директивы:

add_time - директива, которая устанавливает дополнительный период выдачи на печать, устанавливается вместе с директивой time. Используется для изменения установленного равномерного шага выдачи на печать, в заданном диапазоне.

add_time(t1, t2, dt)

t1 - начальное время [мкс];

t2 - конечное время [мкс];

dt - период выдачи на печать [мкс].

Пример: add_time(12,19,0.01) означает, что в момент времени с 12 мкс до 19мкс, шаг выдачи на печать результатов расчета, равен 0.01мкс.

auto_step(ibody) - установка размера шага сетки по акустическому импедансу, ibody - номер тела, размер сетки относительно которого будет рассчитываться размер сетки для других геометрических тел, если ibody=0, то автоматическая ищется тело (материал) с минимальным импедансом и относительно него рассчитывается у других тел. Для построения тела с учетом импеданса, перед телом нужно поставить correct_step (отрицательное число). Опция предназначена для разработчиков, не рекомендуется к использованию.

boolean = (delaunay|libgpc|gpc) – директива, с помощью которой определяется способ сопряжения границ в 2D геометрии (многоугольники). Булевы операции над многоугольниками — это набор булевых операций (AND, OR, NOT, XOR, ...) с одним или несколькими наборами многоугольников в компьютерной графике. Эти наборы операций используются в программном комплексе для задания геометрии из примитивов. В программном модуле вычислительной геометрии основные объекты описываются с помощью плоских многоугольников. Операции построения объединения, пересечения или разности полигонов, несмотря на внешнюю простоту постановки, обладают большой сложностью в реализации. Многие существующие алгоритмы реализации обладают существенными недостатками для использования на практике. Основная проблема связана с потерей вычислительной точности при вычислении пресечений фигур, что приводит к некорректной работе алгоритмов. Во многих алгоритмах устранение такого рода проблем с точностью приводит к существенному усложнению реализации алгоритма. Та как на сегодняшний день нет ни одного алгоритма обеспечивающего 100% правильное выполнение, то в программном модуле реализовано несколько алгоритмов одновременно. Директива может принимать одно из трех значений:

delaunay – реализует алгоритм Сазерленда-Ходжмана. Это один из самых первых и простых алгоритмов отсечения многоугольников [1]. Этот алгоритм рассекает исходный общий многоугольник любым выпуклым многоугольником. Отсекающий многоугольник обычно называют отсекающим окном. Суть алгоритма заключается в том, что отсекаемый многоугольник последовательно отсекается каждой границей отсекающего окна. Алгоритм обрабатывает пересечение каждого ребра исходного многоугольника с каждым ребром отсекателя, сохраняя вершины, находящиеся внутри ребра, и точки пересечения ребер. Далее алгоритм повторяется, на вход подаются полученный на предыдущем шаге временный многоугольник и другое ребро отсекателя;

gpc – использует программный модуль gpc, реализующий булевы операции по алгоритму Ватти. Для использования этой команды на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта http://www.cs.man.ac.uk/~toby/alan/software/). Обязательным требованием является установка пути к исполняемому модулю программам в конфигурационном файле;

libgpc – использует встроенную библиотеку на основе gpc (http://www.cs.man.ac.uk/~toby/alan/software/), реализующую булевы операции через алгоритм Ватти (используется по умолчанию).

bubble_mesh = (clists|verlet|delaunay|openmp|gpu|auto) – директива которая задает алгоритм реализации динамического построения треугольной сетки. Алгоритм работы описан в [2,3]. Директива может принимать одно из существующих значений:

clists – алгоритм построения сетки с отталкивающе-притягивающим потенциалом использующий для ускорения вычисления связанный список ячеек (https://en.wikipedia.org/wiki/Cell_lists) и параллельные технологии OpenMP;

verlet – алгоритм построения сетки с отталкивающе-притягивающим потенциалом использующий для ускорения вычисления список соседей Верлея (https://en.wikipedia.org/wiki/Verlet_list) и параллельные технологии OpenMP;

delaunay – алгоритм построения сетки с отталкивающе-притягивающим потенциалом, с определением сил по ребрам триангуляции Делоне. Метод обеспечивающий максимально возможное качество сетки, но чрезвычайно медленный из-за невозможности применения параллельных технологий;

openmp – алгоритм построения сетки с отталкивающим потенциалом использующий для ускорения параллельные технологии OpenMP;

gpu – алгоритм построения сетки с отталкивающим потенциалом использующий для ускорения параллельные технологии CUDA;

auto – алгоритм определяется внутри программы исходя из начальных данных и заданной геометрии.

По умолчаниюauto.

Более подробно алгоритмы динамического построения сетки описаны в [3,4].

bm_opt – директива, которая позволяет изменять значения по умолчанию для методов построения треугольной и/или тетраэдной сетки, описанных в 1.2.4 . Эта директива предназначена больше для разработчиков программы, так как установка переменных не тривиальна. Директива использует следующие переменные:

bm_opt(bm_radius);

bm_opt(bm_radius,bm_stop);

bm_opt(bm_radius,bm_stop,bm_u_init);

bm_opt(bm_radius,bm_stop,bm_u_init,bm_cellrat);

bm_radius – устанавливает радиус действия потенциала (радиус обрезания), см. рисунок 1. Он может принимать значение в диапазоне от (1-1.5]. При малом значении получается только отталкивающий потенциал. Значение по умолчанию -1.2;

bm_stop – значение критерия остановки выполнения алгоритма bubble_mesh (часть шага, максимальное расстояние/шаг). Критерий косвенно определяет количество шагов интегрирования в уравнении движения узлов сетки. Значение по умолчанию – 0.01 (т.е. максимальное движение любого узла сетки, за один шаг по времени, не может превышать одну сотую шага);

bm_u_init – определяет нужно ли применять начальное случайное распределения значение скорости в узлах сетки. Может применять значение– 0 (нет) или 1 (да). По умолчанию значение – 0 (т.е. начальная скорость в узлах сетки имеет нулевое значение);

bm_cellrat - определяет размер окна в алгоритме “cell lists”. Значение задается множителем к радиусу обрезания в потенциале и может принимать значение в диапазоне (1-50]. Параметр влияет только на скорость выполнения параллельного кода в OpenMP и ни как не влияет на качество получаемой сетки. Значение по умолчанию – 1.6;

Рисунок 1 Вид силы взаимодействия частиц

border_fusion – директива, которая декларирует о необходимости склеить границы тел, находящиеся в контакте на этапе геометрии, схематически это показано на рисунке 2. Это директива устанавливает условие идеального контакта между двумя соседствующими телами. “Склеивание” контактной границы происходит при совместном выполнении условии:

Директива, как правило, используется для задания гетерогенных сред, с гладкой контактной границей, пример использования представлен в [5].

Рисунок 2 – Граничные условия со скольжением узлов (а);

Граничные условия, задаваемые директивой border_fusion (б)

Необходимо осознавать, что директива не корректно работает в 3D задачах так как условие 1 может не выполнятся при построении отдельных фигур.

По умолчанию – “noborder_fusion”.

calc_file – директива, которая определяет имя файла для записи результатов вычислений, в который, в формате необходимым для post-processing software, будет представлен результат вычисления на последний момент времени.

Все промежуточные результаты вычислений будут записаны в файлы с измененным названием, включающим в себя номер вывода на печать. Все эти файлы записываются в рабочую директорию work_dir.

condition_dump – директива, которая определяет условия, при выполнении которых создается файл dump_file. Директива использует следующие переменные:

condition_dump(time, system, step, fracture)

time – время расчета в запущенной задаче [мкс];

system – время, потраченное процессором на вычисления задачи [мин];

step – количество шагов по времени [шт];

fracture – процент разрушенных ячеек [%] (1-100).

Создание файла dump_file происходит при наступлении одного из 4-х условий, указанных выше. Отсчет выполнения условий происходит от начала запуска задачи или времени последнего сохранения файла dump_file. Все промежуточные результаты дампа будут записаны в файлы с измененным названием, включающим в себя порядковый номер дампа (например, dump.0001, dump.0002 и т.д.). По окончании расчета файл dump_file создается всегда, в независимости от установленных условий.

Директиву можно не указывать – по умолчанию – “200,90,200000,1”, т.е. файл создается при условии, что проведен расчет задачи 200 мкс, или прошёл 1,5 часа реального времени, или задача отсчитала 200 тыс. шагов по времени, или произошёл 1% разрушения тел. Актуальные значения можно увидеть в командной строке, по аналогии с рисунком 2.

contact_algorithm = i – эта директива определяет способ расчета сил на контактной границе. Можно использовать один из представленных ниже значений:

0 – медленный контактный симметричный алгоритм;

1 – быстрый, с предварительной сортировкой, симметричный алгоритм расчета контактных границ (используется по умолчанию);

2 – быстрый расчет, симметричный алгоритм с расширением по Гордону Джонсону;

3 – быстрый расчет, не симметричный алгоритм с расширением по Гордону Джонсону;

6 – алгоритм с предварительным расчётом сил, полное сохранение импульса (не устойчивый, может приводить к локальным взрывам в расчете);

По умолчаниюcontact_algorithm = 1.

contact_iteration = i – это директива, которая устанавливает число итераций при вычислении сил на контактной границе, где i - число итераций. Отсутствует, начиная с версии 0.24.

По умолчаниюcontact_iteration = 1.

crystal = (bcc|fcc|hcp|tet) – директива, которая определяет метод создания мажорирующего объема и его заполнение первоначально расставленными узлами сетки в 3D геометрии.

Выбор мажорирующего объема и его заполнение первоначально расставленными узлами сетки в пространственном случае аналогичен плоской задаче.

Созданный с помощью геометрических примитивов сложный технический объект погружается в мажорирующий объем. Эту задачу выполняет команда создание прямоугольной области с высококачественной однородной сеткой. Длины сторон прямоугольной области, которые определяются по максимальным размерам исследуемого технического объекта. Созданный с помощью геометрических примитивов технический объект погружается в мажорирующий объем. Как и в плоском случае, первоначальная расстановка узлов для динамического метода создания тетраэдральных сеток определяет конечное качество и скорость построение сетки [6,7]. В основу первоначальной расстановки узлов в трехмерном пространстве положены разные типы кристаллической решетки в твердом теле, так как заполнить идеальными тетраэдрами произвольное тело невозможно.

Заполнение мажорирующей прямоугольной области осуществляется одним из типов кристаллической решётки, а, именно, гранецентрической (рисунок 3а), объемноцентрической (рисунок 3б), гексагональной (рисунок 3в) и смешанной тетра (рисунок 3г) структурами. Последний тип создает более совершенную тетраструктуру, обеспечивающую высокое качество сетки. Подробно алгоритм рассмотрен в работе [8], а пример показан на рисунок 3г, узлы 2 и 3 заменены узлами 4, которые расположены на серединах коротких отрезков линии, соединяющей узлы 2 и 3.

Рисунок 3 – Заполнение мажорирующей области первоначально расставленными узлами сетки:

а) гранецентрическая; б) объемноцентрическая;

в) гексагональная; г) усовершенствованная тетраструктура

Заполнение мажорирующей области осуществляется одной из существующих директив:

bcc – объемноцентрическая структура кристаллической решетки;

fcc – гранецентрическая структура кристаллической решетки;

hcp – гексагональная структура кристаллической решетки;

tet – смешанная тетра структура (значение по – умолчанию).

debris – директива, которая требует проводить расчет осколочного поля. Довольно часто требуется в процессе решения задач выполнять подсчет и построение гистограммы распределения осколков по скоростям, массам, размерам и т.д. Для управления параметрами подсчета осколков разработаны алгоритмы дифференцированного вывода информации касающейся визуализации размеров, скоростей осколочного поля. Ниже описаны дополнительные директивы с широким спектром опций.

По умолчанию – nodebris, директива, которая определяет не проводить подсчет осколков.

debris_body(body1,body2,... bodyn) – директива, которая определяет номера тел для которых необходимо подсчитывать осколки body1, body2, ... bodyn. Нумерация тел сквозная, по мере задания геометрии в конфигурационном файле.

Для подсчета осколков во всех телах необходимо указать debris_body(0). Значение по умолчанию.

debris_box_auto(nbox) – директива, которая определяет, что при построении распределения осколков использовать равномерные “ящики”, во всем диапазоне размеров осколков, с заданным числом "ящиков". Размер “ящика” (размер осколка) автоматически формируется от нулевого размера, до максимального размера осколка. Директива использует переменные:

nbox – количество “ящиков”.

debris_box_manual(box1,box2,box3....boxn) – директива, которая определяет, что при построении распределения осколков необходимо использовать произвольные “ящики” заданных размеров. Директива использует переменные:

box1 – минимальный, первый ограничивающий размер осколка;

box2 – второй ограничивающий размер осколка, box2 > box1;

….

boxn – максимальный, последний ограничивающий размер осколка.

debris_box_range(min_size,max_size,nbox) – директива, которая определяет, что при построении распределения осколков необходимо использовать равномерные “ящики” для осколков (с выбранным диапазоном размеров осколка). Для визуализации будут показываться только те осколки, которые попадают в диапазон размеров min_size и max_size. Директива использует переменные:

min_size – минимальный размер осколка;

max_size – максимальный размер осколка;

nbox – количество “ящиков”.

debris_in_cm - директива, которая определяет, что при построении распределения осколков “ящики” осколков формируются по “линейному размеру” в сантиметрах. Это значение используется по – умолчанию.

debris_in_gramm - директива, которая определяет, что при построении распределения осколков “ящики” осколков формируются по “массе” в граммах.

debug = i – директива, которая определяет параметр “информативности” (i – целое число от 0 до 6). Чем больше число, тем больше объем вспомогательной информации будет выводиться на экран консоли. Если параметр debug=0 то на экран терминала будет выводиться только время счета.

По умолчанию – debug=0.

delaunay = (geompack|qhull|libqhull|tetgen|libtetgen|triangle) –директива, которая определяет различные способы триангуляции Делоне по заданному набору точек при создании 2D и 3D геометрии. Директива может принимать одно из значений:

geompack – 2D триангуляция, по алгоритму изложенному в [9]. Одна из самых медленных реализаций триангуляции Делоне;

qhull – 2D и 3D триангуляция Делоне, использующая внешнюю программу Qhull (сайт программы http://www.qhull.org), реализующая алгоритм Quickhull для случая произвольной размерности, предложенный в работе [10]. Для использования этой команды на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта http://www.qhull.org). Обязательным требованием является установка пути к исполняемому модулю программам в конфигурационном файле;

libqhull – 2D, 3D триангуляция Делоне, использующая внутреннюю встроенную библиотеку на основе Qhull (значение по умолчанию в 2D задачах);

tetgen – 3D триангуляция Делоне, использующая внешнюю программу Tetgen (сайт программы http://wias-berlin.de/software/index.jsp?id=TetGen), реализующая алгоритм, предложенный в [11]. Для использования этой команды на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта http://wias-berlin.de/software/index.jsp?id=TetGen). Обязательным требованием является установка пути к исполняемому модулю программам в конфигурационном файле;

libtetgen – 3D триангуляция Делоне, использующая внутреннюю встроенную библиотеку на основе Tetgen (значение по умолчанию в 3D задачах);

triangle – 2D триангуляция Делоне, использующая внешнюю программу Triangle (сайт программы https://www.cs.cmu.edu/~quake/triangle.html), реализующая алгоритм, предложенный в [12]. Для использования этой команды на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта https://www.cs.cmu.edu/~quake/triangle.html). Обязательным требованием является установка пути к исполняемому модулю программы в конфигурационном файле.

dump_file – директива, которая определяет имя файла, из которого будет считываться дамп для последующего “досчёта”. Поиск файл будет осуществляться программой в рабочей директории work_dir.

По умолчанию – “dump” в tmp директории с расчетом.

eray – директива, которая определяет местоположение установки многокадровой регистрации быстропротекающих процессов с использованием неподвижного луча. Директива аналогична директиве lray, только луч не подвижен и отслеживает изменение величин в элементах и частицах, пересекающих луч или плоскость в Эйлеровой постановке.

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

eray(nx,dx);

eray(nx,dx,wl);

eray(nx,dx,wl,nl).

nx – определяет ось координат перпендикулярно которой направлен луч.

Указывается либо целое число от 1 до 3, либо буквенным выражением, например X, Y или Z;

dx – определяет значения координаты nx луча, например X=0.4;

wl – ширина зоны просмотра, значение по умолчанию 0 [см];

nl – число неподвижных лучей в зоне просмотра, значение по умолчанию 1 [шт].

Рисунок 4 – Визуализация расположения неподвижных лучей (плоскости) eray на геометрии: а) 2D; б) 3D

На рисунке 4а показан пример визуализации расположения множества лучей, на файле с 2D геометрией, после применения директивы eray. Штриховыми линиями показаны расположение двух наборов неподвижных лучей и направление их действия. На рисунке 4б показан пример визуализации расположения плоскости, на файле с 3D геометрией.

Результат работы директивы – график с осредненными параметрами по потоку проходящему через луч (плоскость), определенным с помощью этой директивы. При этом отдельно можно наблюдать осреднение по разрушенным частицам, двигающиеся сквозь луч, так и по не разрушенным элементам.

Дискретизация изменения параметров от времени определяется директивой print_at_every_step, а отслеживаемые величины задаются директивой printspy.

eray_mat – директива, которая определяет, какие материалы необходимо учитывать для подсчете среднего в директиве eray. Таким образом с помощью этой директивы можно проводить избирательный подсчет параметров по отдельным материалам. По умолчанию - eray_mat=0 (все материалы, участвующие в расчете).

eray_body – директива, которая определяет, какие тела необходимо учитывать для подсчете среднего в директиве eray. Таким образом с помощью этой директивы можно проводить избирательный подсчет параметров по отдельным телам, например оценить скорость только ударника проникающего в преграду, без учета мишени. По умолчанию - eray_body=0 (все тела, участвующие в расчете).

fracture_model = (ball|mball|cball|erosion|erosion_mass) директива, которая определяет модель замены разрушенных элементов в расчете.

При высокоскоростном ударе, материалы испытывают значительные деформации, что отражается в численных методах либо сильным искажением ячеек Лагранжа. Выходом из такого положения служат гибридные методы, где для областей с небольшими или умеренными деформациями используются сеточные методы, а в области с сильными искажениями – бессеточные [13–15]. Задача моделирования разрушенного материала дискретными частицами конечного размера включает два аспекта: 1) замена сплошного поврежденного материала на дискретный аналог, обладающий теми же параметрами, т.е. массой, импульсом и энергией; 2) определение движения дискретных частиц и их взаимодействие с границами сплошного материала, а также между собой.

В каждой ячейке разностной сетки известны следующие величины: текущая плотность материала, тензоры напряжений и скоростей деформации, удельная внутренняя энергия. Координаты скорости отнесены к узлам разностной сетки. Алгоритм расчета реализован таким образом, что если в ячейке расчетной сетки выполнится хотя бы один из критериев разрушения, то эта ячейка помечается как поврежденная. Поврежденное состояние характеризуется тем, что материал оказывает сопротивление только объемному сжатию. Частным случаем такого материала может являться среда, у которой уравнение состояния остается прежним, а модуль сдвига равен нулю. Параметр разрыхления характеризует способность поврежденной среды оставаться сплошной при объемном растяжении. Если то среда считается полностью разрушенной и давление в ней нулевое.

Далее, если ячейка с признаком поврежденного материала находится на границе расчетной области и разрыхление достигает критического, то материал данной ячейки заменяется дискретной частицей, радиус которой вычисляется из условия вписывания одной частицы в треугольную ячейку. За один шаг по времени только один слой граничных ячеек может быть превращен в дискретные частицы, т.к. считается, что величина скорости фронта волны разрушения не превышает величины скорости распространения возмущения в среде. Таким образом, применение данного алгоритма расчета может в определенных случаях привести к замене всех ячеек расчетной области дискретными частицами, т.е. превращение сплошного тела в облако частиц.

Пусть тело содержит ряд поврежденных ячеек, которые на рисунке 5а выделены зеленым и красным цветами. Приведем алгоритм замены ячеек, содержащих поврежденный материал при достижении им критических значений, на дискретные частицы конечного размера, моделирующие разрушенный материал.

Алгоритм замены выглядит следующим образом (см. рисунки 5а и 5б):

Рисунок 5 – Иллюстрация замены разрушенных ячеек на дискретные частицы

После замены элемента на дискретную частицу связь со сплошным телом разрывается и дискретная частица конечного размера двигается независимо. Дискретная частица, обладающая кинетической энергией, на следующем временном шаге взаимодействует как со сплошным телом, так и с другими дискретными частицами, т.е. реализуется гибридный подход сеточных и бессеточных алгоритмов.

Директива может принимать одно из трех значений:

ball – разрушенный элемент заменяется несжимаемой частицей в форме окружности или сферы в 2D или 3D соответственно, см. рисунок 6 (значение по умолчанию);

mball – разрушенный элемент заменяется несколькими несжимаемыми частицами – четырьмя в 2D и шестью в 3D;

cball – разрушенные элементы заменяются сжимающимися окружностями, реализовано только в 2D постановке;

erosion – разрушенный элемент удаляется вместе с массой. Это классический алгоритм М. Уилкинса [16] с потерей импульса системы;

erosion_mass – разрушенный элемент удаляется, а его масса передается в соседние элементы.

Алгоритмы erosion и erosion_mass рекомендуется применять только для ускорения времени счета, в качестве предварительного. Экономия времени счета может достигать до 30%.

Рисунок 6 – Визуализация работы директивы gdebug

gdebug – директива, которая включает вывод отладочной информации при создании геометрии. Каждый шаг при работе с геометрией отображается в программе визуализации, для каждого тела в отдельности. Директива необходима для разработчиков, для поиска ошибок при создании геометрии. На рисунке 6 показан пример работы директивы – качество отклонения разностной сетки от идеального треугольника. Наглядно показана последовательность создании геометрии и ее результат на каждом этапе выполнения программного комплекса.

geom_file – директива, которая определяет имя файла, в котором, в формате необходимым для визуализации будет записана геометрия задачи. Файл создается в директории work_dir.

geomonly – директива, которая требует рассчитать только геометрию и остановиться. Если препроцессор задачи обнаруживает такую директиву в файле конфигурации, то задача останавливается сразу после расчета геометрии всех объектов. Эта опция полезна при создании сложных геометрических объектов, так как зачастую трудно с первого раза создать требуемую геометрическую конфигурацию, особенно при обилии геометрических сопряжений.

ghost_time(ghost_start,ghost_stop) директива, которая создает тело призрак. Тело-призрак – расчетная область, которая может “подключаться” и “отключаться” в процессе расчета, как показано на рисунках 7 и 8. В параметры данной директивы входят:

ghost_start – время “появления” тела-призрака в процесс счета [мсек];

ghost_stop – время “пропадания” тела-призрака из счета [мсек]. То есть данная директива создает подобные тела с заданным временем жизни. Данную директиву можно использовать в упрощенном виде: ghost_time(ghost_start), когда нет необходимости исключать тело из счета.

Рисунок 7 – Последовательное пробитие разнесенной преграды с расчетом всех пластин

Применение директивы позволяет существенно снизить расчетное время подобных задач, и не допустить “развал” решения при огромном количестве расчетных шагов при накоплении ошибок округления.

По умолчанию значение noghost, директива, которая требует не создавать тела-призраки.

gmsh – директива, которая определяет путь к бинарному файлу исполнительной программы gmsh. Для использования этой команд на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта http://gmsh.info/).

gpu – директива, которая вынуждает задействовать мощности существующей видеокарты для проведения расчетов геометрии, nogpu – вынуждает программу не проводить расчеты на GPU.

gpu_device – директива, которая принудительно выставляет номер GPU устройства (поддерживаемые GPU устройства можно узнать, запустив программу МОДУЛЬ HSDF с ключом “--gpuprint”).

По умолчанию – устройство gpu_device = 0.

Рисунок 8 – Результаты расчета с последовательным подключением пластин в разнесенной преграде с применением директивы ghost_time

hardwall – директива, которая определяет наличие жесткой стенки в задаче. Все контактные границы, включая вновь создавшиеся в результате разрушения, определяются автоматически. Директива hardwall указывает на то, что при расчете используется граничное условие – абсолютно жесткая стенка. Координата жесткой стенки устанавливается автоматически, параллельно одной из осей, исходя из начальных кинематических условий задачи.

hardwall3 – директива, которая определяет наличие трех жестких стенок по периметру геометрического объекта (стакан). Эта опция необходима для эмуляции плоской ударной волны в 2D задачах.

knot_axial – директива, которая определяет коэффициент веса при задании масс узлов в треугольной ячейке в аксиальной 2D задаче. (i – целое число >0). Опция предназначена для разработчиков.

По умолчанию – knot_axial = 108. Все остальные значения можно вывести, задав, заведомо не неверную, величину, например knot_axial = 0.

lray – директива, которая устанавливает линию “датчиков” для 2D задач, или плоскость из “датчиков” для 3D, которые двигаются вместе с телом и отслеживает изменение величин в ячейках во времени, в постановке Лагранжа. Директива полезна для осреднения значений в плоских ударных волн в гетерогенных средах. Директива использует следующие параметры:

lray(nx,dx);

lray(nx,dx,wl);

lray(nx,dx,wl,nl).

nx – определяет ось координат перпендикулярно которой направлен луч. Указывается либо целое число от 1 до 3, либо буквенным выражением, например X, Y или Z;

dx – определяет значения координаты nx луча, например X=0.4;

wl – ширина зоны просмотра, (значение по умолчанию 0 [см]);

nl – число неподвижных лучей в зоне просмотра, (значение по умолчанию 1[шт]).

Результатом работы директивы – график с осредненными параметрами по всем установленным “датчикам”, определенным с помощью этой директивы. Дискретизация изменения параметров от времени определяется директивой print_at_every_step, а отслеживаемые величины задаются директивой printspy.

lsdyna – директива, которая создает k-файл с геометрией для последующего экспорта в LS-DYNA.

По умолчанию – файл не создается.

mix_default директива, которая задает значения по умолчанию для всех смесей участвующих в задаче.

mix_default(hetero);

mix_default (hetero, maxelem);

mix_default (hetero, maxelem, allow_con);

mix_default (hetero, maxelem, allow_con, xmin, xmax);

mix_default (hetero, maxelem, allow_con, xmin, xmax, direct).

hetero – тип создания гетерогенного материала, одно из существующих значений (single|elem|knot|snake|paw|tie), геометрическая интерпретация типов представлена на рисунке 9;

knot – кластерные (объемные) инородные включения, объединённые по соседству всех узлов элемента, на основе вероятностного распределения, согласно заданной концентрации (рисунок 9а);

elem – кластерные (объемные) инородные включения, объединённые по соседству всех граней элемента, на основе вероятностного распределения, согласно заданной концентрации (рисунок 9б);

single – одиночные включения инородного материала на основе вероятностного нормального распределения, согласно заданной концентрации (рисунок 9в);

snake – кластерные инородные включения, объединённые по соседству одной из грани элемента, на основе вероятностного распределения, согласно заданной концентрации (рисунок 9д);

paw – кластерные инородные включения, объединённые по узловому соседству элементов, на основе вероятностного распределения, согласно заданной концентрации (рисунок 9e);

tie – кластерные инородные включения, объединённые по соседству одного из узлов элемента, на основе вероятностного распределения, согласно заданной концентрации (рисунок 9г).

maxelem – максимальное число элементов в одном гетерокластере (по умолчанию: определяется типом создания гетерогенного материала);

Также можно задавать не только тип включений в гетерогенную матрицу, но и размер этих включений. Так на рисунке 10 приведены геометрические конфигурации гетерогенного материала с одинаковой объемной концентрацией (40% керамики в металлической матрице), но разными размерами включений.

allow_con – определяет нужно ли учитывать предыдущие гетеровключения при создании материала ([1] – учитывать (значение, по умолчанию), [0] – не учитывать);

xmin, xmax – определяет диапазон координат, где необходимо определить "смесь" (по умолчанию: начало и конец тела);

direct – определяет направление слоев и может задаваться в виде числа или имени ([1] – X (по умолчанию), [2] – Y, [3] – Z).

netgen – директива, которая определяет путь к бинарному файлу исполнительной программы netgen. Для использования этой команд на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта https://ngsolve.org).

Рисунок 9 – Визуализация работы директивы mix_default для гетерогенных включений из двух материалов:

а) – knot, б) – elem, в) – single, г) – tie, д) – snake, е) – paw

Рисунок 10 – Визуализация работы директивы mix_default для гетерогенных включений тип knot из двух материалов. Гетерогенный материал с разным maxelem размером включений:

а) 10 ячеек; б) 100 ячеек; в) 700 ячеек

nodump – директива, которая определяет, что ни при каких условиях не создавать промежуточные файлы dump в процессе счета.

num_dump – директива, которая определяет максимальное количество хранения файлов dump одновременно. В процессе счета создаются промежуточные файлы, размер которого может достигать десятки гигабайт. При этом число одновременно хранящихся файлов ограничивается директивой num_dump. Как только число временных файлов хранения достигает значения num_dump, программный комплекс начинает их ротацию в режиме “видеорегистратора”.

По умолчанию – num_dump, зависит от общего числа файлов расчета (на один порядок меньше).

paraview – директива, которая определяет путь к бинарному файлу исполнительной программы ParaView. Для использования этой директивы на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта https://www.paraview.org/).

pie – директива, которая позволяет провести расчет четверти или половины от 3D геометрии, как показано на рисунке 11. В качестве переменных используются следующие параметры:

pie(pie_vertex, pie_vector, r, h, angel);

pie(pie_vector, r, h, angel);

pie(r, h, angel);

pie_vertex – начало координаты цилиндра, (обрезающего всю геометрию задачи) накрывающего всю задачу (по умолчанию 0,0,0);

pie_vector – направляющий вектор цилиндра (по умолчанию 1,0,0);

r,h – радиус и длина цилиндра;

angel – угол, против часовой стрелки, на который нужно отрезать (от 180 до 360 градусов).

Рисунок 11 – принцип работы директивы pie

Ограничение: Директиву возможно применять только для осесимметричной геометрии только при использовании gmsh и salome.

Пример

pie(-1, 0, 0, 1, 0, 0, 400.0, 200.0, 270)

Результат показан для двух углов 180 и 270 градусов на рисунке 12.

Рисунок 12 – Результат работы директивы pie:

а) angel =270 градусов; б) angel=180 градусов

ppp = (auto|paraview) директива, которая определяет внешнюю программу для постобработки (Post Processing Program). Каждая внешняя программа имеет свои достоинства и недостатки, а, следовательно, реализована возможность определить эту программу для конкретной задачи. . Директива может принимать одно из значений:

auto – определяется через заданную переменную calc_file;

paraview – задает в качестве post-processing software: ParaView.

Для автоматического запуска постпроцессора по окончании расчета необходимо определение путей к внешним программам в конфигурационном файле.

По умолчаниюppp = auto

print – директива, которая описывает значения каких величины необходимо сохранять в файлах с расчетом. Так как количество файлов расчета может достигать нескольких тысяч, а размер каждого файла может достигать десятки гигабайт, то для уменьшения объема хранящейся информации на диске в программном комплексе реализован управляемый вывод переменных в файл расчета, который определяется с помощью директивы print, согласно обозначениям указанным в таблице 1.

Если добавить перед любым обозначением знак “–” (минус), то это – отключить вывод конкретной переменной. Значения координат, вектора скоростей сохраняются всегда.

По умолчанию – выводить только давление и импульс print(p,i).

Таблица 1 – Опции для директивы print

Обозначение

Вывод в файл

all

p или pressure

m или mass

v или volume

a или area

t или temperature

g или shear

c или compress

q или viscosity

s или stress

frs

fre

b или boundary

view

i или impulse

d или debris

значения всех переменных, приведенных ниже

значения давления

значения массы элементов

значения объема элементов

значения площади элементов

значения температуры

значения модуля сдвига

значения сжатия элементов

значения искусственной вязкости

значения тензора напряжения

значения главных напряжений

значения деформаций

значение типа элемента (граничный, поврежденный и т.д.)

номера материалов

импульса системы (см. 5.13)

 параметров распределения осколков (см. 5.9, 5.10)

printspy – описывает какие величины сохранять в ячейках с сенсорами. Так как нет необходимости сохранять одинаковые значения величин как для расчета, так и в сенсорах, то директива позволяет разграничить вывод величин для расчета и в установленных сенсорах. Например, в расчете необходим вывод искусственной вязкости, но этот параметр не нужно выводить в сенсорах. Обозначения величин аналогичны приведенным в таблице 3. Вне зависимости от указанной директивы, значения координат, вектора скоростей и давление сохраняются всегда.

printspy(all) – сохраняет все возможные значения.

По умолчанию – копирует значения из директивы print.

print_at_every_step – директива, которая осуществляет запись импульса, скоростей и других параметров заданных для слежения за узлами и/или элементами на каждом шаге по времени. Результат работы директивы показан на рисунке 13. Из рисунка видно сглаженность линий при применении этой директивы. К тому же если необходимо следить за параметром “Сила”, то эту директиву включать обязательно, так как сила определяется через производные, полученные в результате расчета. Применение опции существенно увеличивает время расчета, так как операция записи на диск довольно медленная. Так время выполнения расчета на рисунке 13а составляет 15 сек, а время выполнения расчета на рисунке 13б – 32 сек.

По умолчанию - noprint_at_every_step, запись производится вместе с записью расчета, определяемой директивой time.

Рисунок 13 – Результат работы:

а) – noprint_at_every_step; б) – print_at_every_step

protect – директива, которая позволяет защитить директорию с файлами проведенного расчета от перезаписи новым расчетом, при работе в этой же директории. Программный пакет откажется записывать новый расчет в защищенную директорию, предложив сменить ее на другую.

По умолчаниюnoprotect, директория не защищена от перезаписи.

randlaw = (uniform|gauss|weibull|binomial|gamma|chisq|exp| poisson|power|beta|nbinomial|wigner) – директива описывает закон, по которому будет произведено распределение случайной величины при работе генератора случайных чисел, как при создании гетерогенных материалов, так и при создании начальных свойств материала “в составе поставки”.

Подробнее о законах распределения:

1) uniform – Непрерывное равномерное распределение, показано на рисунке 14а – распределение случайной вещественной величины, принимающей значения, принадлежащие некоторому промежутку конечной длины, характеризующееся тем, что плотность вероятности на этом промежутке почти всюду постоянна (https://en.wikipedia.org/wiki/Continuous_uniform_distribution).

2) gauss – Распределение по Гауссу, показано на рисунке 14б. Нормальное распределение, также называемое распределением Гаусса – распределение вероятностей, которое в одномерном случае задаётся функцией плотности вероятности, совпадающей с функцией Гаусса (https://en.wikipedia.org/wiki/Normal_distribution).

3) weibull – Распределение Вейбулла это двухпараметрическое семейство непрерывных распределений, показанных на рисунке 14в. Названо в честь Валодди Вейбулла, детально охарактеризовавшего его в 1951, хотя впервые его определил Фреше в 1927 (https://en.wikipedia.org/wiki/Weibull_distribution).

4) binomial – Биномиальное распределение, показанное на рисунке 14г, – распределение количества «успехов» в последовательности из n независимых случайных экспериментов, таких, что вероятность «успеха» в каждом из них постоянна и равна p (https://en.wikipedia.org/wiki/Binomial_distribution).

5) gamma – Гамма-распределение, показанное на рисунке 14д, это двухпараметрическое семейство абсолютно непрерывных распределений (https://en.wikipedia.org/wiki/Gamma_distribution).

6) chisq – Критерий хи-квадрат – любая статистическая проверка гипотезы, в которой выборочное распределение критерия имеет распределение хи-квадрат при условии верности нулевой гипотезы, показана на рисунке 14е. Считается, что критерий хи-квадрат – это критерий, который асимптотически верен, то есть, выборочное распределение можно сделать как угодно близким к распределению хи-квадрат путём увеличения размера выборки (https://en.wikipedia.org/wiki/Chi-squared_test).

7) exp – Экспоненциальное распределение, показанное на рисунке 14ж, – абсолютно непрерывное распределение, моделирующее время между двумя последовательными свершениями одного и того же события (https://en.wikipedia.org/wiki/Exponential_distribution).

8) poisson – Распределение Пуассона, показанное на рисунке 14з, это распределение дискретного типа случайной величины, представляющей собой число событий, произошедших за фиксированное время, при условии, что данные события происходят с некоторой фиксированной средней интенсивностью и независимо друг от друга (https://en.wikipedia.org/wiki/Poisson_distribution).

9) power– это такая функциональная зависимость между двумя величинами, при которой относительное изменение одной величины приводит к пропорциональному относительному изменению другой величины, независимо от исходных значений этих величин: зависимость одной величины от другой представляет собой степенную функцию (https://en.wikipedia.org/wiki/Power_law).

10) beta – В Байесовском выводе бета-распределение, показанное на рисунке 30к, – сопряженное априорное распределение вероятностей для распределений Бернулли, биномиального, отрицательного биномиального и геометрического распределений. Бета-распределение является подходящей моделью для случайного поведения процентов и пропорций (https://en.wikipedia.org/wiki/Beta_distribution).

11) nbinomial – Отрицательное биномиальное распределение, также называемое распределением Паскаля, показанное на рисунке 30л, – это распределение дискретной случайной величины, равной числу произошедших неудач в последовательности испытаний Бернулли с вероятностью успеха p, проводимых до r-го успеха (https://en.wikipedia.org/wiki/Negative_binomial_distribution).

12) wigner – Полукруговой закон (или распределение) Вигнера, показанное на рисунке 30м, – названное в честь физика Юджина Вигнера абсолютно непрерывное распределение вероятностей на прямой, график плотности которого получается после нормировки из полукруга, построенном на отрезке [-R, R] как на диаметре (https://en.wikipedia.org/wiki/Wigner_semicircle_distribution).

По умолчаниюrandlaw = uniform.

Рисунок 14 – Распределение предела текучести в материале по закону:

а) Равномерное распределение; б) Гаусса; в) Вейбулла г) биноминальному;

д) гамма; е) с критерием хи-квадрата; ж) экспоненциальному; з) Пуассона;

и) степенному; к) бетта; л) отрицательному биноминальному; м) Вигнера

refine_mesh – директива, которая требует повысить качество созданной или импортированной сетки. Применение динамического метода, реализованного в программном комплексе, существенно увеличивает число качественных треугольных ячеек, при этом ячейки с низким качеством “исчезают”, так как в процессе динамической коррекции растет их качество. Применение локальной перестройки сетки, после динамического воздействия, существенно исправляет треугольники с низким качеством.

refine_quality – задает минимальную величину качества сетки, до которой программный комплекс пытаться повысить качество отдельных ячеек сетки. Значение критерия качества — это нормированная величина Q и находится в интервале Q ∈ (0, 1], при этом значение Q=1 соответствует правильному треугольнику или тетраэдру, а Q=0 соответствует деградированному треугольнику или тетраэдру, в 2D и 3D соответственно. Возможный диапазон задания качества сетки 0.5 – 1. Чем выше величина этого параметра, тем больше времени необходимо для реализации этого условия.

По умолчаниюrefine_quality = 0.75.

remove_bad_elem – директива, которая декларирует – принудительно разрушать элементы с низким качеством, которые определяют “шаг по времени” в процессе счета. noremove_bad_elem – директива, которая запрещает принудительно разрушать плохие элементы, которые определяют “шаг по времени” в процессе счета.

По умолчаниюremove_bad_elem.

restart – «до счёт». Директива “restart” указывают программе возобновить расчет, используя в качестве начальных данных файл дампа.

run_paraview– директива определяет, что по окончании расчета необходимо запустить программу визуализации ParaView, в зависимости от того как определена директива ppp. Директивы norun_paraview определяют, что по окончанию расчета нет необходимости автоматически запускать внешнюю программу постобработки (значение по умолчанию).

qhull – директива, которая определяет путь к бинарному файлу исполнительной программы Qhull. Для использования этой команд на вашем оборудовании должна быть предустановлена соответствующая программа (https://www.qhull.org).

safe – директива, которая запускает безопасный алгоритм расчета контактных границ (медленный). В коде программы используются разные способы поиска новых контактов и сил, полученных в результате разрушения множества объектов. В коде, по умолчанию, используется “оконный” способ поиска, как наиболее быстрый. В 90-95% расчетов, проведенных нами – этот поиск наиболее оправдан. Также в код программы вшит безопасный поиск, который, верно, производит поиск контактов, но существенно увеличивает время расчета. И если в процессе расчета, вы обнаружили пересечения границ, то остановите программу и с помощью директивы safe включите безопасный режим, который поможет преодолеть создавшиеся трудности.

sensor_elem, sensor_knot – директивы, которая устанавливает “датчик” в узле и/или элементе в соответствии с заданным координатам. Датчик необходим для отслеживания изменения от времени таких параметров как скорость, давление, напряжения и т.д. В программном комплексе CAE Fidesys с модулем HSDF реализовано несколько способов задания установки датчиков в расчетную модель.

Можно устанавливать “датчики” с помощью директив 1) spy_knot, spy_elem явно указывая номер элемента и/или узла, что минимизирует ошибку установки “датчиков”, но жестко привязывается к геометрии и шагу; 2) sensor_knot, sensor_elem явно указывая место установки по координатам, что позволяет не обращать внимание на заданный шаг геометрии и порядок ее построения; 3)sensor_line задание плоскости для установки множества “датчиков” для подсчета осреднённого значения величин, как правило для гетерогенных материалов. Дискретизация изменения параметров от времени определяется директивой print_at_every_step, а отслеживаемые величины задаются директивой printspy. Если элемент и/или узел в процессе расчета разрушается, то его значения обнуляются.

Рисунок 15 – Геометрическая модель с установленными «датчиками» с помощью директив sensor, spy или ray

На рисунке 15 показан пример геометрической модели с «датчиками» установленными с помощью различных директив sensor или spy. С помощью цветовой дифференциации можно контролировать правильность установки датчиков, указанной в легенде, так отслеживаемые узлы помечены пурпурным окружностями, а элементы – голубыми треугольниками и т.д.

Директивы sensor_knot, sensor_elem используют следующие параметры:

sensor_elem(x, y, z) – слежение за величинами в треугольном элементе сетки, координаты (x,y,z) которого находится внутри;

sensor_knot(x, y, z) – слежение за величинами в ближайшем узле сетки, который находится в области обозначенной координатами (x,y,z).

На рисунке 16 показан пример визуализации величины давления от времени по пяти заданным элементам. В легенде цифра – это номер элемента. Автоматически, с помощью толстой черной линии подсчитывается среднее значение по всем заданным “датчикам”.

Рисунок 16 – Результат вывода величины давления в элементах с помощью директивы sensor_elem

spy_knot, spy_elem – директива, которая устанавливает “датчик” в узле или элементе по указанным номерам элемента и/или узлам соответственно. Директивы полностью аналогичны sensor_elem и sensor_knot, только с явным заданием номеров.

spy_elem(num1, num2,…) – слежение за параметрами в треугольном элементе сетки с номерами num1, num2 и т.д;

spy_knot(num1, num2,…) – слежение за параметрами в узле сетки с номерами num1, num2 и т.д.

step – директива, которая определяет шаг по пространству [см]. Шаг задается одинаковым для всех геометрических примитивов, с помощью которых представляется геометрическая модель задачи.

Максимальное значение шага по пространству, с которыми возможен расчет, ограничен только геометрическими размерами объектов. Если все же значение выбрано выше максимально допустимого, для хотя бы одного из геометрических примитивов, происходит принудительная остановка программы, и выводятся рекомендации по изменению шага. Минимальное значение шага в программном комплексе не ограничено, но как показывает практика, применение шага меньше 0.001 см приводит к ошибкам в расчетах, связанных с потерей точности при вычислениях дифференциальных уравнений на треугольной сетке и машинным округлением, при большом количестве шагов по времени.

Директиву указывать обязательно, значение по умолчанию отсутствует.

storage = (binary,zlib,bzip2) – директива, которая определяет формат файлов для хранения внутренних файлов программы. При работе программного модуля создается множество внутренних файлов, которые могут быть востребованы для последующих расчетов, так, например, геометрия объектов с созданной сеткой, файлы dump, файлы осколков и т.д. Так размер временных файлов при трехмерных расчетах может достигать нескольких гигабайт, то для минимизации дискового пространства существует директива управляющая форматом хранения этих файлов. Эта директива может принимать одно из значений:

binary – используется бинарное сжатие. Сжатие и распаковка данных, с жесткого диска, осуществляется максимально быстро и ограничивается только параметрами жесткого диска. Размер создаваемых файлов самый большой из всех присутствующих способов сжатия (значение по умолчанию).

zlib – используется свободная кроссплатформенная библиотека для сжатия данных zlib, которая предоставляет функции компрессии и декомпрессии в памяти, включая проверку целостности несжатых данных. Размер создаваемых файлов, примерно, в 2 раза меньше, чем с помощью метода сжатия binary, но дополнительно приводит к увеличению времени необходимого для расчета программного комплекса CAE Fidesys с модулем HSDF.

bzip2 – используется свободная кроссплатформенная библиотека для сжатия данных bzip2 [17], которая предоставляет функции компрессии и декомпрессии в памяти, включая проверку целостности несжатых данных. Размер создаваемых файлов самый маленький из всех присутствующих способов сжатия, но дополнительно приводит к увеличению времени счета необходимого для программного комплекса CAE Fidesys с модулем HSDF.

tetgen – директива, которая определяет путь к бинарному файлу исполнительной программы Tetgen. Для использования этой директивы на вашем оборудовании должна быть предустановлена соответствующая программа (страница проекта http://wias-berlin.de/software/index.jsp?id=TetGen).

time – директива, которая задает длительность проведения численного эксперимента.

time(t_end, t_print), задается в [мкс]. Директиву указывать обязательно.

t_end - время по достижении которого задача останавливается;

t_print - период записи промежуточных результатов расчета в файл.

Эти параметры могут задаваться, как вместе, с помощью директивы time, так и по отдельности с помощью директив t_end и t_print. В последнем случае, задание директивы t_print не является обязательным условием, и период записи вычисляется из расчета 1/10 t_end.

triangle – директива, которая определяет путь к бинарному файлу исполнительной программы Triangle. Для использования этой команд на вашей рабочей станции должна быть предустановлена соответствующая программа (сайт программы https://www.cs.cmu.edu/~quake/triangle.html).

type_calc = (axial|plain|calc3d) – директива, которая определяет тип задачи. Директиву указывать обязательно, значение по умолчанию отсутствует. Тип задачи может принимать одно из трех значений:

axial – расчет в 2D аксиальной симметрии. Ось аксиальной симметрии проходит по оси OY в декартовых координатах;

plane – расчет плоской 2D задачи;

calc3d – 3D расчет.

Все директивы можно указывать через type_calc = …, а можно отдельно: axial, plane, calc3d.

viscosity – директива, которая определяет параметры искусственной вязкости разностной схемы. Директива использует следующие переменные:

viscosity (cl, cq, dt)

cl – коэффициент при линейной вязкости, диапазон [0,10);

cq – коэффициент при квадратичной вязкости, диапазон [0,10);

dt – коэффициент запас шага по времен, диапазон (1e-3,0.33).

Эти параметры могут задаваться, как вместе, с помощью директивы viscosity, так и по отдельности с помощью директив coef_cl, coef_cq, coef_dt. Не рекомендуется менять эти параметры, они, прежде всего, предназначены для разработчиков. Текущее значение всех параметров можно посмотреть запустив расчет с опцией вывода отладочной информации.

По умолчаниюviscosity (1.0, 4.0, 0.25).

xray – директива, которая определяет местоположение установки многокадровой регистрации быстропротекающих процессов с использованием синхротронного излучения (СИ). Директива использует следующие переменные:

xray(nx,dx);

xray(nx,dx,wl);

xray(nx,dx,wl,nl).

nx – определяет ось координат перпендикулярно которой направлен луч СИ. Указывается либо в виде целого числа от 1 до 3, либо буквенным выражением, например X, Y или Z;

dx – определяет значения координаты nx луча, например X=0.4;

wl – ширина вигглера, (значение по умолчанию 2 [см]);

nl – число лучей СИ, (значение по умолчанию 512 [шт]).

На рисунке 17 показан пример визуализации расположения вигглера, на файле с геометрией, после применения директивы xray. Желтыми линиями показаны размер и расположение вигглера. Вигглер (от англ. wiggle — вихлять, изгибаться) – устройство для генерации синхротронного излучения в электронном накопителе-синхротроне.

Результат работы макроса представлен в последнем разделе, посвященный постпроцессору.

Рисунок 17 – Визуализация расположения вигглера на геометрии при применении директивы xray

warn2err – директива, с помощью которой можно перевести часть предупреждений, выдаваемых программным комплексов в ранг “ошибка”, т.е. полная остановка работы программы до устранения причины, вызвавшей эту ошибку. Полезна при отладке свойств материалов на наличие устаревших параметров и др.

По умолчаниюnowarn2err.

work_dir – директива, которая определяет путь к рабочей директории, в которой будут храниться все файлы расчета текущего проекта. Можно задавать как абсолютный путь, так и относительный путь от конфигурационного файла.

Если в этой папке будет обнаружен другой проект, то все файлы предыдущего расчета удаляются без предупреждения.

Литература

1. Sutherland I.E., Hodgman G.W. Reentrant polygon clipping // Commun. ACM. 1974. Vol. 17, № 1. P. 32–42.

2. Kraus E.I., Shabalin I.I., Shabalin T.I. Automatic tetrahedral mesh generation for impact computations // AIP Conference Proceedings. 2017. Vol. 1893. P. 030129.

3. Андреев А.Н., Краус Е.И., Шабалин И.И. и др. Механика - от дискретного к сплошному.-Новосибирск: Изд - во СО РАН, 2008. -344 с. Новосибирск: Изд - во СО РАН, 2008. 344 p.

4. Краус Е.И., Фомин В.М., Шабалин И.И. Моделирование процесса соударения сложных двумерных тел о деформируемую преграду // Вычислительные технологии. 2006. Vol. 11. P. 104–107.

5. Kraus E.I., Kraus A.E., Shabalin I.I. The Influence of the Contact Boundary in a Metal Matrix Composite on Dynamic Loading // Springer Proceedings in Physics. 2024. Vol. 1067 SPPHY, № November. P. 134–142.

6. Краус Е.И., Фомин В.М., Шабалин И.И. Динамический метод построения треугольных сеток в многосвязных областях // Вычислительные технологии. 2009. Vol. 14, № 5. P. 40–48.

7. Shimada K., Gossard D.C. Bubble mesh // Proceedings of the third ACM symposium on Solid modeling and applications - SMA ’95. New York, USA: ACM Press, 1995. P. 409–419.

8. Conway J.H., Torquato S. Packing, tiling, and covering with tetrahedra // Proc. Natl. Acad. Sci. 2006. Vol. 103, № 28. P. 10612–10617.

9. Joe B. Geompack — a software package for the generation of meshes using geometric algorithms // Adv. Eng. Softw. Work. Elsevier, 1991. Vol. 13, № 5–6. P. 325–331.

10. Barber C.B., Dobkin D.P., Huhdanpaa H. The quickhull algorithm for convex hulls // ACM Trans. Math. Softw. 1996. Vol. 22, № 4. P. 469–483.

11. Si H. TetGen, a Delaunay-Based Quality Tetrahedral Mesh Generator // ACM Trans. Math. Softw. 2015. Vol. 41, № 2. P. 1–36.

12. Shewchuk J.R. Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator. 1996. P. 203–222.

13. Johnson G.R., Beissel S.R., Gerlach C.A. A 3D combined particle-element method for intense impulsive loading computations involving severe distortions // Int. J. Impact Eng. Pergamon, 2015. Vol. 84. P. 171–180.

14. Kraus E.I., Shabalin I.I. Reactor2D: A tool for simulation of shock deformation // AIP Conf. Proc. 2016. Vol. 1770. P. 030092.

15. Петров И.Б. et al. О комбинированном методе для численного решения динамических пространственных упругопластических задач // Доклады Академии наук. 2015. Vol. 460, № 4. P. 389–391.

16. Уилкинс М.Л. Расчет упругопластических течений // Вычислительные методы в гидродинамике / ed. Олдера Б., Фернбаха С., Ротенберга М. Москва: Мир, 1967. P. 212–263.

17. Официальный сайт библиотеки bzip2.

18. Kraus A. et al. Numerical Modelling of High-Speed Loading of Periodic Interpenetrating Heterogeneous Media with Adapted Mesostructure // Appl. Sci. 2023. Vol. 13, № 12. P. 7187.

19. Таблицы физических величин. Справочник. / ed. Кикоина акад. И.К. Москва: Атомиздат, 1976. 1008 p.

20. Краус Е.И., Фомин В.М., Шабалин И.И. Модельные уравнения термодинамических функций состояния веществ. 2. Жидкость и описание плавления // Физическая мезомеханика. 2004. Vol. 7. P. 289–292.

21. Fomin V.M., Kraus E.I., Shabalin I.I. A few-parameter equation of state of the condensed matter and its application to the impact problems // EPJ Web Conf. 2010. Vol. 10. P. 00027.

22. Fomin V.M., Kraus E.I., Shabalin I.I. An equation of state for condensed matter behind intense shockwaves // Mater. Phys. Mech. 2004. Vol. 7, № 1. P. 23–28.

23. Краус Е.И. Малопараметрическое уравнение состояния твердого вещества при высоких плотностях энергии // Вестник НГУ. 2007. Vol. 2, № 2. P. 65–73.

24. Kraus E.I., Shabalin I.I. A few-parameter equation of state of the condensed matter // J. Phys. Conf. Ser. 2016. Vol. 774. P. 012009.

25. Kraus E.I., Shabalin I.I. Calculation of elastic modules behind strong shock wave // J. Phys. Conf. Ser. 2015. Vol. 653. P. 012085.

26. Kraus E.I., Shabalin I.I. A new model to determine the shear modulus and Poisson’s ratio of shock-compressed metals up to the melting point // High Press. Res. 2021. Vol. 41, № 4. P. 353–365.

27. Marsh S.P. LASL Shock Hugoniot Data // Los Alamos Series on Dynamic Material Properties. Univ of California Press, 1980. 150 p.

28. Трунин Р.Ф. et al. Экспериментальные данные по ударно-волновому сжатию и адиабатическому расширению конденсированных веществ / ed. Трунина Р.Ф. Саров: РФЯЦ-ВНИИЭФ, 2006. 531 p.

29. Кинслоу Р., Ред. Высокоскоростные ударные явления / ed. Николаевского В.Н. Москва: Мир, 1973. 533 p.

30. Краус Е.И., Фомин В.М., Шабалин И.И. Учет электронных составляющих в уравнении состояния при расчете ударных волн в смеси металлов // Вестник Пермского национального исследовательского политехнического университета. Механика. 2001. № 9. P. 78–84.

31. Kraus E.I., Shabalin I.I., Shabalin T.I. Numerical analysis of wave propagation in a cermet composite // AIP Conference Proceedings. 2017. Vol. 1893. P. 030130.

32. Fomin V.M. et al. Accounting for Functions of Distribution of Mechanical Properties of Metals in Dynamic Processes of Deformation and Destruction of Barriers // J. Eng. Phys. Thermophys. Springer, 2022. Vol. 95, № 7. P. 1–9.