#include <mbd_projected_gauss_seidel.h>
Public Member Functions | |
void | set_max_iterations (size_type value) |
bool & | profiling () |
bool const & | profiling () const |
vector_type const & | theta () const |
real_type | get_accuracy () const |
size_t | get_iteration () const |
ProjectedGaussSeidel () | |
virtual | ~ProjectedGaussSeidel () |
void | run (matrix_type const &J, matrix_type const &W, vector_type const &gamma, vector_type const &b, vector_type &lo, vector_type &hi, idx_vector_type const &pi, vector_type const &mu, vector_type &x) |
Protected Types | |
typedef math_policy::value_traits | value_traits |
typedef math_policy::real_type | real_type |
typedef math_policy::size_type | size_type |
typedef math_policy::matrix_type | matrix_type |
typedef math_policy::system_matrix_type | system_matrix_type |
typedef math_policy::vector_type | vector_type |
typedef math_policy::idx_vector_type | idx_vector_type |
Protected Attributes | |
size_type | m_iterations |
Maximum allowed number of iterations, default value is 5. | |
bool | m_profiling |
Boolean flag indicating whether profiling of the solver is turned on or off. Default value is false. | |
vector_type | m_theta |
vector used for profiling. The i'th entry stores the value of the merit-function after the i'th iteration of the solver. | |
system_matrix_type | m_A |
typedef math_policy::idx_vector_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::idx_vector_type [protected] |
Reimplemented from OpenTissue::mbd::NCPSolverInterface< math_policy >.
typedef math_policy::matrix_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::matrix_type [protected] |
Reimplemented from OpenTissue::mbd::NCPSolverInterface< math_policy >.
typedef math_policy::real_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::real_type [protected] |
typedef math_policy::size_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::size_type [protected] |
typedef math_policy::system_matrix_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::system_matrix_type [protected] |
typedef math_policy::value_traits OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::value_traits [protected] |
typedef math_policy::vector_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::vector_type [protected] |
Reimplemented from OpenTissue::mbd::NCPSolverInterface< math_policy >.
OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::ProjectedGaussSeidel | ( | ) | [inline] |
virtual OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::~ProjectedGaussSeidel | ( | ) | [inline, virtual] |
real_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::get_accuracy | ( | ) | const [inline] |
size_t OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::get_iteration | ( | ) | const [inline] |
bool& OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::profiling | ( | ) | [inline] |
bool const& OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::profiling | ( | ) | const [inline] |
void OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::run | ( | matrix_type const & | J, | |
matrix_type const & | W, | |||
vector_type const & | gamma, | |||
vector_type const & | b, | |||
vector_type & | lo, | |||
vector_type & | hi, | |||
idx_vector_type const & | pi, | |||
vector_type const & | mu, | |||
vector_type & | x | |||
) | [inline, virtual] |
Run Sover.
J | The Jacobian matrix, this is used to find the system matrix, A = J W J^T | |
W | The inverted mass matrix, this is used to find the system matrix, A = J W J^T | |
gamma | A regularization vector used to regularize the system such that the system matrix is replaced by, A' = A + diag(gamma). | |
b | This vector is termed the right-hand-side vector, used in setting up the relation, y = A x + b | |
lo | Lower bounds on the x-solution | |
hi | Upper bounds on the x-solution | |
pi | Some bounds are given as a linear mapping dependent on the x-solution, this vector encodes the linear dependency. | |
mu | For those bounds that are linear dependent this vector holds the coefficients. | |
x | Upon return this vector holds the solution |
Implements OpenTissue::mbd::NCPSolverInterface< math_policy >.
void OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::set_max_iterations | ( | size_type | value | ) | [inline] |
vector_type const& OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::theta | ( | ) | const [inline] |
system_matrix_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::m_A [protected] |
size_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::m_iterations [protected] |
Maximum allowed number of iterations, default value is 5.
bool OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::m_profiling [protected] |
Boolean flag indicating whether profiling of the solver is turned on or off. Default value is false.
vector_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::m_theta [protected] |
vector used for profiling. The i'th entry stores the value of the merit-function after the i'th iteration of the solver.