Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::fem::LinearSystemWrapperItpack Class Reference

#include <itkFEMLinearSystemWrapperItpack.h>

Inheritance diagram for itk::fem::LinearSystemWrapperItpack:

Inheritance graph
[legend]
Collaboration diagram for itk::fem::LinearSystemWrapperItpack:

Collaboration graph
[legend]

List of all members.


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 48 of file itkFEMLinearSystemWrapperItpack.h.


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

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=0)
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 ()
 LinearSystemWrapperItpack ()
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 ()
 ~LinearSystemWrapperItpack ()

Protected Attributes

unsigned int m_NumberOfMatrices
unsigned int m_NumberOfSolutions
unsigned int m_NumberOfVectors
unsigned int m_Order

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::LinearSystemWrapperDenseVNL, and itk::fem::LinearSystemWrapperVNL.

Definition at line 50 of file itkFEMSolution.h.

vector of matrices typedef

Definition at line 62 of file itkFEMLinearSystemWrapperItpack.h.

matrix representatin typedef

Definition at line 59 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 53 of file itkFEMLinearSystemWrapperItpack.h.

Standard "Superclass" typedef.

Reimplemented from itk::fem::LinearSystemWrapper.

Definition at line 56 of file itkFEMLinearSystemWrapperItpack.h.

vector of vector typedef

Definition at line 72 of file itkFEMLinearSystemWrapperItpack.h.

vector representation typedef

Definition at line 69 of file itkFEMLinearSystemWrapperItpack.h.


Constructor & Destructor Documentation

itk::fem::LinearSystemWrapperItpack::LinearSystemWrapperItpack (  ) 

-----------------------------------------------------------------

Functions required by LinearSystemWrapper

----------------------------------------------------------------- constructor

itk::fem::LinearSystemWrapperItpack::~LinearSystemWrapperItpack (  ) 

destructor


Member Function Documentation

virtual void itk::fem::LinearSystemWrapper::AddMatrixMatrix ( unsigned int  matrixIndex1,
unsigned int  matrixIndex2 
) [virtual, inherited]

Adds two matrices storing the result in the first matrix.

Parameters:
matrixIndex1 index of a matrix to add the other matrix to
matrixIndex2 index of matrix to add

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

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

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

virtual void itk::fem::LinearSystemWrapper::AddVectorVector ( unsigned int  vectorIndex1,
unsigned int  vectorIndex2 
) [virtual, inherited]

Adds two vectors storing the result in the first vector.

Parameters:
vectorIndex1 index of a vector to add the other vector to
vectorIndex2 index of vector to add

virtual void itk::fem::LinearSystemWrapper::Clean ( void   )  [virtual, inherited]

Clear all the data (matrices) inside the system, so that the system is ready to solve another problem from scratch.

virtual void itk::fem::LinearSystemWrapper::CopyMatrix ( unsigned int  matrixIndex1,
unsigned int  matrixIndex2 
) [virtual, inherited]

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

Parameters:
matrixIndex1 index of a matrix that will be copied
matrixIndex2 index of matrix to copy to

virtual void itk::fem::LinearSystemWrapper::CopySolution2Vector ( unsigned int  solutionIndex,
unsigned int  vectorIndex 
) [pure virtual, inherited]

Copy a solution vector to a vector

Parameters:
solutionIndex index of solution vector to copy
vectorIndex index of vector to copy solution to

virtual void itk::fem::LinearSystemWrapperItpack::CopySolution2Vector ( unsigned  solutionIndex,
unsigned int  vectorIndex 
) [virtual]

virtual void itk::fem::LinearSystemWrapper::CopyVector ( unsigned int  vectorSource,
unsigned int  vectorDestination 
) [virtual, inherited]

Copy a vector

Parameters:
vectorSource index of a vector to copy
vectorDestination index to copy the vector to

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

Copy a vector to a solution vector

Parameters:
vectorIndex index of a vector to copy
solutionIndex index of a solution to copy the solution to

Implements itk::fem::LinearSystemWrapper.

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

Free the memory from a matrix

Parameters:
matrixIndex index of matrix to destroy

Implements itk::fem::LinearSystemWrapper.

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

Free teh mememory from a solution vector

Parameters:
solutionIndex index of solution vector to destroy

Implements itk::fem::LinearSystemWrapper.

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

Free the memory from a vector

Parameters:
vectorIndex index of vector to destroy

Implements itk::fem::LinearSystemWrapper.

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

Get the level of accuracy

Definition at line 222 of file itkFEMLinearSystemWrapperItpack.h.

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

Get flag indicating ??

Definition at line 154 of file itkFEMLinearSystemWrapperItpack.h.

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

Get flag indicating ??

Definition at line 143 of file itkFEMLinearSystemWrapperItpack.h.

virtual void itk::fem::LinearSystemWrapper::GetColumnsOfNonZeroMatrixElementsInRow ( unsigned int  row,
ColumnArray cols,
unsigned int  matrixIndex = 0 
) [virtual, inherited]

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:
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)

virtual void itk::fem::LinearSystemWrapperItpack::GetColumnsOfNonZeroMatrixElementsInRow ( unsigned int  row,
ColumnArray cols,
unsigned int  matrixIndex 
) [virtual]

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

Get the communication flag - meaningless in this implementation

Definition at line 114 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the damping factor used by ??

Definition at line 255 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the number of digits in the error

Definition at line 332 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the number of digits in the residual

Definition at line 343 of file itkFEMLinearSystemWrapperItpack.h.

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

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

Definition at line 211 of file itkFEMLinearSystemWrapperItpack.h.

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

Get a flag indicating the type of error reporting

Definition at line 103 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the ??

Definition at line 288 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the ??

Definition at line 277 of file itkFEMLinearSystemWrapperItpack.h.

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

Get ??

Definition at line 233 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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:
i row of the element
j column of the element
matrixIndex index of matrix to get value from

Implements itk::fem::LinearSystemWrapper.

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

Get the maximum number iterations that may be performed

Definition at line 96 of file itkFEMLinearSystemWrapperItpack.h.

unsigned int itk::fem::LinearSystemWrapper::GetNumberOfMatrices (  )  [inline, inherited]

Set the maximum number of entries permitted in a matrix

Parameters:
matrixIndex index of matrix to set value for
maxNonZeros maximum 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 112 of file itkFEMLinearSystemWrapper.h.

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

unsigned int itk::fem::LinearSystemWrapper::GetNumberOfSolutions (  )  [inline, inherited]

Get Index of solutions used by system

Definition at line 134 of file itkFEMLinearSystemWrapper.h.

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

unsigned int itk::fem::LinearSystemWrapper::GetNumberOfVectors (  )  [inline, inherited]

Get Index of vectors used by system

Definition at line 123 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 121 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the over-relaxation parameter ??

Definition at line 266 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the flag indicating use of red black ordering

Definition at line 178 of file itkFEMLinearSystemWrapperItpack.h.

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

Get flag indicating ??

Definition at line 189 of file itkFEMLinearSystemWrapperItpack.h.

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

Get ??

Definition at line 244 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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:
i element index in solution vector
solutionIndex index 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.

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

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

Definition at line 132 of file itkFEMLinearSystemWrapperItpack.h.

unsigned int itk::fem::LinearSystemWrapper::GetSystemOrder (  )  const [inline, inherited]

Get the order of the system

Definition at line 92 of file itkFEMLinearSystemWrapper.h.

References itk::fem::LinearSystemWrapper::m_Order.

double itk::fem::LinearSystemWrapperItpack::GetTimeForCall (  )  [inline]

Get the time for call

Definition at line 321 of file itkFEMLinearSystemWrapperItpack.h.

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

Get the time to convergence

Definition at line 310 of file itkFEMLinearSystemWrapperItpack.h.

int itk::fem::LinearSystemWrapperItpack::GetTimingSwitch (  )  [inline]

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

Definition at line 200 of file itkFEMLinearSystemWrapperItpack.h.

double itk::fem::LinearSystemWrapperItpack::GetTolerance (  )  [inline]

Get the tolerance level

Definition at line 299 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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:
i row of the element
vectorIndex index of vector to get value from

Implements itk::fem::LinearSystemWrapper.

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 167 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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:
matrixIndex index of matrix to initialize

Implements itk::fem::LinearSystemWrapper.

virtual 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:
solutionIndex index of solution vector to initialize

Implements itk::fem::LinearSystemWrapper.

virtual 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.

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

Check to see if matrix is initialized

Parameters:
matrixIndex index of matrix to examine

Implements itk::fem::LinearSystemWrapper.

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

Check to see if solution vector is initialized

Parameters:
solutionIndex index of solution vector to examine

Implements itk::fem::LinearSystemWrapper.

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

Check to see if vector is initialized

Parameters:
vectorIndex vector of index to examine

Implements itk::fem::LinearSystemWrapper.

void itk::fem::LinearSystemWrapperItpack::JacobianConjugateGradient (  )  [inline]

Set numerical solving method to jacobian conjugate gradient

Definition at line 348 of file itkFEMLinearSystemWrapperItpack.h.

void itk::fem::LinearSystemWrapperItpack::JacobianSemiIterative (  )  [inline]

Set numerical solving method to jacobian semi iterative

Definition at line 353 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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:
leftMatrixIndex index of left matrix
rightMatrixIndex index of right matrix
resultMatrixIndex index of matrix where solution is stored

Implements itk::fem::LinearSystemWrapper.

virtual void itk::fem::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:
matrixIndex index of matrix to multiply
vectorIndex index of vector to multiply
resultVectorIndex index of vector where result is store

Reimplemented from itk::fem::LinearSystemWrapper.

virtual void itk::fem::LinearSystemWrapper::OptimizeMatrixStorage ( unsigned int  matrixIndex,
unsigned int  tempMatrixIndex 
) [virtual, inherited]

Remove all zeros from a matrix

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

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

Set numerical solving method to reduced system conjugate gradient

Definition at line 375 of file itkFEMLinearSystemWrapperItpack.h.

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

Set numerical solving method to reduced system semi-iteration

Definition at line 379 of file itkFEMLinearSystemWrapperItpack.h.

virtual void itk::fem::LinearSystemWrapper::ReverseCuthillMckeeOrdering ( ColumnArray newNumbering,
unsigned int  matrixIndex = 0 
) [virtual, inherited]

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

Parameters:
matrixIndex index of matrix to examine
newNumbering vector of new degree of freedom ordering

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

Multiplies all elements of a matrix by a scalar

Parameters:
scale scalar to multiply all matrix values by
matrixIndex index of matrix to modify

Reimplemented from itk::fem::LinearSystemWrapper.

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

Multiplies all elements of a solution by a scalar

Parameters:
scale scalar to multiply all solution values by
solutionIndex index of solution to modify

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

Multiplies all elements of a vector by a scalar

Parameters:
scale scalar to multiply all vector values by
vectorIndex index of vector to modify

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

Set the level of accuracy for an acceptable solution

Parameters:
i accuracy desired

Definition at line 217 of file itkFEMLinearSystemWrapperItpack.h.

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

Set flag for ??

Parameters:
i ??

Definition at line 149 of file itkFEMLinearSystemWrapperItpack.h.

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

Set flag for ???

Parameters:
i ??

Definition at line 138 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the communication switch - meaningless in this implementation

Parameters:
i flag value

Definition at line 109 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the damping factor used by ??

Parameters:
i damping factor

Definition at line 250 of file itkFEMLinearSystemWrapperItpack.h.

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

Set digits in error

Parameters:
i number of digits in error

Definition at line 327 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the number of digits in the residual

Parameters:
i number of digits in the residual

Definition at line 338 of file itkFEMLinearSystemWrapperItpack.h.

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

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

Parameters:
i flag for level of error analysis

Definition at line 206 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the ??

Parameters:
i ??

Definition at line 283 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the ??

Parameters:
i ??

Definition at line 272 of file itkFEMLinearSystemWrapperItpack.h.

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

Set ??

Parameters:
i larges jacobian eigenvalue estimate

Definition at line 228 of file itkFEMLinearSystemWrapperItpack.h.

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

virtual void itk::fem::LinearSystemWrapperItpack::SetMaximumNonZeroValuesInMatrix ( unsigned int  maxNonZeroValues  )  [inline, virtual]

-----------------------------------------------------------------

Redefine methods defined in LinearSystemWrapper

----------------------------------------------------------------- set maximum number of entires in a matrix

Parameters:
maxNonZeroValues maximum number of entries allowed in matrix
Note:
this must be called before any matrices are initialized

Definition at line 394 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the maximum number of iterations

Parameters:
i maximum number of iterations that may be performed

Definition at line 91 of file itkFEMLinearSystemWrapperItpack.h.

void itk::fem::LinearSystemWrapper::SetNumberOfMatrices ( unsigned int  nMatrices  )  [inline, inherited]

Set Index of matrices used by the system

Parameters:
nMatrices Index of matrices used by system

Definition at line 98 of file itkFEMLinearSystemWrapper.h.

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

void itk::fem::LinearSystemWrapper::SetNumberOfSolutions ( unsigned int  nSolutions  )  [inline, inherited]

Set Index of solutions used by the system

Parameters:
nSolutions Index of solutions used by system

Definition at line 129 of file itkFEMLinearSystemWrapper.h.

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

void itk::fem::LinearSystemWrapper::SetNumberOfVectors ( unsigned int  nVectors  )  [inline, inherited]

Set Index of vectors used by the system

Parameters:
nVectors Index of vectors used by system

Definition at line 118 of file itkFEMLinearSystemWrapper.h.

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

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

Set the over-relaxation parameter ??

Parameters:
i parameter

Definition at line 261 of file itkFEMLinearSystemWrapperItpack.h.

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

Set flag indicating use of red black ordering

Parameters:
i 1=red black ordering used, 0=not

Definition at line 173 of file itkFEMLinearSystemWrapperItpack.h.

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

Set flag indicating ??

Parameters:
i ??

Definition at line 184 of file itkFEMLinearSystemWrapperItpack.h.

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

Set ??

Parameters:
i smalles jacobian eigenvalue estimate

Definition at line 239 of file itkFEMLinearSystemWrapperItpack.h.

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

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

Set flag indicating symmetric matrix is being used

Parameters:
i 1=symmetric, 0=non-symmetric

Definition at line 127 of file itkFEMLinearSystemWrapperItpack.h.

void itk::fem::LinearSystemWrapper::SetSystemOrder ( unsigned int  N  )  [inline, inherited]

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

Parameters:
N order of the linear system

Definition at line 87 of file itkFEMLinearSystemWrapper.h.

References itk::fem::LinearSystemWrapper::m_Order.

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

Set the time for call

Parameters:
i ??

Definition at line 316 of file itkFEMLinearSystemWrapperItpack.h.

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

Set the time to convergence

Parameters:
i ??

Definition at line 305 of file itkFEMLinearSystemWrapperItpack.h.

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

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

Parameters:
i flag

Definition at line 195 of file itkFEMLinearSystemWrapperItpack.h.

void itk::fem::LinearSystemWrapperItpack::SetTolerance ( double  i  )  [inline]

Set the tolerance level

Parameters:
i tolerance

Definition at line 294 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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:
i row of the element
value new value of the element
vectorIndex index of vector to set value in

Implements itk::fem::LinearSystemWrapper.

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

Set size of workspace used by solver

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

Definition at line 161 of file itkFEMLinearSystemWrapperItpack.h.

virtual 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.

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

Set numerical solving method to successive over-relaxation

Definition at line 358 of file itkFEMLinearSystemWrapperItpack.h.

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

Swaps access indices of any 2 matrices in the linear system

Parameters:
matrixIndex1 index of a matrix to swap
matrixIndex2 index of matrix to swap with

Implements itk::fem::LinearSystemWrapper.

virtual 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:
solutionIndex1 index of a solution vector to swap
solutionIndex2 index of solution vector to swap with

Implements itk::fem::LinearSystemWrapper.

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

Swaps access indices of any 2 vectors in the linear system

Parameters:
vectorIndex1 index of a vector to swap
vectorIndex2 index of vector to swap with

Implements itk::fem::LinearSystemWrapper.

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

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

Definition at line 364 of file itkFEMLinearSystemWrapperItpack.h.

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

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

Definition at line 370 of file itkFEMLinearSystemWrapperItpack.h.


Member Data Documentation

unsigned int itk::fem::LinearSystemWrapper::m_NumberOfMatrices [protected, inherited]

unsigned int itk::fem::LinearSystemWrapper::m_NumberOfSolutions [protected, inherited]

unsigned int itk::fem::LinearSystemWrapper::m_NumberOfVectors [protected, inherited]

unsigned int itk::fem::LinearSystemWrapper::m_Order [protected, inherited]


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

Generated at Thu May 28 19:07:31 2009 for ITK by doxygen 1.5.5 written by Dimitri van Heesch, © 1997-2000