ITK
4.13.0
Insight Segmentation and Registration Toolkit
|
#include <itkFEMLinearSystemWrapperVNL.h>
LinearSystemWrapper class that uses VNL numeric library functions to define a sparse linear system of equations.
Definition at line 38 of file itkFEMLinearSystemWrapperVNL.h.
Public Types | |
typedef LinearSystemWrapper::Float | Float |
typedef std::vector < MatrixRepresentation * > | MatrixHolder |
typedef vnl_sparse_matrix< Float > | MatrixRepresentation |
typedef LinearSystemWrapper | Superclass |
Public Types inherited from itk::fem::LinearSystemWrapper | |
typedef std::vector< unsigned int > | ColumnArray |
typedef const Self * | ConstPointer |
typedef Self * | Pointer |
typedef LinearSystemWrapper | Self |
typedef Solution | Superclass |
Public Types inherited from itk::fem::Solution | |
typedef const Self * | ConstPointer |
typedef double | Float |
typedef Self * | Pointer |
typedef Solution | Self |
typedef Solution | Superclass |
Public Member Functions | |
virtual void | AddMatrixValue (unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) override |
virtual void | AddSolutionValue (unsigned int i, Float value, unsigned int solutionIndex) override |
virtual void | AddVectorValue (unsigned int i, Float value, unsigned int vectorIndex) override |
virtual void | CopySolution2Vector (unsigned solutionIndex, unsigned int vectorIndex) override |
virtual void | CopyVector2Solution (unsigned int vectorIndex, unsigned int solutionIndex) override |
virtual void | DestroyMatrix (unsigned int matrixIndex) override |
virtual void | DestroySolution (unsigned int solutionIndex) override |
virtual void | DestroyVector (unsigned int vectorIndex) override |
virtual Float | GetMatrixValue (unsigned int i, unsigned int j, unsigned int matrixIndex) const override |
virtual Float | GetSolutionValue (unsigned int i, unsigned int solutionIndex) const override |
virtual Float | GetVectorValue (unsigned int i, unsigned int vectorIndex) const override |
virtual void | InitializeMatrix (unsigned int matrixIndex) override |
virtual void | InitializeSolution (unsigned int solutionIndex) override |
virtual void | InitializeVector (unsigned int vectorIndex) override |
virtual bool | IsMatrixInitialized (unsigned int matrixIndex) override |
virtual bool | IsSolutionInitialized (unsigned int solutionIndex) override |
virtual bool | IsVectorInitialized (unsigned int vectorIndex) override |
LinearSystemWrapperVNL () | |
virtual void | MultiplyMatrixMatrix (unsigned int resultMatrixIndex, unsigned int leftMatrixIndex, unsigned int rightMatrixIndex) override |
virtual void | MultiplyMatrixVector (unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int vectorIndex) override |
virtual void | ScaleMatrix (Float scale, unsigned int matrixIndex) override |
virtual void | SetMatrixValue (unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) override |
virtual void | SetMaximumNonZeroValuesInMatrix (unsigned int, unsigned int) |
virtual void | SetSolutionValue (unsigned int i, Float value, unsigned int solutionIndex) override |
virtual void | SetVectorValue (unsigned int i, Float value, unsigned int vectorIndex) override |
virtual void | Solve (void) override |
virtual void | SwapMatrices (unsigned int matrixIndex1, unsigned int matrixIndex2) override |
virtual void | SwapSolutions (unsigned int solutionIndex1, unsigned int solutionIndex2) override |
virtual void | SwapVectors (unsigned int vectorIndex1, unsigned int vectorIndex2) override |
virtual | ~LinearSystemWrapperVNL () override |
Public Member Functions inherited from itk::fem::LinearSystemWrapper | |
virtual void | AddMatrixMatrix (unsigned int matrixIndex1, unsigned int matrixIndex2) |
virtual void | AddVectorVector (unsigned int vectorIndex1, unsigned int vectorIndex2) |
virtual void | Clean () |
virtual void | CopyMatrix (unsigned int matrixIndex1, unsigned int matrixIndex2) |
virtual void | CopySolution2Vector (unsigned int solutionIndex, unsigned int vectorIndex)=0 |
virtual void | CopyVector (unsigned int vectorSource, unsigned int vectorDestination) |
virtual void | GetColumnsOfNonZeroMatrixElementsInRow (unsigned int row, ColumnArray &cols, unsigned int matrixIndex=0) |
unsigned int | GetNumberOfMatrices () const |
unsigned int | GetNumberOfSolutions () const |
unsigned int | GetNumberOfVectors () const |
unsigned int | GetSystemOrder () const |
virtual void | MultiplyMatrixSolution (unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int solutionIndex) |
virtual void | OptimizeMatrixStorage (unsigned int matrixIndex, unsigned int tempMatrixIndex) |
virtual void | ReverseCuthillMckeeOrdering (ColumnArray &newNumbering, unsigned int matrixIndex=0) |
void | ScaleSolution (Float scale, unsigned int solutionIndex=0) |
void | ScaleVector (Float scale, unsigned int vectorIndex=0) |
void | SetNumberOfMatrices (unsigned int nMatrices) |
void | SetNumberOfSolutions (unsigned int nSolutions) |
void | SetNumberOfVectors (unsigned int nVectors) |
void | SetSystemOrder (unsigned int N) |
virtual | ~LinearSystemWrapper () |
LinearSystemWrapper () | |
Public Member Functions inherited from itk::fem::Solution | |
virtual | ~Solution () |
Private Attributes | |
MatrixHolder * | m_Matrices |
std::vector< vnl_vector< Float > * > * | m_Solutions |
std::vector< vnl_vector< Float > * > * | m_Vectors |
Additional Inherited Members | |
Protected Attributes inherited from itk::fem::LinearSystemWrapper | |
unsigned int | m_NumberOfMatrices |
unsigned int | m_NumberOfSolutions |
unsigned int | m_NumberOfVectors |
unsigned int | m_Order |
Definition at line 43 of file itkFEMLinearSystemWrapperVNL.h.
typedef std::vector<MatrixRepresentation *> itk::fem::LinearSystemWrapperVNL::MatrixHolder |
Definition at line 52 of file itkFEMLinearSystemWrapperVNL.h.
typedef vnl_sparse_matrix<Float> itk::fem::LinearSystemWrapperVNL::MatrixRepresentation |
Definition at line 49 of file itkFEMLinearSystemWrapperVNL.h.
Definition at line 46 of file itkFEMLinearSystemWrapperVNL.h.
|
inline |
Definition at line 55 of file itkFEMLinearSystemWrapperVNL.h.
|
overridevirtual |
|
inlineoverridevirtual |
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 94 of file itkFEMLinearSystemWrapperVNL.h.
|
inlineoverridevirtual |
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 121 of file itkFEMLinearSystemWrapperVNL.h.
|
inlineoverridevirtual |
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 109 of file itkFEMLinearSystemWrapperVNL.h.
|
overridevirtual |
|
overridevirtual |
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.
|
overridevirtual |
Free the memory from a matrix
matrixIndex | index of matrix to destroy |
Implements itk::fem::LinearSystemWrapper.
|
overridevirtual |
Free the memory from a solution vector
solutionIndex | index of solution vector to destroy |
Implements itk::fem::LinearSystemWrapper.
|
overridevirtual |
Free the memory from a vector
vectorIndex | index of vector to destroy |
Implements itk::fem::LinearSystemWrapper.
|
inlineoverridevirtual |
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 84 of file itkFEMLinearSystemWrapperVNL.h.
|
overridevirtual |
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.
|
inlineoverridevirtual |
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 99 of file itkFEMLinearSystemWrapperVNL.h.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
overridevirtual |
Check to see if matrix is initialized
matrixIndex | index of matrix to examine |
Implements itk::fem::LinearSystemWrapper.
|
overridevirtual |
Check to see if solution vector is initialized
solutionIndex | index of solution vector to examine |
Implements itk::fem::LinearSystemWrapper.
|
overridevirtual |
Check to see if vector is initialized
vectorIndex | vector of index to examine |
Implements itk::fem::LinearSystemWrapper.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
inlineoverridevirtual |
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 89 of file itkFEMLinearSystemWrapperVNL.h.
|
inlinevirtual |
Definition at line 79 of file itkFEMLinearSystemWrapperVNL.h.
|
inlineoverridevirtual |
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 116 of file itkFEMLinearSystemWrapperVNL.h.
|
inlineoverridevirtual |
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 104 of file itkFEMLinearSystemWrapperVNL.h.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
private |
vector of pointers to VNL sparse matrices
Definition at line 150 of file itkFEMLinearSystemWrapperVNL.h.
|
private |
vector of pointers to VNL vectors
Definition at line 156 of file itkFEMLinearSystemWrapperVNL.h.
|
private |
vector of pointers to VNL vectors
Definition at line 153 of file itkFEMLinearSystemWrapperVNL.h.