Datei: smgt.localaccess.html
Titel/Inhalt: SMGT: Stellar Modell Grid Tool
Datum: di 09 nov 2k+4
AutorIn: heiter, schmidt, nendwich
SMGT: Stellar Model Grid Tool:
(Das Folgende stellt einen ersten Versuch dar, aus den vereinzelten
Informationen, die mensch hie und da erhaschen kann, eine halbwegs konsistente
Darstellung der Anwendung des SMGT anhand eines Beispielfalles zu erstellen.
Wer was genaueres oder zu ergänzendes weiß, ist herzlich eingeladen,
sein/ihr Wissen der Allgemeinheit zur Verfügung zu stellen. Wer das Ganze
auch noch auf Englisch übersetzt, ist supa!)
Das Ziel des Beispiels ist eine Berechnung von Atmosphären-Modellen mit
folgenden Parameter(bereiche)n:
Teff = 4000 - 10000 a' 200 Kelvin => "T*"
logg = 2.0 => "G200"
logz = -2.0 => "m20"
v_micro = 4=> "_4"
Konvektion: 'cgm' (288)
D.h. es sollen folgende (Atmosphären-Modell-)Files berechnet werden:
T*G200_4m20.mod, wobei * = 04000, 04200, 04400, ...,
10000.
SMGT braucht nun als Input schon vorhandene Dateien mit diesen Namen
1, die dann
als Ausgangspunkt für die iterativen Rechnungen verwendet werden; wobei
mensch beim Aufruf von SMGT angeben kann, ob diese Ausgangsfiles durch die
Ergebnisfiles überschrieben oder die Ergebnisse wo anders abgelegt werden
sollen.
Die Start-Dateien sollten möglichst "richtige" (d.h. den Parameter-Werten
entsprechende) Atmosphären-Modelle enthalten. In unserem Beispiel gehen
wir davon aus, daß noch keine Modelle für v_micro=4 gerechnet
wurden und somit keine ent sprechenden .mod-Files vorhanden sind.
Wir werden daher die analogen Dateien für v_micro=2 - diese befinden sich
in /scr1/heiter/vmicro_2/Models/m_cgm288/ - in unser
Arbeitsverzeichnis kopieren und auf v_micro=4 umzubenennen:
cp /scr1/heiter/vmicro_2/Models/m_cgm288/T*G200_2m20.mod .
foreach file (*_2*.mod)
foreach? mv $file `echo $file | sed 's/_2/_4/'`
foreach? end
Es fehlen (in diesem Beispiel):
T04800G200_2m20.mod,
T07600G200_2m20.mod,
T07800G200_2m20.mod und
T08000G200_2m20.mod.
Das erste gibt es in der Form T04800G200_2m20~.mod (~ bedeutet: nicht
vollständig konvergiert) und wird ohne Tilde kopiert (und auf _4
umbenannt):
cp /scr1/heiter/vmicro_2/Models/m_cgm288/T04800G200_2m20~.mod T04800G200_4m20.mod
Für das zweite bieten sich folgende Möglichkeiten (möglichst
ähnliche Parameterwerte!) an:
T07600G200_2m15.mod: existiert nur in der ~-Version
T07600G180_2m20.mod: gibt's gar nicht
T07600G220_2m20.mod: ist vorhanden
T07400G200_2m20.mod: gibt's auch
T07800G200_2m20.mod: gehört selber zu den Fehlenden.
Wir entscheiden uns für das 3. in dieser Liste:2
cp /scr1/heiter/vmicro_2/Models/m_cgm288/T07600G220_2m20.mod T07600G200_4m20.mod
Analog für das dritte und vierte Fehlende:
cp /scr1/heiter/vmicro_2/Models/m_cgm288/T07800G200_2m15~.mod T07800G200_4m20.mod
cp /scr1/heiter/vmicro_2/Models/m_cgm288/T08000G200_2m05.mod3 T08000G200_4m20.mod
Somit sind nun alle erforderlichen Atmosphären-Start-Modell-Dateien
T*G200_4m20.mod (31 an der Zahl) vorhanden (mensch hätte auch das
eine oder andere fehlen lassen können, siehe Fußnote
1), und SMGT kann gestartet4 werden:
/home/heiter/bin/smgt.pl -y --grid S . T 4000/10000/200 G 2.0 Z -2.0 V 4 C cgm R 288 F 2 O 2 ergebnis1
Es kommt eine kurze Meldung des SMGT-frontend-scripts und im
Arbeitsverzeichnis wird ein Verzeichnis
ergebnis1/ angelegt sowie die Dateien
nohup.out,
smgt1234.pl* und
smgt5678.log (die Nummern sind die Prozess-Nummern der gestarteten
Perl-Prozess.).
Das .log-file enthält Informationen (u.a. Konvergenz) über
die laufenden und abgeschlossenen Rechungen.
Im Verzeichnis ergebnis1/ befinden sich Kopien aller
.mod-files, eine Datei
kapm20.ros (ROSSELAND MASS ABSORPTION COEFFICIENTS [-2.0]), für
jedes in Berechnung befindliche oder fertig berechnete Modell eine
.err- (hoffentlich leer!),
.in- (input-file für ATLAS9),
.flx- (output, Fluß), und die neuberechnete (und somit die
ursprüngliche Kopie überschreibende)
.mod- ("das Modell", "die Modell-Atmosphäre") -Datei, sowie die
Datei
fluxes.pck, welche die "gesammelten Werke" der .flx-Dateien
darstellt.
Mit
ps wx
kann geschaut werden, welche Perl-Scripts laufen (siehe jedoch Fußnote
4).
Nach Beendigung der Rechnungen sind die .err- und .in-files
wieder weg, dafür gibt's jetzt zu jedem Modell eine .out-Datei,
welche die Werte von weiteren physikalischen Variablen für jede (der 288)
Atmospärenschicht enthält.
Eine smgt.5678.dat-Datei enthält u.a. die RMS von Fluss- und
Flussableitungs-Fehler für jedes Modell.
In den (nach Beendigung der Rechnungen wieder gelöschten)
.in-Dateien steht in der 4. Zeile
/scr1/heiter/ODFs/m20lit4.bdf, ein im Perl-Script
ATLAS_Port.pm (s.a. weiter unten) definierter Pfad. Sind die
erforderlichen Dateien dort nicht vorhanden (hier z.B.: m20 für logz
= -2.0, lit für Flüsse (sonst 'big' für
Modellatmosphäre ; smgt mit F 2 braucht beide Versionen) und 4 =
v_micro), dann schreit SMGT (d.h. im smgt5678.log-file gibt's eine
entsprechende Meldung) nach einer der Kurucz-CDs, mensch kann dann die CD
einlegen, oder die entsprechenden .bdfs von der CD in das obige
Verzeichnis kopieren. (Aus Platzgründen ist nicht der gesamte Inhalt der
CDROMs auf Festplatte kopiert, sondern nur die Dateien, die gerade gebraucht
werden bzw. die oft gebraucht werden.)
Da (in unserem Beispiel) einige Modelle (T = 4800, 7600, 7800, 8000; das sind
übrigens genau die 4 fehlenden vom Anfang) nicht vollständig
konvergiert sind (~), soll probehalber ein 2. Durchlauf gestartet werden,
wobei die .mod-files von ergebnis1/ als Ausgangsmodelle
für die neuen Berechnungen genommen werden sollen und die neuen
Ergebnisse in ergebnis2/ hineinkommen (Zeile 2 und 3 berechneten nur
die 4 nicht vollständig konvertierten nochmals):
/home/heiter/bin/smgt.pl -y --grid S ergebnis1/ T 4000/10000/200 G 2.0 Z -2.0 V 4 C cgm R 288 F 2 O 2 ergebnis2
(/home/heiter/bin/smgt.pl -y --grid S ergebnis1/ T 4000,7600,7800,8000 G 2.0 Z -2.0 V 4 C cgm R 288 F 2 O 2 ergebnis2)
(/home/heiter/bin/smgt.pl -y --grid S ergebnis1/ T 4000,7600/8000/200 G 2.0 Z -2.0 V 4 C cgm R 288 F 2 O 2 ergebnis2)
Ein Vergleich (diff) der beiden Ergebnisse liefert folgendes:
-
Bis auf eine Ausnahme sind alle Files (.flx, .mod und
.out) unterschiedlich (oft erst ab der 3. oder höheren
Kommastelle).
-
Bis auf die vier nicht vollständig konvergierten wurde für jedes
Modell (im zweiten Durchlauf) nur eine Iteration gerechnet; bei
T04800 waren es 18 (38 im 1.), T07600: 13 (22),
T07800: 13 (49) und T08000: 129 (17). (Im ersten Durchlauf
waren übrigens im Durchschnitt 25 Iterationen gerechnet worden; für
T>8800 jeweils nur eine, sonst 13 bis 100.)
-
Als einziges von den 4 hat T07600 keine Tilde mehr, ist also im 2.
Durchlauf vollständig konvergiert. Interessanterweise sind aber die
beiden Dateien ergebnis1/T07600G200_4m20~.flx und
ergebnis2/T07600G200_4m20.flx identisch! D.h. für die
Flüsse und demnach auch die Farben reicht - in diesem Fall! - die
unvollständige Konvergenz des ersten Durchlaufs.
-
Der Farbenvergleich (colors, UBV) ergibt für folgende (12 von 31, bei den
anderen sind die Ergebnisse identisch) Temperaturen bis zu folgende
Unterschiede in den Farben bzw. Indizes ([mmag]):
5200:1, 7400:1, 7800:2, 8000:7 (!), 8200:1, 8400:1, 9000:2,
9200:2, 9400:2, 9600:3, 9800:3 und 10000:2;
bei 4800 und (erwartungsgemäß) 7600 gab es keine
Änderung.
Zum Abschluß soll noch der Fall durchgespielt werden, daß es
überhaupt keine Start-Modelle gibt (siehe Fußnote
1) (keine Switches -y und S):
/home/heiter/bin/smgt.pl --grid T 4000/10000/200 G 2.0 Z -2.0 V 4 C cgm R 288 F 2 O 2 ergebnis3
Im entsprechenden smgt1234.log-file ist dann auch von
"initialization: grey atmosphere" die Rede, und bei vielen Modellen als
Ergebnis: "computation failed", entweder wegen "model does not
converge at all" oder "there were errors during execution of
ATLAS:" mit einer Fehlermeldung, die sich auch in der entsprechenden
ergebnis3/<Modell>.err-Datei befindet (nämlich "forrtl:
error (73): floating divide by zero" oder "forrtl: error (72): floating
overflow").
Die entsprechenden ergebnis3/<Modell>.mod und .flx-files
gibt es dann nicht; .out schon, weil der Fehler trat ja bei ATLAS9 auf,
das aus den .mod-files die .flx-files berechnet.
In der Datei nohup.out finden sich mehrere Einträge: "sh:
9753 Abort" mit verschieden Nummern.
Am Ende der Rechnungen gibt es schließlich nur für T = 6000-7800
und 8600-10000 .flx-Dateien, wobei 7800 eine ~ hat; es ist also i.A.
anzuraten, (vernüftige) Startmodelle zur Verfügung zu stellen.
Die Farb(indizes)unterschiede zu ergebnis1 betragen: T = 6000-7800,
8600: 0 außer bei 6400, 7400, 7800 und 8800: 1, T = 9000, 9400-10000:
3.
_____
1
Wenn SMGT mit dem switch -y (dynamic grid processor) gestartet wird,
können auch einzelne Startmodelle fehlen, es wird dann aus direkt
benachbarten Gitterpunkten ein gemitteltes Startmodell berechnet; sind diese
Nachbarn auch nicht da, dann geht SMGT von einer grauen Atmosphäre
aus, was i.A. kein Vorteil für die Konvergenz ist; s.a. oben letztes
Beispiel.
2
Das 1. nicht wegen der ~; das 4. nicht, weil es schon das Start-Modell
für T=7400 ist (was aber auch egal wäre).
3
Es hätte auch T08000G220_2m15.mod gegeben; welches ist
ähnlicher?: dasjenige, das weniger Iterationen braucht zur Berechnung, bzw.
kann mensch auch die 3 T-tau Relationen vergleichen.
4
Geht nicht auf Intel Linux Rechnern (siehe:
Computer-Typ), weil da ATLAS nicht
kompiliert werden kann. Für die Bedeutung der Switches siehe weiter unten!
Hier noch ein paar isolierte Einzelinfos, beziehen sich
teilweise auf die von Ulli gerechneten Modelle für v_micro = 2 und 4:
Die Flüsse befinden sich für alle Gitter in den files "fluxes.pck.gz".
Können mit /scr1/heiter/vmicro_2/unpack_fluxes.pl extrahiert
werden. Siehe /scr1/heiter/vmicro_2/readme.txt; allerdings
funktioniert dieses perl-script (unpack_fluxes.pl) mit bestimmten
perl-versionen nicht (haupts. Windows).
Ganz zu Beginn der Gitterrechnungen (ist also schon Jahre her) hat Wolfram
grobe Gitter zum Starten berechnet, die sich in den Verzeichnissen
/scr1/heiter/minit/ und /pinit/ befinden. Diese wurden nur
als Startmodelle für vmicro=2 verwendet.
Die Flüsse werden auch mit ATLAS9 berechnet und mensch kann Teile von
SMGT dafür verwenden. Leider gibt es in SMGT selbst keine Option, nur aus
vorhandenen .mod files die Flüsse zu berechnen, obwohl es glaube
ich nicht schwierig wäre, das einzubauen.
Mensch kann ~heiter/lib/smgt/fluxtool.pl verwenden, das ein Inputfile
namens fluxtool.in benötigt, in dem die Modellfiles
(*.mod) zeilenweise aufgelistet sind.
Die Namen müssen SMGT Standard sein (T?????G???_?p???.mod), da
Teff, logg, etc. daraus extrahiert werden. Mensch kann auch Konvektions- und
Auflösungsparameter angeben, einfach nach dem Programmnamen auflisten:
modell Parameter Schichtzahl, in dieser Reihenfolge, z.B.
~heiter/lib/smgt/fluxtool.pl cgm 0.09 144. Diese Parameter sind
allerdings für die Rechnung nicht relevant, sie werden nur verwendet, um
die TITLE Zeile zu konstruieren.
Auch SMGT berechnet (mit ATLAS9): .mod -> .flx, dann kommt
colors: .flx -> .colors.dat. .mod enthält
Temperatur, Druck, etc. als Funktion der Tiefe (entlang des Sternradius),
.flx enhält Fluss als Funktion der Wellenlänge, wobei
für jede Wellenlänge über die gesamte Tiefe des
Atmosphärenmodells integriert wird. Für die Farben wird wiederum
über einen Wellenlängenbereich integriert. (Alles sehr vereinfacht
ausgedrückt.)
Welche Modelle überhaupt nicht konvegiert sind, steht in
/scr1/heiter/vmicro_2/Info/missing.dat und
/scr1/heiter/vmicro_4/Info/missing.dat.
Kurz-Info-Überblick:
von
http://ams.astro.univie.ac.at/~heiter/:
(Research
| Using SMGT (W. Schmidt))
Number_of_layers * delta_log_tau_ross = 9.0
(72 * 0.125 sind die von Kurucz verwendeten (sozusagen default) Werte.)