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

Public Member Functions

 TMGLevel3D (int level, TSquareMatrix3D *A, double *rhs, double *sol, int n_aux, int *permutation)
 
 TMGLevel3D (int level, TSquareMatrix3D *a, double *rhs, double *sol, TParFECommunicator3D *parComm, TParFEMapper3D *parMapper, int n_aux, int *permutation)
 
double * GetTemp_arr ()
 
 ~TMGLevel3D ()
 
double * GetAuxVector (int i)
 
double * GetSolution ()
 
double * GetRhs ()
 
double ** GetAuxVectors ()
 
TSquareMatrix3DGetMatrix ()
 
int GetN_DOF ()
 
int GetHangingNodeBound ()
 
int GetN_Dirichlet ()
 
void Defect (double *sol, double *f, double *d, double &res)
 
void Update (double *sol, double *upd)
 
void CorrectNodes (double *vect)
 
void CorrectDefect (double *vect)
 
void Reset (double *vect)
 
TFESpace3DGetFESpace ()
 
void ILU (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 
void SOR (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 
void SSOR (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 
void Jacobi (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 
void Block2x2 (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 
void SolveExact (double *u1, double *rhs1)
 
double StepLengthControl (double *u, double *uold, double *def, int N_Parameters, double *Parameters)
 
TParFECommunicator3DGetParComm ()
 
void SOR_Re (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 
void SOR_Re_Color (double *sol, double *f, double *aux, int N_Parameters, double *Parameters, bool firstTime, bool lastTime)
 
void SOR_Re_Color (double *sol, double *f, double *aux, int N_Parameters, double *Parameters, int smooth)
 
void SOR_Re_Color_Coarse (double *sol, double *f, double *aux, int N_Parameters, double *Parameters)
 

Protected Member Functions

void ILUDecomposition ()
 

Protected Attributes

int Level
 
TFESpace3DFESpace
 
int * Permutation
 
int N_Active
 
int HangingNodeBound
 
int N_Dirichlet
 
int N_DOF
 
TSquareMatrix3DA
 
TSquareStructure3DMatrixStructure
 
int * RowPtr
 
int * KCol
 
double * Entries
 
double * Rhs
 
double * X
 
int N_Aux
 
double ** Aux
 
double * Additional
 
int OwnN_DOF
 
double * Temp_arr
 
TParFECommunicator3DParComm
 
TParFEMapper3DParMapper
 
int * Reorder
 
int N_Master
 
int N_Int
 
int N_Dept
 
int * Reorder_M
 
int * Reorder_D1
 
int * Reorder_D2
 
int * Reorder_I
 
int N_InterfaceM
 
int N_Dept1
 
int N_Dept2
 
int N_CMaster
 
int N_CDept1
 
int N_CDept2
 
int N_CInt
 
int * ptrCMaster
 
int * ptrCDept1
 
int * ptrCDept2
 
int * ptrCInt
 

Constructor & Destructor Documentation

TMGLevel3D::TMGLevel3D ( int  level,
TSquareMatrix3D a,
double *  rhs,
double *  sol,
int  n_aux,
int *  permutation 
)

constructor

Here is the call graph for this function:

TMGLevel3D::TMGLevel3D ( int  level,
TSquareMatrix3D a,
double *  rhs,
double *  sol,
TParFECommunicator3D parComm,
TParFEMapper3D parMapper,
int  n_aux,
int *  permutation 
)

constructor for parallel

Here is the call graph for this function:

TMGLevel3D::~TMGLevel3D ( )

destructor

Member Function Documentation

void TMGLevel3D::Block2x2 ( double *  sol,
double *  f,
double *  aux,
int  N_Parameters,
double *  Parameters 
)

smoother

void TMGLevel3D::CorrectDefect ( double *  vect)

correct defect

Here is the caller graph for this function:

void TMGLevel3D::CorrectNodes ( double *  vect)

correct Dirichlet and hanging nodes

Here is the caller graph for this function:

void TMGLevel3D::Defect ( double *  sol,
double *  f,
double *  d,
double &  res 
)

calculate defect

Here is the caller graph for this function:

double * TMGLevel3D::GetAuxVector ( int  i)

return i-th auxiliary vector

Here is the caller graph for this function:

double** TMGLevel3D::GetAuxVectors ( )
inline

return AuxVectors

TFESpace3D* TMGLevel3D::GetFESpace ( )
inline

return FE space

Here is the caller graph for this function:

int TMGLevel3D::GetHangingNodeBound ( )
inline

get HangingNodeBound

Here is the caller graph for this function:

TSquareMatrix3D* TMGLevel3D::GetMatrix ( )
inline

return system matrix

int TMGLevel3D::GetN_Dirichlet ( )
inline

get number of Dirichlet nodes

Here is the caller graph for this function:

int TMGLevel3D::GetN_DOF ( )
inline

return number of degrees of freedom

Here is the caller graph for this function:

double* TMGLevel3D::GetRhs ( )
inline

return Rhs

Here is the caller graph for this function:

double* TMGLevel3D::GetSolution ( )
inline

return FunctionVectors

Here is the caller graph for this function:

void TMGLevel3D::ILU ( double *  sol,
double *  f,
double *  aux,
int  N_Parameters,
double *  Parameters 
)

smoother

Here is the call graph for this function:

Here is the caller graph for this function:

void TMGLevel3D::ILUDecomposition ( )
protected

generate ILU decomposition

Here is the caller graph for this function:

void TMGLevel3D::Jacobi ( double *  sol,
double *  f,
double *  aux,
int  N_Parameters,
double *  Parameters 
)

smoother

Here is the caller graph for this function:

void TMGLevel3D::Reset ( double *  vect)

reset vector to zero

Here is the caller graph for this function:

void TMGLevel3D::SolveExact ( double *  u1,
double *  rhs1 
)

solve exact on this level

Here is the caller graph for this function:

void TMGLevel3D::SOR ( double *  sol,
double *  f,
double *  aux,
int  N_Parameters,
double *  Parameters 
)

smoother

Here is the caller graph for this function:

void TMGLevel3D::SSOR ( double *  sol,
double *  f,
double *  aux,
int  N_Parameters,
double *  Parameters 
)

smoother

Here is the caller graph for this function:

double TMGLevel3D::StepLengthControl ( double *  u,
double *  uold,
double *  def,
int  N_Parameters,
double *  Parameters 
)

step length control

step length control multigrid cycle

Here is the caller graph for this function:

void TMGLevel3D::Update ( double *  sol,
double *  upd 
)

update solution

Here is the caller graph for this function:

Member Data Documentation

TSquareMatrix3D* TMGLevel3D::A
protected

used matrix

double* TMGLevel3D::Additional
protected

array for additional data, e.g. ILU decomposition

double** TMGLevel3D::Aux
protected

array of auxiliary vectors

double* TMGLevel3D::Entries
protected

matrix entries

TFESpace3D* TMGLevel3D::FESpace
protected

FE space

int TMGLevel3D::HangingNodeBound
protected

upper bound for hanging node number

int* TMGLevel3D::KCol
protected

column number vector

int TMGLevel3D::Level
protected

level number

TSquareStructure3D* TMGLevel3D::MatrixStructure
protected

structure of used matrix

int TMGLevel3D::N_Active
protected

number of active nodes

int TMGLevel3D::N_Aux
protected

number of auxiliary vectors

int TMGLevel3D::N_CMaster
protected

Coloring variables

int TMGLevel3D::N_Dirichlet
protected

number of Dirichlet nodes

int TMGLevel3D::N_DOF
protected

number of all degrees of freedom

int TMGLevel3D::OwnN_DOF
protected

number of all degrees of freedom in own cells

int* TMGLevel3D::Permutation
protected

permutation vector

int* TMGLevel3D::Reorder
protected

Reorder of sol array

double* TMGLevel3D::Rhs
protected

array with right-hand sides

int* TMGLevel3D::RowPtr
protected

row pointer for matrix

double* TMGLevel3D::X
protected

array with approximate solution


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