Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

csfl::IGrid Class Reference

#include <grid.h>

Inheritance diagram for csfl::IGrid::

csfl::ISFLObject csfl::IGridCartesian csfl::IGridMixed csfl::IGridNoEqualCartesian csfl::IGridNoEqualPolar csfl::IGridPolar csfl::IGridPolygon csfl::IGridSpiral csfl::IGridTrapezoidal List of all members.

Public Methods

 IGrid (int _row, int _col)
 IGrid (const ISize &_size=ISize::zero)
 IGrid (IMesh *_mesh)
 IGrid (IGrid *_grid)
 ~IGrid ()
void SetID (const IString &_id)
IString ID ()
int Serial ()
ISize Size ()
int Ni ()
int Nj ()
int VolNumber () const
virtual IDPoint Node (const IPoint &_p) const
virtual IDPoint Node (int _x, int _y) const
virtual IDPoint SWNode () const
virtual IDPoint SENode () const
virtual IDPoint NWNode () const
virtual IDPoint NENode () const
virtual void SetNode (const IPoint &_p, const IDPoint &_value)
virtual void SetNode (int _x, int _y, const IDPoint &_value)
IMeshMesh ()
IDPolygonGeometry () const
IDPoint VolumeCenter (const IPoint &_p)
IDPoint VolumeCenter (int _x, int _y)
IDPoint FaceCenter (const IPoint &_p, TDirection _dir)
IDPoint FaceCenter (int _x, int _y, TDirection _dir)
IMetricMetric ()
void UpDateMetric ()
void Rotate (const double &angle, const IDPoint &origin=IDPoint::zero)
void Translate (const double &_x,const double &_y)
void MirrorX ()
void MirrorY ()
void TransposeXY ()
void InvertI ()
void InvertJ ()
void TransposeIJ ()
void RefineI (const int &n)
void RefineJ (const int &n)
void RefineIJ (const int &n)
virtual void Read (istream &_is)
virtual void Write (ostream &_os)
void WriteVolumeCenter (ostream &_osx, ostream &_osy)
void WriteVolumeCenterX (ostream &_osx)
void WriteVolumeCenterY (ostream &_osy)

Protected Attributes

IString id
int ni
int nj
int serial
ISize size
IMeshmesh
IMetricmetric
bool ischanged

Friends

IGrid* MergeGrids (IGrid *_grid1, IGrid *_grid2, const TDirection &_dir1, const TDirection &_dir2, const bool &_move)
IGrid* ConnectGrids (IGrid *_grid1, IGrid *_grid2, const TDirection &_dir1, const TDirection &_dir2, const bool &_move)

Detailed Description

Classe responsável pelo gerenciamento de todas as informações relativas à malha e geometria do problema. Os objetos derivados de IGrid nada mais são do que tipos de malhas.


Constructor & Destructor Documentation

csfl::IGrid::IGrid ( int _row,
int _col )
 

Os argumentos “_row“, “_col“ definem o número de linhas e colunas da malha, respectivamente.

csfl::IGrid::IGrid ( const ISize & _size = ISize::zero )
 

O argumento “_size“ define o tamanho da malha. _size.width representa o número de volumes de controle na direção “i” (oeste-leste) e _size.height o número de volumes de controle na direção “j” (sul-norte).

csfl::IGrid::IGrid ( IMesh * _mesh )
 

Constrói um objeto IGrid a partir de um IMesh.

csfl::IGrid::IGrid ( IGrid * _grid )
 

Constrói um objeto IGrid a partir de outro.

csfl::IGrid::~IGrid ( )
 


Member Function Documentation

IDPoint csfl::IGrid::FaceCenter ( int _x,
int _y,
TDirection _dir )
 

Retorna um ponto cujas coordenadas correspondem ao centro de uma das faces de um volume de controle pertencente à malha. “_x” indica a posição do volume na direção oeste-leste (“i”) e “_y” indica a posição na direção sul-norte (“j”).A direção “_dir” especifica sobre qual das faces deseja-se o centro: Sul, Norte, Leste ou Oeste.

IDPoint csfl::IGrid::FaceCenter ( const IPoint & _p,
TDirection _dir )
 

Retorna um ponto cujas coordenadas correspondem ao centro de uma das faces de um volume de controle pertencente à malha. O argumento “_p” especifica o volume de controle e o argumento “_dir” especifica sobre qual face deste volume deseja-se obter o centro. “_p.x” indica a posição do volume na direção oeste-leste (“i”) e “_p.y” indica a posição na direção sul-norte (“j”).A direção “_dir” especifica sobre qual das faces deseja-se o centro: Sul, Norte, Leste ou Oeste.

IDPolygon * csfl::IGrid::Geometry ( ) const
 

Retorna um poligono descrevendo a geometria (contornos) da malha.

IString csfl::IGrid::ID ( ) [inline]
 

Retorna uma cópia do identificador do objeto IGrid.

void csfl::IGrid::InvertI ( )
 

Troca as coordenadas dos nós, em uma malha de n linhas o ponto ”(0,j)” fica ”(n,j)” e vice-versa.

void csfl::IGrid::InvertJ ( )
 

Troca as coordenadas dos nós, em uma malha de n colunas o ponto ”(i,0)” fica ”(i,n)” e vice-versa.

IMesh * csfl::IGrid::Mesh ( ) [inline]
 

Retorna um ponteiro para o local da memória onde os pontos da malha estão alocados (objeto IMesh).

IMetric * csfl::IGrid::Metric ( )
 

Retorna o objeto IMetric correspondente à malha.

void csfl::IGrid::MirrorX ( )
 

Rebate a malha em torno da linha x=0, invertendo o sinal da coordenada x dos pontos,

void csfl::IGrid::MirrorY ( )
 

Rebate a malha em torno da linha y=0, invertendo o sinal da coordenada y dos pontos,

IDPoint csfl::IGrid::NENode ( ) const [inline, virtual]
 

Retorna o ponto localizado no extremo NE (nordeste) da malha.

IDPoint csfl::IGrid::NWNode ( ) const [inline, virtual]
 

Retorna o ponto localizado no extremo NW (noroeste) da malha.

int csfl::IGrid::Ni ( ) [inline]
 

Retorna um número inteiro que representa o número de volumes de controle na direção “i”.

int csfl::IGrid::Nj ( ) [inline]
 

Retorna um número inteiro que representa o número de volumes de controle na direção “j”.

IDPoint csfl::IGrid::Node ( int _x,
int _y ) const [inline, virtual]
 

Retorna um ponto bidimensional cujas coordenadas são iguais às do nó localizado na “_x-ésima” linha e na “_y-ésima” coluna da malha. Os nós são numerados de 0 a “ni“, na direção oeste-leste, e de 0 a “nj“, na direção sul-norte.

IDPoint csfl::IGrid::Node ( const IPoint & _p ) const [inline, virtual]
 

Retorna um ponto bidimensional cujas coordenadas são iguais às do nó localizado na “_p.x-ésima” linha e na “_p.y-ésima” coluna da malha. Os nós são numerados de 0 a “ni“, na direção oeste-leste, e de 0 a “nj“, na direção sul-norte.

void csfl::IGrid::Read ( istream & _is ) [virtual]
 

Cria a malha a partir de um arquivo do tipo “sdf”.

void csfl::IGrid::RefineI ( const int & n )
 

Refina a malha na direção “i” em “n”-vezes.

void csfl::IGrid::RefineIJ ( const int & n )
 

Refina a malha em “n”-vezes.

void csfl::IGrid::RefineJ ( const int & n )
 

Refina a malha na direção “j” em “n”-vezes.

void csfl::IGrid::Rotate ( const double & angle,
const IDPoint & origin = IDPoint::zero )
 

Função que rotaciona a malha de um ângulo “angle“ (em radianos) em torno do ponto “origin“.

IDPoint csfl::IGrid::SENode ( ) const [inline, virtual]
 

Retorna o ponto localizado no extremo SE (sudeste) da malha.

IDPoint csfl::IGrid::SWNode ( ) const [inline, virtual]
 

Retorna o ponto localizado no extremo SW (sudoeste) da malha.

int csfl::IGrid::Serial ( ) [inline]
 

Retorna o número de série identificador do objeto.

void csfl::IGrid::SetID ( const IString & _id ) [inline]
 

Modifica o identificador do objeto IGrid.

void csfl::IGrid::SetNode ( int _x,
int _y,
const IDPoint & _value ) [inline, virtual]
 

Atribui as coordenadas de “_value” ao nó localizado na “_x-ésima” linha e na “_y-ésima” coluna da malha.

void csfl::IGrid::SetNode ( const IPoint & _p,
const IDPoint & _value ) [inline, virtual]
 

Atribui as coordenadas de “_value” ao nó localizado na “_p.x-ésima” linha e na “_p.y-ésima” coluna da malha.

ISize csfl::IGrid::Size ( ) [inline]
 

Retorna um objeto ISize que representa o tamanho do malha. _size.width representa o número de volumes de controle na direção “i” e _size.height o número de volumes de controle na direção “j”.

void csfl::IGrid::Translate ( const double & _x,
const double & _y )
 

Função que translada a malha.

void csfl::IGrid::TransposeIJ ( )
 

Troca as coordenadas dos nós das malhas de “(i,j)” para “(j,i)” e vice-versa.

void csfl::IGrid::TransposeXY ( )
 

Troca as coordenadas dos pontos da malha.

void csfl::IGrid::UpDateMetric ( )
 

Atualiza a o objeto “metric“ (métricas da malha). Usada após modificações no Grid

int csfl::IGrid::VolNumber ( ) const [inline]
 

Retorna um número inteiro que representa o número total de volumes de controle da malha.

IDPoint csfl::IGrid::VolumeCenter ( int _x,
int _y )
 

Retorna um ponto cujas coordenadas correspondem ao centro do volume de controle. “_x” indica a posição do volume na direção oeste-leste (“i”) e “_y” indica a posição na direção sul-norte (“j”).

IDPoint csfl::IGrid::VolumeCenter ( const IPoint & _p )
 

Retorna um ponto cujas coordenadas correspondem ao centro do volume de controle especificado pela posição “_p”. “_p.x” indica a posição do volume na direção oeste-leste (“i”) e “_p.y” indica a posição na direção sul-norte (“j”).

void csfl::IGrid::Write ( ostream & _os ) [virtual]
 

Cria um arquivo do tipo “sdf” contendo todas as informações sobre a malha.

void csfl::IGrid::WriteVolumeCenter ( ostream & _osx,
ostream & _osy )
 

Escreve em “_osx” e “_osy” as coordenadas x e y do centro dos volumes de controle, respectivamente.

void csfl::IGrid::WriteVolumeCenterX ( ostream & _osx )
 

Escreve em “_osx” as coordenadas x do centro dos volumes de controle.

void csfl::IGrid::WriteVolumeCenterY ( ostream & _osy )
 

Escreve em “_osy” as coordenadas y do centro dos volumes de controle.


Friends And Related Function Documentation

IGrid * ConnectGrids ( IGrid * _grid1,
IGrid * _grid2,
const TDirection & _dir1,
const TDirection & _dir2,
const bool & _move ) [friend]
 

IGrid * MergeGrids ( IGrid * _grid1,
IGrid * _grid2,
const TDirection & _dir1,
const TDirection & _dir2,
const bool & _move ) [friend]
 

Função que une 2 malhas (“_grid1“ e “_grid2“) pelas faces “_dir1“ e “_dir2“, respectivamente. As malhas devem possuir o mesmo número de volumes nas faces a serem unidas. Se “_move“ é verdadeiro as malhas são transladadas para ficarem próximas.


Member Data Documentation

IString csfl::IGrid::id [protected]
 

bool csfl::IGrid::ischanged [protected]
 

IMesh * csfl::IGrid::mesh [protected]
 

IMetric * csfl::IGrid::metric [protected]
 

int csfl::IGrid::ni [protected]
 

int csfl::IGrid::nj [protected]
 

int csfl::IGrid::serial [protected]
 

ISize csfl::IGrid::size [protected]
 


The documentation for this class was generated from the following file:

 

CFD Project | Documents | Downloads | Contact us | Use Terms

 

© SINMEC/EMC/UFSC, 2001.

All rights reserved.

Last Update: Jan. 18, 2002

 Webmaster