Улучшение восприятие кодовой базы
This commit is contained in:
@@ -18,11 +18,12 @@ class Mesh{
|
||||
|
||||
public:
|
||||
Mesh(Object&, double);
|
||||
void ShowLinks();
|
||||
std::vector<std::vector<Node*>>& Nodes();
|
||||
std::vector<Node*>& LineX();
|
||||
std::vector<Node*>& LineY();
|
||||
~Mesh();
|
||||
//void ShowLinks();
|
||||
|
||||
std::vector<std::vector<Node*>>& Nodes() { return _mesh; }
|
||||
std::vector<Node*>& LineX() { return _hlines; }
|
||||
std::vector<Node*>& LineY() { return _vlines; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -22,7 +22,6 @@ public:
|
||||
std::pair<double, double> Filly(double, double);
|
||||
std::pair<double, double> Fillx(double, double);
|
||||
|
||||
//std::vector<size_t> Get_IDs();
|
||||
Form* Who(double, double);
|
||||
};
|
||||
|
||||
|
||||
62
src/Mesh.cpp
62
src/Mesh.cpp
@@ -53,35 +53,6 @@ void Mesh::Adapt() {
|
||||
}
|
||||
}
|
||||
|
||||
void Mesh::ShowLinks() {
|
||||
for (auto line : _mesh) {
|
||||
for (auto node : line) {
|
||||
if (node->d())
|
||||
std::cout << "| ";
|
||||
}
|
||||
std::cout << '\n';
|
||||
for (auto node : line) {
|
||||
if (node->l()) {
|
||||
std::cout << '-';
|
||||
}
|
||||
std::cout << 'N';
|
||||
if (node->r()) {
|
||||
std::cout << '-';
|
||||
}
|
||||
else {
|
||||
std::cout << '\n';
|
||||
}
|
||||
}
|
||||
for (auto node : line) {
|
||||
if (node->u())
|
||||
std::cout << "|";
|
||||
std::cout << " ";
|
||||
|
||||
}
|
||||
std::cout << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
void Mesh::Delnode(int i, int j) {
|
||||
Node* node = _mesh[i][j];
|
||||
double bndX1 = _obj.Fillx(node->X(), node->Y()).first;
|
||||
@@ -152,14 +123,39 @@ void Mesh::Delnode(int i, int j) {
|
||||
_mesh[i].erase(_mesh[i].begin() + j);
|
||||
delete node;
|
||||
}
|
||||
std::vector<std::vector<Node*>>& Mesh::Nodes() { return _mesh; }
|
||||
std::vector<Node*>& Mesh::LineX() { return _hlines; }
|
||||
std::vector<Node*>& Mesh::LineY() { return _vlines; }
|
||||
|
||||
Mesh::~Mesh() {
|
||||
for (auto line : _mesh)
|
||||
for (auto node : line)
|
||||
delete node;
|
||||
}
|
||||
|
||||
|
||||
//void Mesh::ShowLinks() {
|
||||
// for (auto line : _mesh) {
|
||||
// for (auto node : line) {
|
||||
// if (node->d())
|
||||
// std::cout << "| ";
|
||||
// }
|
||||
// std::cout << '\n';
|
||||
// for (auto node : line) {
|
||||
// if (node->l()) {
|
||||
// std::cout << '-';
|
||||
// }
|
||||
// std::cout << 'N';
|
||||
// if (node->r()) {
|
||||
// std::cout << '-';
|
||||
// }
|
||||
// else {
|
||||
// std::cout << '\n';
|
||||
// }
|
||||
// }
|
||||
// for (auto node : line) {
|
||||
// if (node->u())
|
||||
// std::cout << "|";
|
||||
// std::cout << " ";
|
||||
//
|
||||
// }
|
||||
// std::cout << '\n';
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
@@ -117,11 +117,13 @@ std::vector<double> Solver::ThomasMethod(std::vector<std::vector<double>>& A, st
|
||||
beta[0] = b[0] / A[0][0];
|
||||
|
||||
for (int i = 1; i < row; i++) {
|
||||
double a = A[i][0];
|
||||
double b1 = A[i][1];
|
||||
double c = A[i][2];
|
||||
alpha[i] = -c / (a * alpha[i - 1] + b1);
|
||||
beta[i] = (b[i] - a * beta[i - 1]) / (a * alpha[i - 1] + b1);
|
||||
double a_i = A[i][0];
|
||||
double b_i = A[i][1];
|
||||
double c_i = A[i][2];
|
||||
double y_i = b_i + a_i * alpha[i - 1];
|
||||
|
||||
alpha[i] = -c_i / y_i;
|
||||
beta[i] = (b[i] - a_i * beta[i - 1]) / y_i;
|
||||
}
|
||||
|
||||
std::vector<double> result(b.size());
|
||||
|
||||
Reference in New Issue
Block a user