![]() |
Orfeo Toolbox
3.16
|
LinearSystemWrapper class that uses Itpack numeric library functions to define and solve a sparse linear system of equations. More...
#include <itkFEMLinearSystemWrapperItpack.h>
Inheritance diagram for itk::fem::LinearSystemWrapperItpack:
Collaboration diagram for itk::fem::LinearSystemWrapperItpack:Public Types | |
| typedef std::vector< unsigned int > | ColumnArray |
| typedef const Self * | ConstPointer |
| typedef double | Float |
| typedef std::vector < MatrixRepresentation > | MatrixHolder |
| typedef ItpackSparseMatrix | MatrixRepresentation |
| typedef Self * | Pointer |
| typedef LinearSystemWrapperItpack | Self |
| typedef LinearSystemWrapper | Superclass |
| typedef std::vector < VectorRepresentation > | VectorHolder |
| typedef double * | VectorRepresentation |
Public Member Functions | |
| LinearSystemWrapperItpack () | |
| ~LinearSystemWrapperItpack () | |
| virtual void | AddMatrixMatrix (unsigned int matrixIndex1, unsigned int matrixIndex2) |
| 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 | AddVectorVector (unsigned int vectorIndex1, unsigned int vectorIndex2) |
| virtual void | Clean (void) |
| virtual void | CopyMatrix (unsigned int matrixIndex1, unsigned int matrixIndex2) |
| virtual void | CopySolution2Vector (unsigned int solutionIndex, unsigned int vectorIndex)=0 |
| virtual void | CopySolution2Vector (unsigned solutionIndex, unsigned int vectorIndex) |
| virtual void | CopyVector (unsigned int vectorSource, unsigned int vectorDestination) |
| 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) |
| double | GetAccuracy () |
| int | GetAdaptiveCaseSwitch () |
| int | GetAdaptiveSwitch () |
| virtual void | GetColumnsOfNonZeroMatrixElementsInRow (unsigned int row, ColumnArray &cols, unsigned int matrixIndex) |
| int | GetCommunicationSwitch () |
| double | GetDampingFactor () |
| double | GetDigitsInError () |
| double | GetDigitsInResidual () |
| int | GetErrorAnalysisSwitch () |
| int | GetErrorReportingLevel () |
| double | GetEstimatedSpectralRadiusLU () |
| double | GetEstimatedSpectralRadiusSSOR () |
| double | GetLargestJacobiEigenvalueEstimate () |
| virtual Float | GetMatrixValue (unsigned int i, unsigned int j, unsigned int matrixIndex) const |
| int | GetMaximumNumberIterations () |
| unsigned int | GetNumberOfMatrices () |
| unsigned int | GetNumberOfSolutions () |
| unsigned int | GetNumberOfVectors () |
| int | GetOutputNumber () |
| double | GetOverrelaxationParameter () |
| int | GetRedBlackOrderingSwitch () |
| int | GetRemoveSwitch () |
| double | GetSmallestJacobiEigenvalueEstimate () |
| virtual Float | GetSolutionValue (unsigned int i, unsigned int solutionIndex) const |
| int | GetSymmetricMatrixFlag () |
| unsigned int | GetSystemOrder () const |
| double | GetTimeForCall () |
| double | GetTimeToConvergence () |
| int | GetTimingSwitch () |
| double | GetTolerance () |
| virtual Float | GetVectorValue (unsigned int i, unsigned int vectorIndex) const |
| int | GetWorkspaceUsed () |
| 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) |
| void | JacobianConjugateGradient () |
| void | JacobianSemiIterative () |
| 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 | OptimizeMatrixStorage (unsigned int matrixIndex, unsigned int tempMatrixIndex) |
| void | ReducedSystemConjugateGradient () |
| void | ReducedSystemSemiIteration () |
| virtual void | ReverseCuthillMckeeOrdering (ColumnArray &newNumbering, unsigned int matrixIndex=0) |
| void | ScaleMatrix (Float scale, unsigned int matrixIndex) |
| void | ScaleSolution (Float scale, unsigned int solutionIndex=0) |
| void | ScaleVector (Float scale, unsigned int vectorIndex=0) |
| void | SetAccuracy (double i) |
| void | SetAdaptiveCaseSwitch (int i) |
| void | SetAdaptiveSwitch (int i) |
| void | SetCommunicationSwitch (int i) |
| void | SetDampingFactor (double i) |
| void | SetDigitsInError (double i) |
| void | SetDigitsInResidual (double i) |
| void | SetErrorAnalysisSwitch (int i) |
| void | SetEstimatedSpectralRadiusLU (double i) |
| void | SetEstimatedSpectralRadiusSSOR (double i) |
| void | SetLargestJacobiEigenvalueEstimate (double i) |
| virtual void | SetMatrixValue (unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) |
| virtual void | SetMaximumNonZeroValuesInMatrix (unsigned int maxNonZeroValues) |
| void | SetMaximumNumberIterations (int i) |
| void | SetNumberOfMatrices (unsigned int nMatrices) |
| void | SetNumberOfSolutions (unsigned int nSolutions) |
| void | SetNumberOfVectors (unsigned int nVectors) |
| void | SetOverrelaxationParameter (double i) |
| void | SetRedBlackOrderingSwitch (int i) |
| void | SetRemoveSwitch (int i) |
| void | SetSmallestJacobiEigenvalueEstimate (double i) |
| virtual void | SetSolutionValue (unsigned int i, Float value, unsigned int solutionIndex) |
| void | SetSymmetricMatrixFlag (int i) |
| void | SetSystemOrder (unsigned int N) |
| void | SetTimeForCall (double i) |
| void | SetTimeToConvergence (double i) |
| void | SetTimingSwitch (int i) |
| void | SetTolerance (double i) |
| virtual void | SetVectorValue (unsigned int i, Float value, unsigned int vectorIndex) |
| void | SetWorkspaceUsed (int i) |
| virtual void | Solve (void) |
| void | SuccessiveOverrelaxation () |
| 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) |
| void | SymmetricSuccessiveOverrelaxationConjugateGradient () |
| void | SymmetricSuccessiveOverrelaxationSuccessiveOverrelaxation () |
Protected Attributes | |
| unsigned int | m_NumberOfMatrices |
| unsigned int | m_NumberOfSolutions |
| unsigned int | m_NumberOfVectors |
| unsigned int | m_Order |
Private Attributes | |
| integer | m_IPARM [12] |
| MatrixHolder * | m_Matrices |
| unsigned int | m_MaximumNonZeroValues |
| integer | m_Method |
| ItkItpackSolverFunction | m_Methods [7] |
| doublereal | m_RPARM [12] |
| VectorHolder * | m_Solutions |
| VectorHolder * | m_Vectors |
LinearSystemWrapper class that uses Itpack numeric library functions to define and solve a sparse linear system of equations.
Definition at line 47 of file itkFEMLinearSystemWrapperItpack.h.
|
inherited |
Definition at line 59 of file itkFEMLinearSystemWrapper.h.
|
inherited |
Const pointer to an object.
Reimplemented from itk::fem::Solution.
Definition at line 57 of file itkFEMLinearSystemWrapper.h.
|
inherited |
Floating point storage type used within a class
Reimplemented in itk::fem::LinearSystemWrapperVNL, and itk::fem::LinearSystemWrapperDenseVNL.
Definition at line 47 of file itkFEMSolution.h.
| typedef std::vector<MatrixRepresentation> itk::fem::LinearSystemWrapperItpack::MatrixHolder |
vector of matrices typedef
Definition at line 61 of file itkFEMLinearSystemWrapperItpack.h.
matrix representatin typedef
Definition at line 58 of file itkFEMLinearSystemWrapperItpack.h.
|
inherited |
Pointer to an object.
Reimplemented from itk::fem::Solution.
Definition at line 56 of file itkFEMLinearSystemWrapper.h.
Standard "Self" typedef.
Reimplemented from itk::fem::LinearSystemWrapper.
Definition at line 52 of file itkFEMLinearSystemWrapperItpack.h.
Standard "Superclass" typedef.
Reimplemented from itk::fem::LinearSystemWrapper.
Definition at line 55 of file itkFEMLinearSystemWrapperItpack.h.
| typedef std::vector<VectorRepresentation> itk::fem::LinearSystemWrapperItpack::VectorHolder |
vector of vector typedef
Definition at line 71 of file itkFEMLinearSystemWrapperItpack.h.
| typedef double* itk::fem::LinearSystemWrapperItpack::VectorRepresentation |
vector representation typedef
Definition at line 68 of file itkFEMLinearSystemWrapperItpack.h.
| itk::fem::LinearSystemWrapperItpack::LinearSystemWrapperItpack | ( | ) |
Functions required by LinearSystemWrapper
constructor
constructor
Definition at line 29 of file itkFEMLinearSystemWrapperItpack.cxx.
References dfault_(), jcg_(), jsi_(), m_IPARM, m_Matrices, m_MaximumNonZeroValues, m_Method, m_Methods, m_RPARM, m_Solutions, m_Vectors, rscg_(), rssi_(), sor_(), ssorcg_(), and ssorsi_().
| itk::fem::LinearSystemWrapperItpack::~LinearSystemWrapperItpack | ( | void | ) |
destructor
Definition at line 867 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_NumberOfVectors, m_Solutions, and m_Vectors.
|
virtualinherited |
Adds two matrices storing the result in the first matrix.
| matrixIndex1 | index of a matrix to add the other matrix to |
| matrixIndex2 | index of matrix to add |
Definition at line 214 of file itkFEMLinearSystemWrapper.cxx.
|
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 295 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, and itk::fem::LinearSystemWrapper::m_Order.
|
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 495 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_Order, and m_Solutions.
|
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 433 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors, itk::fem::LinearSystemWrapper::m_Order, and m_Vectors.
|
virtualinherited |
Adds two vectors storing the result in the first vector.
| vectorIndex1 | index of a vector to add the other vector to |
| vectorIndex2 | index of vector to add |
Definition at line 242 of file itkFEMLinearSystemWrapper.cxx.
|
virtualinherited |
Clear all the data (matrices) inside the system, so that the system is ready to solve another problem from scratch.
Definition at line 31 of file itkFEMLinearSystemWrapper.cxx.
References itk::fem::LinearSystemWrapper::DestroyMatrix(), itk::fem::LinearSystemWrapper::DestroySolution(), itk::fem::LinearSystemWrapper::DestroyVector(), itk::fem::LinearSystemWrapper::m_NumberOfMatrices, itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_NumberOfVectors, and itk::fem::LinearSystemWrapper::SetSystemOrder().
|
virtualinherited |
Copies the content of source matrix to destination matrix. Any existing data in destination matrix is overwritten.
| matrixIndex1 | index of a matrix that will be copied |
| matrixIndex2 | index of matrix to copy to |
Definition at line 195 of file itkFEMLinearSystemWrapper.cxx.
|
pure virtualinherited |
Copy a solution vector to a vector
| solutionIndex | index of solution vector to copy |
| vectorIndex | index of vector to copy solution to |
|
virtual |
Definition at line 747 of file itkFEMLinearSystemWrapperItpack.cxx.
References InitializeVector(), itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_NumberOfVectors, itk::fem::LinearSystemWrapper::m_Order, m_Solutions, and m_Vectors.
|
virtualinherited |
Copy a vector
| vectorSource | index of a vector to copy |
| vectorDestination | index to copy the vector to |
Definition at line 231 of file itkFEMLinearSystemWrapper.cxx.
|
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.
Definition at line 779 of file itkFEMLinearSystemWrapperItpack.cxx.
References InitializeSolution(), itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_NumberOfVectors, itk::fem::LinearSystemWrapper::m_Order, m_Solutions, and m_Vectors.
|
virtual |
Free the memory from a matrix
| matrixIndex | index of matrix to destroy |
Implements itk::fem::LinearSystemWrapper.
Definition at line 204 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, and itk::fem::LinearSystemWrapper::m_NumberOfMatrices.
|
virtual |
Free teh mememory from a solution vector
| solutionIndex | index of solution vector to destroy |
Implements itk::fem::LinearSystemWrapper.
Definition at line 236 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions, and m_Solutions.
|
virtual |
Free the memory from a vector
| vectorIndex | index of vector to destroy |
Implements itk::fem::LinearSystemWrapper.
Definition at line 218 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors, and m_Vectors.
|
inline |
Get the level of accuracy
Definition at line 221 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get flag indicating ??
Definition at line 153 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Get flag indicating ??
Definition at line 142 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
virtual |
Returns the column index (zero based) of the i-th non zero (non allocated)element in a given row of A matrix. This function is usefull for optimizations when sparse matrices are used. Note that the value of an element with returned column index may actually be equal zero.
| row | Row number |
| cols | Which element in that row. Can range from 0 to number of elements allocated in a row. If this is out of range, the function returns -1. |
| matrixIndex | Index of matrix (defaults to 0) |
Reimplemented from itk::fem::LinearSystemWrapper.
Definition at line 315 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::ItpackSparseMatrix::m_IA, itk::fem::ItpackSparseMatrix::m_IWORK, itk::fem::ItpackSparseMatrix::m_JA, m_Matrices, itk::fem::ItpackSparseMatrix::m_MatrixFinalized, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, and itk::fem::LinearSystemWrapper::m_Order.
|
inline |
Get the communication flag - meaningless in this implementation
Definition at line 113 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Get the damping factor used by ??
Definition at line 254 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get the number of digits in the error
Definition at line 331 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get the number of digits in the residual
Definition at line 342 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get the flag for level of error reporting - meaningless in this implementation
Definition at line 210 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Get a flag indicating the type of error reporting
Definition at line 102 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
|
inline |
|
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 253 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, and itk::fem::LinearSystemWrapper::m_Order.
|
inline |
Get the maximum number iterations that may be performed
Definition at line 95 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inlineinherited |
Set the maximum number of entries permitted in a matrix
| matrixIndex | index of matrix to set value for |
| maxNonZeros | maximum number of entries allowed in matrix |
Definition at line 111 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_NumberOfMatrices.
|
inlineinherited |
Get Index of solutions used by system
Definition at line 133 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions.
|
inlineinherited |
Get Index of vectors used by system
Definition at line 122 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors.
|
inline |
Get the output number - meaningless in this implementation
Definition at line 120 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Get the over-relaxation parameter ??
Definition at line 265 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get the flag indicating use of red black ordering
Definition at line 177 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Get flag indicating ??
Definition at line 188 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
|
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.
Definition at line 458 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_Order, and m_Solutions.
|
inline |
Get flag indicating use of symmetric matrix (1=symmetric, 0=non-symmetric)
Definition at line 131 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inlineinherited |
Get the order of the system
Definition at line 91 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_Order.
Referenced by itk::fem::LinearSystemWrapperDenseVNL::InitializeMatrix(), itk::fem::LinearSystemWrapperVNL::InitializeMatrix(), itk::fem::LinearSystemWrapperDenseVNL::InitializeSolution(), itk::fem::LinearSystemWrapperVNL::InitializeSolution(), itk::fem::LinearSystemWrapperDenseVNL::InitializeVector(), itk::fem::LinearSystemWrapperVNL::InitializeVector(), itk::fem::LinearSystemWrapperVNL::MultiplyMatrixMatrix(), itk::fem::LinearSystemWrapperVNL::MultiplyMatrixVector(), and itk::fem::LinearSystemWrapperVNL::Solve().
|
inline |
Get the time for call
Definition at line 320 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get the time to convergence
Definition at line 309 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Get the flag indicating use of the timer routines - meaningless in this implementation
Definition at line 199 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Get the tolerance level
Definition at line 298 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
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 383 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors, itk::fem::LinearSystemWrapper::m_Order, and m_Vectors.
|
inline |
Get the size of the workspace used by solver
Definition at line 166 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
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.
Definition at line 66 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, m_MaximumNonZeroValues, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, and itk::fem::LinearSystemWrapper::m_Order.
|
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.
Definition at line 156 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_Order, and m_Solutions.
Referenced by CopyVector2Solution(), and Solve().
|
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.
Definition at line 108 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors, itk::fem::LinearSystemWrapper::m_Order, and m_Vectors.
Referenced by CopySolution2Vector().
|
virtual |
Check to see if matrix is initialized
| matrixIndex | index of matrix to examine |
Implements itk::fem::LinearSystemWrapper.
Definition at line 98 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices.
|
virtual |
Check to see if solution vector is initialized
| solutionIndex | index of solution vector to examine |
Implements itk::fem::LinearSystemWrapper.
Definition at line 196 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Solutions.
Referenced by Solve().
|
virtual |
Check to see if vector is initialized
| vectorIndex | vector of index to examine |
Implements itk::fem::LinearSystemWrapper.
Definition at line 147 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Vectors.
|
inline |
Set numerical solving method to jacobian conjugate gradient
Definition at line 347 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::MultiResSolve(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::RunRegistration().
|
inline |
Set numerical solving method to jacobian semi iterative
Definition at line 352 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
|
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.
Definition at line 811 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, and itk::fem::LinearSystemWrapper::m_NumberOfMatrices.
|
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.
Definition at line 836 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, itk::fem::LinearSystemWrapper::m_NumberOfVectors, and m_Vectors.
|
virtualinherited |
Remove all zeros from a matrix
| matrixIndex | index of matrix to remove zeros from |
| tempMatrixIndex | index of matrix to use for temp storage space |
Definition at line 166 of file itkFEMLinearSystemWrapper.cxx.
References itk::fem::LinearSystemWrapper::DestroyMatrix(), itk::fem::LinearSystemWrapper::GetColumnsOfNonZeroMatrixElementsInRow(), itk::fem::LinearSystemWrapper::GetMatrixValue(), itk::fem::LinearSystemWrapper::InitializeMatrix(), itk::fem::LinearSystemWrapper::m_Order, itk::fem::LinearSystemWrapper::SetMatrixValue(), and itk::fem::LinearSystemWrapper::SwapMatrices().
|
inline |
Set numerical solving method to reduced system conjugate gradient
Definition at line 374 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
|
inline |
Set numerical solving method to reduced system semi-iteration
Definition at line 378 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
|
virtualinherited |
Reorder the Degrees of Freedom in order to reduce bandwidth of matrix
| matrixIndex | index of matrix to examine |
| newNumbering | vector of new degree of freedom ordering |
Definition at line 252 of file itkFEMLinearSystemWrapper.cxx.
References itk::fem::LinearSystemWrapper::CuthillMckeeOrdering().
|
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.
Definition at line 361 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, and itk::fem::LinearSystemWrapper::m_Order.
|
inherited |
Multiplies all elements of a solution by a scalar
| scale | scalar to multiply all solution values by |
| solutionIndex | index of solution to modify |
Reimplemented in itk::fem::LinearSystemWrapperDenseVNL.
Definition at line 98 of file itkFEMLinearSystemWrapper.cxx.
References itk::fem::Solution::GetSolutionValue(), itk::fem::LinearSystemWrapper::m_Order, and itk::fem::LinearSystemWrapper::SetSolutionValue().
|
inherited |
Multiplies all elements of a vector by a scalar
| scale | scalar to multiply all vector values by |
| vectorIndex | index of vector to modify |
Reimplemented in itk::fem::LinearSystemWrapperDenseVNL.
Definition at line 79 of file itkFEMLinearSystemWrapper.cxx.
References itk::fem::LinearSystemWrapper::GetVectorValue(), itk::fem::LinearSystemWrapper::m_Order, and itk::fem::LinearSystemWrapper::SetVectorValue().
|
inline |
Set the level of accuracy for an acceptable solution
| i | accuracy desired |
Definition at line 216 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set flag for ??
| i | ?? |
Definition at line 148 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set flag for ???
| i | ?? |
Definition at line 137 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set the communication switch - meaningless in this implementation
| i | flag value |
Definition at line 108 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set the damping factor used by ??
| i | damping factor |
Definition at line 249 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set digits in error
| i | number of digits in error |
Definition at line 326 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set the number of digits in the residual
| i | number of digits in the residual |
Definition at line 337 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set the flag for level of error reporting - meaningless in this implementation
| i | flag for level of error analysis |
Definition at line 205 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set the ??
| i | ?? |
Definition at line 282 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set the ??
| i | ?? |
Definition at line 271 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set ??
| i | larges jacobian eigenvalue estimate |
Definition at line 227 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
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 274 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, itk::fem::LinearSystemWrapper::m_NumberOfMatrices, and itk::fem::LinearSystemWrapper::m_Order.
|
inlinevirtual |
Redefine methods defined in LinearSystemWrapper
set maximum number of entires in a matrix \param maxNonZeroValues maximum number of entries allowed in matrix \note this must be called before any matrices are initialized
Definition at line 393 of file itkFEMLinearSystemWrapperItpack.h.
References m_MaximumNonZeroValues.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::MultiResSolve(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::RunRegistration().
|
inline |
Set the maximum number of iterations
| i | maximum number of iterations that may be performed |
Definition at line 90 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::MultiResSolve(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::RunRegistration().
|
inlineinherited |
Set Index of matrices used by the system
| nMatrices | Index of matrices used by system |
Definition at line 97 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_NumberOfMatrices.
Referenced by itk::fem::SolverCrankNicolson::InitializeForSolution(), and itk::fem::Solver::InitializeLinearSystemWrapper().
|
inlineinherited |
Set Index of solutions used by the system
| nSolutions | Index of solutions used by system |
Definition at line 128 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions.
Referenced by itk::fem::SolverCrankNicolson::InitializeForSolution(), and itk::fem::Solver::InitializeLinearSystemWrapper().
|
inlineinherited |
Set Index of vectors used by the system
| nVectors | Index of vectors used by system |
Definition at line 117 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors.
Referenced by itk::fem::SolverCrankNicolson::InitializeForSolution(), and itk::fem::Solver::InitializeLinearSystemWrapper().
|
inline |
Set the over-relaxation parameter ??
| i | parameter |
Definition at line 260 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set flag indicating use of red black ordering
| i | 1=red black ordering used, 0=not |
Definition at line 172 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set flag indicating ??
| i | ?? |
Definition at line 183 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set ??
| i | smalles jacobian eigenvalue estimate |
Definition at line 238 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
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 469 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions, itk::fem::LinearSystemWrapper::m_Order, and m_Solutions.
|
inline |
Set flag indicating symmetric matrix is being used
| i | 1=symmetric, 0=non-symmetric |
Definition at line 126 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inlineinherited |
Set the order of the system. All matrices will be of size NxN and all vectors will be of size N
| N | order of the linear system |
Definition at line 86 of file itkFEMLinearSystemWrapper.h.
References itk::fem::LinearSystemWrapper::m_Order.
Referenced by itk::fem::LinearSystemWrapper::Clean(), itk::fem::SolverCrankNicolson::InitializeForSolution(), and itk::fem::Solver::InitializeMatrixForAssembly().
|
inline |
Set the time for call
| i | ?? |
Definition at line 315 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set the time to convergence
| i | ?? |
Definition at line 304 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
|
inline |
Set the flag indicating use of timer routines - meaningless in this implementation
| i | flag |
Definition at line 194 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
inline |
Set the tolerance level
| i | tolerance |
Definition at line 293 of file itkFEMLinearSystemWrapperItpack.h.
References m_RPARM.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::MultiResSolve(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage >::RunRegistration().
|
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 408 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors, itk::fem::LinearSystemWrapper::m_Order, and m_Vectors.
|
inline |
Set size of workspace used by solver
| i | size of the workspace vector |
Definition at line 160 of file itkFEMLinearSystemWrapperItpack.h.
References m_IPARM.
|
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.
Definition at line 519 of file itkFEMLinearSystemWrapperItpack.cxx.
References InitializeSolution(), IsSolutionInitialized(), m_IPARM, m_Matrices, m_Method, m_Methods, itk::fem::LinearSystemWrapper::m_Order, m_RPARM, m_Solutions, and m_Vectors.
|
inline |
Set numerical solving method to successive over-relaxation
Definition at line 357 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
|
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.
Definition at line 665 of file itkFEMLinearSystemWrapperItpack.cxx.
References m_Matrices, and itk::fem::LinearSystemWrapper::m_NumberOfMatrices.
|
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.
Definition at line 724 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfSolutions, and m_Solutions.
|
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.
Definition at line 701 of file itkFEMLinearSystemWrapperItpack.cxx.
References itk::fem::LinearSystemWrapper::m_NumberOfVectors, and m_Vectors.
|
inline |
Set numerical solving method to symmetric successive over-relaxation conjugate gradient
Definition at line 363 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
|
inline |
Set numerical solving method to symmetric successive over-relaxation successive over-relaxation
Definition at line 369 of file itkFEMLinearSystemWrapperItpack.h.
References m_Method.
|
private |
vector of length 12 used to initialize various parameters on input
Definition at line 497 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by GetAdaptiveCaseSwitch(), GetAdaptiveSwitch(), GetCommunicationSwitch(), GetErrorAnalysisSwitch(), GetErrorReportingLevel(), GetMaximumNumberIterations(), GetOutputNumber(), GetRedBlackOrderingSwitch(), GetRemoveSwitch(), GetSymmetricMatrixFlag(), GetTimingSwitch(), GetWorkspaceUsed(), LinearSystemWrapperItpack(), SetAdaptiveCaseSwitch(), SetAdaptiveSwitch(), SetCommunicationSwitch(), SetErrorAnalysisSwitch(), SetMaximumNumberIterations(), SetRedBlackOrderingSwitch(), SetRemoveSwitch(), SetSymmetricMatrixFlag(), SetTimingSwitch(), SetWorkspaceUsed(), and Solve().
|
private |
pointer to vector of matrices
Definition at line 478 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by AddMatrixValue(), DestroyMatrix(), GetColumnsOfNonZeroMatrixElementsInRow(), GetMatrixValue(), InitializeMatrix(), IsMatrixInitialized(), LinearSystemWrapperItpack(), MultiplyMatrixMatrix(), MultiplyMatrixVector(), ScaleMatrix(), SetMatrixValue(), Solve(), SwapMatrices(), and ~LinearSystemWrapperItpack().
|
private |
pointer to array of unsigned int's indicating max number of entries in each matrix
Definition at line 488 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by InitializeMatrix(), LinearSystemWrapperItpack(), and SetMaximumNonZeroValuesInMatrix().
|
private |
flag indicating which solver function should be used
Definition at line 494 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by JacobianConjugateGradient(), JacobianSemiIterative(), LinearSystemWrapperItpack(), ReducedSystemConjugateGradient(), ReducedSystemSemiIteration(), Solve(), SuccessiveOverrelaxation(), SymmetricSuccessiveOverrelaxationConjugateGradient(), and SymmetricSuccessiveOverrelaxationSuccessiveOverrelaxation().
|
private |
Array of pointers to available solver functions
Definition at line 491 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by LinearSystemWrapperItpack(), and Solve().
|
protectedinherited |
Number of matrices used by system
Definition at line 416 of file itkFEMLinearSystemWrapper.h.
Referenced by AddMatrixValue(), itk::fem::LinearSystemWrapper::Clean(), DestroyMatrix(), GetColumnsOfNonZeroMatrixElementsInRow(), GetMatrixValue(), itk::fem::LinearSystemWrapper::GetNumberOfMatrices(), itk::fem::LinearSystemWrapperDenseVNL::InitializeMatrix(), itk::fem::LinearSystemWrapperVNL::InitializeMatrix(), InitializeMatrix(), MultiplyMatrixMatrix(), MultiplyMatrixVector(), ScaleMatrix(), SetMatrixValue(), itk::fem::LinearSystemWrapper::SetNumberOfMatrices(), SwapMatrices(), itk::fem::LinearSystemWrapperDenseVNL::~LinearSystemWrapperDenseVNL(), and itk::fem::LinearSystemWrapperVNL::~LinearSystemWrapperVNL().
|
protectedinherited |
Number of solutions used by system
Definition at line 426 of file itkFEMLinearSystemWrapper.h.
Referenced by AddSolutionValue(), itk::fem::LinearSystemWrapper::Clean(), CopySolution2Vector(), CopyVector2Solution(), DestroySolution(), itk::fem::LinearSystemWrapper::GetNumberOfSolutions(), GetSolutionValue(), itk::fem::LinearSystemWrapperDenseVNL::InitializeSolution(), itk::fem::LinearSystemWrapperVNL::InitializeSolution(), InitializeSolution(), itk::fem::LinearSystemWrapper::SetNumberOfSolutions(), SetSolutionValue(), SwapSolutions(), itk::fem::LinearSystemWrapperDenseVNL::~LinearSystemWrapperDenseVNL(), ~LinearSystemWrapperItpack(), and itk::fem::LinearSystemWrapperVNL::~LinearSystemWrapperVNL().
|
protectedinherited |
Number of vectors used by system
Definition at line 421 of file itkFEMLinearSystemWrapper.h.
Referenced by AddVectorValue(), itk::fem::LinearSystemWrapper::Clean(), CopySolution2Vector(), CopyVector2Solution(), DestroyVector(), itk::fem::LinearSystemWrapper::GetNumberOfVectors(), GetVectorValue(), itk::fem::LinearSystemWrapperDenseVNL::InitializeVector(), itk::fem::LinearSystemWrapperVNL::InitializeVector(), InitializeVector(), MultiplyMatrixVector(), itk::fem::LinearSystemWrapper::SetNumberOfVectors(), SetVectorValue(), SwapVectors(), itk::fem::LinearSystemWrapperDenseVNL::~LinearSystemWrapperDenseVNL(), ~LinearSystemWrapperItpack(), and itk::fem::LinearSystemWrapperVNL::~LinearSystemWrapperVNL().
|
protectedinherited |
Order of linear system
Definition at line 411 of file itkFEMLinearSystemWrapper.h.
Referenced by AddMatrixValue(), AddSolutionValue(), AddVectorValue(), CopySolution2Vector(), CopyVector2Solution(), itk::fem::LinearSystemWrapper::CuthillMckeeOrdering(), itk::fem::LinearSystemWrapper::FollowConnectionsCuthillMckeeOrdering(), itk::fem::LinearSystemWrapper::GetColumnsOfNonZeroMatrixElementsInRow(), GetColumnsOfNonZeroMatrixElementsInRow(), GetMatrixValue(), GetSolutionValue(), itk::fem::LinearSystemWrapper::GetSystemOrder(), GetVectorValue(), InitializeMatrix(), InitializeSolution(), InitializeVector(), itk::fem::LinearSystemWrapper::MultiplyMatrixVector(), itk::fem::LinearSystemWrapper::OptimizeMatrixStorage(), itk::fem::LinearSystemWrapper::ScaleMatrix(), ScaleMatrix(), itk::fem::LinearSystemWrapper::ScaleSolution(), itk::fem::LinearSystemWrapper::ScaleVector(), SetMatrixValue(), SetSolutionValue(), itk::fem::LinearSystemWrapper::SetSystemOrder(), SetVectorValue(), and Solve().
|
private |
vector of length 12 used to initialize various parameters on input
Definition at line 500 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by GetAccuracy(), GetDampingFactor(), GetDigitsInError(), GetDigitsInResidual(), GetEstimatedSpectralRadiusLU(), GetEstimatedSpectralRadiusSSOR(), GetLargestJacobiEigenvalueEstimate(), GetOverrelaxationParameter(), GetSmallestJacobiEigenvalueEstimate(), GetTimeForCall(), GetTimeToConvergence(), GetTolerance(), LinearSystemWrapperItpack(), SetAccuracy(), SetDampingFactor(), SetDigitsInError(), SetDigitsInResidual(), SetEstimatedSpectralRadiusLU(), SetEstimatedSpectralRadiusSSOR(), SetLargestJacobiEigenvalueEstimate(), SetOverrelaxationParameter(), SetSmallestJacobiEigenvalueEstimate(), SetTimeForCall(), SetTimeToConvergence(), SetTolerance(), and Solve().
|
private |
pointer to vector of solution arrays
Definition at line 484 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by AddSolutionValue(), CopySolution2Vector(), CopyVector2Solution(), DestroySolution(), GetSolutionValue(), InitializeSolution(), IsSolutionInitialized(), LinearSystemWrapperItpack(), SetSolutionValue(), Solve(), SwapSolutions(), and ~LinearSystemWrapperItpack().
|
private |
pointer to vector of force arrays
Definition at line 481 of file itkFEMLinearSystemWrapperItpack.h.
Referenced by AddVectorValue(), CopySolution2Vector(), CopyVector2Solution(), DestroyVector(), GetVectorValue(), InitializeVector(), IsVectorInitialized(), LinearSystemWrapperItpack(), MultiplyMatrixVector(), SetVectorValue(), Solve(), SwapVectors(), and ~LinearSystemWrapperItpack().