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:
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)) model_grid.jpg
Number_of_layers * delta_log_tau_ross = 9.0
(72 * 0.125 sind die von Kurucz verwendeten (sozusagen default) Werte.)

smgt_1.jpg
smgt_2.jpg
smgt_3.jpg
smgt_4.jpg

smgt_usage_1.jpg
smgt_usage_2.jpg
smgt_usage_3.jpg
smgt_usage_4.jpg
smgt_usage_5.jpg