Functions | |
| void | AddBoundaryBlock (Block2D &block1, AI_IndexDir_Enum dirAlong1, AI_IndexDir_Enum dirOut1, int iCellStart1, int jCellStart1, Block2D &block2, AI_IndexDir_Enum dirAlong2, AI_IndexDir_Enum dirOut2, int iCellStart2, int jCellStart2, int maxCells, double pitch, const char *boundName) |
| block connectivity boundary conditions | |
| void | AddBoundaryWall (Block2D &block, AI_IndexDir_Enum dirAlong, AI_IndexDir_Enum dirOut, int iCellStart, int jCellStart, int maxCells, const char *boundName) |
| wall boundary condition | |
| void | AddBoundaryX (Block2D &block, AI_IndexDir_Enum dirAlong, AI_IndexDir_Enum dirOut, int iCellStart, int jCellStart, int maxCells, const char *boundName) |
| boundary condition, fixed x-coordinate of nodes | |
| void | RelaxGrid2D (int calcDistToWallLoops, int nRelaxMax, double relaxDistMin, double relaxDistMax) |
| block 2D | |
| void | ViewOutput2D (AI_Grf_Enum grfType, const char *fileName) |
| grid output xml, to be inported into AIGrid2D GUI | |
| void | LinarsOutputQuasi3D (const char *fileNameGeom, const char *fileNameFaces, double span, int blockIdOffset) |
| output for solver LINARS, TTM TU-Graz | |
| void | UNVOutput2D (const char *fileName) |
| grid export Ideas-universial | |
| void | ControlPoint2D (const Vec2D &vec) |
| for grid output xml: sets named control position | |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
block connectivity boundary conditions
|
|
||||||||||||||||||||||||||||||||
|
wall boundary condition
|
|
||||||||||||||||||||||||||||||||
|
boundary condition, fixed x-coordinate of nodes
|
|
||||||||||||||||||||
|
block 2D
Die Glaettung funktioniert iterationsweise, prinzipiell nach einfachem Laplace. Nachdem oftmals man das Netzt in der Naehe zu festen Waenden vom Glaetten 'verschonen' moechte, kann man nach lokaler Knotenentfernung von der Wand das Glaettungsverhalten bestimmen: Alle Knoten, die naeher als 'relaxDistMin' von der Wand entfernt sind, werden nicht verschoben, alle Knoten, die weiter als 'relaxDistMax' von der Wand entfernt sind, werden bei jedem Iterationsschritt nach dem Laplace verschoben, dazwischen gibt es einen 'sanften' Uebergang. Um die Entfernung zur Wand moeglichst schnell zu berechnen, gehe ich (for dem ersten Laplace-Schritt) die Netzblocke 'calcDistToWallLoops'-mal in allen Indexrichtungen durch. Alle Knoten in den Bloecken, die eine Wand haben, haben so nach dem ersten Schritt einen gut abgeschaetzten Wandabstand. Nach jedem Loop werden ueber die Blockgrenzen die Wandabstaende uebergeben, damit kann dann beim naechsten Schritt ein Block, der keine Wand hat, sich die Abstaende ausrechnen. Wenn man jetzt eine komplizierte Topologie hat, bei der diverse Bloecke erst ueber viele andere Bloeck 'zu einer Wand kommen' muss man die 'calcDistToWallLoops' entsprechene erhoehen. Und: 'nRelaxMax' ist dann die Anzahl der Laplace-Iterationsschritte. 2. Schaufeltyp: Da bin ich mir noch nicht ganz sicher, was ich alles brauchen werde. Habe jetzt einmal den Typ 'TypeCircle', wie Du richtig interpretierst hast, implementiert. Dann gibt es noch den Typ 'TypeTear' der eigentlich gedacht war fuer Schaufeln mit 'Schwalbenschwanz'. Den koenntest Du fuer Deine Zwecke einmal verwenden versuchen! Paul |
|
||||||||||||
|
grid output xml, to be inported into AIGrid2D GUI
|
|
||||||||||||||||||||
|
output for solver LINARS, TTM TU-Graz
|
|
|
grid export Ideas-universial
|
|
|
for grid output xml: sets named control position
|
1.4.6-NO