Elektronikos mėgėjams. Modeliuojame programa "FlexPDE"  (0)

Prieš keletą dienų apžvelgėme elektriniams laukams (ir ne tik elektriniams) modeliuoti skirtą programą "QuickField". Šį kartą pabandysime trumpai aptarti šios programos alternatyvą - "FlexPDE".


Visi šio ciklo įrašai

  • 2015-07-17 Elektronikos mėgėjams. Modeliuojame programa "FlexPDE"  (0)

Modeliavimui naudojamą programą (jos nemokamą studentams skirtą versiją) galima parsisiųsti adresu: FlexPDE 6.32s (http://www.pdesolutions.com/v6student.html). Programos aprašas anglų kalba pasiekiamas adresu http://www.pdesolutions.com/bookstore.html.

1. „FlexPDE“ įdiegimas ir konfigūravimas.

Programos „FlexPDE“ įdiegimas iš esmės yra vienodas visose kompiuterių platformose. Įdiegimo failų rinkinį reikia išskleisti iš įdiegimo failų archyvo ir įdiegti, naudojantis standartinėmis konkrečios operacinės sistemos priemonėmis.

Įdiegus „FlexPDE“, ši programa automatiškai susiejama su failų plėtiniu „*.pde“, tad vėliau programą įjungti galima du kartus paspaudus bet kurį jos aplinkoje sukurtą užduoties aprašą.

Jei programa įdiegta įsigijus gamintojo licenziją ir ją aktyvavus bus rodomas vartotojo licenzijos tipas (Professional). Papildomas licenzijos lygis vaizduojamas programos lango antraštėje („1D“, „2D“ arba „3D“). Jei programa naudojama nekomerciniais tikslais, tačiau neįsigijus Professional licenzijos, aktyvuojama ribotos veikos nemokama licenzija Student. Laikino tipo licenzijos atveju skydelyje vaizduojamas likęs galiojimo laikas.

Pagrindinėje „FlexPDE“ meniu juostoje patalpintos visos pagrindinės per grafinę vartotojo sąsają prieinamos funkcijos. Kai kuriais atvejais dalis funkcijų gali būti neaktyvios – tai priklauso nuo konkretaus užduoties sprendimo etapo. Pagrindinio meniu elementų paskirtis yra tokia:

  • File – leidžia pradėti darbą, atidarant anksčiau sukurtą užduoties aprašo failą, importuojant DXF failą arba peržiūrint anksčiau grafinėje formoje išsaugotą „FlexPDE“ uždavinio sprendimo rezultatą. Per šį meniu punktą taip pat galima išsaugoti einamąjį darbą arba išjungti programą.
  • Controls – šiame meniu skyriuje sutelktos funkcijos, kurias galima vykdyti kuriant užduoties aprašo failą, vykdant užduoties sprendimą arba perjungiant redagavimo ir grafinės rezultatų peržiūros režimą.
  • View – atidarius grafinėje formoje išsaugotus „FlexPDE“ uždavinio sprendimo rezultatus, aktyvuojamos saugomiems vaizdams valdyti skirtos funkcijos.
  • Stop – uždavinio sprendimo metu šiame meniu skyriuje prieinamos funkcijos, kuriomis skirtingu prioriteto lygiu galima sustabdyti ar visiškai nutraukti programos vykdomus skaičiavimus.
  • Edit – redaguojant uždavinio aprašo failą, šiame meniu skyriuje vartotojas gali rasti standartines redagavimo komandas.
  • Help – pasiekiama detalesnė informacija apie programą bei vartotojo pagalbos sistema.
File meniu (1 pav.) funkcijų paskirtis yra tokia:
  • New Script – naudojantis šiuo meniu punktu, sukuriamas naujas uždavinio aprašo failas. Šis failas taip pat gali būti vadinamas „skriptu“ (angl. script). „FlexPDE“ į naujai sukurto užduoties aprašo failą automatiškai įterpia pagrindines tekstines atskirų failo segmentų antraštes. Daugeliu atvejų naujus aprašo failus patogiau sukurti, naudojantis anksčiau sukurtų failų kopijomis.
  • Open File – naudojantis šiuo meniu punktu, galima atidaryti jau egzistuojantį uždavinio aprašo failą, kad jį būtų galima redaguoti arba išspręsti. Analogiškai galima peržiūrėti grafinėje formoje išsaugotus rezultatų failus arba importuoti DXF formato failus. Pastaba: standartiniai „FlexPDE“ pavyzdžių katalogai saugomi programos įdiegimo katalogo aplanke „Samples“.

  • Save Script – šis meniu punktas leidžia išsaugoti naują arba pakeistą programos aprašą. Inicijavus uždavinio sprendimą, ši funkcija aktyvuojama automatiškai.
  • Save As – išsaugomas uždavinio aprašas, failui galima suteikti norimą pavadinimą.
  • Close – uždaro redaguojamą programos aprašo failą ir programa automatiškai atsijungia nuo visų su šiuo aprašu susijusių duomenų.
  • Import – naudojantis šia funkcija, uždavinių aprašus galima įkelti iš kitų formatų failų.
  • View File – atidaromas grafinėje formoje išsaugotas sprendimo rezultatas. Atidarymas vykdomas per standartinį „Open_File“ dialogo langą, pasirenkant pageidaujamą rezultatų failą su plėtiniu „*.pg6“.
  • Exit – uždaroma programa „FlexPDE“.

„FlexPDE“ turi du skirtingus darbo režimus: redagavimo (Edit) ir grafikos (Plot). Redagavimo režime vartotojas gali redaguoti konkretaus užduoties aprašo tekstą. Grafikos režime vaizduojama su uždaviniu susijusi grafinė informacija. Abiejų režimų pagrindinės funkcijos pasiekiamos per Controls meniu (2 pav.). Šių funkcijų paskirtis yra tokia:

  • Domain Review – tai yra kiek pakeista funkcijos Run atmaina. Kai „FlexPDE“ veikia redagavimo režime, Domain Review inicijuoja rodomo programos aprašo sprendimą. Procesas automatiškai sustabdomas įvairiuose baigtinių elementų tinklelio generavimo etapuose, taip vartotojui sudarant sąlygas įvertinti šio modeliavimo etapo ypatumus. Minėtuoju įrankiu patogu naudotis sudarant geometrinius modelius.
  • Run – kai „FlexPDE“ veikia redagavimo režime, šis meniu punktas inicijuoja aktyvaus užduoties aprašo sprendimą. Sprendimas vyksta nuosekliai, be pauzių tarp skirtingų sprendimo etapų (tinklelio generavimas, lygčių sprendimas, rezultatų vaizdavimas).
  • Show Editor – kai uždavinio aprašas redaguojamas grafikos režime (Plot), šis meniu punktas programą perjungs į redagavimo režimą (Edit) ir į langą išves uždavinio aprašo tekstą.
  • Show Plots – kai „FlexPDE“ veikia redagavimo režimu, šis meniu punktas aktyvuos grafikos režimą (Plot) ir į ekraną išves esamos uždavinio formuluotės grafinę interpretaciją.

Kartais sprendimo procesą tenka pertraukti priverstinai. To gali prireikti tais atvejais, kai vartotojas nustato kokių nors užduoties formuluotės netikslumų ir pageidauja patikslinti jos aprašą. Stop meniu numatyti keli būdai šiam veiksmui atlikti – funkcijos surikiuotos prioriteto tvarka; didžiausio prioriteto funkcija patalpintą sąrašo viršuje (3 pav.).

2. „FlexPDE“ uždavinio aprašymo failai ir jų redagavimas.

Programos „FlexPDE“ uždavinio aprašo failas susideda iš pilno baigtinių elementų modelio aprašo. Jame apibrėžiama konkretų fizikinį reiškinį nusakanti dalinių diferencialinių lygčių sistema, kurios pagrindu bus atliekami skaičiavimai, sprendimo metu naudojami parametrai ir ribinės sąlygos, geometrinis modelis ir pageidaujamas grafinės išvesties formatas.

Uždavinio aprašo redagavimo lango pavyzdys parodytas 4 paveiksle. Iš esmės tai yra standartinis NOTEPAD tipo teksto redaktorius, rodantis tekstinį pasirinkto aprašo failo turinį. Failą galima peržiūrėti ir redaguoti kaip ir įprastinius tekstinius failus, naudojantis bazinėmis teksto įterpimo komandomis. Raktiniai „FlexPDE“ programinio kodo žodžiai yra nuspalvinami raudonai, komentarams automatiškai suteikiama žalia spalva, o tekstinės simbolinio tipo eilutės yra vaizduojamos mėlynai.

Pagrindinio meniu skiltyje Edit (5 pav.) patalpintos visos reikiamos aprašo redagavimo funkcijos.

Pastaba: „FlexPDE“ aprašo (skripto) redaktorius yra analogiškas programavimo aplinkai, tad jo nepatartina laikyti paprastu teksto redaktoriumi. Šis redaktorius neturi sudėtingesnių teksto tvarkymo funkcijų.

Anksčiau minėta Domain Review funkcija (pasiekiama per Controls meniu) yra patogus įrankis apraše sudarytam geometriniam modeliui patikrinti, prieš tęsiant tolesnę analizę.

Peržiūrint dvimačius (2D) geometrinius modelius, aprašo failas automatiškai išsaugomas kompiuterio diske. Tada automatiškai pradedama modelio geometrijos sudarymo fazė. Apraše nurodyti geometriniai elementai išvedami atskirame programos lange. Jei matomas vaizdas tenkina vartotojo poreikius, galima spausti mygtuką Continue. Jei modelį reikia koreguoti, spaudžiamas mygtukas Edit ir taip sugrįžtama į aprašo redaktoriaus langą.

Toliau automatiškai aktyvuojamas tinklelio generavimo procesas. Baigus generuoti tinklelį, „FlexPDE“ sustabdo modeliavimo procesą ir pakartoja užklausą, per kurią vartotojas vėl gali rinktis arba tęsti, arba grįžti į redagavimo etapą.

Trimačių (3D) geometrinių modelių peržiūra yra sudėtingesnė nei 2D. Vykdant tokio modelio peržiūrą, pirmiausia baigiamas formuoti brėžinys, kuriame vaizduojamos kiekvieno iškiliojo paviršiaus ribos ir sluoksniai, eiliškumu nuo žemiausios iki aukščiausios Z koordinatės. Peržiūrimos kiekvieno modelį sudarančio paviršiaus ribos ir atskiri modelio sluoksniai. Jei bet kuriame etape vartotojas pastebi netikslumų, jis gali dialogo lange paspausti Edit ir pakoreguoti klaidą grįžęs į uždavinio aprašo redaktorių.

Peržiūrėjus atskirus paviršius ir sluoksnius, vartotojui pateikiamas bendras viso geometrinio modelio vaizdas (6 pav.).

 

Kai įsitikinama geometrinio modelio tinkamumu, „FlexPDE“ pereina prie dvimačio baigtinių elementų tinklelio sudarymo. Toks tinklelis sudaromas kiekvienai modelio erdvei atskirai. Peržiūros metu jos vaizduojamos pradedant nuo žemiausios ir baigiant viršutine.

Sudarius baigtinių elementų tinklelius, „FlexPDE“ pereina prie trimačio baigtinių elementų tinklelio sudarymo. Pirmiausia vaizduojami atskiri pirmojo sluoksnio segmentai ir tinklelis sudaromas juose. Baigus šią procedūrą, programa išveda grafinį sudaryto tinklelio vaizdą (7 pav.). Šį procesą pakartojus visiems sluoksniams, programa pavaizduoja pilnutinį 3D tinklelį. Vartotojas po bet kurio sluoksnio peržiūros gali grįžti į uždavinio aprašo redaktorių.

Aktyvavus funkciją Run arba tęsiant Domain Review, pradedamas uždavinio sprendimas. Sprendimo metu programos langas gali atrodyti taip arba panašiai, kaip parodyta 8 paveiksle. Kairėje pusėje yra būsenos skydelis (Status Panel), kuriame pateikiami užduoties parametrai. Žemiau taip pat vaizduojama skalė, rodanti, kiek liko laiko iki uždavinio sprendimo pabaigos, keli sprendimo parametrus vaizduojantys grafikai (History plots) ir sumažintas skaičiavimuose naudojamo baigtinių elementų tinklelio vaizdas.

Konkretų elektromagnetinių (ir ne tik) laukų modeliavimo uždavinį aprašantis tekstinis failas (užduoties aprašas arba skriptas) yra laisvai skaitomas tekstinis failas. Jo turinys susideda iš skirtingų segmentų, kuriuos visus identifikuoja jiems būdingos antraštės. Pagrindinės antraštės pateiktos 1 lentelėje.

1 lentelė. Uždavinio aprašymo failo segmentų aprašas

Segmentas
Aprašymas
title
Užrašome simbolių eilutę, kuri naudojama segmentuose monitors ir plots
select
Naudojame, kai reikia pakeisti pagal nutylėjimą priimtų kintamųjų, aprašančių skaičiavimų eigą, reikšmes. Kintamieji pagal nutylėjimą parinkti taip, kad optimizuotų skaičiavimo procesą daugeliui sprendžiamų uždavinių.
coordinates
Nurodome koordinačių sistemą. FlexPDE naudojamos dvimatės bei trimatės Dekarto koordinačių sistemos bei dviejų tipų cilindrinė koordinačių sistema (kai cilindrinės koordinačių sistemos ašinė koordinatė sutampa su horizontalia arba vertikalia ašimi)
variables
Aprašome kintamuosius ir suteikiame jiems pradines reikšmes.
definitions
Aprašome konstantas, koeficientus ir funkcijas, suteikiame pradines reikšmes arba priskiriame tam tikras algebrines išraiškas. Suteiktos pradinės reikšmės skaičiavimo metu gali kisti
initial values
Aprašome priklausomus kintamuosius, priešingu atveju jų reikšmės prilyginamos nuliui
equations
Surašome diferencialines lygtis, parodančias ryšį tarp priklausomų kintamųjų. Kiekvienas priklausomas kintamasis, aprašytas segmente variables, turi turėti atitinkamą lygtį. Pirmoji lygtis susiejama su pirmuoju kintamuoju ir t.t. Nesilaikant šio eiliškumo, su kraštinėmis sąlygomis bus susietos ne tos lygtys.
constraints
Naudojame įvesti integralinius sąryšius. Šie sąryšiai naudojami nevienareikšmiškumų eliminavimui
resolve
Nurodome papildomus kriterijus, kuriais remiantis nagrinėjama plokštuma ar erdvė suskaidoma į baigtinius elementus.
boundaries
Segmentas būtinas bet kokio uždavinio sprendimui. Jame aprašome uždavinio sritis su skirtingomis medžiagų savybėmis, bei susiejame ribines reikšmes ir išorinius šaltinius su fizinėmis uždavinio ribomis. Šis segmentas dar skirstomas į region, feature, exclude. Būtinas bent vienas segmentas region, kuriame aprašomos uždaros sritys, naudojamos nagrinėjamo įtaiso geometrijai įvesti. Feature - aprašomos neuždaros sritys, exclude – nurodomos persidengiančios uždaros sritys, aprašytos segmente region
time
Segmentą naudojame laike kintantiems uždaviniams spręsti.
monitors
Nurodome, kokią tarpinę informaciją vaizduoti uždavinio sprendimo metu
plots
Nurodome, kokią informaciją reikia vaizduoti grafiškai
histories
Nurodome, kokiems kintamiesiems pateikti jų kitimo eigą skaičiavimų metu
end
Failo pabaiga
 

Komentarų tekstą galima patalpinti bet kurioje užduoties aprašo vietoje. Galimos dvi komentarų formos:

  • { Bet koks lenktų skliaustų viduje esantis tekstas traktuojamas kaip komentaras }.
  • ! komentaras taip pat gali prasidėti šauktuku; tokiu atveju jis tęsiasi iki eilutės pabaigos.
 
Pavyzdys:
 

Paprasta kvadrato formos objekte vykstanti šilumos difuzija gali būti aprašoma tokiu programiniu tekstu:

TITLE 'Paprasta šilumos difuzijos lygtis'

{ šiame programiniame tekste neįtraukti šaltinių ir ribinių sąlygų aprašai }

VARIABLES
u { šilumos šaltinis (arba šilumos kitimo funkcija) }
DEFINITIONS
k=3 { šilumos laidis }
EQUATIONS
div(k*grad(u)) =0
BOUNDARIES
REGION 1
START(0,0)
LINE TO (1,0) TO (1,1) TO (0,1) TO CLOSE
PLOTS
CONTOUR(u)
VECTOR(k*grad(u))
END

Norint išspręsti dalinių diferencialinių lygčių sistemą, būtina tinkamai aprašyti ribines sąlygas. „FlexPDE“ užduoties apraše ribinės sąlygos priskiriamos aprašant geometrines modelio ribas. Pagrindiniai ribinių sąlygų tipai aprašomi naudojant raktinius žodžius VALUE ir NATURAL.

Raktinis žodis VALUE (arba Dirichlė ribinė sąlyga) nusako, kokią vertę turi įgyti kintamasis ties geometrinio modelio erdvės ribomis.

Raktinis žodis NATURAL aprašo modelio erdvės ribose esantį fizikinio dydžio srautą. Tiksli šios sąlygos prasmė priklauso nuo to, kokio tipo dalinėmis diferencialinėmis lygtimis aprašomas uždavinys.

Aukščiau pateiktą šilumos difuzijos uždavinio aprašą galime papildyti pastoviomis šilumos reikšmėmis išilgai kvadrato apatinės ir viršutinės kraštinių, o šoninėms kraštinėms suteiksime nulinio srauto sąlygą:

...
BOUNDARIES
REGION 1
START(0,0)
VALUE(u) = 0 LINE TO (1,0) { pastovi šilumos vertė išilgai apatinės kraštinės }
NATURAL(u)=0 LINE TO (1,1) { šiluminiu požiūriu izoliuota dešinioji kvadrato pusė }

VALUE(u)=1 LINE TO (0,1) { pastovi šilumos vertė išilgai viršutinės kraštinės }

NATURAL(u)=0 LINE TO CLOSE { šiluminiu požiūriu izoliuota kairioji kvadrato pusė }
...

Raktiniai žodžiai VALUE arba NATURAL nustato sąlygą, kuri turi būti tenkinama visiems vėliau aprašomiems segmentams, iki kol jos reikšmė yra pakeičiama kita.

Du pagrindiniai dalykai, kurie yra reikalingi programai „FlexPDE“ uždavinio sprendimo metu, yra:

  • Kokio tipo kintamuosius ruošiamasi analizuoti?
  • Kokios yra šiuos kintamuosius aprašančios dalinės diferencialinės lygtys?

Šią informaciją aprašo programinio teksto segmentai VARIABLES ir EQUATIONS. Abu jie yra glaudžiai susiję vienas su kitu, kadangi tinkamai sudarytoje fizikinėje sistemoje kiekvienam kintamajam aprašyti turi būti priskirta viena lygtis.

Paprasčiausiuose uždaviniuose galite analizuoti tik vieną kintamąjį – pavyzdžiui, elektrinę įtampą arba temperatūrą. Tokiu atveju galima tiesiog įvardinti šį kintamąjį ir jį aprašančią lygtį:

VARIABLES
Phi
EQUATIONS
Div(grad(Phi)) = 0

Sudėtingesniu atveju gali būti naudojama daug kintamųjų ir daug lygčių. „FlexPDE“ bus reikalinga informacija apie tai, kaip susieti lygtis su kintamaisiais, kadangi nuo šio susiejimo priklauso kai kurios galutinio modelio sudarymo detalės. Tada kiekvienai lygčiai turi būti priskirta kintamojo, kurį ji aprašo, žymė. Žymė susideda paprasčiausiai iš kintamojo pavadinimo ir iškart po jo einančio dvitaškio, pavyzdžiui:

VARIABLES
A,B
EQUATIONS
A: Div(grad(A)) = 0
B: Div(grad(B)) = 0

Po to, kai pereinama prie ribinių sąlygų nustatymo, šios žymės bus naudojamos ribinėms sąlygoms susieti su atitinkamomis lygtimis.

3. Geometrinio modelio sudarymas, naudojantis „FlexPDE“ įrankiais.

Dvimačio uždavinio atveju modeliuojama erdvė aprašoma naudojantis segmentu BOUNDARIES. Šis segmentas sudaromas iš atskirų regionų, kuriems galima priskirti unikalias medžiagų savybes. Kiekviename regione gali būti apibrėžti keli modelio kontūrai, tačiau automatiškai priimama sąlyga, jog į vieną regioną patenkantiems geometriniams objektams bus priskiriamos tos pačios medžiagų savybės. Šiam segmentui būdingi tokie aspektai:

  • Regiono aprašymo segmentas identifikuojamas raktiniu žodžiu REGION (arba REGION „pavadinimas“); visi po šios antraštės aprašyti kontūrai yra įtraukiami į tą patį regioną.
  • Tolesnėse aprašo vietose nurodomi regionai gali persidengti su anksčiau apibrėžtų regionų ribomis.
  • Pirmajame regione turėtų būti apibrėžiama visa modeliavimo erdvė (ne tik geometrinio modelio ribos). Tai yra nepriverstinė sąlyga, kurios laikymasis palengvina ribinių sąlygų aprašymą.

Regionų formos aprašomos „einant“ jų perimetru – pereinant nuo vieno taško link kito linijomis (raktinis žodis LINE), splainais (raktinis žodis SPLINE) arba lankais (raktinis žodis ARC). Priimama sąlyga, jog kiekvienas regiono segmentas bus tęsiamas nuo ankstesnio segmento pabaigos. Šis procesas pradedamas raktiniu žodžiu START. Į pradinį regiono kontūro tašką grįžtanti tiesė nubrėžiama naudojant raktinį žodį CLOSE (arba TO CLOSE). Pavyzdžiui:

  • Stačiakampio formos regionas, sudarytas iš keturių linijinių segmentų:
START(x1,y1)
LINE TO(x2,y1)
TO (x2,y2)
TO (x1,y2)
TO CLOSE
  • Lanko regionas gali būti aprašomas keliais būdais, iš kurių paprasčiausias yra nurodant lanko centrą ir kampą:
START(r,0)
ARC(CENTER=0,0) ANGLE=360
!
Lanko regioną taip pat galima apibrėžti nurodant jo centro ir pabaigos taškus:
START(r,0)
ARC(CENTER=0,0) TO (0,r) { 90 laipsnių lankas }

Jei atstumas nuo centro iki galutinio taško skiriasi nuo atstumo centro iki pradžios taško, programa tai interpretuos kaip elipsinės formos lanką. Elipsės ašys bus išdėstomos išilgai horizontaliosios ir vertikaliosios koordinačių ašių. Koordinačių ašis galima pasukti naudojant komandą ROTATE = laipsnių_skaičius.

Kontūrams galima suteikti pavadinimus; pavadinimais galima naudotis tolesniame aprašo tekste, kadangi tame pačiame apraše jis visada bus susietas su tuo pačiu kontūru:

START "Kontūro pavadinimas" (…)

Atsižvelgiant į aukščiau pateiktus pavyzdžius, aprašo segmento BOUNDARIES struktūra sudaroma tokiu principu:

BOUNDARIES
REGION 1
REGION 2

4. Elektrinių bei magnetinių laukų ir medžiagų parametrų priskyrimas geometriniam modeliui.

Naudojantis raktiniu žodžiu DEFINITIONS prasidedantį aprašo segmentą, medžiagų parametrams suteikiami pavadinimai ir pradinės vertės. Antra, medžiagų parametrams kiekviename regione suteikiamos lokalios vertės.

Ankstesnių pavyzdžių esmė visiškai nepriklausė nuo to, kokio tipo fizikinis reiškinys nagrinėjamas – elektrostatika ar, pavyzdžiui, šilumos pasiskirstymas, ar dar kas nors. Tačiau, siekdami sukonkretinti uždavinį, priimkime, kad tai yra šilumos perdavimo lygtis, aprašanti tarp dviejų šilumos šaltinių patalpintą dielektriką. Apskritimo formos dielektrikui suteiksime elektrinio laidžio vertę 0,001, o jį supančiai laidžiai medžiagai – laidį, lygų 1,0.

Pirmiausia apibrėšime konstantos pavadinimą ir jai priskirsime pradinę vertę:

DEFINITIONS
k = 1

Ši pradinė vertė turės tą patį pavadinimą „k“ kiekviename uždavinio regione, nebent kuriame nors aprašo segmente ją pakeistume kita. Toliau šią konstantą įterpiame į lygtį:

EQUATIONS
Div(-k*grad(phi)) = 0

Toliau konstantai k regione 2 priskiriame lokalią vertę:

REGION 2 'apskritimas' { modeliuojamame objekte įterptas apskritimas }
k = 0.001
START(1/2,0)
ARC(CENTER=0,0) ANGLE=360

Ribinės sąlygos, kaip jau minėta, nurodomos apibrėžiant modelio geometriją. Kiekvienas ribinę sąlygą nusakantis sakinys kaip argumentą naudoja kintamojo pavadinimą. Šis pavadinimas susieja ribinę sąlygą su viena iš aprašytų lygčių. Pavyzdžiui, raktinis žodis VALUE(u)=0 nurodo, kokią reikšmę turi įgyti kintamąjį u aprašančios lygties sprendinys ties konkrečia riba; tuo tarpu raktinio žodžio NATURAL(u) reikšmė priklauso nuo kintamąjį u nusakančios lygties formos.

Tolesniame pavyzdyje priimkime, jog ties apatiniu modeliavimo erdvės pakraščiu temperatūra lygi nuliui, dešinėje ir kairėje pusėse – šilumą izoliuojanti riba, viršutiniame pakraštyje temperatūra lygi 1. Šiuos parametrus įvesti galime tokiomis komandomis:

...
REGION 1 'kvadratas' { erdvę ribojantis kvadratas }
START(-1,-1)
{ bazinėje linijoje Phi=0 : }
VALUE(Phi)=0 LINE TO(1,-1)
{ normalinė išvestinė dešinėje =0 : }
NATURAL(Phi)=0 LINE TO (1,1)
{ viršuje Phi = 1 : }
VALUE(Phi)=1 LINE TO (-1,1)
{ normalinė išvestinė kairėje =0 : }
NATURAL(Phi)=0 LINE TO CLOSE
5. „FlexPDE“ aplinkoje suformuluoto uždavinio sprendimas.

Ankstesniuose pavyzdžiuose mes palaipsniui sudarinėjome užduoties aprašą. Sudėjus visus segmentus į vieną failą ir papildžius juos antrašte TITLE bei grafinės informacijos išvestimi, gautasis tekstas atrodys taip:

TITLE 'Šiluminis laukas'
COORDINATES
YCYLINDER
VARIABLES
Phi { temperatūra }
DEFINITIONS
K = 1 { šiluminis laidis }
Rad = 0.5 { apskritimo spindulys}
EQUATIONS
Div(-k*grad(phi)) = 0
BOUNDARIES

REGION 1 'kvadratas'
START(0,-1)
VALUE(Phi)=0 LINE TO (2,-1)
NATURAL(Phi)=0 LINE TO (2,1)
VALUE(Phi)=1 LINE TO (0,1)
NATURAL(Phi)=0 LINE TO CLOSE
REGION 2 'apskritimas'
k = 0.001
START 'ziedas' (1,Rad)
ARC(CENTER=1,0) ANGLE=360 TO CLOSE
PLOTS
CONTOUR(Phi)
VECTOR(-k*grad(Phi))
ELEVATION(Phi) FROM (1,-1) to (1,1)
ELEVATION(Normal(-k*grad(Phi))) ON 'ziedas'
END

Taip šiomis 27 tekstinėmis eilutėmis mes aprašėme išbaigtą ir fizikinę prasmę turintį uždavinį. Šio programinio teksto grafinės informacijos išvestis parodyta 9 paveiksle.

Svarbu prisiminti, jog „FlexPDE“ užduoties aprašo tekstas nėra tiesiog aprašas procedūrų, kurias reikia atlikti, norint išspręsti dalinių diferencialinių lygčių sistemą. Šis tekstas aprašo įvairių modelio elementų tarpusavio priklausomybes. Pavyzdžiui, parametras, apibrėžtas kaip P = 10, reiškia, jog kada šis parametras yra panaudojamas aprašo tekste, jis rodo konstantą, kurios reikšmė lygi 10. Jei parametras apibrėžiamas kaip P = 10*X, tada jis visose savo buvimo vietose rodo 10 kartų didesnę X vertę.

Jei parametras apibrėžiamas kaip P = 10*U, kur U yra aprašytas kaip kintamasis (segmente VARIABLES), tada šis parametras visoje modelio erdvėje ir kiekviename sprendimo etape reikš iš 10 padaugintą U vertę. Kitaip tariant, apibrėžimas P = 10*U nurodo, jog šio parametro reikšmė turi būti pakartotinai perskaičiuojama kiekvienoje skaičiavimo iteracijoje.

Aut. teisės: www.technologijos.lt
Autoriai: Alius Noreika KTK
(1)
(0)
(1)

Komentarai (0)