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

csfl::ISolverIterMultiGrid Class Reference

#include <multigrid.h>

Inheritance diagram for csfl::ISolverIterMultiGrid::

csfl::ISolverIteract csfl::ISolver csfl::ISFLObject List of all members.

Public Methods

 ISolverIterMultiGrid (ISize _agglomerator, ILinearSystem *_lsys=NULL, double _tol=0.001, int _iterMax=100, TMGSequence _MGsequence=mgsV, IContainerParameter *_cont=NULL)
 ISolverIterMultiGrid (ILinearSystem *_lsys=NULL, double _tol=0.001, int _itermax=100, TMGSequence _MGsequence=mgsV, IContainerParameter *=NULL)
 ISolverIterMultiGrid (ISolverIterMultiGrid *)
 ~ISolverIterMultiGrid ()
void Solve ()
void Solve (ILinearSystem *_lsys)
IMultiGridLevelMultiGridLevels ()
ISize Agglomerator ()
void SetAgglomerator (const ISize &_agglomerator)
int Levels ()
void SetMaximumNumberOfLevels (const int &_maxLevels)
int LevelMaximumIteration ()
void SetLevelMaximumIteration (const int &_maxiter)
int LevelIteration ()
int CoarsenSize ()
void SetCoarsenSize (int _size)
double LevelResidualReduction ()
void SetLevelResidualReduction (const double &_red)
double LevelError ()
TMGSequence MultiGridSequence ()
void SetFicticiousVolumes (const bool &_FictVol)
void SetIterToEvaluateError (int _v)
void SolveWhenCoarsening (bool _swcoarsening)
void Write (ofstream &_os)

Public Attributes

IAction ActionSolveLevel
IAction ActionLevelConverged

Protected Methods

void SolveCoarsening ()
void SolveRefining ()
void CreateLevels ()
void SetCoefficients ()
void SetResiduals (int _level)
void MakeCorrection (int _level)
void CheckMagnitudeReduction (ISFLObject *=NULL)
void SolveCall (ISFLObject *=NULL)
void ComputeAgglomerator ()

Protected Attributes

int levels
IMultiGridLevelMGL
int ni
int nj
ISize agglomerator
bool swcoarsening
int MGiterMax
int MGiter
int coarsensize
double MGreduction
double MGinitialError
double MGerror
TMGSequence MGsequence
ISolverIterTdmaRefinedSolver
ISolverLUCoarsenSolver
bool FictVolumes

Detailed Description

A classe ISolverIterMultiGrid é responsável pela resolução do sistema linear pelo Método Multi-Grid. Aplicado apenas a estruturas de malha 2D, representadas por sistemas lineares de 9 Diagonais.


Constructor & Destructor Documentation

csfl::ISolverIterMultiGrid::ISolverIterMultiGrid ( ISize _agglomerator,
ILinearSystem * _lsys = NULL,
double _tol = 0.001,
int _iterMax = 100,
TMGSequence _MGsequence = mgsV,
IContainerParameter * _cont = NULL )
 

O argumento “_agglomerator“ representa o fator de aglomeração de volumes no Método MultiGrid, “_lsys“ representa o sistema linear a ser resolvido, “_tol“ representa a tolerância desejada no solver, “_itermax“ representa a número máximo de iterações no solver e “_MGsequence“ representa o tipo de ciclo Multigrid usado.

csfl::ISolverIterMultiGrid::ISolverIterMultiGrid ( ILinearSystem * _lsys = NULL,
double _tol = 0.001,
int _itermax = 100,
TMGSequence _MGsequence = mgsV,
IContainerParameter * = NULL )
 

O argumento “_lsys“ representa o sistema linear a ser resolvido, “_tol“ representa a tolerância desejada no solver, “_itermax“ representa a número máximo de iterações no solver e “_MGsequence“ representa o tipo de ciclo Multigrid usado.

csfl::ISolverIterMultiGrid::ISolverIterMultiGrid ( ISolverIterMultiGrid * )
 

csfl::ISolverIterMultiGrid::~ISolverIterMultiGrid ( )
 


Member Function Documentation

ISize csfl::ISolverIterMultiGrid::Agglomerator ( ) [inline]
 

Retorna o número de células aglomeradas em cada direção, para a criação de uma célula grosseira no nível seguinte.

void csfl::ISolverIterMultiGrid::CheckMagnitudeReduction ( ISFLObject * = NULL ) [protected]
 

int csfl::ISolverIterMultiGrid::CoarsenSize ( ) [inline]
 

Retorna o número máximo de variáveis resolvidas pelo método direto.

void csfl::ISolverIterMultiGrid::ComputeAgglomerator ( ) [protected]
 

void csfl::ISolverIterMultiGrid::CreateLevels ( ) [protected]
 

double csfl::ISolverIterMultiGrid::LevelError ( ) [inline]
 

Retorna o erro do nível de Multigrid atual.

int csfl::ISolverIterMultiGrid::LevelIteration ( ) [inline]
 

Retorna o número de iterações do nível de Multigrid atual.

int csfl::ISolverIterMultiGrid::LevelMaximumIteration ( ) [inline]
 

Retorna o número máximo de iterações para cada nível do Multigrid.

double csfl::ISolverIterMultiGrid::LevelResidualReduction ( ) [inline]
 

Returns the criteria of Residual Magnitude Reduction applied for each Multigrid Level

int csfl::ISolverIterMultiGrid::Levels ( ) [inline]
 

Retorna o número de níveis do Multigrid.

void csfl::ISolverIterMultiGrid::MakeCorrection ( int _level ) [protected]
 

IMultiGridLevel * csfl::ISolverIterMultiGrid::MultiGridLevels ( ) [inline]
 

Retorna informações do diferentes níveis do Multigrid.

TMGSequence csfl::ISolverIterMultiGrid::MultiGridSequence ( ) [inline]
 

Retorna o método de sequência utilizado pelo Multigrid (F, V, W).

void csfl::ISolverIterMultiGrid::SetAgglomerator ( const ISize & _agglomerator )
 

Especifica o número de células aglomeradas em cada direção, para a criação de uma célula grosseira no nível seguinte.

void csfl::ISolverIterMultiGrid::SetCoarsenSize ( int _size ) [inline]
 

Especifica o número máximo de variáveis resolvidas pelo método direto.

void csfl::ISolverIterMultiGrid::SetCoefficients ( ) [protected]
 

void csfl::ISolverIterMultiGrid::SetFicticiousVolumes ( const bool & _FictVol ) [inline]
 

Especifica quais volumes são volumes fictícios.

void csfl::ISolverIterMultiGrid::SetIterToEvaluateError ( int _v )
 

Especifica o intervalo de iterações que o erro do sistema linear será verificado.

void csfl::ISolverIterMultiGrid::SetLevelMaximumIteration ( const int & _maxiter ) [inline]
 

Especifica o número máximo de iterações para cada nível do Multigrid.

void csfl::ISolverIterMultiGrid::SetLevelResidualReduction ( const double & _red ) [inline]
 

Specifies the criteria of Residual Magnitude Reduction applied for each Multigrid Level

void csfl::ISolverIterMultiGrid::SetMaximumNumberOfLevels ( const int & _maxLevels ) [inline]
 

Especifica o número máximo de niveis do Multigrid.

void csfl::ISolverIterMultiGrid::SetResiduals ( int _level ) [protected]
 

void csfl::ISolverIterMultiGrid::Solve ( ILinearSystem * _lsys ) [virtual]
 

Resolve o Sistema Linear “_lsys“.

Reimplemented from csfl::ISolverIteract.

void csfl::ISolverIterMultiGrid::Solve ( ) [virtual]
 

Resolve o Sistema Linear atual.

Reimplemented from csfl::ISolverIteract.

void csfl::ISolverIterMultiGrid::SolveCall ( ISFLObject * = NULL ) [protected]
 

void csfl::ISolverIterMultiGrid::SolveCoarsening ( ) [protected]
 

void csfl::ISolverIterMultiGrid::SolveRefining ( ) [protected]
 

void csfl::ISolverIterMultiGrid::SolveWhenCoarsening ( bool _swcoarsening ) [inline]
 

Define se o solver inicia a resolução do sistema linear pela malha mais grosseira ou pela mais refinada.

void csfl::ISolverIterMultiGrid::Write ( ofstream & _os )
 

Cria um arquivo “.dat” com os valores do campo escalar.


Member Data Documentation

IAction csfl::ISolverIterMultiGrid::ActionLevelConverged
 

IAction object that is called to each Level iteration.

IAction csfl::ISolverIterMultiGrid::ActionSolveLevel
 

IAction object that is called to each Level iteration.

ISolverLU * csfl::ISolverIterMultiGrid::CoarsenSolver [protected]
 

bool csfl::ISolverIterMultiGrid::FictVolumes [protected]
 

IMultiGridLevel * csfl::ISolverIterMultiGrid::MGL [protected]
 

double csfl::ISolverIterMultiGrid::MGerror [protected]
 

double csfl::ISolverIterMultiGrid::MGinitialError [protected]
 

int csfl::ISolverIterMultiGrid::MGiter [protected]
 

int csfl::ISolverIterMultiGrid::MGiterMax [protected]
 

double csfl::ISolverIterMultiGrid::MGreduction [protected]
 

TMGSequence csfl::ISolverIterMultiGrid::MGsequence [protected]
 

ISolverIterTdma * csfl::ISolverIterMultiGrid::RefinedSolver [protected]
 

ISize csfl::ISolverIterMultiGrid::agglomerator [protected]
 

int csfl::ISolverIterMultiGrid::coarsensize [protected]
 

int csfl::ISolverIterMultiGrid::levels [protected]
 

int csfl::ISolverIterMultiGrid::ni [protected]
 

int csfl::ISolverIterMultiGrid::nj [protected]
 

bool csfl::ISolverIterMultiGrid::swcoarsening [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