19 #ifndef __itkFEMLinearSystemWrapperItpack_h
20 #define __itkFEMLinearSystemWrapperItpack_h
36 integer *, doublereal *,
37 integer *, doublereal *, integer *);
561 virtual void ScaleMatrix(
Float scale,
unsigned int matrixIndex) ITK_OVERRIDE;
585 virtual void DestroyMatrix(
unsigned int matrixIndex) ITK_OVERRIDE;
591 virtual void DestroyVector(
unsigned int vectorIndex) ITK_OVERRIDE;
600 virtual Float GetMatrixValue(
unsigned int i,
unsigned int j,
unsigned int matrixIndex)
const ITK_OVERRIDE;
602 virtual void SetMatrixValue(
unsigned int i,
unsigned int j,
Float value,
unsigned int matrixIndex) ITK_OVERRIDE;
604 virtual void AddMatrixValue(
unsigned int i,
unsigned int j,
Float value,
unsigned int matrixIndex) ITK_OVERRIDE;
610 virtual void SetVectorValue(
unsigned int i,
Float value,
unsigned int vectorIndex) ITK_OVERRIDE;
612 virtual void AddVectorValue(
unsigned int i,
Float value,
unsigned int vectorIndex) ITK_OVERRIDE;
620 virtual void Solve(
void) ITK_OVERRIDE;
623 virtual
void SwapMatrices(
unsigned int matrixIndex1,
unsigned int matrixIndex2) ITK_OVERRIDE;
625 virtual
void SwapVectors(
unsigned int vectorIndex1,
unsigned int vectorIndex2) ITK_OVERRIDE;
627 virtual
void SwapSolutions(
unsigned int solutionIndex1,
unsigned int solutionIndex2) ITK_OVERRIDE;
629 virtual
void CopySolution2Vector(
unsigned solutionIndex,
unsigned int vectorIndex) ITK_OVERRIDE;
631 virtual
void CopyVector2Solution(
unsigned int vectorIndex,
unsigned int solutionIndex) ITK_OVERRIDE;
634 unsigned int rightMatrixIndex) ITK_OVERRIDE;
636 virtual
void MultiplyMatrixVector(
unsigned int resultVectorIndex,
unsigned int matrixIndex,
unsigned int vectorIndex) ITK_OVERRIDE;
644 virtual
void MultiplyMatrixSolution(
unsigned int resultVectorIndex,
unsigned int matrixIndex,
unsigned int solutionIndex) ITK_OVERRIDE;
708 #endif // #ifndef __itkFEMLinearSystemWrapperItpack_h
virtual void MultiplyMatrixMatrix(unsigned int resultMatrixIndex, unsigned int leftMatrixIndex, unsigned int rightMatrixIndex) ITK_OVERRIDE
int GetErrorAnalysisSwitch() const
ItkItpackSolverFunction m_Methods[7]
virtual void ScaleMatrix(Float scale, unsigned int matrixIndex) ITK_OVERRIDE
virtual void SetVectorValue(unsigned int i, Float value, unsigned int vectorIndex) ITK_OVERRIDE
double GetDigitsInResidual() const
int GetSymmetricMatrixFlag()
double GetSmallestJacobiEigenvalueEstimate()
int(* ItkItpackSolverFunction)(integer *, integer *, integer *, doublereal *, doublereal *, doublereal *, integer *, integer *, doublereal *, integer *, doublereal *, integer *)
double GetAccuracy() const
void SetRemoveSwitch(int i)
void SetSymmetricMatrixFlag(int i)
void SetTolerance(double i)
handles errors that occur in itpack solving routines
int GetOutputNumber() const
int GetAdaptiveSwitch() const
double * VectorRepresentation
void SetSmallestJacobiEigenvalueEstimate(double i)
std::vector< MatrixRepresentation > MatrixHolder
void SetEstimatedSpectralRadiusLU(double i)
virtual void AddSolutionValue(unsigned int i, Float value, unsigned int solutionIndex) ITK_OVERRIDE
virtual void MultiplyMatrixVector(unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int vectorIndex) ITK_OVERRIDE
virtual void SwapSolutions(unsigned int solutionIndex1, unsigned int solutionIndex2) ITK_OVERRIDE
int GetCommunicationSwitch() const
void SetErrorAnalysisSwitch(int i)
void SetDampingFactor(double i)
void SetEstimatedSpectralRadiusSSOR(double i)
void ReducedSystemSemiIteration()
void SetTimingSwitch(int i)
virtual void SwapVectors(unsigned int vectorIndex1, unsigned int vectorIndex2) ITK_OVERRIDE
a compressed row sparse matrix representation that makes use of itpack to dynamically assemble the ma...
double GetOverrelaxationParameter()
void SuccessiveOverrelaxation()
void SetTimeForCall(double i)
int GetRedBlackOrderingSwitch()
virtual void InitializeVector(unsigned int vectorIndex) ITK_OVERRIDE
void JacobianSemiIterative()
std::vector< VectorRepresentation > VectorHolder
virtual void DestroyVector(unsigned int vectorIndex) ITK_OVERRIDE
void SetMaximumNumberIterations(int i)
virtual void Solve(void) ITK_OVERRIDE
void JacobianConjugateGradient()
void SetAccuracy(double i)
std::vector< unsigned int > ColumnArray
int GetAdaptiveCaseSwitch() const
void SetDigitsInResidual(double i)
Defines all functions required by Solver class to allocate, assemble and solve a linear system of equ...
double GetEstimatedSpectralRadiusLU() const
void SetAdaptiveCaseSwitch(int i)
virtual void CopyVector2Solution(unsigned int vectorIndex, unsigned int solutionIndex) ITK_OVERRIDE
virtual void InitializeMatrix(unsigned int matrixIndex) ITK_OVERRIDE
virtual Float GetSolutionValue(unsigned int i, unsigned int solutionIndex) const ITK_OVERRIDE
virtual bool IsVectorInitialized(unsigned int vectorIndex) ITK_OVERRIDE
~LinearSystemWrapperItpack()
int GetErrorReportingLevel() const
int GetMaximumNumberIterations() const
virtual void SetSolutionValue(unsigned int i, Float value, unsigned int solutionIndex) ITK_OVERRIDE
void SetRedBlackOrderingSwitch(int i)
double GetEstimatedSpectralRadiusSSOR() const
virtual bool IsSolutionInitialized(unsigned int solutionIndex) ITK_OVERRIDE
void SetDigitsInError(double i)
virtual bool IsMatrixInitialized(unsigned int matrixIndex) ITK_OVERRIDE
LinearSystemWrapperItpack Self
double GetDampingFactor() const
virtual Float GetVectorValue(unsigned int i, unsigned int vectorIndex) const ITK_OVERRIDE
double GetTimeToConvergence()
virtual ~FEMExceptionItpackSolver()
void SetAdaptiveSwitch(int i)
virtual void AddVectorValue(unsigned int i, Float value, unsigned int vectorIndex) ITK_OVERRIDE
void SymmetricSuccessiveOverrelaxationConjugateGradient()
virtual Float GetMatrixValue(unsigned int i, unsigned int j, unsigned int matrixIndex) const ITK_OVERRIDE
VectorHolder * m_Solutions
double GetLargestJacobiEigenvalueEstimate() const
void SetTimeToConvergence(double i)
LinearSystemWrapperItpack()
virtual void SetMatrixValue(unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) ITK_OVERRIDE
virtual void InitializeSolution(unsigned int solutionIndex) ITK_OVERRIDE
virtual void CopySolution2Vector(unsigned solutionIndex, unsigned int vectorIndex) ITK_OVERRIDE
ItpackSparseMatrix MatrixRepresentation
virtual void DestroySolution(unsigned int solutionIndex) ITK_OVERRIDE
void SetCommunicationSwitch(int i)
virtual void DestroyMatrix(unsigned int matrixIndex) ITK_OVERRIDE
unsigned int m_MaximumNonZeroValues
LinearSystemWrapper class that uses Itpack numeric library functions to define and solve a sparse lin...
Base class for all exception's that can occur within FEM classes.
double GetDigitsInError() const
virtual void AddMatrixValue(unsigned int i, unsigned int j, Float value, unsigned int matrixIndex) ITK_OVERRIDE
LinearSystemWrapper Superclass
virtual void GetColumnsOfNonZeroMatrixElementsInRow(unsigned int row, ColumnArray &cols, unsigned int matrixIndex) ITK_OVERRIDE
void SymmetricSuccessiveOverrelaxationSuccessiveOverrelaxation()
void SetLargestJacobiEigenvalueEstimate(double i)
MatrixHolder * m_Matrices
void SetOverrelaxationParameter(double i)
virtual void SetMaximumNonZeroValuesInMatrix(unsigned int maxNonZeroValues)
virtual void MultiplyMatrixSolution(unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int solutionIndex) ITK_OVERRIDE
void SetWorkspaceUsed(int i)
void ReducedSystemConjugateGradient()
virtual void SwapMatrices(unsigned int matrixIndex1, unsigned int matrixIndex2) ITK_OVERRIDE