https://github.com/HTDerekLiu/surface_multigrid_code
Revision db5c7fa56b977d3f1ac0ac11ed875f75229f2d27 authored by eriszhang on 08 August 2021, 03:27:39 UTC, committed by eriszhang on 08 August 2021, 03:27:39 UTC
1 parent d366192
Tip revision: db5c7fa56b977d3f1ac0ac11ed875f75229f2d27 authored by eriszhang on 08 August 2021, 03:27:39 UTC
add
add
Tip revision: db5c7fa
mg_data.h
#ifndef MG_DATA_H
#define MG_DATA_H
#include <vector>
#include <iostream>
#include <Eigen/Core>
#include <Eigen/Sparse>
#include <Eigen/Dense>
struct mg_data
{
Eigen::MatrixXd V; // vertices
Eigen::MatrixXi F; // faces
Eigen::SparseMatrix<double> P_full; // full prolongation
Eigen::SparseMatrix<double> A; // LHS for only unknown parts
Eigen::VectorXd A_diag; // diagonal entries of A
Eigen::SparseMatrix<double> P; // prolongation for only unknown parts
Eigen::SparseMatrix<double> PT; // prolongation transpose for only unknown parts
// Gauss Seidel relaxation precomputation
std::vector<std::vector<int>> S;
Eigen::VectorXi SV;
Eigen::VectorXi SVI;
Eigen::VectorXi SC;
Eigen::VectorXi SCS;
void reset()
{
V = Eigen::MatrixXd();
P_full = Eigen::SparseMatrix<double>();
A = Eigen::SparseMatrix<double>();
A_diag = Eigen::VectorXd();
// Ar = Eigen::SparseMatrix<double, Eigen::RowMajor>();
P = Eigen::SparseMatrix<double>();
PT = Eigen::SparseMatrix<double>();
F = Eigen::MatrixXi();
S.clear(); // reset the 2d array
SV = Eigen::VectorXi();
SVI = Eigen::VectorXi();
SC = Eigen::VectorXi();
SCS = Eigen::VectorXi();
}
};
#endif
Computing file changes ...