📄 factortablefornr.h
字号:
#ifndef FACTORTABLEFORNR_h
#define FACTORTABLEFORNR_h
#include "SparseMatrix.h"
#include "CResolveEqOnLUDecomp.h"
//牛拉法的雅可比矩阵类
class JacNR
{
public:
JacNR();
JacNR(int );
~JacNR();
void Initialize(int );
void SetJacElement(int r,int c,double value);
double GetJacElement(int r,int c);
void RestoreForChangeElem(); //在改变元素前设置一些状态量
void SetJacStatus(bool bBuilded){ bJacBuilded=bBuilded;};
bool CountElement(); //第一次输入元素后作统计并设置上下三角变量
bool BuildFactorTable();
bool ResolveEquation(double *);
private:
bool bInitalized; //是否初始化了
bool bJacBuilded; //是否形成了稀疏的Jac
bool bReadyForFactorize; //准备好形成因子表了
bool bFirstTime; //是不是第一次输入值
bool bFactorized;
int rows,cols; // 行=列
SparseMatrix<double> Jac; //稀疏的原始的矩阵,只是在第一次形成时用到
double * D; //对角元素
double * LA, * UA; //下三角的元素值
int * Ljs, *Ujs; //每列开始元素的序号
int * Lj, *Uj; //所有非零元素对应的行号,按列存储
SolveEqOnLU SolveEqs;
int EstimateElemNum; //估计的非零元素值
int SumLnum, SumUnum;
double ZeroFlagValue; //标志零元素位置的值
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -