Улучшение восприятие кодовой базы
This commit is contained in:
@@ -18,11 +18,12 @@ class Mesh{
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Mesh(Object&, double);
|
Mesh(Object&, double);
|
||||||
void ShowLinks();
|
|
||||||
std::vector<std::vector<Node*>>& Nodes();
|
|
||||||
std::vector<Node*>& LineX();
|
|
||||||
std::vector<Node*>& LineY();
|
|
||||||
~Mesh();
|
~Mesh();
|
||||||
|
//void ShowLinks();
|
||||||
|
|
||||||
|
std::vector<std::vector<Node*>>& Nodes() { return _mesh; }
|
||||||
|
std::vector<Node*>& LineX() { return _hlines; }
|
||||||
|
std::vector<Node*>& LineY() { return _vlines; }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ public:
|
|||||||
std::pair<double, double> Filly(double, double);
|
std::pair<double, double> Filly(double, double);
|
||||||
std::pair<double, double> Fillx(double, double);
|
std::pair<double, double> Fillx(double, double);
|
||||||
|
|
||||||
//std::vector<size_t> Get_IDs();
|
|
||||||
Form* Who(double, double);
|
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) {
|
void Mesh::Delnode(int i, int j) {
|
||||||
Node* node = _mesh[i][j];
|
Node* node = _mesh[i][j];
|
||||||
double bndX1 = _obj.Fillx(node->X(), node->Y()).first;
|
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);
|
_mesh[i].erase(_mesh[i].begin() + j);
|
||||||
delete node;
|
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() {
|
Mesh::~Mesh() {
|
||||||
for (auto line : _mesh)
|
for (auto line : _mesh)
|
||||||
for (auto node : line)
|
for (auto node : line)
|
||||||
delete node;
|
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];
|
beta[0] = b[0] / A[0][0];
|
||||||
|
|
||||||
for (int i = 1; i < row; i++) {
|
for (int i = 1; i < row; i++) {
|
||||||
double a = A[i][0];
|
double a_i = A[i][0];
|
||||||
double b1 = A[i][1];
|
double b_i = A[i][1];
|
||||||
double c = A[i][2];
|
double c_i = A[i][2];
|
||||||
alpha[i] = -c / (a * alpha[i - 1] + b1);
|
double y_i = b_i + a_i * alpha[i - 1];
|
||||||
beta[i] = (b[i] - a * beta[i - 1]) / (a * alpha[i - 1] + b1);
|
|
||||||
|
alpha[i] = -c_i / y_i;
|
||||||
|
beta[i] = (b[i] - a_i * beta[i - 1]) / y_i;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<double> result(b.size());
|
std::vector<double> result(b.size());
|
||||||
|
|||||||
Reference in New Issue
Block a user