stores the information of a timedependent part of a 3D scalar system matrix More...
#include <SystemTCD3D.h>
Public Member Functions | |
TSystemTCD3D (int N_levels, TFESpace3D **fespaces, double **sol, double **rhs, int disctype, int solver) | |
source file for TSystemTCD3D More... | |
~TSystemTCD3D () | |
void | Init (CoeffFct3D *BilinearCoeffs, BoundCondFunct3D *BoundCond, BoundValueFunct3D *BoundValue, TAuxParam3D *aux) |
TSquareMatrix3D ** | GetAMatrix () |
void | AssembleMRhs () |
void | AssembleARhs () |
void | AssembleSystMat (double *oldrhs, double *oldsol, double *rhs, double *sol#ifdef _MPI, double **Rhs_array#endif) |
void | RestoreMassMat () |
void | Solve (double *sol) |
double | GetResidual (double *sol) |
double | value (double *sol, int N) |
Public Member Functions inherited from TSystemCD3D | |
TSystemCD3D (int N_levels, TFESpace3D **fespaces, double **sol, double **rhs, int disctype, int solver) | |
~TSystemCD3D () | |
void | Init (CoeffFct3D *BilinearCoeffs, BoundCondFunct3D *BoundCond, BoundValueFunct3D *BoundValue, TAuxParam3D *aux) |
void | Assemble () |
void | Solve (double *sol, double *rhs) |
TParFECommunicator3D * | Get_ParComm (int level) |
stores the information of a timedependent part of a 3D scalar system matrix
class for 3D scalar system matrix
TSystemTCD3D::TSystemTCD3D | ( | int | N_levels, |
TFESpace3D ** | fespaces, | ||
double ** | sol, | ||
double ** | rhs, | ||
int | disctype, | ||
int | solver | ||
) |
source file for TSystemTCD3D
constructor
M mass and system matrix
working rhs, used in AssembleSystMat()
time-consistent part of the SUPG matrix
TSystemTCD3D::~TSystemTCD3D | ( | ) |
destrcutor
void TSystemTCD3D::AssembleARhs | ( | ) |
assemble the stifness mat and rhs
reset the matrix and rhs
set rhs for Dirichlet nodes
void TSystemTCD3D::AssembleMRhs | ( | ) |
assemble the Mass mat and rhs
initialize matrices and rhs
free the Mass mat array, no need in time loop
set rhs for Dirichlet nodes
void TSystemTCD3D::AssembleSystMat | ( | double * | oldrhs, |
double * | oldsol, | ||
double * | rhs, | ||
double *sol#ifdef | _MPI, | ||
double **Rhs_array# | endif | ||
) |
M = M + (tau*THETA1)*A B = (tau*THETA1)*rhs +(tau*THETA2)*oldrhs + [ M - (tau*THETA2)A]*oldsol
old rhs multiplied with current subtime step and theta3 on B
add rhs from current sub time step to rhs array B
M = M + (- tau*THETA2)A
defect = M * oldsol
B:= B + defec
set Dirichlet values
assemble the system matrix
|
inline |
return the stiffness matric
double TSystemTCD3D::GetResidual | ( | double * | sol | ) |
return the residual of the system for the given sol
void TSystemTCD3D::Init | ( | CoeffFct3D * | BilinearCoeffs, |
BoundCondFunct3D * | BoundCond, | ||
BoundValueFunct3D * | BoundValue, | ||
TAuxParam3D * | aux | ||
) |
methods
void TSystemTCD3D::RestoreMassMat | ( | ) |
restoring the mass matrix
void TSystemTCD3D::Solve | ( | double * | sol | ) |
solve the system matrix
solve linear system
|
protected |
working rhs, used in AssembleSystMat()
|
protected |
to store defect
|
protected |
Stiffness part of the SUPG matrix time-consistent part of the SUPG matrix Discrete form of the M and rhs matrics
|
protected |
factor that multplied with Mat A in working rhs
|
protected |
instance of the Assemble class
|
protected |
M mass matrix
|
protected |
Systmat assemble indicator