Einleitung zur Datenstruktur ft

Die Datenstruktur ft dient zur Verarbeitung fünfdimensionaler reeller Felder. Fourier-Transformationen können über alle Dimensionen durchgeführt werden. Die darunter liegende Datenstruktur wird im folgendem erklärt.

Folgende Darstellungen sind unter Betrachtung der Anwendung der Fourier-Transformationen in den verschiedenen Richtungen (ZS, PAR, DIM1, DIM2, DIM3) implementiert:

Folgende Apekten der Datenstruktur werden im Folgenden erklärt:

Standard Datenstruktuty: Daten im physikalischen Raum (ftform=FT_REAL, ftkoef = FT_REIM)

Für Daten im physikalischen Raum bestimmt jeder Index in einer bestimten Dimension einen Wert der Koordinate, die jener Dimension entspricht. Die Tabelle liefert ein Beispiel für ein zweidimensionales Feld über Zeischritte und Parameter.

... ... ... ... ... ... ...
par=4 ... ... ... ... ... ...
par=3 (t1, z3) (t2, z3) (t3, z3) ... ... ...
par=2 (t1, z2) (t2, z2) (t3, z2) ... ... ...
par=1 (t1, z1) (t2,z1) (t3,z1) .... ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

Tabelle 1: Zweidimensionales Feld über ZS und PAR im physikalischen Raum (ftform=FT_REAL, ftkoef=FT_REIM).

Dabei kennzeichnet (ti,zj) das Feld der Werte der Variable an dem ZS-Punkt ti bei der PAR-Punkt zj.

Standard Datenstruktur: Daten aus einfachen und mehrfachen reellen Transformatioen (ftform=FT_REAL, ftkoef = FT_REIM)

Bei Anwendung einer reellen Transformation (z.B. über ZS) wird den zu analysiernden Datensatz aus dem Inputfile als eine Menge reeller Funktionen über der Koordinate, die der transformierte Richtung entspricht betrachtet. Jeder Kombination von Indizen aus den 4 nicht-transformierten Richtungen entspricht eine solche Funktion (bei Transformationen über ZS erhält man eine Funktion für jede Kombination der Indizen für PAR, DIM1, DIM2, DIM3; insgesamt NPAR* NDIM1*NDIM2*NDIM3 reelle Funktionen). Dabei ist es nicht relevant ob die anderen Richtungen schon Fourieranalysiert worden sind (in dem Fall kennzeichen die entsprechenden Indizes verschiede Harmonische im Fourier Raum) oder ob sie noch im physikalischen Raum liegen (in dem Fall kennzeichen die entsprechenden Indizes verschieden Punkte im physikalischem Raum). Für jede Reelle Funktion wird eine Cosinus- und eine Sinus-Transformation (siehe Formelblatt) durchgefüht. Die erhaltenen Paare von Koeffizienten (ein Koeffizient aus der Cosinus- und einer aus der Sinus-Transformation für jede Harmonische) werden im Inputfile ducrch folgende Indzierung gekennzeichnet:

Die Tabelle 2 zeigt ein Beispiel für ein bidimensionales Feld über Zeischritte und Parameter, wobei eine Fourier Transformation entlang der ZS-Richtung durchgeführt worden ist. Die PAR-Richtung liegt im physikalischen Raum.

... ... ... ... ... ... ...
par=4 ... ... ... ... ... ...
par=3 (h1_cos, z3) (h1_sin, z3) (h2_cos, z3) (h2_sin, z1) ... ...
par=2 (h1_cos, z2) (h1_sin, z2) (h2_cos, z2) (h2_sin, z1) ... ...
par=1 (h1_cos, z1) (h1_sin, z1) (h2_cos, z1) (h2_sin, z1) ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

hi>=0

Tabelle 2: Bidimensionales Feld über ZS und PAR, ZS-Richtung Fourier transformiert (ftform=FT_REAL, ftkoef=FT_REIM).

Dabei kennzeichnet (hi_cos, zj) (bzw. (hi_sin, zj)) den Koeffizient für die Harmonische hi aus der Cosinus-Transformation (bzw. aus der Sinus-Transformation) entlang der ZS-RIchtung an der PAR-Position zj.

Die Terme (hi_sin,zj) (bzw. (hi_cos,zj)) entfallen, wenn die analysierte Funktion symmetrisch (bzw. antisymmetrisch) in ZS-Richtung ist. Die Anzahl der Zeitschritte im File halbiert sich.

Die Tabelle 3 zeigt ein Beispiel für ein bidimensionales Feld über Zeischritte und Parameter, wobei eine Fourier Transformation entlang der PAR-Richtung durchgeführt worden ist. Die ZS-Richtung liegt im physikalischen Raum.

... ... ... ... ... ... ...
par=4 (t1, k2_sin) (t2, k2_sin) (t3, k2_sin) ... ... ...
par=3 (t1, k2_cos) (t2, k2_cos) (t3, k2_cos ... ... ...
par=2 (t1, k1_sin) (t2, k1_sin) (t3, k1_sin) ... ... ...
par=1 (t1, k1_cos) (t2, k1_cos) (t3, k1_cos) .... ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

kj>=0

Tabelle 3: Zweidimensionales Feld über ZS und PAR, PAR-Richtung Fourier transformiert (ftform=FT_REAL, ftkoef=FT_REIM).

Dabei kennzeichnet (ti, kj_cos) (bzw. (ti, kj_sin)) den Koeffizienten für die Harmonische kj aus der Cosinus-Transformation (bzw. aus der Sinus-Transformation) entlang der PAR-Richtung an der ZS-Position ti.

Die Terme (ti, kj_sin) (bzw. (ti, kj_cos)) entfallen, wenn die analysierte Funktion symmetrisch (bzw. antisymmetrisch) in PAR-Richtung ist. Die Anzahl der Parameter im File halbiert sich.

Tabelle 3 zeigt ein Beispiel für ein zweidimensionales Feld über Zeischritte und Parameter, wobei Fourier Transformationen entlang beiden Richtungen durchgeführt worden sind.

... ... ... ... ... ... ...
par=4 (h1_cos, k2_sin) (h1_sin, k2_sin) (h2_cos, k2_sin) (h2_sin, k2_sin) ... ...
par=3 (h1_cos, k2_cos) (h1_sin, k2_cos) (h2_cos, k2_cos) (h2_sin, k2_cos ... ...
par=2 (h1_cos, k1_sin) (h1_sin, k1_sin) (h2_cos, k1_sin) (h2_sin, k1_sin) ... ...
par=1 (h1_cos, k1_cos) (h1_sin, k1_cos) (h2_cos, k1_cos) (h2_sin, k1_cos) ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

hi>=0, kj>=0

Tabelle 4: Zweidimensionales Feld über ZS und PAR, beide Richtungen Fourier transformiert (ftform=FT_REAL, ftkoef=FT_REIM).

Dabei kennzeichnet (hi_cos, kj_cos) (bzw. (hi_sin, kj_cos)) den Koeffizienten für die Harmonische hi aus der Cosinus-Transformation (bzw. aus der Sinus-Transformation) entlang der ZS-Richtung der ZS-abhängigen Koeffizienten der Harmonische kj aus einer vorherigen Cosinus-Transformation entlang der PAR-Richtung. Analog kennzeichnen (hi_cos, kj_sin) (bzw. (hi_sin, kj_sin)) den Koeffizienten für die Harmonische hi aus der Cosinus-Transformation (bzw. aus der Sinus-Transformation) entlang der ZS-Richtung der ZS-abhängigen Koeffizienten der Harmonische kj aus einer vorherigen Sinus-Transformation entlang der PAR-Richtung.

Da die Reihenfolge der Transformationen ohne Änderung der Ergebnisse im Outputfile geändert werden kann, kann man die gleichen Koeffizienten als Ergebnis der Transformation entlang der PAR-Richtung der PAR-abhängige Koeffizienten aus einer vorherigen Transformation entlang der ZS-Richtung betrachten.

Im Allgemeinen kann die Reihenfolge der Transformationen bei mehrfachen Transformationen bei der FT_REAL Darstellung ohne Änderung der Ergebnisse im Outputfile geändert werden. Dies folgt aus der Tatsache, daß unabhängig von der effektiven Reihenfolge der Transformationen die Position eines Koeffizienten im File die harmonische Funktionen (cosinus oder sinus), die zur Berechnung der Koeffizienten für die einzelne Richtungen verwendet worden sind, eindeutig bestimmt. Zum Beispiel wurde bei einer asymmetrischen Funktion ein Koeffizient, der im File einem ungeradem Wert der ZS-Index entspricht, mit einer Cosinus-Transformation in ZS-Richtung berechnet; ein Koeffizient, der im File einem geradem Wert der PAR-Index entspricht, wurde mit einer Sinus-Transformation in PAR-Richtung berechnet. Die Bestimmung der Transformationsart ist trivial für Richtungen, entlang denen die Funktion symmetrisch (bw. antisymmetrisch) ist, da für solche Richtungen nur Sinus-Transformationen (bzw. nur Cosinus-Transformationen) durchgeführt werden. Betrachtet man dies und berücksichtigt man, daß die Reihenfolge der Integraionen in der Berechnug der Koeffizienten tauschbar ist, kommt man zur getroffenen Aussage.

Die Terme (hi_sin,...) (bzw. (hi_cos,...)) entfallen, wenn die transformierte Funktion symmetrisch (bzw. antisymmetrisch) in ZS-Richtung ist. Die Terme (...,kj_sin) (bzw. (...,kj_cos)) entfallen, wenn die transformierte Funktion in PAR-Richtung symmetrisch (bzw. antisymmetrisch) ist. Die Anzahl der Zeitschritte und der Parameter im File reduziert sich entsprechnd.

Es sei darauf hingewiesen daß die Darstellung der Daten im physikalischen Raum als Sonderfall von FT_REAL (keine Richtung liegt im Fourier Raum) angesehen werden kann. Dementsprechend wird auch die Darstellung der Daten im physikalischen Raum mit FT_REAL gekennzeichent.

Datenstruktur für Realteil, Immaginarteil, Amplitude, Betrag und Phase aus einfachen und mehrfachen komplexen Fourier-Transformationen/Reihenentwicklungen (ftform=FT_REAL, ftkoef = {FT_REPART | FT_IMPART | FT_MODMATH | FT_MODPHYS | FT_PHASE})

Die hier beschriebene Darstellung ist dadurch gekennzeichnet daß für jede Kombinationen von Koordinaten (für die Richtungen in physikalischen Raum) und Wellenzahlen (fuer die Richtungen im Fourier-Raum) einen einzigen Wert gespeichert werden muß (Realteil, Immaginarteil, Amplitude, Betrag oder Phase der Koffizient für die entsprechenden Wellenzahlen an der entsprechenden).

Die Tabelle 5 zeigt ein Beispiel für ein bidimensionales Feld über Zeischritte und Parameter, wobei eine Fourier Transformation entlang der ZS-Richtung durchgeführt worden ist. Die PAR-Richtung liegt im physikalischen Raum.

... ... ... ... ... ... ...
par=4 ... ... ... ... ... ...
par=3 (h1, z3) (-h1, z3) (h2, z3) (-h2, z1) ... ...
par=2 (h1, z2) (-h1, z2) (h2, z2) (-h2, z1) ... ...
par=1 (h1, z1) (-h1, z1) (h2, z1) -(h2, z1) ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

hi>=0, kj>=0

Tabelle 5: Zweidimensionales Feld über ZS und PAR, ZS-Richtung Fourier transformiert (ftform=FT_REAL, ftkoef=FT_REPART |FT_IMPART | FT_MODMATH | FT_MODPHYS | FT_PHASE).

Dabei kennzeichnet (hi, zj) den Realteil (oder Immaginarteil, etc) des Koeffizienten für die Harmonische hi aus der komplexen Trasformation/Reihenentwicklung entlang der ZS-Richtung an der PAR-Position zj

Die Tabelle 6 zeigt ein Beispiel für ein bidimensionales Feld über Zeischritte und Parameter, wobei eine Fourier Transformation entlang der PAR-Richtung durchgeführt worden ist. Die ZS-Richtung liegt im physikalischen Raum.

... ... ... ... ... ... ...
par=4 (t1, -k2) (t2, -k2) (t3, -k2) ... ... ...
par=3 (t1, k2) (t2, k2) (t3, k2) ... ... ...
par=2 (t1, -k1) (t2, -k1) (t3, -k1) ... ... ...
par=1 (t1, k1) (t2, k1) (t3, k1) .... ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

kj>=0

Tabelle 6: Zweidimensionales Feld über ZS und PAR, PAR-Richtung Fourier transformiert (ftform=FT_REAL, ftkoef=FT_REPART |FT_IMPART | FT_MODMATH | FT_MODPHYS | FT_PHASE).

Dabei kennzeichnet (ti, kj) den Realteil (oder Immaginarteil, etc) des Koeffizienten für die Harmonische kj aus der komplexen Trasformation/Reihenentwicklung entlang der PAR-Richtung an der ZS-Position ti

Tabelle 3 zeigt ein Beispiel für ein zweidimensionales Feld über Zeischritte und Parameter, wobei Fourier Transformationen entlang beiden Richtungen durchgeführt worden sind.

... ... ... ... ... ... ...
par=4 (h1, -k2) (-h1, -k2) (h2, -k2) (-h2, -k2) ... ...
par=3 (h1, k2) (-h1, k2) (h2, k2) (-h2, k2) ... ...
par=2 (h1, -k1) (-h1, -k1) (h2, -k1) (-h2, -k1) ... ...
par=1 (h1, k1) (-h1, k1) (h2, k1) (-h2, k1) ... ...
zs=1 zs=2 zs=3 zs=4 zs=5 ...

hi>=0, kj>=0

Tabelle 7: Zweidimensionales Feld über ZS und PAR, beide Richtungen Fourier transformiert (ftform=FT_REAL, ftkoef=FT_REPART |FT_IMPART | FT_MODMATH | FT_MODPHYS | FT_PHASE).

Dabei kennzeichnet (hi, kj) den Realteil (oder Immaginarteil, etc) des Koeffizienten für die Harmonische hi aus der komplexen Trasformation/Reihenentwicklung entlang der ZS-Richtung und für die Harmonische kjaus der komplexen Trasformation/Reihenentwicklung entlang der PAR-Richtung

Eingabefenster und Modenmoleküle

Bei fouriertransformierten Richtungen müssen folgende Datensätze im File immer durch aufeinanderfolgende Werte des Index für die jeweilige Dimension gekennzeichent werden:

Damit entstehen in Abhängigkeit von der Anzahl der Richtungen, die im Fourier-Raum liegen, ein- oder mehrdimensionale Blöcke von Daten, die nicht getrennt werden dürfen. Im folgenden werden solche Blöcke als Moleküle bezeichnet. Hier unten sind Beispiele von Molekülen für verschieden Darstellungen als Beispiele vorgestellt.

ftform=FT_REAL, ftkoef=FT_REIM, nur die ZS-Richtung im Fourier-Raum. h >=0, z beliebig:

(h_cos, z) (h_sin, z)

ftform=FT_REAL, ftkoef=FT_REIM, nur die PAR-Richtung im Fourier-Raum. k>=0, t beliebig:

(t, k_sin)
(t, k_cos)

ftform=FT_REAL, ftkoef=FT_REIM, ZS- und PAR-Richtung im Fourier-Raum. h>=0, k>=0:

(h_cos, k_sin) (h_sin, k_sin)
(h_cos, k_cos) (h_sin, k_cos)

Bei Symmetrie/Antisymmetrie reduzieren sich die Dimensionen der Moleküle wie bei der Definition der einzelnen Darstellungen erklärt (ftform=FT_REAL, ftkoef=FT_REIM).

Bei Befehlen muß das Eingabefenster so definiert sein, daß die gerade definierten Paare im Inputfile nicht getrennt werden und daß die definierte Reihenfolge berücksichtigt wird.

Daten aus einem Molekül sind meistens nur in Verbindung mit den anderen Daten aus dem gleichen Molekül von Bedeutung. Deswegen ist bei Befehlen, welche die Datenstruktur ft unterstützen, nur die Überarbeitung von vollständigen Molekülen zugelassen. Eine Fehlermeldung wird ausgegeben, falls das Eingabefenster nicht vollständige Moleküle enthält oder die interne Reihenfolge der Datezätze nicht berücksichtigt (z.B. es ist nicht möglich ein File mit KOPIEREN so abzuschneiden, daß im Outputfile nicht vollständige Moleküle enthalten sind). Die Reihenfolge der Moleküle darf dagegen geändert werden.

Informationen im benutzerdefinierten Feld

Die Datenstruktur ft ist durch einen optionalen Satz von im benutzerderinierten Feld des EAS3-Kennsatzes enthaltenen Informationen vervollständigt. Die zusätzliche Informationen werden zur Steuerung und Kontrolle der Auswertung verwendet (Verträglichkeit von Inputdaten und durchzuführendem Befehl).

Sind die optionalen Informationen nicht vohranden, wird auf Kontrollen die zur Durchführung des Befehls nicht notwendig sind, verzichtet. Informationen, die dagegen zur Durchführung des Befehls erforderlich sind, können durch den Befehl FTINFO eingegeben werden. Werden Informationen, die im Kennsatz enthalten sind, auch durch den Befehl FTINFO eingegeben werden, dann werden die explizit mittels FTINFO angegebene Informationen verwendet.

Der Satz von Informationen kann auch nur teilweise vorhanden sein. Befehle, welche die Datenstruktur ft unterstützen, belegen den Kennsatz des EAS3-Outputfiles. Dabei werden sowohl die Informationen aus dem Kennsatz des Inputfiles, als auch die durch den Befehl hevorgebrachten Änderungen berücksichtigt. Bestimmt ein Befehle einen Teil der Informationen eindeutig, dann wird dieser Teil im Kennsatz des Outpufiles ausgegeben auch wenn das Inputfile die entsprechende Informationen nicht enthält. Informationen die durch den Befehl nicht betimmt werden und im Inpufile nicht enthalten sind, sind auch nicht im Outputfile enthalten.

Die benutzerdefinierten Felder sollten wie folgt aussehen:

 +----------------------------------------------------------------------------+
 | Benutzerdefinierte Felder                                                  |
 +----------------------------------------------------------------------------+
 | Index         | String                      | Integer       | Real         |
 +---------------+-----------------------------+---------------+--------------+
 |             1 |        lauf:beispiel        |             0 |  0.0000      |
 |             2 |        var:u                |             0 |  0.00000     |
 |             3 |        zs  :t               |             0 |  0.00000     |
 |             4 |        par :z               |             0 |  0.00000     |
 |             5 |        dim1:y               |             0 |  0.00000     |
 |             6 |        dim2:x               |             0 |  0.00000     |
 |             7 |        dim3:                |             0 |  0.00000     |
 |             8 |        u_unend              |             0 |  14.0000     |
 |             9 |        w_unend              |             0 |  12.8286     |
 |            10 |        re_num               |             0 |  92000.0     |
 |            11 |        nu                   |             0 | 0.152170E-04 |
 |            12 |        alpha_zs             |             0 |  6.00000     |
 |            13 |        alpha_par            |             0 |  52.4000     |
 |            14 |        alpha_dim1           |             0 |  0.00000     |
 |            15 |        alpha_dim2           |             0 |  0.00000     |
 |            16 |        alpha_dim3           |             0 |  0.00000     |
 |            17 |        coortype_zs          |             2 |  0.00000     |
 |            18 |        coortype_par         |             2 |  0.00000     |
 |            19 |        coortype_dim1        |             1 |  0.00000     |
 |            20 |        coortype_dim2        |             1 |  0.00000     |
 |            21 |        coortype_dim3        |             0 |  0.00000     |
 |            22 |        ftsym_zs             |             3 |  0.00000     |
 |            23 |        ftsym_par            |             3 |  0.00000     |
 |            24 |        ftsym_dim1           |             3 |  0.00000     |
 |            25 |        ftsym_dim2           |             3 |  0.00000     |
 |            26 |        ftsym_dim3           |             0 |  0.00000     |
 |            27 |        ftraum_zs            |             1 |  0.00000     |
 |            28 |        ftraum_par           |             2 |  0.00000     |
 |            29 |        ftraum_dim1          |             1 |  0.00000     |
 |            30 |        ftraum_dim2          |             1 |  0.00000     |
 |            31 |        ftraum_dim3          |             0 |  0.00000     |
 |            32 |        ftform               |             1 |  0.00000     |
 |            33 |        ftkoef               |             1 |  0.00000     |
 |            34 |        op:clip_lower        |             0 | -1.00000     |
 |            35 |        op:.....             |        ...... |   ......     |
 +----------------------------------------------------------------------------+

Jede Informationseinheit belegt ein Element auf jedem der drei benutzerdefinierten Felder. Entsprechende Elemente sind durch gleiche Indizes gekennzeichnet. Das Character-Feld enthält eine Kennung für die betroffene Informationseinheit. Die eigentliche Information ist dann in einem (oder mehreren) der drei Felder enthalten. Informationen im Character-Feld werden von der Kennung durch einen ":" getrennt.

Die Folgende Liste erklärt die Bedeutung und die Kodierung der Einzelne Informationseinheiten:

u, v, w dimensionslose Geschwindigkeitskomponenten im körperfesten Koordinatensystem (Dimensionslosmachung wie in Nav3d).
o_x, o_y, o_z dimensionslose Wirbelstärkekomponenten im köreperfesten Koordinatensystem (Dimensionslosmachung wie in Nav3d).
u_??, v_??, w_?? Weitere Geschwindigkeitskomponenten . An der Stelle von "??" kann einer der unter angegeben Indizes verwendet werden. Sie kennzeichnen die unterschiedliche Grössen.
o_x??, o_y??, o_z?? Weitere Wirbelstärkekomponenten . An der Stelle von "??" kann einer der unter angegeben Indizes verwendet werden. Sie kennzeichnen die unterschiedliche Grössen.

b Grundströmung (Dimensionslosmachung wie in Nav3d).
g Gesamtströmung (Dimensionslosmachung wie in Nav3d).
s Komponenten im Strömlinienkoordinatensystem
bs Grundströmung im Strömlinienkoordinatensystem( Dimensionslosmachung wie in Nav3d).
gs Gesamtströmung im Strömlinienkoordinatensystem (Dimensionslosmachung wie in Nav3d).

t Zeitkoordinate
y Wandnormale Koordinate.
x,z Sromab- und Spannweitige Koordinate im körperfestem koordinatemsystem
xx, zz Koordinaten in einem beliebig gedrehten System

FT_NODEF=0 Nicht definiert
FT_ABS=1 Koordinaten/Wellenzahlen sind nicht mit den mit der jeweiligen Grundwellenlänge normiert.
FT_REL=2 Koordinaten/Wellenzahlen dimensionslos gemacht mit der jeweiligen Grundwellenlänge. Ein Fehler entsteht falls die entsprechende Wellenzahl alpha_?? nicht definiert oder gleich null ist

FT_NODEF, FT_ABS und FT_REL sind vordefinierte Konstanten.

FT_NODEF=0 Nicht definiert
FT_SYM=1 Symmetrische Daten in der spezifischen Richtung
FT_ANTI=2 Antisymmetrische Daten in der spezifischen Richtung
FT_ASYM=3 Keine Symmetrie vorhanden für die spezifische Richtung

FT_NODEF, FT_SYM, FT_ANTI und FT_ASYM sind vordefinierte Konstanten.

   

FT_NODEF=0 Nicht definiert
FT_PHYS=1 Die Richtung liegt im physikalischen Raum
FT_FOUR=2 Die Richtung liegt im Fourier-Raum (Fourier Reihe)
FT_FTRAN=3 Die Richtung liegt im Fourier-Raum (Fourier Transformierte)

FT_NODEF, FT_PHYS und FT_FOUR sind vordefinierte Konstanten.

   

FT_NODEF=0 Nicht definiert
FT_REAL=1 Siehe Beschreibung von FT_REAL

FT_NODEF, FT_REAL, sind vordefinierte Konstanten.

   

FT_NODEF=0 Nicht definiert
FT_REIM=1 Das File enhält Standardkoeffizientern in der von ftform definierten Darstellung
FT_MODMATH=2 Das File enthält die Beträge der komplexen Koeffizienten (siehe Formelblatt).
FT_MODPHYS=3 Das File enthält den Beträge der Koeffizienten multipliziert mit den Faktoren 2 oder 4 wie üblich in der physikalische Interpretation der Beträge als Amplituden von Wellen (siehe Formelblatt).
FT_PHASE=4 Das File enhält die Phase der Koeffizienten (siehe Formelblatt).
FT_REPART=5 Das File enhält den Realteil der Koeffizienten (siehe Formelblatt).
FT_IMPART=6 Das File enhält den Immaginarteil der Koeffizienten (siehe Formelblatt).

FT_NODEF, FT_MODMATH, FT_MODPHYS und FT_PHA sind vordefinierte Konstanten.

   

op: abs Durchfürung des Befehls ABS
op: adim_**_?? Durchführung des Befehls FT_ADIM. Übergang zur Adimsionalisierung ** (DIM, ADIM, WALLCOOR, siehe Optionen des Befehls) für den in ?? Angegeben Datensatz (ZS, PAR, DIM1, DIM2, DIM3 -> Änderung der entsprechende Richtung des Geometrie Feldes, DATA -> Änderung des Hauptfeldes)
op: clip-low Durchführung des Befehls CLIP mit dem im Real-Feld enthaltenen Wert für lbound. Jede Ausführung des Befehls CLIP bewirkt das protokollieren von zwei "op:" Zeilen; eine für lbund und eine für ubound.
op: clip-up Durchführung des Befehls CLIP mit dem im Real-Feld enthaltenen Wert für ubound. Jede Ausführung des Befehls CLIP bewirkt das protokollieren von zwei "op:" Zeilen; eine für lbound und eine für ubound.
op: corr_??? Durchführung des Befehls FT_CORRELATION, wobei ??? die Sweep-Richtung wiedergibt.
op: drehefeld_x0 Durchführung des Befehls POSTPRO_DREHEFELD mit dem im Real-Feld enthaltenen Wert für X0. Jede Ausführung des Befehls POSTPRO_DREHEFLED bewirkt das protokollieren von drei "op:" Zeilen; eine für X0, eine für Z0 und eine für ANGLE.
op: drehefeld_z0 Durchführung des Befehls POSTPRO_DREHEFELD mit dem im Real-Feld enthaltenen Wert für Z0. Jede Ausführung des Befehls POSTPRO_DREHEFLED bewirkt das protokollieren von drei "op:" Zeilen; eine für X0, eine für Z0 und eine für ANGLE.\
op: drehefeld_ang Durchführung des Befehls POSTPRO_DREHEFELD mit dem im Real-Feld enthaltenen Wert für ANGLE. Jede Ausführung des Befehls POSTPRO_DREHEFLED bewirkt das protokollieren von drei "op:" Zeilen; eine für X0, eine für Z0 und eine für ANGLE.
op:D???_*** Durchführung des Befehls ABLEITEN mit der Ableitung art D??? (D1_FT, D2_FT, D3_FT, D4_FT, D1_S_O4, D2_S_O4, D4_S_FO4) entlang der Richtung ***. Der Wert von dirname (Kennzeichnung der Koordinate für die betrachtete Richtung) wird aus dem benutzerdefinierten Feld eingelesen (Felder ZS, PAR, DIM1, DIM2, DIM3) oder entspricht der Standardkennzeichnung (ZS, PAR, DIM1, DIM2, DIM3). Das Real-Feld enthält den Wert von dx.
op: exp Durchführung des Befehls EXP.
op: g-fact_?? Durchführung des Befehls GEOM mit factor /= 1 für die Richtung ??. Das Real-Feld enthält den Wert von fact
op: g-off_?? urchführung des Befehls GEOMmit offset/= 0 für dir Richtung ??. Das Real-Feld enthält den Wert von offset
op: interpol_?? Interpolation durch den Befehl PREPRO_INTPOL in der angegeben Richtung.
op: ln Durchführung des Befehls LN
op: log Durchführung des Befehls LOG
op:max_dirname Durchfürung des Befehls REDUCE mit der Option MAX für die von dirname angegebene Richtung. Der Wert von dirname (Kennzeichnung der Koordinate für die betrachtete Richtung) wird aus dem benutzerdefinierten Feld einglesen (Felder ZS, PAR, DIM1, DIM2, DIM3) oder entspricht der Standardkennzeichnung (ZS, PAR, DIM1, DIM2, DIM3).
op: meanval_dirname Durchführung des Befehls REDUCE mit der Option MEANVALfür die von dirname angegebene Richtung. Der Wert von dirname (Kennzeichnung der Koordinate für die betrachtete Richtung) wird aus dem benutzerdefinierten Feld einglesen (Felder ZS, PAR, DIM1, DIM2, DIM3) oder entspricht der Standardkennzeichnung (ZS, PAR, DIM1, DIM2, DIM3).
op:min_dirname Durchfürung des Befehls REDUCE mit der Option MIN für die von dirname angegebene Richtung. Der Wert von dirname (Kennzeichnung der Koordinate für die betrachtete Richtung) wird aus dem benutzerdefinierten Feld einglesen (Felder ZS, PAR, DIM1, DIM2, DIM3) oder entspricht der Standardkennzeichnung (ZS, PAR, DIM1, DIM2, DIM3).
op: pow10 Durchfürung des Befehls POW10.
op: rms_dirname Durchfürung des Befehls REDUCE mit der Option RMS für die von dirname angegebene Richtung. Der Wert von dirname (Kennzeichnung der Koordinate für die betrachtete Richtung) wird aus dem benutzerdefinierten Feld einglesen (Felder ZS, PAR, DIM1, DIM2, DIM3) oder entspricht der Standardkennzeichnung (ZS, PAR, DIM1, DIM2, DIM3).
op: scale-?? Durchführung des Befehls _FT_SCALERE . Die angabe ?? (1/Re, Re, sqrt(Re), sqrt(Re)) gibt den Skalierungsfaktor an.
op: scale-fact Durchführung des Befehls SCALETRANS mit fact /= 1. Das Real-Feld enthält den Wert von fact
op: scale-off Durchführung des Befehls SCALETRANS mit offset/= 0. Das Real-Feld enthält den Wert von offset
op:  scaleg_?? urchführung des Befehls FT_SCALEGEO . Die angabe ?? gibt die Richtung die Richtung, aus der das G-Feld für die Skalierung entnommen wurde. Das INTEGER-Feld enthält das Exponentn mit dem die Werte aus dem G-Feld potenziert wurden.
op: sqr Durchführung des Befehls SQR.
op: sqrt Durchführung des Befehls SQRT.
op: sum_dirname Durchführung des Befehls REDUCE mit der Option SUM für die von dirname angegebene Richtung. Der Wert von dirname (Kennzeichnung der Koordinate für die betrachtete Richtung) wird aus dem benutzerdefinierten Feld einglesen (Felder ZS, PAR, DIM1, DIM2, DIM3) oder entspricht der Standardkennzeichnung (ZS, PAR, DIM1, DIM2, DIM3).
op: verkt_dir name Durchführung des Befehls VERKETTEN mit Verkettung des Files aus dem Lauf "name" entlang der Richtung "dir". Es wird eine Zeile für jedes verkettete File ausgegebene.
op: verkn_div_?? Durchführung des Befehl POSTPRO_VERKN_GRUND mit der Optionen DIV_Y_REF oder DIV_Y_MAX. Teilen durch die Angegeben Groöße der Grundströmung. Der Wert im Realfeld gibt die y-Koordinate, auf die dieWerte der Grundströmung sich beziehen. Der Wert im Integerfeld gibt den Index der entsprechende Gitterlinie in der Indizierung des Inputfiles für die Grundströmung an.
op: win_hann_?? Durchführung des Befehls WINDOW zur Multiplikation mit der Hannings-Fensterfunktion für die Richtung ??. Das Integer-Feld gibt den Wert von coortype im Inputfile für die Betroffene Richtung. Das Real-Feld enthält die Koordinaten der Extremen der Fensterfunktion (x1, x1). Um Beide Werte angeben zu können, werden bei jeder Durchführung von WINDOW zwei solche Zeile angelegt.
op: win_welch_?? Durchführung des Befehls WINDOW zur Multiplikation mit der Welch-Fensterfunktion für die Richtung ??. Das Integer-Feld gibt den Wert von coortype im Inputfile für die Betroffene Richtung. Das Real-Feld enthält die Koordinaten der Extremen der Fensterfunktion (x1, x1). Um Beide Werte angeben zu können, werden bei jeder Durchführung von WINDOW zwei solche Zeile angelegt.

Informationen im Geometriefeld

In allen Befehlen, welche die Datenstruktur ft unterstützen, ist die Verwaltung des Geometriefeldes für alle Dimensionen der Datensätze (ZS, PAR,DIM1, DIM2, DIM3) implementiert. Bei Verwendung des Eingabefesters wird das Geometriefeld entsprechend geändert.

Das Geometriefeld enthält:

Informationen aus dem Geometriefeld werden zur Durchführung der Auswertungen verwendet.


Die Bibliotek eas3ftmod.a

Die Bibliotek eas3ftmod.a wird zu verfügung gestellt. Sie enthält die Module eas3ftmod die alle Typen, Routine und Funktionen, die zur Verwaltung der Datenstruktur ft notwendig sind, exportiert. Folgende Objekten werden Exportiert

Der Datentyp ft_t

Der Datentyp ft_t dient zur Verwaltung der Informationen aus dem benutzerdefinierten Feld innerhalb eines Fortran90-Programmes.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Typdefinition: Zusatzinformationen der Datenstruktur ft
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  type ft_t
    logical :: fton                         !Schalter: .true. (default) -> Datenstruktur
                                            !          ft verwenden 
                                            !          .false. -> datenstruktur nicht
                                            !          verwenden (getftinfoft_ft fuellt
                                            !          ftinfo nicht auf)
    logical :: set                          !Schalter: .true.  ->die Varible enhaelt
                                            !                    Informationen 
                                            !          .false. ->Die Variable ist im
                                            !                    Default-Zustand
    type(char_op_t) :: laufname             !Nav3d-Lauf
    type(char_op_t) :: varname              !Bezeichnung der Variable
                                            !u,v,w,o_x, o_y,o_z
                                            !u_b,v_b,w_b,o_xb, o_yb,o_zb
    type(char_op_t), dimension(5) :: coorname  !Daten im Geometriefeld fuer zs,par,.. 
                                               !t,x,y,z  (nav3d Koordinaten mit ueblicher
                                               !          Adim. fuer nav3d
                                               !t/T,z/Lz (Adim mit Grundwellenlaenge)
                                               !h_harm,k_harm, harm (Wellenzahl
                                               !bezogen auf die Grundwellenzahlen alpha)
    type(int_op_t), dimension(5) :: coortype !FT_NODEF, FT_ABS, FTREL

    type(real_op_t)   :: u_unend            ! u_unendlich
    type(real_op_t)   :: w_unend            ! w_unendlich
    type(real_op_t)   :: re                 ! Reynoldsnummer
    type(real_op_t)   :: nu                 ! kinematische Viskositaet
    type(real_op_t), dimension(5) :: alpha  ! Wellenzahlen

    type(int_op_t), dimension(5) :: ftsym   ! Symm/Antisym/Asym daten
                                            ! FT_NODEF, FT_SYM, FT_ANTI, FT_ASYM
                                            ! Raum fuer die Rcihtung
    type(int_op_t), dimension(5) :: ftraum  ! FT_NODEF, FT_PHYS, FT_FOU

    type(int_op_t) :: ftform                ! Reihenfolge der Fourier Transformationen
                                            ! FT_NODEF, FT_REAL, FT_FTZH, FT_FTZK

    type(int_op_t) :: ftkoef                ! Schreibweise der Fourier koeffizienten
                                            ! FT_NODEF, FT_REIM, FT_MODMATH, FT_MODPHYS, FT_PHASE

  end type ft_t

Dabei sind die Benutzerdefinierten-Typen char_op_t, real_op_t und int_op_t wie folgt definiert:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Typdefinition fuer optionale varying-string daten
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  type char_op_t
    
    logical :: set                      ! Definiert/nicht definiert
    logical :: man                      ! Definiert durch die Kommandozeile FTINFO
    type (varying_string)  :: wert      ! Wert

  end type char_op_t

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Typdefinition fuer optionale real daten
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  type real_op_t
    
    logical :: set                      ! Definiert/nicht definiert
    logical :: man                      ! Definiert durch die Kommandozeile FTINFO
    real    :: wert                     ! Wert

  end type real_op_t

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Typdefinition fuer optinale integer daten
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  type int_op_t
    
    logical :: set                      ! Definiert/nicht definiert
    logical :: man                      ! Definiert durch die Kommandozeile FTINFO
    integer :: wert                     ! Wert

  end type int_op_t

Schalter

Die Schalter fton und setentsprechen keinem Eintrag vom Benutzer-definierten Feld und haben Folgende Funktionen:

Die Subfelder des Typs ft_t können den Einträgen des benutzerdefinierten Feldes direkt angeordnet werden . Informationen, die im benutzerdefinierten Feld für jede Richtung einzeln eingetragen sind, werden hier in die fünfdimensionalen Arrays coorname (für die Felder zs, par, dim1, dim2, dim3 des benutzerdefinierten Feldes), coortype, alpha, ftsym und ftraum gespeichert. Der Zusammenhang zwischen Richtungen und Indizes der Arrays ist:

1 ZS
2 PAR
3 DIM1
4 DIM2
5 DIM3

Routine zur Vewaltung des Datentyps ft_t

Die Routine getft_ft wird zu Verfügung gestellt um die Informationen aus dem Kennsatz einzulesen und die Variablen des Tyes ft_t aufzufüllen.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine getft_ft(ksin, ftinfo)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Liest kenstaz des Inputfiles und fuellt die Variabele ftinfo auf (type (ft_t))
!
! Fuer Parameter des types INTEGER, fuer die den wert 0 nicht definiert beduetet, wird
! die logical variable xxx%set auf .false. gesetzt falls den eingelesenen Wert 0 ist.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  type (eas3ks_t), intent(in) :: ksin         ! kennsats des Inputfiles
  type (ft_t), intent(out)  :: ftinfo         ! Informationen ueber die Art der Inputdaten

Die Routine getft_single_ft wird zu Verfügung gestellt um die Informationen aus einer einzelne Zeile des benutzerdefinerten Feldes einzulesen.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine getft_single_ft(ksin, flag, charvalue,intvalue,realvalue,status)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Liest die von der Kennung flag gekennzeichnete Zeile aus dem Benutzerdefinierten Feld.
! char, integer und Realfeld werden ausgageben.
!
! Bedeutung von status: 0 -> flag wurde gefunden
!                       1 -. flag wurde nicht gefunden
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  type (eas3ks_t), intent(in) :: ksin         ! kennsats des Inputfiles
  character (len=*), intent(in)    :: flag    ! Kennzeichnung der gesuchten Felder
  character (len=*), intent(out), optional :: charvalue  !Wert fuer des Char-Feldes
  integer, intent(out), optional :: intvalue             !Wert fuer des Integer-Feldes
  real, intent(out), optional  :: realvalue              !Neuer Wert des Real-Feldes
  integer :: status

Die Routine initializeftinfo_ft wird zu Verfügung gestellt um die Variablen des Typs ft_t mit Default Werte zu Initialisieren. Um eine Korrekte Behandlung zolcher Variablen zu gewährleisten ist es notwendig Variablen des typs ft_t mittels initializeftinfo_ft zu initialisieren bevor Sie mittels getft_ft belegt werden.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine initializeftinfo_ft(ftinfo,fton)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Initialisierung von variablen des types ft_t
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  type (ft_t), intent(out):: ftinfo      !zu initialisiernde variable
  logical, intent(in), optional :: fton  !Wert fuer ftinfo%fton (wenn nicht vorhanden ->
                                         !Defaultwer = .true.)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!