ustify"> yv [2]:=0.;:=2; nz:=1 to nzy do:=ncvy [nz];:=j2;:=jlast + 1;:=jlast + ncvy [nz]; j:=j1 to j2 do:=(j-jlast)/fcvly; (powry [nz] gt; 0) then[j]:=yv[jlast]+yzone[nz]*power(dd,powry[nz])[j]:=yv[jlast]+yzone[nz]*(1.-power((1.-dd),(-powry[nz])));;;:=j2;; Phi;// Вивід на друк інформацію про сітці і двовимірні поля залежних змінних
var, j: integer; j:=2 to M2 doi:=2 to L2 do [i, j]:=cond * f [i, j, 2];// Обчислення коефіцієнта дифузії [i, j]:=- dpdz ;;;
//визначаємо теплоізольовані частини
for j:=2 to M2 do//задаємо теплоізоляцію крім першого сектора
begin [j]:=2; [j]:=2 ;; i:=1 to ncvlx do [i]:=2 ;;;
5.4 Розробка програми за алгоритмом за допомогою обраного програмного забезпечення
. 4.1 Опис деяких процедур
Процедура READY
Функція READY полягає в розрахунку і збереженні значень геометричних величин. У пам'яті зберігаються тільки одномірні геометричні характеристики. Величини виду YCVR (J) * XCV (I), хоча й корисні для подальшої роботи, не зберігаються, тому що для цього потрібне введення двовимірного масиву. Уніфіковане використання двох систем координат (декартовій і полярній) стає можливим завдяки належному визначенню узагальнених геометричних характеристик, зробленому в READY. Ні в одному місці програми не потрібно використовувати оператор IF при програмуванні різних формул для кожної системи коордінат.виполняет також ще одну функцію. Ця підпрограма друкує заголовок із зазначенням використовуваної системи координат. Цей заголовок досить важливий, оскільки, якщо ви випадково іспользуете не ту систему координат, відразу будете попереджені. READY роздруковує текстову змінну HEADER, яка містить поданий користувачем заголовок завдання довжиною до 64 символів.
Процедура HEART
Найважливіша обчислювальна частина програми міститься в підпрограмі HEART. Тут розраховуються коефіцієнти дискретних аналогів і виробляються модифікації граничних умов. Погляд, кинутий на підпрограму HEART, насамперед наткнеться на зовнішній оператор циклу DO з параметрами N=1, NFMAX, призначений для організації послідовних обчислень кожної залежної змінної. Усередині циклу здійснюється виклик підпрограми PHI, де користувач визначає значення ALAM (I, J), GAM (I, J), SC (I, J), SP (I, J) та індикатори граничних умов КВС. На закінчення викликається підпрограма SOLVE для ітераційного рішення системи алгебраїчних рівнянь.
Наприкінці HEART збільшується значення ITER, а якщо ITER досягає свого граничного значення, обумовленого змінної LAST, то KSTOP присвоюється значення одиниці.
Процедура SOLVE
Завдання підпрограми SOLVE полягає в ітераційному вирішенні системи лінійних алгебраїчних рівнянь виду (2.11). Алгоритм рішення, реалізований у SOLVE, описаний раніше. Крім повторів алгоритму потрібне число раз в кінці SOLVE реалізовані деякі додаткові функції. Так, наприклад, виробляється обчислення невідомих значень ф на кордоні, коли індикатор граничних умов КВС=2. Слід зазначити, що алгоритм рішення в SOLVE оперує значеннями ф тільки у внутрішніх точках. Коли рішення отримано, невідомі значення ф на кордоні знаходяться з рівнянь виду (2.40).
Як вже відомо, в підпрограмі DEFLT великому числу змінних за замовчуванням присвоюються деякі значення. Однак деякі змінні повинні після кожного їх використання приймати первісне значення. Такими змінними є, наприклад, джерельні члени SC (I, J) і SP (I, J), всі параметри граничних умов КВС, та ін. Цим змінним присвоюються їх значення за замовчуванням в кінці підпрограмі SOLVE.
Процедура ZGRID
Область ділиться по осях х та у на різні зони і для кожної зони створюється сітка.
Для нашої обчислювальної процедури дуже важливо, щоб розриви у розподілі теплопровідності, джерельних членів і в граничних умовах збігалися з гранями контрольних об'ємів. При довільному розташуванні розривів не завжди можна домогтися цього при використанні рівномірної сітки або сітки, що розраховується за (3.1) і (3.2). У цьому випадку можна розділити розрахункову область по осі х (так само, як і по осі у) на різні зони таким чином, щоб їх межі збігалися з розривами. Тоді можна задавати число контрольних об'ємів і значення п для кожної зони окремо. Процедура ZGRID забезпечує побудову саме такої сітки.
Для ZGRID потрібні наступні вхідні дані: число зон NZX і NZY по осях х і у відповідно, а також розмір зони, число контрольних об'ємів і значення п для кожної зони окремо. Використовуючи ці дані, ZGRID розраховує XU (I), YV (J), LI і Ml.
Користувач повинен задати значення масивів, що характеризують положення граней контро...