46 double linear_res_end;
66 linear_iters_end = -1;
90 int** num_connections;
100 CMFD_PRECISION*** coupling_coeffs;
103 CMFD_PRECISION*** fluxes;
106 CMFD_PRECISION** buffer;
109 std::map<int, int> mapLocalToSurface;
125 int**& coupling_indexes, CMFD_PRECISION**& coupling_coeffs,
126 CMFD_PRECISION**& coupling_fluxes,
127 CMFD_PRECISION* curr_fluxes,
int& offset);
131 double tol,
double SOR_factor=1.5,
135 double SOR_factor=1.5,
155 std::vector<T> temp(dim1 * dim2);
157 for (
int i=0; i < dim1; i++) {
158 for (
int j=0; j < dim2; j++)
159 temp[i * dim1 + j] = matrix[j * dim1 + i];
162 std::copy(temp.begin(), temp.end(), matrix);
Math constants and comparision tolerances.
Verbose iteration information for the CMFD eigenvalue solver.
Definition: linalg.h:31
Structure for communication of fluxes between neighbor domains.
Definition: linalg.h:74
void matrix_transpose(T *matrix, int dim1, int dim2)
Transpose a 2D matrix.
Definition: linalg.h:153
double eigenvalueSolve(Matrix *A, Matrix *M, Vector *X, double k_eff, double tol, double SOR_factor=1.5, ConvergenceData *convergence_data=NULL, DomainCommunicator *comm=NULL)
Get coupling fluxes and other information from neighbors.
Definition: linalg.cpp:25
void matrixMultiplication(Matrix *A, Vector *X, Vector *B)
Performs a matrix vector multiplication.
Definition: linalg.cpp:533
bool ddLinearSolve(Matrix *A, Matrix *M, Vector *X, Vector *B, double tol, double SOR_factor, ConvergenceData *convergence_data, DomainCommunicator *comm)
Solves a linear system using the linear solver above, but makes the loss and streaming matrix diagona...
Definition: linalg.cpp:696
bool linearSolve(Matrix *A, Matrix *M, Vector *X, Vector *B, double tol, double SOR_factor=1.5, ConvergenceData *convergence_data=NULL, DomainCommunicator *comm=NULL)
Solves a linear system using Red-Black Gauss Seidel with successive over-relaxation.
Definition: linalg.cpp:179
double computeRMSE(Vector *x, Vector *y, bool integrated, DomainCommunicator *comm=NULL)
Computes the Root Mean Square Error of two Vectors.
Definition: linalg.cpp:583
Utility functions for writing log messages to the screen.