aiGlobalFuncions2D.h File Reference


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

Function Documentation

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

Parameters:
block1 
dirAlong1 
dirOut1 
iCellStart1 
jCellStart1 
block2 
dirAlong2 
dirOut2 
iCellStart2 
jCellStart2 
maxCells 
pitch 
boundName 

void AddBoundaryWall Block2D block,
AI_IndexDir_Enum  dirAlong,
AI_IndexDir_Enum  dirOut,
int  iCellStart,
int  jCellStart,
int  maxCells,
const char *  boundName
 

wall boundary condition

Parameters:
block 
dirAlong 
dirOut 
iCellStart 
jCellStart 
maxCells 
boundName 

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

Parameters:
block 
dirAlong 
dirOut 
iCellStart 
jCellStart 
maxCells 
boundName 

void RelaxGrid2D int  calcDistToWallLoops,
int  nRelaxMax,
double  relaxDistMin,
double  relaxDistMax
 

block 2D

Parameters:
calcDistToWallLoops number of loops to estimate distance to closest wall
nRelaxMax 
relaxDistMin 
relaxDistMax Wolfgang: 1. RelaxGrid2D glaettet ja das Netz? Ich verstehe nur nicht die Bedeutung der einzelnen Parameter. 2. Beim Einlesen der Schaufelgeometrie gibt es die Variable "TypeCircle". Ich nehme an, dass damit eine geschlossene Kurve beschrieben wird. Wie sieht es aus, wenn es keine geschlossene Kurve ist, z.B. die Geometrie einer Gegenkontur zur ebenen Platte?
Paul: Hallo Wolfgang! Zu Deinen Fragen: 1. RelaxGrid2D

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

void ViewOutput2D AI_Grf_Enum  grfType,
const char *  fileName
 

grid output xml, to be inported into AIGrid2D GUI

Parameters:
grfType 
fileName 

void LinarsOutputQuasi3D const char *  fileNameGeom,
const char *  fileNameFaces,
double  span,
int  blockIdOffset
 

output for solver LINARS, TTM TU-Graz

Parameters:
fileNameGeom 
fileNameFaces 
span 
blockIdOffset 

void UNVOutput2D const char *  fileName  ) 
 

grid export Ideas-universial

Parameters:
fileName 

void ControlPoint2D const Vec2D vec  ) 
 

for grid output xml: sets named control position

Parameters:
vec 


Generated on Fri Mar 11 15:05:15 2011 for AiGrid2D by  doxygen 1.4.6-NO