ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkFEMLinearSystemWrapperVNL.h>
Public Types | |
typedef LinearSystemWrapper::Float | Float |
typedef std::vector < MatrixRepresentation * > | MatrixHolder |
typedef vnl_sparse_matrix< Float > | MatrixRepresentation |
typedef LinearSystemWrapper | SuperClass |
Public Member Functions | |
virtual void | AddMatrixValue (unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) |
virtual void | AddSolutionValue (unsigned int i, Float value, unsigned int solutionIndex) |
virtual void | AddVectorValue (unsigned int i, Float value, unsigned int vectorIndex) |
virtual void | CopySolution2Vector (unsigned solutionIndex, unsigned int vectorIndex) |
virtual void | CopyVector2Solution (unsigned int vectorIndex, unsigned int solutionIndex) |
virtual void | DestroyMatrix (unsigned int matrixIndex) |
virtual void | DestroySolution (unsigned int solutionIndex) |
virtual void | DestroyVector (unsigned int vectorIndex) |
virtual Float | GetMatrixValue (unsigned int i, unsigned int j, unsigned int matrixIndex) const |
virtual Float | GetSolutionValue (unsigned int i, unsigned int solutionIndex) const |
virtual Float | GetVectorValue (unsigned int i, unsigned int vectorIndex) const |
virtual void | InitializeMatrix (unsigned int matrixIndex) |
virtual void | InitializeSolution (unsigned int solutionIndex) |
virtual void | InitializeVector (unsigned int vectorIndex) |
virtual bool | IsMatrixInitialized (unsigned int matrixIndex) |
virtual bool | IsSolutionInitialized (unsigned int solutionIndex) |
virtual bool | IsVectorInitialized (unsigned int vectorIndex) |
LinearSystemWrapperVNL () | |
virtual void | MultiplyMatrixMatrix (unsigned int resultMatrixIndex, unsigned int leftMatrixIndex, unsigned int rightMatrixIndex) |
virtual void | MultiplyMatrixVector (unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int vectorIndex) |
virtual void | ScaleMatrix (Float scale, unsigned int matrixIndex) |
virtual void | SetMatrixValue (unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) |
virtual void | SetMaximumNonZeroValuesInMatrix (unsigned int, unsigned int) |
virtual void | SetSolutionValue (unsigned int i, Float value, unsigned int solutionIndex) |
virtual void | SetVectorValue (unsigned int i, Float value, unsigned int vectorIndex) |
virtual void | Solve (void) |
virtual void | SwapMatrices (unsigned int matrixIndex1, unsigned int matrixIndex2) |
virtual void | SwapSolutions (unsigned int solutionIndex1, unsigned int solutionIndex2) |
virtual void | SwapVectors (unsigned int vectorIndex1, unsigned int vectorIndex2) |
virtual | ~LinearSystemWrapperVNL () |
Private Attributes | |
MatrixHolder * | m_Matrices |
std::vector< vnl_vector< Float > * > * | m_Solutions |
std::vector< vnl_vector< Float > * > * | m_Vectors |
LinearSystemWrapper class that uses VNL numeric library functions to define a sparse linear system of equations.
Definition at line 39 of file itkFEMLinearSystemWrapperVNL.h.
Floating point storage type used within a class
Reimplemented from itk::fem::Solution.
Definition at line 44 of file itkFEMLinearSystemWrapperVNL.h.
typedef std::vector<MatrixRepresentation *> itk::fem::LinearSystemWrapperVNL::MatrixHolder |
Definition at line 53 of file itkFEMLinearSystemWrapperVNL.h.
typedef vnl_sparse_matrix<Float> itk::fem::LinearSystemWrapperVNL::MatrixRepresentation |
Definition at line 50 of file itkFEMLinearSystemWrapperVNL.h.
Definition at line 47 of file itkFEMLinearSystemWrapperVNL.h.
Definition at line 56 of file itkFEMLinearSystemWrapperVNL.h.
virtual itk::fem::LinearSystemWrapperVNL::~LinearSystemWrapperVNL | ( | ) | [virtual] |
virtual void itk::fem::LinearSystemWrapperVNL::AddMatrixValue | ( | unsigned int | i, |
unsigned int | j, | ||
Float | value, | ||
unsigned int | matrixIndex | ||
) | [inline, virtual] |
Virtual function to add a value to a specific element of the A matrix.
i | row of the element |
j | column of the element |
value | value to add to the existing element |
matrixIndex | index of matrix to add value to |
Implements itk::fem::LinearSystemWrapper.
Definition at line 95 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::AddSolutionValue | ( | unsigned int | i, |
Float | value, | ||
unsigned int | solutionIndex | ||
) | [inline, virtual] |
Virtual function to add a value of specific element of the solution vector.
i | element Index in solution vector |
value | new value of the element |
solutionIndex | index of solution vector to add value to |
Implements itk::fem::LinearSystemWrapper.
Definition at line 122 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::AddVectorValue | ( | unsigned int | i, |
Float | value, | ||
unsigned int | vectorIndex | ||
) | [inline, virtual] |
Virtual function to add a value to a specific element of the B vector.
i | row of the element |
value | value to add to the existing element |
vectorIndex | index of vector to add value to |
Implements itk::fem::LinearSystemWrapper.
Definition at line 110 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::CopySolution2Vector | ( | unsigned | solutionIndex, |
unsigned int | vectorIndex | ||
) | [virtual] |
virtual void itk::fem::LinearSystemWrapperVNL::CopyVector2Solution | ( | unsigned int | vectorIndex, |
unsigned int | solutionIndex | ||
) | [virtual] |
Copy a vector to a solution vector
vectorIndex | index of a vector to copy |
solutionIndex | index of a solution to copy the solution to |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::DestroyMatrix | ( | unsigned int | matrixIndex | ) | [virtual] |
Free the memory from a matrix
matrixIndex | index of matrix to destroy |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::DestroySolution | ( | unsigned int | solutionIndex | ) | [virtual] |
Free teh mememory from a solution vector
solutionIndex | index of solution vector to destroy |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::DestroyVector | ( | unsigned int | vectorIndex | ) | [virtual] |
Free the memory from a vector
vectorIndex | index of vector to destroy |
Implements itk::fem::LinearSystemWrapper.
virtual Float itk::fem::LinearSystemWrapperVNL::GetMatrixValue | ( | unsigned int | i, |
unsigned int | j, | ||
unsigned int | matrixIndex | ||
) | const [inline, virtual] |
Virtual function to get a value of a specific element of a matrix.
i | row of the element |
j | column of the element |
matrixIndex | index of matrix to get value from |
Implements itk::fem::LinearSystemWrapper.
Definition at line 85 of file itkFEMLinearSystemWrapperVNL.h.
References m_Matrices.
virtual Float itk::fem::LinearSystemWrapperVNL::GetSolutionValue | ( | unsigned int | i, |
unsigned int | solutionIndex | ||
) | const [virtual] |
Returns value of i-th element in a solution vector. This value is calculated generalized displacement of the i-th degree of freedom in a FEM problem. Note that in general there may be several solution vectors. You can select which one do you want by passing the second parameter.
i | element index in solution vector |
solutionIndex | index of solution vector to get value from |
Implements itk::fem::Solution.
virtual Float itk::fem::LinearSystemWrapperVNL::GetVectorValue | ( | unsigned int | i, |
unsigned int | vectorIndex | ||
) | const [inline, virtual] |
Virtual function to get a value of a specific element of the B vector.
i | row of the element |
vectorIndex | index of vector to get value from |
Implements itk::fem::LinearSystemWrapper.
Definition at line 100 of file itkFEMLinearSystemWrapperVNL.h.
References m_Vectors.
virtual void itk::fem::LinearSystemWrapperVNL::InitializeMatrix | ( | unsigned int | matrixIndex | ) | [virtual] |
Initialization of the A matrix. First any existing data for matrix A must be be destroyed, and then a new matrix is created in the memory. All elements in A must be set to zero.
matrixIndex | index of matrix to initialize |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::InitializeSolution | ( | unsigned int | solutionIndex | ) | [virtual] |
Initialization of a solution vector. Existing memory must be destroyed and the new solution vector is created in memory. All values should be set to zero.
solutionIndex | index of solution vector to initialize |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::InitializeVector | ( | unsigned int | vectorIndex | ) | [virtual] |
Initialization of the a vector. First any existing data for vector B must be destroyed, then new vector is created in the memory. All elements in B must be set to zero.
Implements itk::fem::LinearSystemWrapper.
virtual bool itk::fem::LinearSystemWrapperVNL::IsMatrixInitialized | ( | unsigned int | matrixIndex | ) | [virtual] |
Check to see if matrix is initialized
matrixIndex | index of matrix to examine |
Implements itk::fem::LinearSystemWrapper.
virtual bool itk::fem::LinearSystemWrapperVNL::IsSolutionInitialized | ( | unsigned int | solutionIndex | ) | [virtual] |
Check to see if solution vector is initialized
solutionIndex | index of solution vector to examine |
Implements itk::fem::LinearSystemWrapper.
virtual bool itk::fem::LinearSystemWrapperVNL::IsVectorInitialized | ( | unsigned int | vectorIndex | ) | [virtual] |
Check to see if vector is initialized
vectorIndex | vector of index to examine |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::MultiplyMatrixMatrix | ( | unsigned int | resultMatrixIndex, |
unsigned int | leftMatrixIndex, | ||
unsigned int | rightMatrixIndex | ||
) | [virtual] |
Perform a matrix*matrix operation and store the result in the linear system
leftMatrixIndex | index of left matrix |
rightMatrixIndex | index of right matrix |
resultMatrixIndex | index of matrix where solution is stored |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::MultiplyMatrixVector | ( | unsigned int | resultVectorIndex, |
unsigned int | matrixIndex, | ||
unsigned int | vectorIndex | ||
) | [virtual] |
Perform a matrix*vector operation and store the result in the linear system
matrixIndex | index of matrix to multiply |
vectorIndex | index of vector to multiply |
resultVectorIndex | index of vector where result is store |
Reimplemented from itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::ScaleMatrix | ( | Float | scale, |
unsigned int | matrixIndex | ||
) | [virtual] |
Multiplies all elements of a matrix by a scalar
scale | scalar to multiply all matrix values by |
matrixIndex | index of matrix to modify |
Reimplemented from itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::SetMatrixValue | ( | unsigned int | i, |
unsigned int | j, | ||
Float | value, | ||
unsigned int | matrixIndex | ||
) | [inline, virtual] |
Virtual function to set a value of a specific element of the A matrix.
i | row of the element |
j | column of the element |
value | new value of the element |
matrixIndex | index of matrix to set value in |
Implements itk::fem::LinearSystemWrapper.
Definition at line 90 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::SetMaximumNonZeroValuesInMatrix | ( | unsigned | int, |
unsigned | int | ||
) | [inline, virtual] |
Definition at line 80 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::SetSolutionValue | ( | unsigned int | i, |
Float | value, | ||
unsigned int | solutionIndex | ||
) | [inline, virtual] |
Virtual function to set a value of specific element of the solution vector.
i | element Index in solution vector |
value | new value of the element |
solutionIndex | index of solution vector to set value in |
Implements itk::fem::LinearSystemWrapper.
Definition at line 117 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::SetVectorValue | ( | unsigned int | i, |
Float | value, | ||
unsigned int | vectorIndex | ||
) | [inline, virtual] |
Virtual function to set a value of a specific element of the B vector.
i | row of the element |
value | new value of the element |
vectorIndex | index of vector to set value in |
Implements itk::fem::LinearSystemWrapper.
Definition at line 105 of file itkFEMLinearSystemWrapperVNL.h.
virtual void itk::fem::LinearSystemWrapperVNL::Solve | ( | void | ) | [virtual] |
Solves the linear system and creates the solution vector, which can later be accessed via GetSolutionValue(i,SolutionIndex) member function. Here all the major processing is done with calls to external numeric library.
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::SwapMatrices | ( | unsigned int | matrixIndex1, |
unsigned int | matrixIndex2 | ||
) | [virtual] |
Swaps access indices of any 2 matrices in the linear system
matrixIndex1 | index of a matrix to swap |
matrixIndex2 | index of matrix to swap with |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::SwapSolutions | ( | unsigned int | solutionIndex1, |
unsigned int | solutionIndex2 | ||
) | [virtual] |
Swaps access indices of any 2 solution vectors in the linear system
solutionIndex1 | index of a solution vector to swap |
solutionIndex2 | index of solution vector to swap with |
Implements itk::fem::LinearSystemWrapper.
virtual void itk::fem::LinearSystemWrapperVNL::SwapVectors | ( | unsigned int | vectorIndex1, |
unsigned int | vectorIndex2 | ||
) | [virtual] |
Swaps access indices of any 2 vectors in the linear system
vectorIndex1 | index of a vector to swap |
vectorIndex2 | index of vector to swap with |
Implements itk::fem::LinearSystemWrapper.
vector of pointers to VNL sparse matrices
Definition at line 151 of file itkFEMLinearSystemWrapperVNL.h.
Referenced by GetMatrixValue().
std::vector<vnl_vector<Float> *>* itk::fem::LinearSystemWrapperVNL::m_Solutions [private] |
vector of pointers to VNL vectors
Definition at line 157 of file itkFEMLinearSystemWrapperVNL.h.
std::vector<vnl_vector<Float> *>* itk::fem::LinearSystemWrapperVNL::m_Vectors [private] |
vector of pointers to VNL vectors
Definition at line 154 of file itkFEMLinearSystemWrapperVNL.h.
Referenced by GetVectorValue().