ParMooN
 All Classes Functions Variables Friends Pages
Public Member Functions | Protected Attributes | List of all members
TMultiGrid3D Class Reference
Collaboration diagram for TMultiGrid3D:
Collaboration graph
[legend]

Public Member Functions

 TMultiGrid3D (int n_problems, int n_parameters, double *parameters)
 
int GetN_Levels ()
 
void AddLevel (TMGLevel3D *MGLevel)
 
void ReplaceLevel (int i, TMGLevel3D *MGLevel)
 
TMGLevel3DGetLevel (int i)
 
void RestrictToAllGrids ()
 
void SetDirichletNodes (int i)
 
void Cycle (int i, double &res)
 
void SetRecursion (int levels)
 
void Smooth (int smoother_type, TMGLevel3D *Level,#ifdef _MPI TParFECommunicator3D *ParComm,#endif double &oldres)
 

Protected Attributes

int N_Levels
 
int N_Problems
 
int N_Parameters
 
double * Parameters
 
TMGLevel3DMultiGridLevels [MAXN_LEVELS]
 
TFESpace3DFESpaces [MAXN_LEVELS]
 
double ** FunctionVectors [MAXN_LEVELS]
 
double ** RhsVectors [MAXN_LEVELS]
 
double ** AuxVectors [MAXN_LEVELS]
 
int mg_recursions [MAXN_LEVELS]
 

Constructor & Destructor Documentation

TMultiGrid3D::TMultiGrid3D ( int  n_problems,
int  n_parameters,
double *  parameters 
)

constructor

Member Function Documentation

void TMultiGrid3D::AddLevel ( TMGLevel3D MGLevel)

add new level as finest

Here is the call graph for this function:

Here is the caller graph for this function:

void TMultiGrid3D::Cycle ( int  i,
double &  res 
)

cycle on level i

one cycle on level i

Here is the call graph for this function:

TMGLevel3D* TMultiGrid3D::GetLevel ( int  i)
inline

return i-th level as TMGLevel object

int TMultiGrid3D::GetN_Levels ( )
inline

return number of multi grid levels

void TMultiGrid3D::ReplaceLevel ( int  i,
TMGLevel3D MGLevel 
)

add new level as finest

Here is the call graph for this function:

void TMultiGrid3D::RestrictToAllGrids ( )

restrict u1, u2 from finest grid to all coarser grids

restrict solution from finest grid to all coarser grids

Here is the call graph for this function:

void TMultiGrid3D::SetDirichletNodes ( int  i)

set correct values for Dirichlet nodes on grid i

Here is the call graph for this function:

void TMultiGrid3D::SetRecursion ( int  levels)

set recursion for multigrid

set recursion for MultiGrid3D

void TMultiGrid3D::Smooth ( int  smoother_type,
TMGLevel3D Level,
#ifdef _MPI TParFECommunicator3D ParComm,
#endif double &  oldres 
)

Smoother Cycles are called here

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

double** TMultiGrid3D::AuxVectors[MAXN_LEVELS]
protected

auxiliary vectors

TFESpace3D* TMultiGrid3D::FESpaces[MAXN_LEVELS]
protected

array of FE spaces

double** TMultiGrid3D::FunctionVectors[MAXN_LEVELS]
protected

array of function vectors on each level

int TMultiGrid3D::mg_recursions[MAXN_LEVELS]
protected

number of recursions

TMGLevel3D* TMultiGrid3D::MultiGridLevels[MAXN_LEVELS]
protected

array of multi grid levels

int TMultiGrid3D::N_Levels
protected

number of levels

int TMultiGrid3D::N_Parameters
protected

number of parameters

int TMultiGrid3D::N_Problems
protected

number of problems

double* TMultiGrid3D::Parameters
protected

array of double parameters

double** TMultiGrid3D::RhsVectors[MAXN_LEVELS]
protected

right-hand side vectors


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