Public Member Functions | Protected Types | Protected Attributes

OpenTissue::mbd::ProjectedGaussSeidel< math_policy > Class Template Reference

#include <mbd_projected_gauss_seidel.h>

Inheritance diagram for OpenTissue::mbd::ProjectedGaussSeidel< math_policy >:
OpenTissue::mbd::NCPSolverInterface< math_policy >

List of all members.

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

template<typename math_policy>
class OpenTissue::mbd::ProjectedGaussSeidel< math_policy >


Member Typedef Documentation

template<typename math_policy >
typedef math_policy::idx_vector_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::idx_vector_type [protected]
template<typename math_policy >
typedef math_policy::matrix_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::matrix_type [protected]
template<typename math_policy >
typedef math_policy::real_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::real_type [protected]
template<typename math_policy >
typedef math_policy::size_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::size_type [protected]
template<typename math_policy >
typedef math_policy::system_matrix_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::system_matrix_type [protected]
template<typename math_policy >
typedef math_policy::value_traits OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::value_traits [protected]
template<typename math_policy >
typedef math_policy::vector_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::vector_type [protected]

Constructor & Destructor Documentation

template<typename math_policy >
OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::ProjectedGaussSeidel (  )  [inline]
template<typename math_policy >
virtual OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::~ProjectedGaussSeidel (  )  [inline, virtual]

Member Function Documentation

template<typename math_policy >
real_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::get_accuracy (  )  const [inline]
template<typename math_policy >
size_t OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::get_iteration (  )  const [inline]
template<typename math_policy >
bool& OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::profiling (  )  [inline]
template<typename math_policy >
bool const& OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::profiling (  )  const [inline]
template<typename math_policy >
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.

Parameters:
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 >.

template<typename math_policy >
void OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::set_max_iterations ( size_type  value  )  [inline]
template<typename math_policy >
vector_type const& OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::theta (  )  const [inline]

Member Data Documentation

template<typename math_policy >
system_matrix_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::m_A [protected]
template<typename math_policy >
size_type OpenTissue::mbd::ProjectedGaussSeidel< math_policy >::m_iterations [protected]

Maximum allowed number of iterations, default value is 5.

template<typename math_policy >
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.

template<typename math_policy >
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.


The documentation for this class was generated from the following file: