Orfeo Toolbox  3.16
Public Types | Public Member Functions | Protected Attributes | Private Attributes
itk::fem::LinearSystemWrapperItpack Class Reference

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:

List of all members.

Public Types

typedef std::vector< unsigned int > ColumnArray
typedef const SelfConstPointer
typedef double Float
typedef std::vector
< MatrixRepresentation
MatrixHolder
typedef ItpackSparseMatrix MatrixRepresentation
typedef SelfPointer
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]
MatrixHolderm_Matrices
unsigned int m_MaximumNonZeroValues
integer m_Method
ItkItpackSolverFunction m_Methods [7]
doublereal m_RPARM [12]
VectorHolderm_Solutions
VectorHolderm_Vectors

Detailed Description

LinearSystemWrapper class that uses Itpack numeric library functions to define and solve a sparse linear system of equations.

See also:
LinearSystemWrapper

Definition at line 47 of file itkFEMLinearSystemWrapperItpack.h.


Member Typedef Documentation

typedef std::vector<unsigned int> itk::fem::LinearSystemWrapper::ColumnArray
inherited

Definition at line 59 of file itkFEMLinearSystemWrapper.h.

Const pointer to an object.

Reimplemented from itk::fem::Solution.

Definition at line 57 of file itkFEMLinearSystemWrapper.h.

typedef double itk::fem::Solution::Float
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.

vector of matrices typedef

Definition at line 61 of file itkFEMLinearSystemWrapperItpack.h.

matrix representatin typedef

Definition at line 58 of file itkFEMLinearSystemWrapperItpack.h.

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.

vector of vector typedef

Definition at line 71 of file itkFEMLinearSystemWrapperItpack.h.

vector representation typedef

Definition at line 68 of file itkFEMLinearSystemWrapperItpack.h.


Constructor & Destructor Documentation

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  )

Member Function Documentation

void itk::fem::LinearSystemWrapper::AddMatrixMatrix ( unsigned int  matrixIndex1,
unsigned int  matrixIndex2 
)
virtualinherited

Adds two matrices storing the result in the first matrix.

Parameters:
matrixIndex1index of a matrix to add the other matrix to
matrixIndex2index of matrix to add

Definition at line 214 of file itkFEMLinearSystemWrapper.cxx.

void itk::fem::LinearSystemWrapperItpack::AddMatrixValue ( unsigned int  i,
unsigned int  j,
Float  value,
unsigned int  matrixIndex 
)
virtual

Virtual function to add a value to a specific element of the A matrix.

Parameters:
irow of the element
jcolumn of the element
valuevalue to add to the existing element
matrixIndexindex 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.

void itk::fem::LinearSystemWrapperItpack::AddSolutionValue ( unsigned int  i,
Float  value,
unsigned int  solutionIndex 
)
virtual

Virtual function to add a value of specific element of the solution vector.

Parameters:
ielement Index in solution vector
valuenew value of the element
solutionIndexindex 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.

void itk::fem::LinearSystemWrapperItpack::AddVectorValue ( unsigned int  i,
Float  value,
unsigned int  vectorIndex 
)
virtual

Virtual function to add a value to a specific element of the B vector.

Parameters:
irow of the element
valuevalue to add to the existing element
vectorIndexindex 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.

void itk::fem::LinearSystemWrapper::AddVectorVector ( unsigned int  vectorIndex1,
unsigned int  vectorIndex2 
)
virtualinherited

Adds two vectors storing the result in the first vector.

Parameters:
vectorIndex1index of a vector to add the other vector to
vectorIndex2index of vector to add

Definition at line 242 of file itkFEMLinearSystemWrapper.cxx.

void itk::fem::LinearSystemWrapper::Clean ( void  )
virtualinherited
void itk::fem::LinearSystemWrapper::CopyMatrix ( unsigned int  matrixIndex1,
unsigned int  matrixIndex2 
)
virtualinherited

Copies the content of source matrix to destination matrix. Any existing data in destination matrix is overwritten.

Parameters:
matrixIndex1index of a matrix that will be copied
matrixIndex2index of matrix to copy to

Definition at line 195 of file itkFEMLinearSystemWrapper.cxx.

virtual void itk::fem::LinearSystemWrapper::CopySolution2Vector ( unsigned int  solutionIndex,
unsigned int  vectorIndex 
)
pure virtualinherited

Copy a solution vector to a vector

Parameters:
solutionIndexindex of solution vector to copy
vectorIndexindex of vector to copy solution to
void itk::fem::LinearSystemWrapperItpack::CopySolution2Vector ( unsigned  solutionIndex,
unsigned int  vectorIndex 
)
virtual
void itk::fem::LinearSystemWrapper::CopyVector ( unsigned int  vectorSource,
unsigned int  vectorDestination 
)
virtualinherited

Copy a vector

Parameters:
vectorSourceindex of a vector to copy
vectorDestinationindex to copy the vector to

Definition at line 231 of file itkFEMLinearSystemWrapper.cxx.

void itk::fem::LinearSystemWrapperItpack::CopyVector2Solution ( unsigned int  vectorIndex,
unsigned int  solutionIndex 
)
virtual

Copy a vector to a solution vector

Parameters:
vectorIndexindex of a vector to copy
solutionIndexindex 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.

void itk::fem::LinearSystemWrapperItpack::DestroyMatrix ( unsigned int  matrixIndex)
virtual

Free the memory from a matrix

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

void itk::fem::LinearSystemWrapperItpack::DestroySolution ( unsigned int  solutionIndex)
virtual

Free teh mememory from a solution vector

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

void itk::fem::LinearSystemWrapperItpack::DestroyVector ( unsigned int  vectorIndex)
virtual

Free the memory from a vector

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

double itk::fem::LinearSystemWrapperItpack::GetAccuracy ( )
inline

Get the level of accuracy

Definition at line 221 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

int itk::fem::LinearSystemWrapperItpack::GetAdaptiveCaseSwitch ( )
inline

Get flag indicating ??

Definition at line 153 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

int itk::fem::LinearSystemWrapperItpack::GetAdaptiveSwitch ( )
inline

Get flag indicating ??

Definition at line 142 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::GetColumnsOfNonZeroMatrixElementsInRow ( unsigned int  row,
ColumnArray cols,
unsigned int  matrixIndex 
)
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.

Parameters:
rowRow number
colsWhich 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.
matrixIndexIndex 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.

int itk::fem::LinearSystemWrapperItpack::GetCommunicationSwitch ( )
inline

Get the communication flag - meaningless in this implementation

Definition at line 113 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

double itk::fem::LinearSystemWrapperItpack::GetDampingFactor ( )
inline

Get the damping factor used by ??

Definition at line 254 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

double itk::fem::LinearSystemWrapperItpack::GetDigitsInError ( )
inline

Get the number of digits in the error

Definition at line 331 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

double itk::fem::LinearSystemWrapperItpack::GetDigitsInResidual ( )
inline

Get the number of digits in the residual

Definition at line 342 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

int itk::fem::LinearSystemWrapperItpack::GetErrorAnalysisSwitch ( )
inline

Get the flag for level of error reporting - meaningless in this implementation

Definition at line 210 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

int itk::fem::LinearSystemWrapperItpack::GetErrorReportingLevel ( )
inline

Get a flag indicating the type of error reporting

Definition at line 102 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

double itk::fem::LinearSystemWrapperItpack::GetEstimatedSpectralRadiusLU ( )
inline

Get the ??

Definition at line 287 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

double itk::fem::LinearSystemWrapperItpack::GetEstimatedSpectralRadiusSSOR ( )
inline

Get the ??

Definition at line 276 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

double itk::fem::LinearSystemWrapperItpack::GetLargestJacobiEigenvalueEstimate ( )
inline

Get ??

Definition at line 232 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

LinearSystemWrapperItpack::Float itk::fem::LinearSystemWrapperItpack::GetMatrixValue ( unsigned int  i,
unsigned int  j,
unsigned int  matrixIndex 
) const
virtual

Virtual function to get a value of a specific element of a matrix.

Parameters:
irow of the element
jcolumn of the element
matrixIndexindex 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.

int itk::fem::LinearSystemWrapperItpack::GetMaximumNumberIterations ( )
inline

Get the maximum number iterations that may be performed

Definition at line 95 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

unsigned int itk::fem::LinearSystemWrapper::GetNumberOfMatrices ( )
inlineinherited

Set the maximum number of entries permitted in a matrix

Parameters:
matrixIndexindex of matrix to set value for
maxNonZerosmaximum number of entries allowed in matrix
Note:
in general this function does nothing, however it may redefined by the derived wrapper if necessary Get Index of matrices used by system

Definition at line 111 of file itkFEMLinearSystemWrapper.h.

References itk::fem::LinearSystemWrapper::m_NumberOfMatrices.

unsigned int itk::fem::LinearSystemWrapper::GetNumberOfSolutions ( )
inlineinherited

Get Index of solutions used by system

Definition at line 133 of file itkFEMLinearSystemWrapper.h.

References itk::fem::LinearSystemWrapper::m_NumberOfSolutions.

unsigned int itk::fem::LinearSystemWrapper::GetNumberOfVectors ( )
inlineinherited

Get Index of vectors used by system

Definition at line 122 of file itkFEMLinearSystemWrapper.h.

References itk::fem::LinearSystemWrapper::m_NumberOfVectors.

int itk::fem::LinearSystemWrapperItpack::GetOutputNumber ( )
inline

Get the output number - meaningless in this implementation

Definition at line 120 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

double itk::fem::LinearSystemWrapperItpack::GetOverrelaxationParameter ( )
inline

Get the over-relaxation parameter ??

Definition at line 265 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

int itk::fem::LinearSystemWrapperItpack::GetRedBlackOrderingSwitch ( )
inline

Get the flag indicating use of red black ordering

Definition at line 177 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

int itk::fem::LinearSystemWrapperItpack::GetRemoveSwitch ( )
inline

Get flag indicating ??

Definition at line 188 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

double itk::fem::LinearSystemWrapperItpack::GetSmallestJacobiEigenvalueEstimate ( )
inline

Get ??

Definition at line 243 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

LinearSystemWrapperItpack::Float itk::fem::LinearSystemWrapperItpack::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.

Parameters:
ielement index in solution vector
solutionIndexindex of solution vector to get value from
Note:
If the solution vector doesn't exist (problem was not yet solved), or the index i is out of range, the function returns 0.0.

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.

int itk::fem::LinearSystemWrapperItpack::GetSymmetricMatrixFlag ( )
inline

Get flag indicating use of symmetric matrix (1=symmetric, 0=non-symmetric)

Definition at line 131 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

unsigned int itk::fem::LinearSystemWrapper::GetSystemOrder ( ) const
inlineinherited
double itk::fem::LinearSystemWrapperItpack::GetTimeForCall ( )
inline

Get the time for call

Definition at line 320 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

double itk::fem::LinearSystemWrapperItpack::GetTimeToConvergence ( )
inline

Get the time to convergence

Definition at line 309 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

int itk::fem::LinearSystemWrapperItpack::GetTimingSwitch ( )
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.

double itk::fem::LinearSystemWrapperItpack::GetTolerance ( void  )
inline

Get the tolerance level

Definition at line 298 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

LinearSystemWrapperItpack::Float itk::fem::LinearSystemWrapperItpack::GetVectorValue ( unsigned int  i,
unsigned int  vectorIndex 
) const
virtual

Virtual function to get a value of a specific element of the B vector.

Parameters:
irow of the element
vectorIndexindex 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.

int itk::fem::LinearSystemWrapperItpack::GetWorkspaceUsed ( )
inline

Get the size of the workspace used by solver

Note:
after solver is called this is the amount of workspace actually used

Definition at line 166 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::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.

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

void itk::fem::LinearSystemWrapperItpack::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.

Parameters:
solutionIndexindex 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().

void itk::fem::LinearSystemWrapperItpack::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.

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().

bool itk::fem::LinearSystemWrapperItpack::IsMatrixInitialized ( unsigned int  matrixIndex)
virtual

Check to see if matrix is initialized

Parameters:
matrixIndexindex of matrix to examine

Implements itk::fem::LinearSystemWrapper.

Definition at line 98 of file itkFEMLinearSystemWrapperItpack.cxx.

References m_Matrices.

bool itk::fem::LinearSystemWrapperItpack::IsSolutionInitialized ( unsigned int  solutionIndex)
virtual

Check to see if solution vector is initialized

Parameters:
solutionIndexindex of solution vector to examine

Implements itk::fem::LinearSystemWrapper.

Definition at line 196 of file itkFEMLinearSystemWrapperItpack.cxx.

References m_Solutions.

Referenced by Solve().

bool itk::fem::LinearSystemWrapperItpack::IsVectorInitialized ( unsigned int  vectorIndex)
virtual

Check to see if vector is initialized

Parameters:
vectorIndexvector of index to examine

Implements itk::fem::LinearSystemWrapper.

Definition at line 147 of file itkFEMLinearSystemWrapperItpack.cxx.

References m_Vectors.

void itk::fem::LinearSystemWrapperItpack::JacobianConjugateGradient ( )
inline
void itk::fem::LinearSystemWrapperItpack::JacobianSemiIterative ( )
inline

Set numerical solving method to jacobian semi iterative

Definition at line 352 of file itkFEMLinearSystemWrapperItpack.h.

References m_Method.

void itk::fem::LinearSystemWrapperItpack::MultiplyMatrixMatrix ( unsigned int  resultMatrixIndex,
unsigned int  leftMatrixIndex,
unsigned int  rightMatrixIndex 
)
virtual

Perform a matrix*matrix operation and store the result in the linear system

Parameters:
leftMatrixIndexindex of left matrix
rightMatrixIndexindex of right matrix
resultMatrixIndexindex 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.

void itk::fem::LinearSystemWrapperItpack::MultiplyMatrixVector ( unsigned int  resultVectorIndex,
unsigned int  matrixIndex,
unsigned int  vectorIndex 
)
virtual

Perform a matrix*vector operation and store the result in the linear system

Parameters:
matrixIndexindex of matrix to multiply
vectorIndexindex of vector to multiply
resultVectorIndexindex 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.

void itk::fem::LinearSystemWrapper::OptimizeMatrixStorage ( unsigned int  matrixIndex,
unsigned int  tempMatrixIndex 
)
virtualinherited

Remove all zeros from a matrix

Parameters:
matrixIndexindex of matrix to remove zeros from
tempMatrixIndexindex of matrix to use for temp storage space
Note:
an extra matrix must be allocated by the solver in order to use this method

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().

void itk::fem::LinearSystemWrapperItpack::ReducedSystemConjugateGradient ( )
inline

Set numerical solving method to reduced system conjugate gradient

Definition at line 374 of file itkFEMLinearSystemWrapperItpack.h.

References m_Method.

void itk::fem::LinearSystemWrapperItpack::ReducedSystemSemiIteration ( )
inline

Set numerical solving method to reduced system semi-iteration

Definition at line 378 of file itkFEMLinearSystemWrapperItpack.h.

References m_Method.

void itk::fem::LinearSystemWrapper::ReverseCuthillMckeeOrdering ( ColumnArray newNumbering,
unsigned int  matrixIndex = 0 
)
virtualinherited

Reorder the Degrees of Freedom in order to reduce bandwidth of matrix

Parameters:
matrixIndexindex of matrix to examine
newNumberingvector of new degree of freedom ordering

Definition at line 252 of file itkFEMLinearSystemWrapper.cxx.

References itk::fem::LinearSystemWrapper::CuthillMckeeOrdering().

void itk::fem::LinearSystemWrapperItpack::ScaleMatrix ( Float  scale,
unsigned int  matrixIndex 
)
virtual

Multiplies all elements of a matrix by a scalar

Parameters:
scalescalar to multiply all matrix values by
matrixIndexindex 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.

void itk::fem::LinearSystemWrapper::ScaleSolution ( Float  scale,
unsigned int  solutionIndex = 0 
)
inherited

Multiplies all elements of a solution by a scalar

Parameters:
scalescalar to multiply all solution values by
solutionIndexindex 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().

void itk::fem::LinearSystemWrapper::ScaleVector ( Float  scale,
unsigned int  vectorIndex = 0 
)
inherited

Multiplies all elements of a vector by a scalar

Parameters:
scalescalar to multiply all vector values by
vectorIndexindex 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().

void itk::fem::LinearSystemWrapperItpack::SetAccuracy ( double  i)
inline

Set the level of accuracy for an acceptable solution

Parameters:
iaccuracy desired

Definition at line 216 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetAdaptiveCaseSwitch ( int  i)
inline

Set flag for ??

Parameters:
i??

Definition at line 148 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetAdaptiveSwitch ( int  i)
inline

Set flag for ???

Parameters:
i??

Definition at line 137 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetCommunicationSwitch ( int  i)
inline

Set the communication switch - meaningless in this implementation

Parameters:
iflag value

Definition at line 108 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetDampingFactor ( double  i)
inline

Set the damping factor used by ??

Parameters:
idamping factor

Definition at line 249 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetDigitsInError ( double  i)
inline

Set digits in error

Parameters:
inumber of digits in error

Definition at line 326 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetDigitsInResidual ( double  i)
inline

Set the number of digits in the residual

Parameters:
inumber of digits in the residual

Definition at line 337 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetErrorAnalysisSwitch ( int  i)
inline

Set the flag for level of error reporting - meaningless in this implementation

Parameters:
iflag for level of error analysis

Definition at line 205 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetEstimatedSpectralRadiusLU ( double  i)
inline

Set the ??

Parameters:
i??

Definition at line 282 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetEstimatedSpectralRadiusSSOR ( double  i)
inline

Set the ??

Parameters:
i??

Definition at line 271 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetLargestJacobiEigenvalueEstimate ( double  i)
inline

Set ??

Parameters:
ilarges jacobian eigenvalue estimate

Definition at line 227 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetMatrixValue ( unsigned int  i,
unsigned int  j,
Float  value,
unsigned int  matrixIndex 
)
virtual

Virtual function to set a value of a specific element of the A matrix.

Parameters:
irow of the element
jcolumn of the element
valuenew value of the element
matrixIndexindex 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.

virtual void itk::fem::LinearSystemWrapperItpack::SetMaximumNonZeroValuesInMatrix ( unsigned int  maxNonZeroValues)
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().

void itk::fem::LinearSystemWrapperItpack::SetMaximumNumberIterations ( int  i)
inline

Set the maximum number of iterations

Parameters:
imaximum 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().

void itk::fem::LinearSystemWrapper::SetNumberOfMatrices ( unsigned int  nMatrices)
inlineinherited

Set Index of matrices used by the system

Parameters:
nMatricesIndex 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().

void itk::fem::LinearSystemWrapper::SetNumberOfSolutions ( unsigned int  nSolutions)
inlineinherited

Set Index of solutions used by the system

Parameters:
nSolutionsIndex 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().

void itk::fem::LinearSystemWrapper::SetNumberOfVectors ( unsigned int  nVectors)
inlineinherited

Set Index of vectors used by the system

Parameters:
nVectorsIndex 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().

void itk::fem::LinearSystemWrapperItpack::SetOverrelaxationParameter ( double  i)
inline

Set the over-relaxation parameter ??

Parameters:
iparameter

Definition at line 260 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetRedBlackOrderingSwitch ( int  i)
inline

Set flag indicating use of red black ordering

Parameters:
i1=red black ordering used, 0=not

Definition at line 172 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetRemoveSwitch ( int  i)
inline

Set flag indicating ??

Parameters:
i??

Definition at line 183 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetSmallestJacobiEigenvalueEstimate ( double  i)
inline

Set ??

Parameters:
ismalles jacobian eigenvalue estimate

Definition at line 238 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetSolutionValue ( unsigned int  i,
Float  value,
unsigned int  solutionIndex 
)
virtual

Virtual function to set a value of specific element of the solution vector.

Parameters:
ielement Index in solution vector
valuenew value of the element
solutionIndexindex 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.

void itk::fem::LinearSystemWrapperItpack::SetSymmetricMatrixFlag ( int  i)
inline

Set flag indicating symmetric matrix is being used

Parameters:
i1=symmetric, 0=non-symmetric

Definition at line 126 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapper::SetSystemOrder ( unsigned int  N)
inlineinherited

Set the order of the system. All matrices will be of size NxN and all vectors will be of size N

Parameters:
Norder 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().

void itk::fem::LinearSystemWrapperItpack::SetTimeForCall ( double  i)
inline

Set the time for call

Parameters:
i??

Definition at line 315 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetTimeToConvergence ( double  i)
inline

Set the time to convergence

Parameters:
i??

Definition at line 304 of file itkFEMLinearSystemWrapperItpack.h.

References m_RPARM.

void itk::fem::LinearSystemWrapperItpack::SetTimingSwitch ( int  i)
inline

Set the flag indicating use of timer routines - meaningless in this implementation

Parameters:
iflag

Definition at line 194 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::SetTolerance ( double  i)
inline
void itk::fem::LinearSystemWrapperItpack::SetVectorValue ( unsigned int  i,
Float  value,
unsigned int  vectorIndex 
)
virtual

Virtual function to set a value of a specific element of the B vector.

Parameters:
irow of the element
valuenew value of the element
vectorIndexindex 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.

void itk::fem::LinearSystemWrapperItpack::SetWorkspaceUsed ( int  i)
inline

Set size of workspace used by solver

Parameters:
isize of the workspace vector
Note:
this value is set by default

Definition at line 160 of file itkFEMLinearSystemWrapperItpack.h.

References m_IPARM.

void itk::fem::LinearSystemWrapperItpack::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.

Note:
This function can only be called after the linear system was properly assembled.

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.

void itk::fem::LinearSystemWrapperItpack::SuccessiveOverrelaxation ( )
inline

Set numerical solving method to successive over-relaxation

Definition at line 357 of file itkFEMLinearSystemWrapperItpack.h.

References m_Method.

void itk::fem::LinearSystemWrapperItpack::SwapMatrices ( unsigned int  matrixIndex1,
unsigned int  matrixIndex2 
)
virtual

Swaps access indices of any 2 matrices in the linear system

Parameters:
matrixIndex1index of a matrix to swap
matrixIndex2index 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.

void itk::fem::LinearSystemWrapperItpack::SwapSolutions ( unsigned int  solutionIndex1,
unsigned int  solutionIndex2 
)
virtual

Swaps access indices of any 2 solution vectors in the linear system

Parameters:
solutionIndex1index of a solution vector to swap
solutionIndex2index 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.

void itk::fem::LinearSystemWrapperItpack::SwapVectors ( unsigned int  vectorIndex1,
unsigned int  vectorIndex2 
)
virtual

Swaps access indices of any 2 vectors in the linear system

Parameters:
vectorIndex1index of a vector to swap
vectorIndex2index 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.

void itk::fem::LinearSystemWrapperItpack::SymmetricSuccessiveOverrelaxationConjugateGradient ( )
inline

Set numerical solving method to symmetric successive over-relaxation conjugate gradient

Definition at line 363 of file itkFEMLinearSystemWrapperItpack.h.

References m_Method.

void itk::fem::LinearSystemWrapperItpack::SymmetricSuccessiveOverrelaxationSuccessiveOverrelaxation ( )
inline

Set numerical solving method to symmetric successive over-relaxation successive over-relaxation

Definition at line 369 of file itkFEMLinearSystemWrapperItpack.h.

References m_Method.


Member Data Documentation

integer itk::fem::LinearSystemWrapperItpack::m_IPARM[12]
private
MatrixHolder* itk::fem::LinearSystemWrapperItpack::m_Matrices
private
unsigned int itk::fem::LinearSystemWrapperItpack::m_MaximumNonZeroValues
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().

integer itk::fem::LinearSystemWrapperItpack::m_Method
private
ItkItpackSolverFunction itk::fem::LinearSystemWrapperItpack::m_Methods[7]
private

Array of pointers to available solver functions

Definition at line 491 of file itkFEMLinearSystemWrapperItpack.h.

Referenced by LinearSystemWrapperItpack(), and Solve().

unsigned int itk::fem::LinearSystemWrapper::m_NumberOfMatrices
protectedinherited
unsigned int itk::fem::LinearSystemWrapper::m_NumberOfSolutions
protectedinherited
unsigned int itk::fem::LinearSystemWrapper::m_NumberOfVectors
protectedinherited
unsigned int itk::fem::LinearSystemWrapper::m_Order
protectedinherited
doublereal itk::fem::LinearSystemWrapperItpack::m_RPARM[12]
private
VectorHolder* itk::fem::LinearSystemWrapperItpack::m_Solutions
private
VectorHolder* itk::fem::LinearSystemWrapperItpack::m_Vectors
private

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

Generated at Sun Feb 3 2013 02:59:08 for Orfeo Toolbox with doxygen 1.8.1.1