Integration of OCCT 6.5.0 from SVN
[occt.git] / src / FEmTool / FEmTool_ProfileMatrix.cdl
CommitLineData
7fd59977 1-- File: FEmTool_ProfileMatrix.cdl
2-- Created: Wed Oct 29 16:54:05 1997
3-- Author: Roman BORISOV
4-- <rbv@velox.nnov.matra-dtv.fr>
5---Copyright: Matra Datavision 1997
6
7class ProfileMatrix from FEmTool inherits SparseMatrix from FEmTool
8
9 ---Purpose: Symmetric Sparse ProfileMatrix useful for 1D Finite
10 -- Element methods
11
12uses
13 HArray1OfInteger from TColStd,
14 Array1OfInteger from TColStd,
15 Array2OfInteger from TColStd,
16 HArray1OfReal from TColStd,
17 Vector from math
18
19raises
20 NotDone from StdFail,
21 NotImplemented from Standard,
22 OutOfRange from Standard
23
24is
25 Create(FirstIndexes : Array1OfInteger)
26 returns mutable ProfileMatrix from FEmTool;
27
28 Init(me: mutable; Value : Real);
29
30 ChangeValue(me: mutable; I, J : Integer)
31 ---C++: return &
32 returns Real
33 raises OutOfRange;
34
35 Decompose(me : mutable)
36 ---Purpose: To make a Factorization of <me>
37 returns Boolean;
38
39 Solve(me; B : Vector; X : in out Vector)
40 ---Purpose: Direct Solve of AX = B
41 raises NotDone from StdFail; -- if <me> is not decomposed
42
43 Prepare(me : mutable)
44 ---Purpose: Make Preparation to iterative solve
45 returns Boolean
46 raises NotImplemented from Standard;
47
48 Solve(me; B : Vector;
49 Init : Vector;
50 X : out Vector;
51 Residual : out Vector;
52 Tolerance : Real = 1.0e-8;
53 NbIterations: Integer = 50)
54 ---Purpose: Iterative solve of AX = B
55 raises NotDone from StdFail; -- if <me> is not prepared;
56
57 Multiplied(me; X: Vector; MX : in out Vector);
58 ---Purpose: returns the product of a SparseMatrix by a vector.
59 -- An exception is raised if the dimensions are different
60
61 RowNumber(me)
62 ---Purpose: returns the row range of a matrix.
63 returns Integer;
64
65
66 ColNumber(me)
67 ---Purpose: returns the column range of the matrix.
68 returns Integer;
69
70 IsInProfile(me; i, j : Integer)
71 returns Boolean;
72
73-- for debug
74
75 OutM(me);
76
77 OutS(me);
78
79fields
80 profile : Array2OfInteger; -- Like MPOSIT in Fortran
81 ProfileMatrix : HArray1OfReal; -- Like AMATRI in Fortran
82 SMatrix : HArray1OfReal; -- Like SMATRI in Fortran
83 NextCoeff : HArray1OfInteger; -- Like POSUIV in Fortran
84 IsDecomp : Boolean;
85end ProfileMatrix;