stores the information of a 3D NSE system matrix More...
#include <SystemNSE3D.h>
Public Member Functions | |
TSystemNSE3D (int N_levels, TFESpace3D **velocity_fespace, TFESpace3D **presssure_fespace, TFEVectFunct3D **velocity, TFEFunction3D **pressure, double **sol, double **rhs, int disctype, int nsetype, int solver) | |
void | Init (CoeffFct3D *lincoeffs, BoundCondFunct3D *BoundCond, BoundValueFunct3D *U1BoundValue, BoundValueFunct3D *U2BoundValue, BoundValueFunct3D *U3BoundValue) |
void | Assemble () |
void | AssembleNonLinear (double **sol, double **rhs) |
void | GetResidual (double *sol, double *rhs, double *res, double &impuls_residual, double &residual) |
void | Solve (double *sol, double *rhs) |
void | MeasureErrors (DoubleFunct3D *ExactU1, DoubleFunct3D *ExactU2, DoubleFunct3D *ExactU3, DoubleFunct3D *ExactP, double *u_error, double *p_error) |
void | FindFreeSurfJoints (int level, int Region_ID) |
Protected Attributes | |
TParFEMapper3D ** | ParMapper_U |
TParFEMapper3D ** | ParMapper_P |
TParFECommunicator3D ** | ParComm_U |
TParFECommunicator3D ** | ParComm_P |
MPI_Comm | Comm |
TParDirectSolver * | DS |
int | N_Levels |
int | Start_Level |
int | N_TotalDOF |
int | N_U |
int | N_P |
int | N_Active |
int | N_DirichletDof |
int * | N_FreeSurfFaces |
int ** | FreeSurfCellNumbers |
int ** | FreeSurfJointNumbers |
TFESpace3D ** | U_Space |
TFESpace3D ** | P_Space |
TFESpace3D * | FeSpaces [5] |
TFEVectFunct3D ** | Velocity |
TFEFunction3D ** | Pressure |
double ** | SolArray |
double ** | RhsArray |
double * | RHSs [4] |
TFESpace3D * | fesp [3] |
TFESpace3D * | fesprhs [3] |
TFESpace3D * | fesp_aux [3] |
TFEFunction3D * | fefct [7] |
TFEFunction3D ** | fefct_aux |
TAssembleMat3D ** | AMatRhsAssemble |
TAssembleMat3D ** | AMatAssembleNonLinear |
int | Disctype |
int | NSEType |
CoeffFct3D * | LinCoeffs [1] |
TAuxParam3D ** | NSEaux |
TAuxParam3D ** | NSEaux_error |
MatVecProc * | MatVect |
DefectProc * | Defect |
int | SOLVER |
int | N_Matrices |
TSquareStructure3D ** | sqstructureA |
TStructure3D ** | structureB |
TStructure3D ** | structureBT |
TSquareMatrix3D ** | SqmatrixA11 |
TSquareMatrix3D ** | SqmatrixA12 |
TSquareMatrix3D ** | SqmatrixA13 |
TSquareMatrix3D ** | SqmatrixA21 |
TSquareMatrix3D ** | SqmatrixA22 |
TSquareMatrix3D ** | SqmatrixA23 |
TSquareMatrix3D ** | SqmatrixA31 |
TSquareMatrix3D ** | SqmatrixA32 |
TSquareMatrix3D ** | SqmatrixA33 |
TSquareMatrix3D * | SQMATRICES [15] |
TSquareMatrix ** | sqmatrices |
TSquareMatrix3D ** | SqmatrixF11 |
TSquareMatrix3D ** | SqmatrixF22 |
TSquareMatrix3D ** | SqmatrixF33 |
TMatrix3D ** | MatrixB1 |
TMatrix3D ** | MatrixB2 |
TMatrix3D ** | MatrixB3 |
TMatrix3D ** | MatrixB1T |
TMatrix3D ** | MatrixB2T |
TMatrix3D ** | MatrixB3T |
TMatrix3D * | MATRICES [12] |
TMatrix ** | matrices |
BoundCondFunct3D * | BoundaryConditions [3] |
BoundValueFunct3D * | BoundaryValues [3] |
TDiscreteForm3D * | DiscreteFormARhs |
TDiscreteForm3D * | DiscreteFormNL |
int | N_aux |
double | Parameters [2] |
double * | Itmethod_sol |
double * | Itmethod_rhs |
TNSE_MultiGrid * | MG |
TNSE_MGLevel * | MGLevel |
TItMethod * | Itmethod |
TItMethod * | prec |
stores the information of a 3D NSE system matrix
class for 3D NSE system matrix
TSystemNSE3D::TSystemNSE3D | ( | int | N_levels, |
TFESpace3D ** | velocity_fespace, | ||
TFESpace3D ** | presssure_fespace, | ||
TFEVectFunct3D ** | velocity, | ||
TFEFunction3D ** | pressure, | ||
double ** | sol, | ||
double ** | rhs, | ||
int | disctype, | ||
int | nsetype, | ||
int | solver | ||
) |
constructor
need it for solver
void TSystemNSE3D::Assemble | ( | ) |
assemble the system matrix
assemble
free surface/interface integration
upwind
void TSystemNSE3D::AssembleNonLinear | ( | double ** | sol, |
double ** | rhs | ||
) |
assemble the nonlinear part of the NSE system
upwind
no change in rhs, so no need to update
void TSystemNSE3D::FindFreeSurfJoints | ( | int | level, |
int | Region_ID | ||
) |
find all joints which form the free surface/interface
void TSystemNSE3D::GetResidual | ( | double * | sol, |
double * | rhs, | ||
double * | res, | ||
double & | impuls_residual, | ||
double & | residual | ||
) |
get the resudual of the NSE system
void TSystemNSE3D::Init | ( | CoeffFct3D * | lincoeffs, |
BoundCondFunct3D * | BoundCond, | ||
BoundValueFunct3D * | U1BoundValue, | ||
BoundValueFunct3D * | U2BoundValue, | ||
BoundValueFunct3D * | U3BoundValue | ||
) |
destrcutor methods Initilize the discrete forms and the matrices
save the boundary condition
save the boundary values
save the nse bilinear coefficient
set the Discreteforms
find discrete form
void TSystemNSE3D::MeasureErrors | ( | DoubleFunct3D * | ExactU1, |
DoubleFunct3D * | ExactU2, | ||
DoubleFunct3D * | ExactU3, | ||
DoubleFunct3D * | ExactP, | ||
double * | u_error, | ||
double * | p_error | ||
) |
measure the error in the NSE
void TSystemNSE3D::Solve | ( | double * | sol, |
double * | rhs | ||
) |
solve the system matrix
|
protected |
Boundary conditon
|
protected |
Boundary values
|
protected |
method for resudual calculation
|
protected |
Discrete form for the equation
|
protected |
Discretization type
|
protected |
Cell numbers and Joint numbers of free surface/interface faces
|
protected |
Bilinear coefficient
|
protected |
B is the system mat for NSE pressure component
|
protected |
method for matrix vector mult
|
protected |
variables for multigrid
|
protected |
Number of free surface/interface faces
|
protected |
Number of multigrid levels
|
protected |
number of matrices in the system matrix
|
protected |
DOFs of velocity and pressure spaces
|
protected |
NSEaux is used to pass additional fe functions (eg. mesh velocity) that is nedded for assembling
|
protected |
NSE type
|
protected |
Fe functions of NSE
|
protected |
Solver type
|
protected |
A is the stiffness/system mat for NSE velocity component
|
protected |
sqstructureA of the system matrix
|
protected |
starting level for the solver, e.g. Start_Level = N_Levels-1 for direct solver
|
protected |
structure of the system matrix
|
protected |
velocity and pressure fespace
|
protected |
velo FE function