Pachetul de programe SolSyIn

MANUAL DE UTILIZARE

Mai 2001

Veti gasi aici si versiunea in limba engleza.

Cuprins:

1. Introducere

2. Caracteristici

3. Instalare

4. Concepte de baza

5. Descrierea programelor

5.1. Programul "Solar System Integrator" (integrat.exe)

5.2. Programul "System Checker" (checker.exe)

5.3. Programul "Graphic Displayer" (display.exe)

5.4. Programul "System Maker" (sysmaker.exe)

5.5. Programul "Table Maker" (tabmaker.exe)

5.6. Programul "Plotter" (plotter.exe)

6. Controlul erorii de integrare

7. Lista catorva procese dinamice ce pot fi evidentiate

8. Exemple

9. Lista mesajelor de avertisment

10. Adrese utile


1. Introducere

Numerosi cercetatori din diverse domenii ale stiintei isi dezvolta propriile programe de calcul pentru rezolvarea unor teme specifice de cercetare. Aceasta constituie, in general, o munca ale carei rezultate razbat in articolele publicate doar prin intermediul unor tabele sau grafice. Frumusetea, eficacitatea sau acuratetea unor algoritmi de calcul raman necunoscute pentru ceilalti, fara sa mai mentionam faptul ca oameni cu aceleasi preocupari stiintifice le-ar putea gasi chiar foarte utile. Toate aceste lucruri ne-au calauzit pasii spre ceea ce vom prezenta in randurile de fata.

Pachetul de programe SolSyIn (de la "Solar System Integrator") este rodul a catorva ani de cercetare in domeniul Astronomiei, mai precis al "Dinamicii corpurilor mici in Sistemul Solar". El inglobeaza mai multe idei si algoritmi ce ii dau un caracter largit de utilizare, atat pentru scopuri stiintifice cat si didactice.

Acest manual nu se doreste a fi un curs de Astronomie. Scopul sau este acela de a prezenta in detaliu toate functionalitatile pachetului SolSyIn si modul cum poate fi el folosit pentru simularea numerica a unor procese dinamice. Din acest motiv, termenii astronomici ce intervin in manual nu sunt explicati.


2. Caracteristici

SolSyIn este mai mult decat  ii sugereaza numele: (i) este un integrator numeric pentru un sistem dinamic de corpuri (oricate la numar, dar nu peste 10.000!) in camp gravitational (newtonian/relativist si radiativ); (ii) un program de verificare a rezultatelor integrarii (intermediare si finale); (iii) program de afisare grafica a sistemului de corpuri de-a lungul evolutiei sale dinamice; (iv) program  de creare a noi sisteme dinamice de corpuri in diverse configuratii; (v) program de extragere a diversi parametri dinamici din bazele de date create in urma integrarii, cu posibilitatea alcatuirii de grafice 2D si 3D cu continut stiintific.

Pentru a fi mai expliciti, enumeram mai jos principalele caracteristici ale pachetului:


3. Instalare

Pachetul SolSyIn are urmatoarea structura de directoare si fisiere ce trebuie mentinuta in urma dezarhivarii (numele directoarelor sunt scrise ingrosat):

---------------------------------------------------------------------------
SolSyIn \ Bat \ *.bat             (batch files for automatic manipulation)
        \ Cat \ *.cat             (catalogs taken from Internet)
        \ Dat \ *.dat             (data files generated during integration)
        \ Def \ *.def             (definition files of dynamical systems)
        \ Tab \ *.tab             (tables generated for plotting)
        \ Plo \ Hdr \ *.hdr       (header formats for plotting)
              \ *.plo             (GnuPlot command files)
        \ Src \ Lib \ *.lib       (library sources files)
              \ *.pp              (main programs source files)
        \ Doc                     (documentation)
        \ integrat.exe            (program "Solar System Integrator")
        \ checker.exe             (program "System Checker")
        \ display.exe             (program "Graphic Displayer")
        \ sysmaker.exe            (program "System Maker")
        \ tabmaker.exe            (program "Table Maker")
        \ plotter.exe             (program "Plotter")
        \ remove.exe              (utility "Data File Remover")
        \ cwsdpmi.exe             (32-bit DOS extender)
---------------------------------------------------------------------------

Semnificatia fisierelor este urmatoarea:

*.bat - fisiere de comenzi DOS create de utilizator, prin care programe ale pachetului SolSyIn sunt apelate cu parametri in linie de comanda pentru rulare automata non-interactiva;

*.cat - cataloage de corpuri ce trebuie mentinute (aduse la zi) de catre utilizator;

*.dat - fisiere binare de date create in urma integrarii, ce contin informatii ale evolutiei dinamice; ele sunt gestionate automat;

*.def - fisiere ASCII ce definesc starea initiala a sistemelor dinamice; sunt create automat, dar pot fi modificate si de catre utilizator;

*.tab - tabele ASCII extrase din fisierele binare de date, urmand a fi reprezentate grafic; sunt gestionate automat, insa utilizatorul poate recunoaste continutul lor citind informatiile din antet;

*.hdr - fisiere antet  predefinite, de comenzi GnuPlot, ce definesc continutul unui grafic 2D sau 3D; utilizatorul poate defini si altele;

options.plo - fisier de optiuni ale utilizatorului pentru reprezentarea grafica;

plotting.plo - fisierul principal de comenzi GnuPlot ce nu trebuie modificat; calea catre programul de grafica trebuie specificata in fisierul "path" din acelasi director;

*.lib,*.pp - codul sursa Free Pascal al bibliotecilor si programelor principale;

integrat.exe - programul "Solar System Integrator" de integrare numerica (inima pachetului!);

checker.exe - programul "System Checker" de verificare a rezultatelor integrarii;

display.exe - programul "Graphic Displayer" de afisare grafica a evolutiei dinamice;

sysmaker.exe - programul "System Maker" de creare a noi sisteme dinamice;

tabmaker.exe - programul "Table Maker" de creare a tabelelor de date;

plotter.exe - programul "Plotter" de creare a graficelor;

remove.exe - utilitarul "Data File Remover" de stergere a fisierelor "*.dat".

Pachetul SolSyIn este un software pe 32 de biti scris in limbajul de programare Free Pascal 1.0 pentru sistemul de operare DOS (GO32v2), folosind "extender"-ul CWSDPMI inclus in distributie. Codul generat optimizeaza operatiile in virgula mobila si, in particular, pentru procesoarele Intel din clasa PII sau urmatoarele. Executabilele sunt comprimate cu utilitarul UPX pentru a reduce spatiul ocupat. Ele pot fi rulate sub DOS pur sau sub fereastra DOS din WINDOWS. In primul caz eficienta rularii este cu doar cateva procente mai mare decat in al doilea. Doar pentu rulari lungi (de ordinul orelor) este poate mai benefic si lipsit de probleme sa rulati pachetul sub DOS (in acest caz este foarte utila folosirea unui program manager pentru operatii I/O pe disc, cum ar fi utilitarul SMARTDRV).

Modelarea evolutiei dinamice a unui sistem de corpuri este un proces intens consumator de timp CPU, datorita numarului inimaginabil de mare de operatii in virgula mobila. Astfel, cu cat frecventa procesorului este mai mare, cu atat cresc si performantele ce pot fi atinse cu pachetul SolSyIn. Pachetul ruleaza totusi pe orice sistem ce detine coprocesor matematic (optim 300 MHz). Pe calculatoarele personale de astazi, avem posibilitatea obtinerii unor performante care, prin anii '80, erau accesibile doar supercalculatoarelor din marile institutii informatizate!

Programele aloca dinamic memorie in functie de complexitatea sistemului de integrat. Cel putin 8 Mb memorie RAM trebuie sa fie disponibila (optim 32 Mb). Sub DOS "server"-ul DPMI va crea un fisier de "swap" pe disc, in cazul cand memoria RAM este insuficienta.

Un sistem dinamic nu poate fi analizat in momentul integrarii. Evolutia sa dinamica este inregistrata pe disc sub forma unui fisier binar, ce contine datele intermediare ale integrarii, in dubla precizie. Fisierul respectiv poate ocupa un spatiu de ordinul zecilor sau chiar sutelor de Mb, proportional cu numarul de corpuri din sistem si cu lungimea integrarii. Astfel, o mai mare capacitate a HDD permite o integrare mai complexa (optim 1 Gb). Cu o memorie RAM suficienta, pachetul ruleaza totusi la orice capacitate disponibila a discului, insa inregistrarea fisierului de date va fi inhibata (fara avertisment) in caz de depasire a spatiului. Pentru minimizarea numarului de operatii I/O pe disc, in memorie este creata o zona tampon de 5 Mb pentru stocarea temporara a dateor integrarii.

Pentru apelarea programului de grafica GnuPlot de catre pachetul SolSyIn, calea sa completa in sistem trebuie specificata in fisierul "path" din directorul "Plo".

O TESTARE RAPIDA A PACHETULUI

O testare rapida minimal interactiva a pachetului se poate face apeland programul "test.bat" din directorul corespunzator. Acesta apeleaza pe rand toate programele sus-mentionate. Executia sa este insotita de cateva comentarii ajutatoare. Se vor putea apela apoi si alte fisiere "*.bat" predefinite, insa o mai buna intelegere a executiei lor necesita parcurgerea urmatoarelor paragrafe.
 

4. Concepte de baza
console
Exceptand programul "Graphic Displayer", toate celelalte sunt programe consola ce comunica cu utilizatorul prin intermediul a doua ferestre text (vezi figura alaturata in culori false). In fereastra de sus (numita pe mai departe fereastra de afisaj) programul afiseaza diverse informatii catre utilizator, majoritatea de natura cantitativa, in timp ce fereastra de jos (numita fereastra de mesaje) afiseaza mesaje in mod defilare sau asteapta introducerea de date. Aceste mesaje transmit utilizatorului actiunile curente luate de programul in cauza. Primul mesaj afisat este intotdeauna numele programului urmat de versiunea sa, data sub forma "luna / an". Cateva programe din pachet dispun de mai multe ferestre de afisaj, numerotate in coltul din dreapta sus cu "pagina1", "pagina 2", etc. Trecerea de la o fereastra la alta se poate face prin simpla apasare a unei taste sau, in functie de program, prin selectarea unei anumite optiuni. In aceste ferestre de afisaj sunt descrise toate optiunile pe care le are utilizatorul la momentul respectiv, precum si tastele asociate lor.

In directorul "Src" se gaseste fisierul de mesaje "mess.log". Daca acesta este copiat in
directorul radacina al pachetului, atunci fiecare program isi va transcrie mesajele in acest fisier si va nota momentul de timp cand intra si iese din executie. Ulterior, se va putea consulta acest fisier pentru a reconstitui actiunile intreprinse de catre programe si pentru a depista eventualele erori.

Dupa cum s-a remarcat in paragraful anterior la momentul testarii, programele SolSyIn accepta si parametri in linia de comanda. Sintaxa lor este cat se poate de naturala: parametri de comanda vor inlocui de fiecare data, in ordine, ceea ce asteapta programul a fi introdus de la tastatura. Din acest motiv, natura parametrilor trebuie sa fie compatibila cu ceea ce asteapta programul la momentul respectiv, altfel ei sunt ignorati. Tasta SPACE este emulata prin simbolul "_". Datorita acestui mecanism, programele SolSyIn se pot apela cu usurinta unele pe altele (spre exemplu, atunci cand se adaoga un corp din catalog la un sistem predefinit, folosind programul "System Maker", acest sistem este integrat pana la momentul de timp cand elementele orbitale ale corpului sunt valabile, prin apelarea automata a programului de integrare). Nu chiar toate comenzile de la tastatura pot fi substituite in acest fel. Comenzile dedicate afisarii grafice sau trecerii in revista a rezultatelor intermediare (adica destinate exclusiv vizualizarii), sunt cele care fac exceptie.

Obiectul in jurul caruia este dezvoltat pachetul SolSyIn este sistemul dinamic de corpuri. El defineste, la un moment dat, starea unei configuratii de corpuri ceresti in spatiul tridimensional, raportata la corpul central, precum si cativa parametri fundamentali de integrare. Aceste stari initiale sunt memorate in fisierele de definitie cu extensia ".def". Ele sunt accesate de catre fiecare din programele pachetului in momentul cand utilizatorul raspunde la mesajul:

Input the name of a definition file (*.def):

In acest moment, un nume de fisier existent in directorul "Def" trebuie introdus sau citit (fara extensie) din linia de comanda. Structura unui astfel de fisier de definitie este data mai jos ca exemplu. Liniile care incep cu simbolul  "#" sunt comentarii, majoritatea fiind introduse automat in momentul crearii fisierului.

---------------------------------------------------------------------------
# Test system I: one planet (Mercury) around the Sun
#
#Initial date (julian days)
  2451545
#Central mass (solar masses)
  1.00000000000000E+00
#Number of moving bodies
  1
#Bodies info: flag (P-planet, A-asteroid, M-meteoroid), mass (solar masses),
#position vector (AU) and velocity vector (AU/days)
  P <1>
  1.66013679527193E-07
 -1.30093603003195E-01
 -4.47287619078405E-01
 -2.45983101945919E-02
  2.13663956512622E-02
 -6.44798948631322E-03
 -2.48786398976518E-03
#Include relativistic effects (0 = no / 1 = yes)
  0
#Integration direction (-1 = backward / 1 = forward)
  1
#Integration precision (from 1.0E-10 to 1.0E-15)
  1.0E-12
#Interval of integration (days)
  365250
#Frequency of stored data in *.dat file (1 = all data, 2 = half of data, etc.)
  1
#Number of body whose minimum distances are recorded (0 for none)
  0
---------------------------------------------------------------------------

Orice marime care apare sub linia de comentariu aferenta, poate fi modificata in limitele descrise. De asemenea, se pot introduce corpuri noi in sectiunea ce descrie tipul, masa, vectorul de pozitie si vectorul de viteza, corespunzatoare. In acest caz va trebui modificata valoarea numarului de corpuri in miscare ce intervine mai sus. Folosind programul "System Maker", nu va mai fi necesara cunoasterea structurii fisierului de definitie.

Rutina care verifica sintaxa fisierelor de definitie este foarte rigida, refuzand orice sistem prost definit. Cu toate acestea, utilizatorul ar putea defini sisteme de corpuri ce pot da peste cap integratorul numeric. Astfel, trebuie evitata cu desavarsire definirea a doua sau mai multe corpuri masive ce ocupa exact aceiasi pozitie in spatiu sau a caror vectori viteza le aduc in scurt timp in exact aceiasi pozitie. In caz contrar, o neplacuta eroare "Division by zero" va opri brusc executia programului. Definirea unor sisteme dinamice asemanatoare celor intalnite in realitatea inconjuratoare, exclude posibilitatea intalnirii unor astfel de singularitati.

Un sistem dinamic este compus dintr-un corp central fix, situat in originea sistemului de referinta, si mai multe corpuri in miscare (relativa la corpul central) avand, in general, mase mai mici sau nule (neglijabile). Sunt introduse trei tipuri de corpuri (simbolice), fiecare tip fiind tratat diferit la momentul integrarii. Astfel avem:

Se face aceasta distinctie pentru a oferi integratorului numeric posibilitatea de a folosi rutine specific optimizate pentru fiecare tip in parte.

Desigur, corpul central are si el masa, si deci, isi va exercita influenta gravitationala asupra celorlalte corpuri din sistem. Aceasta influenta gravitationala poate fi de tip newtonian sau relativist, dupa cum se specifica in fisierul de definitie. Pe de alta parte, campul gravitational al corpurilor din sistem este modelat in ipoteza ca acestea sunt punctiforme. De aceea, miscari in preajma corpurilor planetare nesferice sau neomogene, nu pot fi simulate corect cu ajutorul pachetului SolSyIn.

Numarul de ordine ce apare dupa identificatorul corpului (de exemplu, "<1>") este creat automat la definirea sistemului, insa este ignorat la citire. Mentionam, totusi, ca anumite programe identifica corpurile din sistemul dinamic dupa numarul lor de ordine, incepand cu zero pentru corpul central si continuand cu corpurile in miscare, in ordinea in care acestea sunt trecute in fisierul de definitie. Referitor la aceasta ordine, exista o regula stricta in care pot sa apara diferitele tipuri de corpuri in fisierele de definitie, si de ea trebuie sa se tina seama atunci cand se adaoga corpuri noi sistemelor predefinite. Aceasta regula este: tipul "P", urmat de tipul "A" si urmat de tipul "M'. Orice mixtura ce intra in dezacord cu aceasta regula duce la declararea sistemului ca invalid.

Dupa campurile in care sunt descrise caracteristicile corpurilor urmeaza parametri de integrare ai sistemului. Acestia vor fi descrisi la sectiunea dedicata integratorului numeric.

Pachetul SolSyIn vine cu cateva sisteme predefinite de corpuri ce modeleaza, cu mare acuratete, sistemul planetar solar. Astfel, fisierele "moon.def", "sol-4.def", "sol-7.def", "sol-9.def", "sol-12.def" si "sol-13.def" descriu cateva configuratii planetare des utilizate in probleme de dinamica in Sistemul Solar (mai multe detalii gasiti in antetul lor). Ele au fost obtinute prin JPL Horizons On-Line Ephemeris System de la NASA. Au o acuratete foarte buna, ele fiind calculate dintr-un catalog de efemeride pe termen lung, numit "DE-405" si folosit la navigatia spatiala. De asemenea, in directorul "Def" mai exista sistemul "empty.def" ce contine doar corpul central, el fiind folosit la crearea de sisteme complet noi. Aceste sisteme enumerate anterior nu trebuie modificate de catre utilizator, la nevoie ele putand fi multiplicate si redenumite folosind programul "System Maker".

Pe langa libertatea oferita utilizatorului de a crea propriile configuratii de corpuri, pachetul SolSyIn vine insotit cu cateva cataloage de mare precizie cu corpuri mici din Sistemul Solar (asteroizi si comete), ce pot fi folosite la definirea de sisteme dinamice reale. La rata descoperirilor din zilele noastre, aceste cataloage vor trebui aduse la zi de catre utilizator, aproximativ de cateva ori pe an. Sumarizam mai jos cele cinci tipuri de cataloage recunoscute de pachet, impreuna cu detalii privind locatia lor pe internet:

1. Catalogul asteroizilor numerotati

2. Catalogul asteroizilor numerotati (cu acuratete mai buna) 3. Catalogul cometelor scurt periodice 4. Catalogul asteroizilor de tip NEO 5. Catalogul asteroizilor de tip NEO (cu incertitudinea orbitala) Pentru a face distributia standard a pachetului SolSyIn de dimensiuni mici, versiunea completa a acestor cataloage nu este inclusa. Cititi fisierul "catalogs.txt" din directorul "Cat"  pentru a afla continutul actual al cataloagelor. Versiunea lor completa se gaseste in arhiva "catalogs.zip", ce completeaza distributia standard.
 
diagram
In figura alaturata este prezentata o schema de utilizare standard a pachetului SolSyIn, aranjata pe etape. La etapa (I) se defineste sistemul dinamic folosind programul corespunzator, iar apoi, la etapa (II), se integreaza numeric acest sistem. La etapa (III) se poate vizualiza grafic evolutia dinamica a sistemului asa cum a fost el integrat. La etapa (IV) se pot verifica datele integrarii sau se poate verifica acuratetea de integrare. La etapa (V) se genereaza tabele de date extrase din fisierul binar al evolutiei dinamice, iar la etapa (VI) se reprezinta grafic variatia unor parametri extrasi anterior. Fiecare etapa se realizeaza prin apelarea unui program distinct din pachet, o descriere a tuturor acestora find data in paragrafele urmatoare. Etapele (III) - (V) presupun, desigur, existenta bazei de date creata la punctul (II). Daca aceasta lipseste, fiecare program va folosi o singura inregistrare, cea corespunzatoare momentului initial, luata din fiserul de definitie al sistemului. Astfel, chiar inaintea integrarii, ne putem face o imagine asupra caracteristicilor initiale ale sistemelor dinamice. Etapa (VI) presupune, la randul ei, existenta tabelelor de date create la punctul anterior.


5. Descrierea programelor

In aceasta sectiune vom descrie fiecare program in parte, nu in ordinea data in figura anterioara, ci mai degraba intr-o ordine naturala de intelegere a functionalitatii pachetului SolSyIn.
5.1. Programul "Solar System Integrator" (integrat.exe)

Acest program reprezinta componenta fundamentala a pachetului SolSyIn, el realizand integrarea numerica a sistemului de corpuri. Se foloseste algoritmul de integrare numerica Radau-Everhart de ordinul 15, optimizat pentru integrarea de mare precizie a apropierilor stranse intre corpuri, integrator clasic des utilizat in literatura de specialitate pentru integrari de corpuri in Sistemul Solar. Sistemul de corpuri este propagat de la momentul initial, conform cu parametri de integrare selectati la crearea sa. Acestia sunt urmatorii:

Programul "Solar System Integrator" are abilitatea de a continua o integrare numerica ce a fost oprita anterior. Pentru aceasta, el verifica la inceput daca sistemului de corpuri ii este asociat un fisier de date. In caz afirmativ, din acest fisier se citeste ultima inregistrare, cu care se continua integrarea. Daca fisierul de date nu este compatibil cu sistemul definit, atunci integrarea nu are loc, fiind afisat mesajul

Wrong file format!

In acest caz, fisierul de date trebuie sters. Procesul se poate realiza elegant folosind utilitarul "Data File Remover" (remove.exe).

Pe langa foarte numeroasele date ce apar in fereastra de afisaj, descriind starea actuala a integrarii, vom pune accent aici pe semnificatia campului

-last back-correction at

Aici este afisata (la apasarea tastei SPACE) ultimul moment de timp cand integratorul a facut o corectie de acest tip. Asa cum precizam anterior, aceste corectii sunt facute atunci cand parametrul de precizie al integrarii este prea mare si, astfel, nu se asigura un numar suficient de pasi pe unitatea de timp. De asemenea, aparitia apropierilor stranse intre corpuri determina integratorul sa aplice astfel de corectii. Cand valoarea campului respectiv se modifica foarte des, inseamna ca dinamica corpurilor a intrat intr-un regim ce necesita micsorarea parametrului de precizie (spre exemplu, atunci cand apar capturi gravitationale cu perioade orbitale mici). O setare incorecta a preciziei de integrare va influenta semnificativ viteza integrarii si mai putin eroarea globala de integrare.

5.2. Programul "System Checker" (checker.exe)

Poate fi utilizat pentru obtinerea de informatii asupra integrarii numerice efectuate (pagina1) si asupra continutului bazei de date (pagina 2). Aici sunt afisate coordonatele rectangulare ecliptice si elementele orbitale kepleriene ale corpului curent fata de corpul central. Acesta din urma poate fi selectat din intreaga multime de corpuri ce alcatuiesc sistemul, in acord cu numarul sau de ordine din fisierul de definitie. In aceasta maniera se pot vizualiza elementele orbitale ale sistemelor satelitare (de exemplu, sistemul Pamant-Luna). "System Checker" este singurul program din pachet ce afiseaza data calendaristica asociata momentelor de timp din baza de date.

Cu combinatiile de taste afisate in pagina 1 se poate parcurge baza de date in mod secvential sau pe blocuri de cate o suta de inregistrari. De asemenea, se poate sari la sfarsitul fisierului. In aceiasi maniera se selecteaza si corpul curent ale carui elemente orbitale sunt afisate.

5.3. Programul "Graphic Displayer" (display.exe)
 

Acesta este singurul program cu afisaj grafic din pachetul SolSyIn. Figura alaturata prezinta in culori false modul sau de afisaj. Acest program reprezinta grafic, in proiectie bidimensionala, pozitiile corpurilor din sistem. Optiunile de afisaj sunt urmatoarele (in ordinea alfabetica a tastelor asociate): De asemenea, se poate controla manual citirea inregistrarilor si se poate parcurge harta in cele patru directii ale ei cu ajutorul sagetilor.

5.4. Programul "System Maker" (sysmaker.exe)

Aceasta este cea mai complexa componenta a pachetului SolSyIn, oferind utilizatorului o bogata varietate de definire a sistemelor dinamice, atat prin specificarea explicita a coordonatelor in diferite sisteme de referinta, cat si prin alegera de corpuri predefinite din cataloagele ce insotesc pachetul. Se pot crea sisteme dinamice noi (pornind de la sistemul predefinit "empty.def"), sau se pot modifica/completa cele deja existente.

Programul dispune de numeroase pagini de afisaj, continutul fiecareia fiind descris in cele ce urmeaza:

Pagina 1

Aici este locul unde se poate modifica masa corpului central si momentul initial de timp. Daca primul parametru se modifica fara probleme, la al doilea lucrurile sunt putin mai delicate, deoarece pozitiile corpurilor din sistem trebuie aduse in concordanta cu noul moment de timp. Pentru aceasta, programul cauta in baza de date asociata (daca ea exista) un moment de timp cat mai apropiat de cel ales, apoi cere utilizatorului pemisiunea de a efectua o scurta integrare numerica pentru potrivirea datelor de timp. In caz afirmativ, se cere utilizatorului introducerea unui nume pentru un sistem dinamic ce va fi creat temporar (de regula "temp") - programul evitand astfel alterarea fisierului de date deja existent -, sau in caz negativ, se foloseste momentul de timp gasit de program in baza de date asociata, sau pur si simplu acesta nu va fi modificat. La crearea unui sistem dinamic complet nou, pornind de la sistemul de definitie "empty.def", nu exista nici o restrictie in alegerea momentului initial de timp.

Mai departe, exista trei optiuni de modificare a sistemului: prin pastrarea numarului de corpuri (cand se doreste doar modificarea unor parametri de integrare) - vezi pagina 2, prin includerea unui corp nou in sistem (bine precizat) - vezi pagina 3, sau prin includerea mai multor corpuri ce prezinta caracteristici dinamice comune (sampling) - vezi pagina 5.

Pagina 2

Este ultima pagina a programului, ea permitind modificarea parametrilor de integrare. Prin apasarea tastei SPACE, cu toate datele colectate de la utilizator, programul va produce noul sistem dinamic de corpuri. Se va cere introducerea noului sau nume. Programul nu avertizeaza suprascrierea fisierelor de definitie!

Pagina 3

Este pagina in care se selecteaza un singur corp. Prima optiune necesita introducerea explicita de coordonate - vezi pagina 4, iar celelalte optiuni selecteaza un corp din catalogul corespunzator. Pentru aceste ultime optiuni, utilizatorul trebuie sa poata identifica corpul din catalog introducand un fragment din numele sau din denumirea provizorie a sa. Pentru familiarizare, consultati continutul cataloagelor din directorul "Cat". Spatiile din nume se inlocuiesc cu simbolul "_". Programul selecteaza primul corp din catalog ce contine fragmentul de nume ales. De asemenea, se poate alege un corp prin specificarea numarului de ordine din catalog, precedat de simbolul "#" (de exemplu, introducand numele "#1", pentru catalogul "astero.cat", programul va alege asteroidul "1_Ceres").

Elementele orbitale ale corpurilor din cataloage sunt valabile pentru o anumita epoca (moment de timp), de regula diferita de momentul initial de timp al sistemului dinamic. Astfel, programul va incerca potrivirea acestor date de timp in maniera descrisa la pagina 1. Daca nu se doreste potrivirea datelor printr-o integrare numerica, programul va plasa corpul din catalog la data de timp curenta ceea ce, evident, nu este corect. Aparitia mesajului:

Date matched!

notifica utilizatorul despre corectitudinea alaturarii corpului in sistem.

Mentionam in final ca elementele orbitale ale corpurilor din cataloage sunt convertite in coordonate rectangulare, folosind pentru masa corpului central o masa solara, independent, deci, de masa selectata la pagina 1. Acest mod de calcul asigura corectitudinea plasarii corpului in sistem.

Pagina 4

Este pagina prin care se selecteaza un corp specificand coordonatele sale. In primul rand pot fi specificate tipul corpului si (eventual) masa sa. Aici nu poate fi incalcata regula, descrisa anterior, de ordonare dupa tip a corpurilor in sistem. Masa afisata initial este masa ultimului corp din sistem. Se pot specifica apoi tipul de coordonate ce urmeaza a fi introduse (rectangulare ecliptice sau kepleriene) si corpul relativ la care se raporteaza acestea. In cazul coordonatelor kepleriene, corpul relativ va trebui sa fie de tipul "P", ceea ce este de inteles, de aceea o noua selectare a  tipului de coordonate va duce intotdeauna la initializarea corpului relativ.

In cazul coordonatelor rectangulare, trebuie specificate componentele vectorului de pozitie si ale vectorului viteza in sistemul rectangular ecliptic. Initial programul selecteaza o pozitie ce corespunde unei miscari circulare la distanta 1 UA de corpul  central (avand o masa solara). In cazul elementelor kepleriene, se specifica: semiaxa orbitei (a) sau, alternativ, distanta la periastru (q), excentricitatea (e), inclinatia (i), longitudinea nodului ascendent (o), argumentul periastrului (p) si anomalia mijlocie in orbita (m) sau, alternativ, momentul trecerii prin periastru (t). Valoarea excentricitatii va determina tipul orbitei (eliptica sau hiperbolica), de aceea ea trebuie specificata prima. Alegerea parametrilor alternativi, (q) si (t), determina programul sa afiseze valorile corespunzatoare ale parametrilor standard, (a) si (m), si nu cele introduse efectiv de utilizator. Pentru fiecare parametru in parte exista valori extreme ce nu pot fi depasite. Acestea depind de tipul orbitei. Nu este permisa definirea de orbite parabolice.

Pagina 5

Este pagina prin care se pot selecta mai multe corpuri cu caracteristici dinamice comune. Aceste caracteristici sunt determinate de faptul ca aceste corpuri ocupa o regiune comuna de spatiu, avand o anumita semnificatie diamica. Acest mod de selectare a corpurilor este folosit pentru studiul dispersiei lor de-a lungul timpului. Aceste corpuri nu pot fi de tipul "P", altfel ar apare singularitati.

Prima optiune solicita utilizatorul sa introduca explicit regiunea respectiva de spatiu - vezi pagina 6, iar a doua optiune duce la selectarea regiunii de incertitudine asociata unui asteroid de tip NEO  luat din catalog. Dupa obtinerea informatiilor despre regiunea de incertitudine a obiectului, aceasta va fi esationata (umpluta) uniform cu corpuri, cu scopul de a se studia propagarea incertitudinii orbitale a asteroidului respectiv - vezi pagina 7. Maniera de introducere a corpului din catalog se supune acelorasi reguli descrise la pagina 3. Daca in catalog nu exista informatii despre regiunea de incertitudine a corpului ales, programul va sari la pagina finala, incluzandu-l doar pe acesta in noul sistem dinamic.

Pagina 6

Aceasta pagina descrie optiunea de a plasa un numar de corpuri in vecinatatea unuia deja existent, numit pe mai departe corp parinte. Din acest motiv, corpul parinte nu poate fi de tip "P". Daca nici un corp din sistem nu indeplineste aceasta conditie, programul va da mesajul

Parent body (with flag A or M) not found!

si se opreste. Tipul corpurilor introduse astfel va coincide cu tipul corpului parinte (pentru tipul "M" ele vor avea si aceiasi masa).

Optiunile sunt asemanatoare cu cele de la pagina 4, doar ca coordonatele marcheaza acum dispersiile valorilor absolute fata de cele ale corpului parinte. In plus, se poate alege corpul parinte si numarul de corpuri "clona" cu care urmeaza ca regiunea selectata de spatiu sa fie esantionata uniform. In cazul coordonatelor rectangulare, notiunea de corp relativ nu are sens.

Pagina 7

Aici se introduc parametri ce descriu modul in care regiunea de incertitudine selectata la pagina 5 este esantionata cu corpuri "clona". Corpul parinte are aceiasi semnificatie ca cea descrisa anterior. El este initial identificat cu asteroidul selectat din catalog (numit "asteroid nominal"), insa poate fi schimbat cu un alt corp din sistem, avand tipul "A", de regula situat in vecinatatea celui nominal. In aceasta maniera se pot esantiona regiuni limitate din zona de incertitudine a asteroidului nominal.

Alti parametri semnifica: deviatia standard (descrie extinderea zonei de incertitudine in termeni probabilistici, o valoare de 3 sau 4 fiind adesea o buna alegere), procentul din zona de incertitudine ce urmeaza a fi esantionat (zona centrata in corpul parinte ales), sau alternativ, raza regiunii ce urmeaza a fi esantionata (marime adimensionala masurata in spatiul fazelor al elementelor orbitale equinoctiale) si calitatea esantionari (descrie cat de precis va fi respectat procentul ales anterior, determinarea sa fiind realizata printr-un procedeu numeric aproximativ, de tip Monte-Carlo). Dupa efectuarea esantionarii, programul revine la pagina finala prin afisarea erorii cu care a fost realizat procesul respectiv.

Se remarca faptul ca programul "System Maker" nu ofera posibilitatea modificari caracteristicilor unui corp deja existent in sistem (de exemplu, masa sa sau una din coordonate). Pentru aceasta, utilizatorul este invitat sa editeze fisierul de definitie corespunzator si sa faca modificarea respectiva.

5.5. Programul "Table Maker" (tabmaker.exe)

Acest  program permite extragerea de date din fisierele binare create in urma integrarii si producerea unor tabele ASCII cu campuri separate prin spatii vide, ce pot fi apoi citite si reprezentate grafic.

Multitudinea de optiuni a dus la impartirea lor pe doua pagini ce vor fi detaliate mai jos:

Pagina 1

In primul rand aici se selecteaza tipul campurilor de date ce vor fi produse prin parcurgerea fisierului binar:

Se vor selecta apoi: multimea corpurilor a caror elemente vor fi calculate (intr-un interval), corpul relativ fata de care se raporteaza miscarea celorlalte si corpul parinte fata de care sunt raportati parametri mutuali descrisi anterior.

Pagina 2

In aceasta pagina se mai pot selecta: intervalul de timp in care se tabeleaza elementele respective (implicit este intregul interval de integrare), numarul de zecimale al valorilor numerice inscrise in tabel (un numar mai mare ca 8 va produce tiparirea valorilor in formatul exponential), modul de stocare al datelor si frecventa de stocare.

De regula, modul de stocare al datelor este ales de program in functie de elementele ce vor fi calculate, insa cand utilizatorul alege mai multe corpuri atunci el are optiunea de a instrui programul sa produca tabel cu elementele fiecarui corp (mod procesare normala) sau sa calculeze dispersiile relative ale acestora (mod calcul dispersii).

Prin apasarea tastei SPACE programul va initia procesul de producere a tabelului. Acesta va fi stocat in directorul "Tab". Utilizatorul poate vizualiza progresia procesului si, eventual, il poate opri anticipat. Tabelul respectiv va avea un antet cu valorile tuturor parametrilor selectati anterior, ulterior putandu-se recunoaste continutul sau.

5.6.Programul "Plotter" (plotter.exe)

Acest program face intermedierea intre pachetul SolSyIn si programul de grafica GnuPlot, prin apelarea de optiuni in linia de comanda.  El apeleaza programul de grafica si il instruieste asupra modului de procesare al datelor. Utilizatorul, la randul lui, trebuie sa decida asupra modului in care tabelul de date va fi reprezentat grafic, si aceasta, desigur, va trebui sa fie in acord cu continutul sau. Directorul "Plo\Hdr" contine cateva fisiere de formatare care transmit programului de grafica numarul de ordine al coloanelor ce vor fi procesate si alte date de formatare. In general, numele acestor fisiere coincide cu simbolul folosit in Astronomie pentru parametrul dinamic (sau ai parametrilor) ce va fi reprezentat grafic (de exemplu, apelarea fisierului "a.hdr" in linia de comanda a programului "Plotter" va produce graficul variatiei semiaxei orbitale).

In fisierul de optiuni "options.plo" utilizatorul poate modifica si alti parametri, printre care cel mai reprezentativ este tipul terminalului, ce selecteaza modul de producere al imaginii (variantele sunt: pe ecran, ca fisier imagine "gif", sau ca fisier imagine "eps"). Cunoasterea sintaxei si a comenzilor GnuPlot este in acest moment necesara. In figura de mai jos este prezentat graficul ce trebuie obtinut la rularea sistemului dinamic de testare al instalarii pachetului, "test.bat". [Saltul inregistrat de semiaxa mare, la sfarsitul perioadei de integrare, se datoreaza unei apropieri stranse cu planeta Venus - verificati!].


6.Controlul erorii de integrare

Intotdeauna cand este vorba de un integrator numeric ce aproximeaza miscarea unui sistem de corpuri, trebuie adusa in discutie si eroarea de integrare (aproximare). Nu vom intra aici in detalii, ci vom aminti doar ca eroarea globala de integrare isi are trei origini diferite: (i) eroarea in conditiile initiale ale problemei (in cazul nostru, aceasta depinde de eroarea masuratorilor astronomice cu care s-au determinat coordonatele corpurilor la un moment dat), (ii) eroarea de aproximare a integratorului (depinde cat de performant este acesta, relativ la modelarea evolutiei unui anumit sistem dinamic) si (iii) eroarea de rotunjire a calculelor efectuate de catre procesor (este intrinsec legata de caracteristicile hardware ale procesorului matematic). Deoarece calculele nu se pot efectua cu precizie infinita (cazul ideal), ultimele doua tipuri de erori vor actiona pe intreg parcursul procesului de integrare, ducand la augmentarea erorii initiale. O prima informatie asupra magnitudinii erorii de rotunjire se poate obtine prin determinarea acuratetii masinii, "epsilon". Acesta este cel mai mare numar pozitiv care verifica egalitatea "1+epsilon = 1". Din pacate, se dovedeste ca acesta este nenul, o valoare de 1E-20 fiind des intalnita in gama calculatoarelor personale. Astfel, incepand cu a 20-a zecimala, rand pe rand fiecare zecimala a unui parametru calculat va fi afectata de erori, prin acumularea lor de-a lungul integrarii numerice.

Efectul acestor erori se  poate pune in evidenta, de exemplu, integrand sistemul test, "test-1.def", in doua moduri diferite. Prima data se face o integrare completa si se vizualizeaza apoi coordonatele finale cu programul "System Checker".  Se sterge apoi fisierul de date produs si se face o noua integrare. Daca se opreste acest proces pe la jumatatea executiei sale si apoi se continua integrarea, rezultatele finale  (verificati!) vor diferi la ultimele zecimale fata de cele vizualizate anterior. Aceasta se datoreaza propagari erorilor in procesul de integrare, propagari ce au loc in mod diferit pe parcursul celor doua integrari efectuate, deoarece pasii de integrare sunt diferiti (de la un moment dat). Pe un calculator de tip diferit se obtin, in general, valori diferite (insa cu acelasi ordin de marime).

Acelasi procedeu de integrare dubla se poate efectua acum pe sistemul "test-4". Rezultatele finale obtinute in cele doua simulari, pentru corpul al doilea din sistem, vor fi complet distincte, lucru profund descurajator. Astfel de anomali numerice nu pot fi inlaturate niciodata, atata timp cat numerele in virgula mobila sunt cuantificate aproximativ de catre calculator. Viteza de propagare a erorilor, daca integratorul este performant - cazul integratorului Radau-Everhart, depinde doar de caracterul haotic al orbitei corpului respectiv. Acest caracter haotic se poate masura prin alaturarea unui corp "clona",  foarte apropiat de corpul in studiu (de exemplu, la o diferenta de doar 10-8 grade in anomalia mijlocie), iar apoi se monitorizeaza diferenta in anomalia mijlocie de-a lungul integrarii numerice. Cu cat orbita este mai haotica, cu atat cele doua corpuri initial apropiate diverg mai repede, si aceasta independent de tipul calculatorului.

Propagarea erorii poate fi studiata si altfel, folosind asa-numitul "test de reversibilitate". Un sistem dinamic se propaga pe intervalul de timp dorit, iar apoi se modifica sensul integrarii, si se propaga pana la momentul initial (prin specificarea intervalului nul de integrare). Comparand coordonatele initiale si finale, vom avea o masura a propagarii erorilor si a gradului de haoticitate al miscarii.

Sistemele test: "test-1.def",..., "test-4.def" servesc tocmai la testarea erorilor de integrare in diferite situatii critice, pornind cu o orbita foarte regulata (testul 1), continuand cu o orbita dominata de apropieri stranse (testul 2), apoi cu o orbita avand perioda orbitala extrem de scurta (testul 3) si incheind cu un exemplu de sistem dinamic haotic (testul 4). Experientele numerice efectuate cu acest integrator confirma faptul ca acesta gestioneaza foarte bine propagarea erorii proprii de integrare, in sensul ca prezinta un mecanism de compensare al acestora in timp. Din acest motiv, eroarea globala inregistrata va fi doar o masura a gradului de haoticitate a orbitei respective.

Folosind programul "System Maker" se poate studia propagarea incertitudinii orbitale a asteroizilor de tip NEO, recunoscuti pentru gradul mare de haoticitate al miscarii lor.


7. Lista catorva procese dinamice ce pot fi evidentiate

Este greu de imaginat o lista a tuturor proceselor dinamice ce pot fi evidentiate cu pachetul SolSyIn, totusi el a fost creat cu precadere pentru a pune in evidenta urmatoarele procese:


8. Exemple

In directorul "Bat" exista cateva exemple de sisteme dinamice reale si fictive, ce contin comentarii asupra proceselor dinamice simulate. Ele nu necesita interventia utilizatorului, decat la vizualizarea lor. Astfel Numeroase alte exemple de sisteme dinamice, majoritatea reale, se gasesc in directorul "Def" al distributiei, sub forma fisierelor de definitie.
9. Lista mesajelor de avertisment
Programele pachetului SolSyIn, in situatiile critice, notifica utilizatorul cu urmatoarele mesaje de avertisment:
 
File not found! Mesajul apare atunci cand se incearca accesarea unui fisier de definitie, respectiv al unui fisier de date, si acesta este inexistent in directorul "Def", respectiv "Dat";
Wrong file format! Mesajul apare atunci cand se incearca accesarea unui fisier de definitie sau a unui fisier de date, si structura acestuia este eronata; In cazul fisierului de definitie, verificati prin editarea sa daca datele inscrise sunt consistente; In cazul fisierului de date, acesta poate proveni dintr-o alta integrare numerica a unui sistem dinamic diferit, si deci trebuie sters;
No match! Mesajul apare atunci cand se doreste modificarea momentului de timp initial al unui sistem dinamic, si acest moment de timp nu este gasit in fisierul de date; Programul va afisa diferenta de timp si va cere permisiunea efectuarii unei integrari numerice pentru potrivirea datelor;
Date matched! Mesajul apare atunci cand programul realizeaza corect potrivirea momentelor de timp la modificarea sistemului dinamic; 
Object not found! Mesajul apare atunci cand programul nu gaseste in catalogul corespunzator un obiect cu numele sau fragmentul din nume introdus de utilizator;
Parent body (with flag A or M) not found! Mesajul apare atunci cand se incearca esantionarea unei regiuni din spatiu cu corpuri, iar in sistemul dinamic introdus nu poate fi identificat nici un corp parinte de tipul corespunzator;
Sampling failed! Mesajul apare atunci cand utilizatorul opreste, prin apasarea tastei ESC, procesul de esantionare a unei regiuni din spatiu cu corpuri. De regula, prin micsorarea calitatii de esantionare se reduce simtitor si timpul de efectuare a sa.

Programele "Plotter" si "Data File Remover" nu afiseaza nici un mesaj catre utilizator, decat cel de uzaj, cand sunt apelate fara parametri in linia de comanda. Utilizatorul nu este notificat daca acesti parametri sunt eronati, doar ca procesul asteptat nu se efectueaza.


10. Adrese utile

In aceasta sectiune sunt trecute cateva adrese de internet de unde se pot obtine programe si diverse informatii despre bazele de date, aduse in discutie in paragrafele anterioare.

Software

Baze de date

Copyright (c) 2001 by Stefan Berinde