#include <ConjugateGradientSolver.h>
◆ ConjugateGradientSolver()
ConjugateGradientSolver::ConjugateGradientSolver |
( |
| ) |
|
◆ ~ConjugateGradientSolver()
ConjugateGradientSolver::~ConjugateGradientSolver |
( |
| ) |
|
◆ apply_matrix()
void ConjugateGradientSolver::apply_matrix |
( |
scalar * |
in, |
|
|
scalar * |
result |
|
) |
| |
|
virtual |
Applies the mass matrix to the given vector, 'in', putting the result in 'result'
Implements Solver.
◆ conjugate_gradient_residual_assume_x_zero()
scalar ConjugateGradientSolver::conjugate_gradient_residual_assume_x_zero |
( |
vector3 * |
b | ) |
|
|
private |
◆ init()
int ConjugateGradientSolver::init |
( |
int |
num_nodes, |
|
|
int |
num_elements, |
|
|
mesh_node * |
node, |
|
|
tetra_element_linear * |
elem, |
|
|
SimulationParams * |
params, |
|
|
int |
num_pinned_nodes, |
|
|
int * |
pinned_nodes_list, |
|
|
set< int > |
bsite_pinned_node_list |
|
) |
| |
|
virtual |
Builds the sparse mass matrix and allocates the various work vectors required for conjugate gradient
Implements Solver.
◆ parallel_apply_preconditioner()
scalar ConjugateGradientSolver::parallel_apply_preconditioner |
( |
| ) |
|
|
private |
◆ parallel_sparse_matrix_apply()
scalar ConjugateGradientSolver::parallel_sparse_matrix_apply |
( |
| ) |
|
|
private |
◆ parallel_vector_add()
void ConjugateGradientSolver::parallel_vector_add |
( |
vector3 * |
v1, |
|
|
scalar |
a, |
|
|
vector3 * |
v2, |
|
|
int |
vec_size |
|
) |
| |
|
private |
◆ parallel_vector_add_self()
void ConjugateGradientSolver::parallel_vector_add_self |
( |
vector3 * |
v1, |
|
|
scalar |
a, |
|
|
vector3 * |
v2, |
|
|
int |
vec_size |
|
) |
| |
|
private |
◆ residual2()
scalar ConjugateGradientSolver::residual2 |
( |
| ) |
|
|
private |
◆ solve()
int ConjugateGradientSolver::solve |
( |
vector3 * |
x | ) |
|
|
virtual |
Applies conjugate gradient with a Jacobi preconditioner to solve the system Mx = f
Implements Solver.
vector3* ConjugateGradientSolver::d |
|
private |
◆ entry
◆ epsilon2
scalar ConjugateGradientSolver::epsilon2 |
|
private |
vector3 * ConjugateGradientSolver::f |
|
private |
◆ i_max
int ConjugateGradientSolver::i_max |
|
private |
◆ key
int* ConjugateGradientSolver::key |
|
private |
◆ num_rows
int ConjugateGradientSolver::num_rows |
|
private |
◆ preconditioner
scalar* ConjugateGradientSolver::preconditioner |
|
private |
vector3 * ConjugateGradientSolver::q |
|
private |
vector3 * ConjugateGradientSolver::r |
|
private |
vector3 * ConjugateGradientSolver::s |
|
private |
The documentation for this class was generated from the following files: