ParMooN
 All Classes Functions Variables Friends Pages
Public Member Functions | Protected Attributes | List of all members
TSystemNSE3D Class Reference

stores the information of a 3D NSE system matrix More...

#include <SystemNSE3D.h>

Inheritance diagram for TSystemNSE3D:
Inheritance graph
[legend]
Collaboration diagram for TSystemNSE3D:
Collaboration graph
[legend]

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
 
TParDirectSolverDS
 
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
 
TFESpace3DFeSpaces [5]
 
TFEVectFunct3D ** Velocity
 
TFEFunction3D ** Pressure
 
double ** SolArray
 
double ** RhsArray
 
double * RHSs [4]
 
TFESpace3Dfesp [3]
 
TFESpace3Dfesprhs [3]
 
TFESpace3Dfesp_aux [3]
 
TFEFunction3Dfefct [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
 
TSquareMatrix3DSQMATRICES [15]
 
TSquareMatrix ** sqmatrices
 
TSquareMatrix3D ** SqmatrixF11
 
TSquareMatrix3D ** SqmatrixF22
 
TSquareMatrix3D ** SqmatrixF33
 
TMatrix3D ** MatrixB1
 
TMatrix3D ** MatrixB2
 
TMatrix3D ** MatrixB3
 
TMatrix3D ** MatrixB1T
 
TMatrix3D ** MatrixB2T
 
TMatrix3D ** MatrixB3T
 
TMatrix3DMATRICES [12]
 
TMatrix ** matrices
 
BoundCondFunct3D * BoundaryConditions [3]
 
BoundValueFunct3D * BoundaryValues [3]
 
TDiscreteForm3DDiscreteFormARhs
 
TDiscreteForm3DDiscreteFormNL
 
int N_aux
 
double Parameters [2]
 
double * Itmethod_sol
 
double * Itmethod_rhs
 
TNSE_MultiGridMG
 
TNSE_MGLevelMGLevel
 
TItMethodItmethod
 
TItMethodprec
 

Detailed Description

stores the information of a 3D NSE system matrix

class for 3D NSE system matrix


Author
Sashikumaar Ganesan,
Date
27.01.15

Constructor & Destructor Documentation

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

Here is the call graph for this function:

Member Function Documentation

void TSystemNSE3D::Assemble ( )

assemble the system matrix

assemble

free surface/interface integration

upwind

Here is the call graph for this function:

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

Here is the call graph for this function:

void TSystemNSE3D::FindFreeSurfJoints ( int  level,
int  Region_ID 
)

find all joints which form the free surface/interface

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the call graph for this function:

void TSystemNSE3D::MeasureErrors ( DoubleFunct3D *  ExactU1,
DoubleFunct3D *  ExactU2,
DoubleFunct3D *  ExactU3,
DoubleFunct3D *  ExactP,
double *  u_error,
double *  p_error 
)

measure the error in the NSE

Here is the call graph for this function:

void TSystemNSE3D::Solve ( double *  sol,
double *  rhs 
)

solve the system matrix

Here is the call graph for this function:

Member Data Documentation

BoundCondFunct3D* TSystemNSE3D::BoundaryConditions[3]
protected

Boundary conditon

BoundValueFunct3D* TSystemNSE3D::BoundaryValues[3]
protected

Boundary values

DefectProc* TSystemNSE3D::Defect
protected

method for resudual calculation

TDiscreteForm3D* TSystemNSE3D::DiscreteFormARhs
protected

Discrete form for the equation

int TSystemNSE3D::Disctype
protected

Discretization type

int** TSystemNSE3D::FreeSurfCellNumbers
protected

Cell numbers and Joint numbers of free surface/interface faces

CoeffFct3D* TSystemNSE3D::LinCoeffs[1]
protected

Bilinear coefficient

TMatrix3D** TSystemNSE3D::MatrixB1
protected

B is the system mat for NSE pressure component

MatVecProc* TSystemNSE3D::MatVect
protected

method for matrix vector mult

int TSystemNSE3D::N_aux
protected

variables for multigrid

int* TSystemNSE3D::N_FreeSurfFaces
protected

Number of free surface/interface faces

int TSystemNSE3D::N_Levels
protected

Number of multigrid levels

int TSystemNSE3D::N_Matrices
protected

number of matrices in the system matrix

int TSystemNSE3D::N_TotalDOF
protected

DOFs of velocity and pressure spaces

TAuxParam3D** TSystemNSE3D::NSEaux
protected

NSEaux is used to pass additional fe functions (eg. mesh velocity) that is nedded for assembling

int TSystemNSE3D::NSEType
protected

NSE type

TFEFunction3D** TSystemNSE3D::Pressure
protected

Fe functions of NSE

int TSystemNSE3D::SOLVER
protected

Solver type

TSquareMatrix3D** TSystemNSE3D::SqmatrixA11
protected

A is the stiffness/system mat for NSE velocity component

TSquareStructure3D** TSystemNSE3D::sqstructureA
protected

sqstructureA of the system matrix

int TSystemNSE3D::Start_Level
protected

starting level for the solver, e.g. Start_Level = N_Levels-1 for direct solver

TStructure3D** TSystemNSE3D::structureB
protected

structure of the system matrix

TFESpace3D** TSystemNSE3D::U_Space
protected

velocity and pressure fespace

TFEVectFunct3D** TSystemNSE3D::Velocity
protected

velo FE function


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