19 #ifndef __itkFEMLinearSystemWrapperItpack_h
20 #define __itkFEMLinearSystemWrapperItpack_h
36 integer *, doublereal *,
37 integer *, doublereal *, integer *);
600 virtual Float GetMatrixValue(
unsigned int i,
unsigned int j,
unsigned int matrixIndex)
const;
602 virtual void SetMatrixValue(
unsigned int i,
unsigned int j,
Float value,
unsigned int matrixIndex);
604 virtual void AddMatrixValue(
unsigned int i,
unsigned int j,
Float value,
unsigned int matrixIndex);
620 virtual void Solve(
void);
623 virtual void SwapMatrices(
unsigned int matrixIndex1,
unsigned int matrixIndex2);
625 virtual void SwapVectors(
unsigned int vectorIndex1,
unsigned int vectorIndex2);
627 virtual void SwapSolutions(
unsigned int solutionIndex1,
unsigned int solutionIndex2);
634 unsigned int rightMatrixIndex);
636 virtual void MultiplyMatrixVector(
unsigned int resultVectorIndex,
unsigned int matrixIndex,
unsigned int vectorIndex);
644 virtual void MultiplyMatrixSolution(
unsigned int resultVectorIndex,
unsigned int matrixIndex,
unsigned int solutionIndex);
708 #endif // #ifndef __itkFEMLinearSystemWrapperItpack_h
int GetErrorAnalysisSwitch() const
ItkItpackSolverFunction m_Methods[7]
virtual bool IsSolutionInitialized(unsigned int solutionIndex)
double GetDigitsInResidual() const
virtual void SetMatrixValue(unsigned int i, unsigned int j, Float value, unsigned int matrixIndex)
virtual Float GetSolutionValue(unsigned int i, unsigned int solutionIndex) const
int GetSymmetricMatrixFlag()
double GetSmallestJacobiEigenvalueEstimate()
int(* ItkItpackSolverFunction)(integer *, integer *, integer *, doublereal *, doublereal *, doublereal *, integer *, integer *, doublereal *, integer *, doublereal *, integer *)
virtual bool IsVectorInitialized(unsigned int vectorIndex)
virtual Float GetMatrixValue(unsigned int i, unsigned int j, unsigned int matrixIndex) const
double GetAccuracy() const
virtual void SetVectorValue(unsigned int i, Float value, unsigned int vectorIndex)
void SetRemoveSwitch(int i)
virtual void InitializeMatrix(unsigned int matrixIndex)
void SetSymmetricMatrixFlag(int i)
void SetTolerance(double i)
handles errors that occur in itpack solving routines
int GetOutputNumber() const
int GetAdaptiveSwitch() const
double * VectorRepresentation
virtual void MultiplyMatrixSolution(unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int solutionIndex)
void SetSmallestJacobiEigenvalueEstimate(double i)
std::vector< MatrixRepresentation > MatrixHolder
virtual Float GetVectorValue(unsigned int i, unsigned int vectorIndex) const
void SetEstimatedSpectralRadiusLU(double i)
int GetCommunicationSwitch() const
void SetErrorAnalysisSwitch(int i)
void SetDampingFactor(double i)
void SetEstimatedSpectralRadiusSSOR(double i)
virtual void SwapMatrices(unsigned int matrixIndex1, unsigned int matrixIndex2)
void ReducedSystemSemiIteration()
void SetTimingSwitch(int i)
a compressed row sparse matrix representation that makes use of itpack to dynamically assemble the ma...
virtual void CopyVector2Solution(unsigned int vectorIndex, unsigned int solutionIndex)
double GetOverrelaxationParameter()
void SuccessiveOverrelaxation()
virtual void GetColumnsOfNonZeroMatrixElementsInRow(unsigned int row, ColumnArray &cols, unsigned int matrixIndex)
void SetTimeForCall(double i)
int GetRedBlackOrderingSwitch()
void JacobianSemiIterative()
std::vector< VectorRepresentation > VectorHolder
void SetMaximumNumberIterations(int i)
virtual void AddVectorValue(unsigned int i, Float value, unsigned int vectorIndex)
void JacobianConjugateGradient()
void SetAccuracy(double i)
std::vector< unsigned int > ColumnArray
virtual void CopySolution2Vector(unsigned solutionIndex, unsigned int vectorIndex)
virtual void InitializeSolution(unsigned int solutionIndex)
int GetAdaptiveCaseSwitch() const
virtual bool IsMatrixInitialized(unsigned int matrixIndex)
virtual void MultiplyMatrixVector(unsigned int resultVectorIndex, unsigned int matrixIndex, unsigned int vectorIndex)
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 SetSolutionValue(unsigned int i, Float value, unsigned int solutionIndex)
~LinearSystemWrapperItpack()
int GetErrorReportingLevel() const
int GetMaximumNumberIterations() const
virtual void DestroyVector(unsigned int vectorIndex)
virtual void InitializeVector(unsigned int vectorIndex)
void SetRedBlackOrderingSwitch(int i)
double GetEstimatedSpectralRadiusSSOR() const
void SetDigitsInError(double i)
virtual void SwapVectors(unsigned int vectorIndex1, unsigned int vectorIndex2)
LinearSystemWrapperItpack Self
double GetDampingFactor() const
double GetTimeToConvergence()
virtual void AddMatrixValue(unsigned int i, unsigned int j, Float value, unsigned int matrixIndex)
virtual ~FEMExceptionItpackSolver()
void SetAdaptiveSwitch(int i)
void SymmetricSuccessiveOverrelaxationConjugateGradient()
VectorHolder * m_Solutions
virtual void AddSolutionValue(unsigned int i, Float value, unsigned int solutionIndex)
double GetLargestJacobiEigenvalueEstimate() const
void SetTimeToConvergence(double i)
LinearSystemWrapperItpack()
void ScaleMatrix(Float scale, unsigned int matrixIndex)
virtual void MultiplyMatrixMatrix(unsigned int resultMatrixIndex, unsigned int leftMatrixIndex, unsigned int rightMatrixIndex)
virtual void SwapSolutions(unsigned int solutionIndex1, unsigned int solutionIndex2)
ItpackSparseMatrix MatrixRepresentation
virtual void DestroySolution(unsigned int solutionIndex)
void SetCommunicationSwitch(int i)
virtual void DestroyMatrix(unsigned int matrixIndex)
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
LinearSystemWrapper Superclass
void SymmetricSuccessiveOverrelaxationSuccessiveOverrelaxation()
void SetLargestJacobiEigenvalueEstimate(double i)
MatrixHolder * m_Matrices
void SetOverrelaxationParameter(double i)
virtual void SetMaximumNonZeroValuesInMatrix(unsigned int maxNonZeroValues)
void SetWorkspaceUsed(int i)
void ReducedSystemConjugateGradient()