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 () |
TSquareMatrix3D * | GetMatrix () |
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) |
TFESpace3D * | GetFESpace () |
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) |
TParFECommunicator3D * | GetParComm () |
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 |
TFESpace3D * | FESpace |
int * | Permutation |
int | N_Active |
int | HangingNodeBound |
int | N_Dirichlet |
int | N_DOF |
TSquareMatrix3D * | A |
TSquareStructure3D * | MatrixStructure |
int * | RowPtr |
int * | KCol |
double * | Entries |
double * | Rhs |
double * | X |
int | N_Aux |
double ** | Aux |
double * | Additional |
int | OwnN_DOF |
double * | Temp_arr |
TParFECommunicator3D * | ParComm |
TParFEMapper3D * | ParMapper |
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 |
TMGLevel3D::TMGLevel3D | ( | int | level, |
TSquareMatrix3D * | a, | ||
double * | rhs, | ||
double * | sol, | ||
int | n_aux, | ||
int * | permutation | ||
) |
constructor
TMGLevel3D::TMGLevel3D | ( | int | level, |
TSquareMatrix3D * | a, | ||
double * | rhs, | ||
double * | sol, | ||
TParFECommunicator3D * | parComm, | ||
TParFEMapper3D * | parMapper, | ||
int | n_aux, | ||
int * | permutation | ||
) |
constructor for parallel
TMGLevel3D::~TMGLevel3D | ( | ) |
destructor
void TMGLevel3D::Block2x2 | ( | double * | sol, |
double * | f, | ||
double * | aux, | ||
int | N_Parameters, | ||
double * | Parameters | ||
) |
smoother
void TMGLevel3D::CorrectDefect | ( | double * | vect | ) |
correct defect
void TMGLevel3D::CorrectNodes | ( | double * | vect | ) |
correct Dirichlet and hanging nodes
void TMGLevel3D::Defect | ( | double * | sol, |
double * | f, | ||
double * | d, | ||
double & | res | ||
) |
calculate defect
double * TMGLevel3D::GetAuxVector | ( | int | i | ) |
return i-th auxiliary vector
|
inline |
return AuxVectors
|
inline |
return FE space
|
inline |
get HangingNodeBound
|
inline |
return system matrix
|
inline |
get number of Dirichlet nodes
|
inline |
return number of degrees of freedom
|
inline |
return Rhs
|
inline |
return FunctionVectors
void TMGLevel3D::ILU | ( | double * | sol, |
double * | f, | ||
double * | aux, | ||
int | N_Parameters, | ||
double * | Parameters | ||
) |
smoother
|
protected |
generate ILU decomposition
void TMGLevel3D::Jacobi | ( | double * | sol, |
double * | f, | ||
double * | aux, | ||
int | N_Parameters, | ||
double * | Parameters | ||
) |
smoother
void TMGLevel3D::Reset | ( | double * | vect | ) |
reset vector to zero
void TMGLevel3D::SolveExact | ( | double * | u1, |
double * | rhs1 | ||
) |
solve exact on this level
void TMGLevel3D::SOR | ( | double * | sol, |
double * | f, | ||
double * | aux, | ||
int | N_Parameters, | ||
double * | Parameters | ||
) |
smoother
void TMGLevel3D::SSOR | ( | double * | sol, |
double * | f, | ||
double * | aux, | ||
int | N_Parameters, | ||
double * | Parameters | ||
) |
smoother
double TMGLevel3D::StepLengthControl | ( | double * | u, |
double * | uold, | ||
double * | def, | ||
int | N_Parameters, | ||
double * | Parameters | ||
) |
step length control
step length control multigrid cycle
void TMGLevel3D::Update | ( | double * | sol, |
double * | upd | ||
) |
update solution
|
protected |
used matrix
|
protected |
array for additional data, e.g. ILU decomposition
|
protected |
array of auxiliary vectors
|
protected |
matrix entries
|
protected |
FE space
|
protected |
upper bound for hanging node number
|
protected |
column number vector
|
protected |
level number
|
protected |
structure of used matrix
|
protected |
number of active nodes
|
protected |
number of auxiliary vectors
|
protected |
Coloring variables
|
protected |
number of Dirichlet nodes
|
protected |
number of all degrees of freedom
|
protected |
number of all degrees of freedom in own cells
|
protected |
permutation vector
|
protected |
Reorder of sol array
|
protected |
array with right-hand sides
|
protected |
row pointer for matrix
|
protected |
array with approximate solution