Overture
Version 25
|
#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 |
TridiagonalSolver::TridiagonalSolver | ( | ) |
References bandWidth, and useOptimizedC.
TridiagonalSolver::~TridiagonalSolver | ( | ) |
|
protected |
References a, Overture::abort(), axis, axis1, axis2, axis3, b, blockSize, c, extended, I1, i2, I2, I3, invert(), Iv, multiply(), normal, scalarBlockFactor(), scalarSystem, and systemType.
Referenced by tridiagonalFactor().
|
protected |
References a, axis, axis1, axis2, axis3, b, blockSize, c, I1, i2, I2, I3, invert(), Iv, multiply(), scalarBlockPeriodicFactor(), scalarSystem, w1, and w2.
Referenced by periodicTridiagonalFactor().
|
protected |
References a, axis, axis1, axis2, axis3, b, blockSize, c, I1, i2, I2, I3, Iv, matrixVectorMultiply(), r, scalarBlockPeriodicSolve(), scalarSystem, w1, and w2.
Referenced by periodicTridiagonalSolve().
|
protected |
References a, axis, axis1, axis2, axis3, b, blockSize, c, extended, I1, i2, I2, I3, Iv, matrixVectorMultiply(), r, scalarBlockSolve(), scalarSystem, and systemType.
Referenced by tridiagonalSolve().
int TridiagonalSolver::factor | ( | RealArray & | a, |
RealArray & | b, | ||
RealArray & | c, | ||
const SystemType & | type = normal , |
||
const int & | axis = 0 , |
||
const int & | block = 1 |
||
) |
References a, Overture::abort(), axis, b, bandWidth, blockSize, c, d, e, extended, I1, I2, I3, Iv, periodic, periodicTridiagonalFactor(), scalarSystem, systemType, tridiagonalFactor(), w1, and w2.
Referenced by HyperbolicMapping::implicitSolve(), EllipticGridGenerator::lineSmoother(), and Ogmg::smoothLine().
|
protected |
References Overture::abort(), blockSize, and d.
Referenced by blockFactor(), blockPeriodicFactor(), scalarBlockFactor(), scalarBlockPeriodicFactor(), and solve().
|
protected |
References Overture::abort(), blockSize, d, and evaluate().
|
protected |
References Overture::abort(), blockSize, d, e, and r.
Referenced by blockPeriodicSolve(), blockSolve(), scalarBlockPeriodicSolve(), and scalarBlockSolve().
|
protected |
References Overture::abort(), blockSize, d, e, and r.
|
protected |
References Overture::abort(), blockSize, d, e, and r.
|
protected |
References Overture::abort(), blockSize, d, e, and r.
Referenced by blockFactor(), blockPeriodicFactor(), scalarBlockFactor(), and scalarBlockPeriodicFactor().
|
protected |
References Overture::abort(), blockSize, d, e, and r.
|
protected |
|
protected |
|
protected |
References a, A, axis, b, B, blockSize, c, C, extended, invert(), INVERT, Iv, multiply(), normal, systemType, and useOptimizedC.
Referenced by blockFactor().
|
protected |
|
protected |
References a, A, axis, b, B, blockSize, c, C, evaluate(), Iv, matrixVectorMultiply(), r, R, useOptimizedC, w1, W1, w2, and W2.
Referenced by blockPeriodicSolve().
|
protected |
References a, A, axis, b, B, blockSize, c, C, evaluate(), extended, Iv, matrixVectorMultiply(), r, R, systemType, and useOptimizedC.
Referenced by blockSolve().
int TridiagonalSolver::solve | ( | const RealArray & | r, |
const Range & | R1 = nullRange , |
||
const Range & | R2 = nullRange , |
||
const Range & | R3 = nullRange |
||
) |
References a, Overture::abort(), assert, axis, axis1, axis2, axis3, b, bandWidth, blockSize, c, d, e, I1, I2, I3, invert(), nullRange, pentaSolve, periodic, periodicTridiagonalSolve(), r, systemType, tridiagonalSolve(), and w1.
Referenced by HyperbolicMapping::implicitSolve(), EllipticGridGenerator::lineSmoother(), and Ogmg::smoothLine().
|
protected |
|
protected |
|
protected |
Referenced by blockFactor(), blockPeriodicFactor(), blockPeriodicSolve(), blockSolve(), factor(), periodicTridiagonalFactor(), periodicTridiagonalSolve(), scalarBlockFactor(), scalarBlockPeriodicFactor(), scalarBlockPeriodicSolve(), scalarBlockSolve(), sizeOf(), solve(), tridiagonalFactor(), and tridiagonalSolve().
|
protected |
Referenced by blockFactor(), blockPeriodicFactor(), blockPeriodicSolve(), blockSolve(), factor(), periodicTridiagonalFactor(), periodicTridiagonalSolve(), scalarBlockFactor(), scalarBlockPeriodicFactor(), scalarBlockPeriodicSolve(), scalarBlockSolve(), solve(), tridiagonalFactor(), and tridiagonalSolve().
|
protected |
Referenced by blockFactor(), blockPeriodicFactor(), blockPeriodicSolve(), blockSolve(), factor(), periodicTridiagonalFactor(), periodicTridiagonalSolve(), scalarBlockFactor(), scalarBlockPeriodicFactor(), scalarBlockPeriodicSolve(), scalarBlockSolve(), sizeOf(), solve(), tridiagonalFactor(), and tridiagonalSolve().
|
protected |
Referenced by factor(), solve(), and TridiagonalSolver().
|
protected |
Referenced by blockFactor(), blockPeriodicFactor(), blockPeriodicSolve(), blockSolve(), factor(), invert(), matrixVectorMultiply(), multiply(), periodicTridiagonalFactor(), periodicTridiagonalSolve(), scalarBlockFactor(), scalarBlockPeriodicFactor(), scalarBlockPeriodicSolve(), scalarBlockSolve(), solve(), tridiagonalFactor(), and tridiagonalSolve().
|
protected |
Referenced by blockFactor(), blockPeriodicFactor(), blockPeriodicSolve(), blockSolve(), factor(), periodicTridiagonalFactor(), periodicTridiagonalSolve(), scalarBlockFactor(), scalarBlockPeriodicFactor(), scalarBlockPeriodicSolve(), scalarBlockSolve(), sizeOf(), solve(), tridiagonalFactor(), and tridiagonalSolve().
|
protected |
Referenced by factor(), invert(), matrixVectorMultiply(), multiply(), sizeOf(), and solve().
|
protected |
Referenced by factor(), matrixVectorMultiply(), multiply(), sizeOf(), and solve().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by blockFactor(), blockPeriodicFactor(), blockPeriodicSolve(), blockSolve(), and factor().
|
protected |
Referenced by blockFactor(), blockSolve(), factor(), scalarBlockFactor(), scalarBlockSolve(), solve(), tridiagonalFactor(), and tridiagonalSolve().
|
protected |
|
protected |
|
protected |