маслов. Практикум предназначен для проведения лабораторных занятий и са мостоятельной работы студентов факультета Ф, обучающихся по спе циальности Ядерные реакторы и энергетические установки
Скачать 1.6 Mb.
|
Раздел Title является необязательным и может содержать одну ли- теральную строку. В случае присутствия данного раздела в сцена- рии литеральная строка используется как метка заголовка для вы- водимых графиков. Раздел Select не является обязательным и используется, когда не- обходимо ввести или отменить некоторые внутренние параметры. Переменные в данном разделе используются для управления про- цессом расчета и имеют предопределенные имена. Некоторые пе- ременные, доступные пользователю в Select, приведены в табл. 3.2. Таблица 3.2 Название Значение по умолча- нию Назначение ASPECT 4 - Максимальный коэффициент сжа- тия ячейки AUTOHIST On Заставляет графики перерисовы- ваться во время расчета AUTOSTAGE On Устанавливает отсутствие паузы при расчете 78 Окончание табл. 3.2 Название Значение по умолча- нию Назначение COLORCYCLE 32 Максимальное количество цветов CONTOURS 15 Число уровней на контурных гра- фиках CUBIC On Устанавливает использование куби- ческих базисных функций DEBUG(GRID) Off Показывать процесс отображения сетки ERLIM 0.001 Точность расчета FONT 1 Устанавливает тип шрифта NODELIMIT 800 Максимальное число узлов решения NONLINEAR AUTOMATIC Устанавливает нелинейный метод решения, даже если автоматический процесс расчета этого не требует PAINTED Off Отображение заполненных цветом контурных графиков REGRID On По умолчанию FlexPDE осуществ- ляет адаптивное усовершенствова- ние расчетной сетки QUADRATIC On Устанавливает использование квад- ратичной базисной функции STATUSMESH On Расчетная сетка показывается в Mesh Window NGRID 10 Определяет число ячеек сетки в максимальном измерении Раздел Coordinates (необязательный) определяет систему коорди- нат для конкретной задачи. При этом раздел задается в следующем виде: COORDINATES 79 где <geom> – тип задаваемой системы координат, может быть лю- бой из видов, указанных в табл. 3.3. Таблица 3.3 Название Значение CARTESIAN Декартовы координаты ‘X’ и ‘Y’ XCYLINDER Цилиндрические координаты с осевой коорди- натой ‘Z’, находящейся на горизонтальной гра- фической оси ‘X’, и радиальной координатой ‘R’, находящейся на вертикальной графической оси ‘Y’. YCYLINDER Цилиндрические координаты с радиальной ко- ординатой ‘R’, находящейся на горизонтальной графической оси ‘X’, и осевой координатой ‘Z’, находящейся на вертикальной графической оси ‘Y’. CARTESIAN3 Декартовы координаты ‘X’, ‘Y’ и ‘Z’. В данном разделе можно произвести переименование коорди- нат, в этом случае используется следующая запись: COORDINATES При этом применение переименования вызывает переопределе- ние дифференциальных операторов. Раздел Variables используется для определения переменных, ис- пользуемых в сценарии. Каждая переменная определяет непрерыв- ное скалярное поле по расчетной области. При задании имен пере- менных применяются следующие правила: − Имена переменных должны начинаться с алфавитного символа. Они не могут начинаться с цифры или символа. − Имена переменных должны быть уникальными и отличаться от символа t, который зарезервирован для переменной времени. 80 − Имена переменных могут иметь любую длину и любую комби- нацию символов, цифр и (или) символов, отличных от зарезер- вированных слов. − Имена переменных не должны содержать любые разделители. Составные имена могут быть сформированы с использованием символа ‘_’. − Имена переменных не могут содержать ‘–’, который зарезерви- рован для знака ‘минус’. При этом программа не различает заглавные и строчные буквы, так переменная X и x обозначают одно и то же. Раздел Definitions используется, чтобы объявить и назначить на- звания констант и функций, используемых в сценарии. При описа- нии переменных в данном разделе придерживаются тех же правил, что и в разделе Variables. Дополнительно здесь возможно задание массивов или списков значений в форме: Xk=ARRAY (1, 2, 3, 4, 6.5). Значения, заданные в списке, должны быть натуральными чис- лами. Они не могут содержать координатные или зависимые пере- менные. Использование средства ARRAY демонстрирует следующий пример: DEFINITIONS Xc=arraу (1/3, 2/3, 3/3, 4/3, 5/3) {Список Х-координат} Yc=arrаy (1/3. 2/3, 3/3. 4/3, 5/3) {Список Y-координат} BOUNDARIES Region 1 for i=1 to 5 {Индексированный цикл на Х-позиции} for j=1 to 5 {Индексированный цикл на Y-позиции} Start (хс [i] +rad, ус [jJ) {Массив точек} 81 Arc (center=xc [i], ус [j]) angle=360 {сведенных в таблицу коорди- нат} Endfor Endfor Раздел Initial values используется при решении нестационарных задач, когда необходимо задать начальное значение для времязави- симых переменных. В выражении за именем переменной стоит оператор назначения ‘=’, а справа константа, функция, выражение или предварительно введенное определение, например: Initial values Xk=25-x Раздел Equations используется, чтобы перечислить дифференци- альные уравнения в частных производных, которые определяют зависимые переменные решаемой задачи. Уравнения, вводимые в сценарий, записываются в естественной форме, используя операто- ры табл. 3.4. Таблица 3.4 Команда, функция или кон- станта Синтаксис Название CURL CURL(X) Ротор числа X DEL2 DEL2 (X) Лапласиан числа X, эквивалентный Div(Grad(X)) DIV DIV(X) Дивергент числа X GRAD GRAD(X) Градиент числа X DХ DX() Дифференциальный оператор по X DXX DXX() Вторая производная по X В случае решения задачи, включающей в себя бигармонические уравнения, которые требуют использования более высоких поряд- ков производных, они должны быть переписаны, используя проме- 82 жуточные переменные так, чтобы содержать только производные второго порядка. Раздел Constraints является необязательным и используется, чтобы применить дополнительные интегральные связи к решаемой систе- ме. Эти связи используются для устранения неоднозначности, ко- торая может возникнуть в установившихся системах, или в случае, если граничные условия содержат только производные зависимых переменных. Раздел Constraints обычно содержит один или большее количе- ство инструкций вида Integral(argument) = Expression Раздел Extrusion используется при решении дифференциальных уравнений, когда в качестве областей решения рассматриваются объемные 3D-объекты. В качестве примера рассмотрим часть сценария, отвечающую за задание расчетной области в виде цилиндра радиусом R0 и высо- той, равной единице. EXTRUSION SURFACE Z = 0{Нижняя граница по оси Z} SURFACE Z = 1{Верхняя граница по оси Z} BOUNDARIES SURFACE 1 VALUE(U) = 100 {Задаем граничные условия снизу} SURFACE 2 VALUE(U) = 0 {Задаем граничные условия сверху} REGION 1 START (R0,0) ARC(CENTER=0,0) ANGLE=360 TO CLOSE {Задаем форму основа- ния} Результат выполнения данного кода иллюстрирует рис. 3.3. 83 Рис. 3.3. Расчетная область в виде цилиндра Раздел Boundaries (обязательный) используется, чтобы описать двумерную область или проекцию трехмерной области на основ- ную плоскость и присоединить граничные значения и внешние ис- точники на физических границах задачи. В FlexPDE осуществует два основных типа задания граничных условий – VALUE и NATURAL. В граничные условия в форме VALUE (или по Дирихле) определяется значение, которое должна принять переменная на границе области решения. В граничных условиях в форме NATURAL задается значение потока на границе области решений. Кроме того, используется условие типа NOBC. Это условие приме- няется, чтобы выключить предварительно указанное граничное ус- ловие. Оно эквивалентно условию NATURAL (VARIABLE)=0. FlexPDE позволяет также моделировать наличие скачкообразно- го изменения переменных на границах, вызванного, например, кон- тактным термическим или электрическим сопротивлением. Для этого используются инструкции вида CONTACT и JUMP. Условие 84 CONTACT – это специальная форма условия NATURAL, которая означает, что на границе определяются вместо одного два значения неизвестной величины и ее поток пропорционален разнице этих значений. Разница значений задается с помощью JUMP. Например, если на границе существует контактное термическое сопротивле- ние, то граничное условие будет: T R T T n T 2 1 − = ∂ ∂ λ − r , где R T – кон- тактное термическое сопротивление, а nr – нормаль к граничной поверхности. Это условие будет записано в FlexPDE следую- щим образом: CONTACT(T) = JUMP(T) /R T Отметим, что задание условия CONTACT на внутренней границе области приводит к дублированию узлов сетки на границе. Эти дубликаты связаны между собой условием JUMP. В пределах Boundaries физическая область делится на части Region , Features и Exlude (подразделы). Каждый прикладной описа- тель должен иметь, по крайней мере, один подраздел Region. Подраздел REGION используется, чтобы описать замкнутые об- ласти, которые составляют физическую геометрию задачи в дву- мерной плоскости, или двумерные проекции на основную плос- кость в трехмерных задачах. Подразделы REGIONS включают об- ласти и подобласти с заданными материальными параметрами. Подразделы REGION начинаются с зарезервированного слова START , сопровождаемого физическими координатами отправной точки, затем описываются границы области, которые задаются прямолинейными отрезками или дуговыми сегментами, и замыка- ется область зарезервированным словом CLOSE. Координаты име- ют стандартную математическую форму (X, Y). Среди возможных графических примитивов используемых во FlexPDE существуют примитивы, указанные в табл. 3.5. 85 Таблица 3.5 Примитив Синтаксис Название LINE LINE TO (X,Y) Линия от точки START до точки с координатами (X, Y) – LINE TO (X,Y) TO (X1,Y1) TO (X2,Y2) TO … Полилиния, проходящая через точки с координатами (X, Y), (X1, Y 1), (X2, Y2) и др. ARC ARC TO (X1,Y1) TO (X2,Y2) Дуга от точки с координатами (X1, Y1) до точки с координатами (X2, Y2) – ARC (RADIUS=R) TO (X,Y) Дуга радиусом R до точки с ко- ординатами (X, Y) – ARC (CEN- TER=X1,Y1) TO (X2,Y2) Дуга с центром в точке с коорди- натами (X1,Y1), проведенная до точки с координатами (X2, Y2) – ARC (CEN- TER=X1,Y1) AN- GLE=angle Дуга с центром в точке с коорди- натами (X1, Y1), проведенная на угол angle (в градусах) Подраздел EXLUDE (исключение) используется, чтобы описать замкнутые области, который имеют пересекающиеся части в одном или большем количестве подразделов REGION. Область, описанная подразделом EXLUDE, исключается из системы расчета. Подразде- лы EXLUDE, должны следовать за подразделами REGION, которые они перекрывают. Подразделы EXLUDE описываются тем же самым способом, как и подразделы REGION, и могут использовать также LINE и ARC сегменты. В качестве примера можно рассмотреть следующий код: REGION 1 {Задаем исходную расчетную область в виде квадрата} START(-1,-1) VALUE(U)=U0 LINE TO (1,-1) TO (1,1) TO (-1,1) CLOSE EXCLUDE {Удаляем из расчета треугольную область} 86 START(-1,-1) LINE TO (0,0) TO (1,-1) TO (-1,1) CLOSE Результат выполнения данного кода иллюстрирует рис. 3.4. Рис. 3.4. Расчетная область, построенная с использованием подраздела EXLUDE Подраздел FEATURE используется, чтобы описать незамкнутые объекты, которые не включают подобласть с определимыми мате- риальными параметрами. Подразделы FEATURE формируются тем же самым способом, как и подразделы REGION, и могут использо- вать также LINE и ARC сегменты. Подразделы FEATURE не закан- чиваются резервным словом CLOSE. Подразделы FEATURE используются, когда проблема имеет внутренние линейные источники, когда желательно вычислить ин- тегралы по нерегулярному пути, или когда требуется явное управ- ление вычислительной сеткой. Пример применения данного под- раздела иллюстрирует следующий программный код: REGION 1 {Задаем расчетную область в виде квадрата} START(0,0) LINE TО (10,0) TO (10,10) TO (0,10) TO FINISH FEATURE {Задаем линию сетки} 87 START(0,0) LINE TO (10,10) При применении данных подразделов следует помнить, что все подразделы REGIONS должны быть перечислены прежде, чем бу- дут упомянуты подразделы EXLUDE или FEATURE. Соответствен- но подразделы EXLUDES должны быть перечислены до подразде- лов FEATURE. Подразделы REGION, EXLUDE и FEATURE могут иметь как численное, так и буквенное обозначение имен. В случае использо- вания в качестве имени указанных подразделов цифровых обозна- чений, номера должны назначаться в порядке возрастания, начиная с первого. Более предпочтительным является задание имен подраз- делов в виде чисел. Однако, если в сценарии ставится задача вывода значения объ- емного интеграла для произвольной области, то в этом случае це- лесообразно задавать имена подразделов литеральными символа- ми. В случае задания таких имен они должны иметь форму цити- руемой строки и быть помещены немедленно после зарезервиро- ванного слова REGION, EXLUDE или FEATURE. Назначенные имена должны быть уникальны в подразделах REGION, EXLUDE и FEATURE. Ранее были рассмотрены граничные условия, заданные для сег- ментов LINE и ARC. В дополнение к указанным граничным услови- ям во FlexPDE имеет возможность задания граничных условий для отдельных точек в форме VALUE и LOAD. Граничные условия в форме VALUE для точки задаются посред- ством инструкции POINT VALUE (точечные граничные условия). Синтаксис данной инструкции иллюстрирует следующий пример : POINT VALUE(VARIABLE) = Expression Данная инструкция указывается после координатной специфика- ции. Заданное значение граничных условий будет наложено только на точку, координаты которой определены предшествующей спе- цификацией. Граничные условия вида POINT LOAD могут быть добавлены, помещением следующего программного кода: 88 POINT LOAD(VARIABLE) = Expression Данная инструкция указывается после координатной специфика- ции. Заявленные граничные условия будут наложены только на точку, координаты которой, определенной предшествующей спе- цификацией. При решении задач для 3D-объектов иногда необходимо опре- делить различные отверстия или исключенные области в расчетной области. Это может быть сделано с использованием инструкции VOID . VOID имеет синтаксис переопределения параметра. Напри- мер, следующий фрагмент кода показывает использование инст- рукции VOID: EXTRUSION Z=0,1,2,3 BOUNDARIES REGION 1 START(0,0) LINE TO (3,0) TO (3,3) TO (3,0) TO CLOSE REGION 2 LAYER 2 VOID START(1,1) LINE TO (2,1) TO (2,2) TO (2,0) TO CLOSE Рис. 3.5 и 3.6 иллюстрируют изменение в расчетной области в результате применения данного программного кода. Раздел Time используется в нестационарных прикладных описате- лях, чтобы определить диапазон времени. Во FlexPDE поддержи- ваются следующие альтернативные формы задания временного диапазона: FROM time1 TO time2 FROM time1 INCREMENT TO time2 FROM time1 TO time2 increment Здесь time1 – начальное время; time2 – конечное время; increment – необязательная спецификация начального шага по времени. 89 Рис. 3.5. Исходная расчетная область Рис. 3.6. Расчетная область, в которой посредством инструкции VOID исключен один слой Раздел Monitors является необязательным и используется, чтобы перечислить промежуточные графики, которые выводятся в про- цессе решения задачи. Раздел Plots является необязательным и используется, чтобы пере- числить окончательные графики, которые будут выведены на экран по завершению решения задачи. Раздел Plots отличается от раздела Monitors так же тем, что графики первого могут быть записаны в файл с расширением .PGX для последующего отображения после выполнения задачи. Инструкции Plots и Monitors имеют одинаковую форму и функ- ции. Разделы Monitors или Plots могут содержать один или большее количество спецификаций экрана следующих типов: 90 СONTOUR (arg) – выполняет вывод двухмерного контурного гра- фика параметра (arg), с однородными интервалами уровня пара- метра. ELEVATION(arg1, [arg2,...]) – выполняет вывод двухмерно- го графика, который отображает значение параметра(ов) верти- кально по оси Y а горизонтально (ось X) область локализации неза- висимой переменной. GRID (arg1, arg2) – рисует двухмерную сетку вычислений с узло- выми координатами, определенными двумя параметрами. SUMMARY('string') – этот графический тип определяет текстовую страницу, содержащую информацию о данных, введенных в тек- стовой строке. VECTOR(arg1, arg2) – рисует двухмерное поле направленных стре- лок, в которых X- и Y-компоненты стрелок задаются arg1 и arg2. Вид любого экрана может изменяться путем прибавления одно- го или нескольких предложений вида: AS 'string' – изменяет метку на экране на выражение, указанное в строке. EXPORT – записывает на диске файл, содержащий данные, пред- ставленные в разделах Monitors или Plots. INTEGRATE – возвращает значение интеграла от функции, изобра- женной на графике. LIN, LOG, LINLOG, LOGLIN, LOGLOG – данные спецификаторы изменяют заданные по умолчанию линейные масштабы вывода графиков на специальные. Команда масштабирования состоит или из отдельного слова или составного слова. В случае использования односложного слова, например, LIN – это означает задание линейного масштаба отображения графиков, в случае задания LOG графики будут иметь логарифмические оси. При использовании составных слов (LINLOG, LOGLIN, LOGLOG) первое слово применяет к логической оси X, второе – к логической оси Y и так далее. NOTIPS – данный спецификатор отображает графики типа Vector как отрезки без стрелок. PAINTED – заполняет области между контурными линиями цветом. 91 Любая спецификация экрана может сопровождаться одним или большим количеством следующих предложений с целью прибав- ления сообщений к графикам: REPORT expression – данная спецификация добавляет внизу графи- ка текст 'text expression=value expression', где expression – любое выражение, включая выражения, содержащие интегралы. В дополнение можно отметить, что в нестационарных задачах спецификациям экрана должна предшествовать инструкция, регла- ментирующая вывод графиков. Эта инструкция может иметь лю- бую из нижеприведенных форм: FOR CYCLE = number – в этом случае графики будут обновляться на каждом указанном временном шаге. FOR T = timeset1 [ timeset2 ... ] – каждый timeset (временной шаг) может быть или определенным временем или группой временных шагов, указанных как массив значений. |