Overture  Version 25
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TridiagonalSolver Class Reference

#include <TridiagonalSolver.h>

Public Types

enum  SystemType { normal =0, extended, periodic }
 

Public Member Functions

 TridiagonalSolver ()
 
 ~TridiagonalSolver ()
 
int factor (RealArray &a, RealArray &b, RealArray &c, const SystemType &type=normal, const int &axis=0, const int &block=1)
 
int factor (RealArray &a, RealArray &b, RealArray &c, RealArray &d, RealArray &e, const SystemType &type=normal, const int &axis=0, const int &block=1)
 
int solve (const RealArray &r, const Range &R1=nullRange, const Range &R2=nullRange, const Range &R3=nullRange)
 
virtual real sizeOf (FILE *file=NULL) const
 

Protected Member Functions

int tridiagonalFactor ()
 
int tridiagonalSolve (RealArray &r)
 
int periodicTridiagonalFactor ()
 
int periodicTridiagonalSolve (RealArray &r)
 
int invert (RealArray &d, const int &i1)
 
int invert (RealArray &d, const Index &I1, const Index &I2, const Index &I3)
 
RealArray multiply (const RealArray &d, const int &i1, const RealArray &e, const int &j1)
 
RealArray matrixVectorMultiply (const RealArray &d, const int &i1, const RealArray &e, const int &j1)
 
RealArray matrixVectorMultiply (const RealArray &d, const int &i1, const RealArray &e)
 
RealArray multiply (const RealArray &d, const Index &I1, const Index &I2, const Index &I3, const RealArray &e, const Index &J1, const Index &J2, const Index &J3)
 
RealArray matrixVectorMultiply (const RealArray &d, const Index &I1, const Index &I2, const Index &I3, RealArray &e, const Index &J1, const Index &J2, const Index &J3)
 
int blockFactor ()
 
int blockSolve (RealArray &r)
 
int blockPeriodicFactor ()
 
int blockPeriodicSolve (RealArray &r)
 
int scalarBlockFactor (int i1, int i2, int i3)
 
int scalarBlockSolve (RealArray &r, int i1, int i2, int i3)
 
int scalarBlockPeriodicFactor (int i1, int i2, int i3)
 
int scalarBlockPeriodicSolve (RealArray &r, int i1, int i2, int i3)
 

Protected Attributes

SystemType systemType
 
int axis
 
RealArray a
 
RealArray b
 
RealArray c
 
RealArray d
 
RealArray e
 
RealArray w1
 
RealArray w2
 
Range Iv [3]
 
Range & I1
 
Range & I2
 
Range & I3
 
int blockSize
 
bool scalarSystem
 
int bandWidth
 
bool useOptimizedC
 

Member Enumeration Documentation

Enumerator
normal 
extended 
periodic 

Constructor & Destructor Documentation

TridiagonalSolver::TridiagonalSolver ( )

References bandWidth, and useOptimizedC.

TridiagonalSolver::~TridiagonalSolver ( )

Member Function Documentation

int TridiagonalSolver::blockFactor ( )
protected
int TridiagonalSolver::blockPeriodicFactor ( )
protected
int TridiagonalSolver::blockPeriodicSolve ( RealArray r)
protected
int TridiagonalSolver::blockSolve ( RealArray r)
protected
int TridiagonalSolver::factor ( RealArray a,
RealArray b,
RealArray c,
const SystemType type = normal,
const int &  axis = 0,
const int &  block = 1 
)
int TridiagonalSolver::factor ( RealArray a,
RealArray b,
RealArray c,
RealArray d,
RealArray e,
const SystemType type = normal,
const int &  axis = 0,
const int &  block = 1 
)
int TridiagonalSolver::invert ( RealArray d,
const int &  i1 
)
protected
int TridiagonalSolver::invert ( RealArray d,
const Index &  I1,
const Index &  I2,
const Index &  I3 
)
protected
RealArray TridiagonalSolver::matrixVectorMultiply ( const RealArray d,
const int &  i1,
const RealArray e,
const int &  j1 
)
protected
RealArray TridiagonalSolver::matrixVectorMultiply ( const RealArray d,
const int &  i1,
const RealArray e 
)
protected

References Overture::abort(), blockSize, d, e, and r.

RealArray TridiagonalSolver::matrixVectorMultiply ( const RealArray d,
const Index &  I1,
const Index &  I2,
const Index &  I3,
RealArray e,
const Index &  J1,
const Index &  J2,
const Index &  J3 
)
protected

References Overture::abort(), blockSize, d, e, and r.

RealArray TridiagonalSolver::multiply ( const RealArray d,
const int &  i1,
const RealArray e,
const int &  j1 
)
protected
RealArray TridiagonalSolver::multiply ( const RealArray d,
const Index &  I1,
const Index &  I2,
const Index &  I3,
const RealArray e,
const Index &  J1,
const Index &  J2,
const Index &  J3 
)
protected

References Overture::abort(), blockSize, d, e, and r.

int TridiagonalSolver::periodicTridiagonalFactor ( )
protected

References a, A, Overture::abort(), axis, axis1, axis2, axis3, b, B, blockPeriodicFactor(), blockSize, c, C, FACTOR, I1, i2, I2, I3, w1, W1, w2, and W2.

Referenced by factor().

int TridiagonalSolver::periodicTridiagonalSolve ( RealArray r)
protected

References a, A, Overture::abort(), axis, axis1, axis2, axis3, b, B, blockPeriodicSolve(), blockSize, c, C, I1, i2, I2, I3, R, SOLVE, w1, W1, w2, and W2.

Referenced by solve().

int TridiagonalSolver::scalarBlockFactor ( int  i1,
int  i2,
int  i3 
)
protected

References a, A, axis, b, B, blockSize, c, C, extended, invert(), INVERT, Iv, multiply(), normal, systemType, and useOptimizedC.

Referenced by blockFactor().

int TridiagonalSolver::scalarBlockPeriodicFactor ( int  i1,
int  i2,
int  i3 
)
protected

References a, A, axis, b, B, blockSize, c, C, invert(), INVERT, Iv, multiply(), useOptimizedC, w1, W1, w2, and W2.

Referenced by blockPeriodicFactor().

int TridiagonalSolver::scalarBlockPeriodicSolve ( RealArray r,
int  i1,
int  i2,
int  i3 
)
protected

References a, A, axis, b, B, blockSize, c, C, evaluate(), Iv, matrixVectorMultiply(), r, R, useOptimizedC, w1, W1, w2, and W2.

Referenced by blockPeriodicSolve().

int TridiagonalSolver::scalarBlockSolve ( RealArray r,
int  i1,
int  i2,
int  i3 
)
protected
real TridiagonalSolver::sizeOf ( FILE *  file = NULL) const
virtual

References a, b, c, d, e, w1, and w2.

Referenced by factor().

int TridiagonalSolver::solve ( const RealArray r,
const Range &  R1 = nullRange,
const Range &  R2 = nullRange,
const Range &  R3 = nullRange 
)
int TridiagonalSolver::tridiagonalFactor ( )
protected

References a, A, Overture::abort(), axis, axis1, axis2, axis3, b, B, blockFactor(), blockSize, c, C, extended, FACTOR, I1, i2, I2, I3, and systemType.

Referenced by factor().

int TridiagonalSolver::tridiagonalSolve ( RealArray r)
protected

References a, A, Overture::abort(), axis, axis1, axis2, axis3, b, B, blockSize, blockSolve(), c, C, extended, I1, i2, I2, I3, R, SOLVE, and systemType.

Referenced by solve().

Member Data Documentation

RealArray TridiagonalSolver::a
protected
int TridiagonalSolver::axis
protected
RealArray TridiagonalSolver::b
protected
int TridiagonalSolver::bandWidth
protected

Referenced by factor(), solve(), and TridiagonalSolver().

int TridiagonalSolver::blockSize
protected
RealArray TridiagonalSolver::c
protected
RealArray TridiagonalSolver::d
protected
RealArray TridiagonalSolver::e
protected
Range & TridiagonalSolver::I1
protected
Range & TridiagonalSolver::I2
protected
Range & TridiagonalSolver::I3
protected
Range TridiagonalSolver::Iv[3]
protected
bool TridiagonalSolver::scalarSystem
protected
SystemType TridiagonalSolver::systemType
protected
bool TridiagonalSolver::useOptimizedC
protected
RealArray TridiagonalSolver::w1
protected
RealArray TridiagonalSolver::w2
protected

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