Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

IMatrix Class Reference

#include <hyp.fem.interfaces.h>

List of all members.

Public Methods

virtual void SetMatrix (IMatrix *B)=0
virtual void Extract (const t_size &MinX, const t_size &MaxX, const t_size &MinY, const t_size &MaxY, IMatrix *B)=0
virtual void IncrValue (const t_size &X, const t_size &Y, const t_real &Scalar)=0
virtual void SetDim (const t_size &X, const t_size &Y, const t_real &Scalar=0)=0
virtual void SetValue (const t_size &X, const t_size &Y, const t_real &Scalar)=0
virtual t_real GetValue (const t_size &X, const t_size &Y) const=0
virtual void SetMatrix (const t_real &Scalar)=0
virtual t_size GetNbRow () const=0
virtual t_size GetNbColumn () const=0
virtual void Multiply (const t_real &Scalar)=0
virtual void Multiply (const IMatrix *B, IMatrix *C)=0
virtual void Substract (const IMatrix *B)=0
virtual void Invert ()=0
virtual void Add (const IMatrix *B)=0
virtual void Transpose (IMatrix *B)=0
virtual bool IsSymmetrical ()=0
virtual void EraseRow (const t_size &Row)=0
virtual void EraseColumn (const t_size &Column)=0
virtual void EraseRowsAndColumns (const t_mask_array &ColumnMask, const t_mask_array &RowMask)=0


Detailed Description

The FEM is based on the algebraic equations and also on the matrix computations. The Ephydryne package provide a single interface to deal with the matrices. It is up to the implementation to optimize the matrix component following its number of rows, of columns and so on.

In the following documentation, the matrix A is referencied as the component calling one of the method.

Invariant:
The first row and the first column are designed by the number 0. So the interface follows the C-convention.


Member Function Documentation

virtual void IMatrix::Add const IMatrix *   Matrix_b [pure virtual]
 

Adds the Matrix B to the Matrix A. A+=B.

Parameters:
B   Matrix B

virtual void IMatrix::EraseColumn const t_size &   column [pure virtual]
 

Erases one of the columns of the Matrix A.

Parameters:
Column   Number of the erased column

virtual void IMatrix::EraseRow const t_size &   row [pure virtual]
 

Erases one of the rows of the Matrix A.

Parameters:
Row   Number of the erased row

virtual void IMatrix::EraseRowsAndColumns const t_mask_array &   row_mask,
const t_mask_array &   column_mask
[pure virtual]
 

Erases some of the columns and the rows of the Matrix A.

Parameters:
ColumnMask   Mask indicates which column must be erased. If ColumnMask={1,0,0,1}, the Column number 0 and 3 must be erased.
RowMask   Mask indicates which row must be erased

virtual void IMatrix::Extract const t_size &   x_min,
const t_size &   x_max,
const t_size &   y_min,
const t_size &   y_max,
IMatrix *   Matrix_b
[pure virtual]
 

Extracts some elements of the matrix A to the Matrix B. The elements are delimited by a square defined itself by four coordinates. The boundaries of the square are extracted as well.

Parameters:
MinX   Lower column extracted
MaxX   Upper column extracted
MinY   Lower row extracted
MaxY   Upper row extracted
B   Matrix B
Invariant:
MinX<=MaxX and MinY<=MaxY

virtual t_size IMatrix::GetNbColumn   const [pure virtual]
 

Gets the number of columns of the Matrix A.

Returns:
Number of columns of the matrix

virtual t_size IMatrix::GetNbRow   const [pure virtual]
 

Gets the number of rows of the Matrix A.

Returns:
Number of rows of the matrix

virtual t_real IMatrix::GetValue const t_size &   x,
const t_size &   y
const [pure virtual]
 

Retrieves one of the components of the Matrix A. Scalar=A[X][Y].

Parameters:
X   Column of the component
Y   Row of the component
Returns:
Value of the component of the matrix

virtual void IMatrix::IncrValue const t_size &   x,
const t_size &   y,
const t_real &   scalar_b
[pure virtual]
 

Increments one of the components of the Matrix A. A[X][Y]+=Scalar.

Parameters:
Column   of the component
Row   of the component
Scalar   Real from which the component of the matrix is increased.

virtual void IMatrix::Invert   [pure virtual]
 

Inverts the Matrix A. A=A-1.

virtual bool IMatrix::IsSymmetrical void   [pure virtual]
 

Ckecks whether the Matrix A is symetric. A.Transpose(A)==Identity.

virtual void IMatrix::Multiply const IMatrix *   Matrix_b,
IMatrix *   Matrix_c
[pure virtual]
 

Multiplies two Matrices and stockes the result in another Matrix. A*B=C.

Parameters:
B   Matrix B
Matrix   C

virtual void IMatrix::Multiply const t_real &   scalar_b [pure virtual]
 

Multiplies all the component of the Matrix A by a scalar. A*=Scalar.

Parameters:
Scalar   Real which multiplies all the components of the matrix

virtual void IMatrix::SetDim const t_size &   x,
const t_size &   y,
const t_real &   init = 0
[pure virtual]
 

Sets the dimension of the matrix A.

Parameters:
X   Number of the columns
Y   Number of the rows
Scalar   Real which is used to initialize all the components of the matrix after its size has been changed.

virtual void IMatrix::SetMatrix const t_real &   scalar_b [pure virtual]
 

Initializes all the components of the matrix to a same value. A=Scalar.

Parameters:
Scalar   Real which uses to initializes the components of the matrix

virtual void IMatrix::SetMatrix IMatrix *   Matrix_b [pure virtual]
 

B=A.

Parameters:
B   Matrix B

virtual void IMatrix::SetValue const t_size &   x,
const t_size &   y,
const t_real &   scalar_b
[pure virtual]
 

Sets one of the components of the Matrix A. A[X][Y]=Scalar.

Parameters:
X   Column of the component
an Y Row of the component
Parameters:
Scalar   Real from which the component of the matrix is initialized

virtual void IMatrix::Substract const IMatrix *   Matrix_b [pure virtual]
 

Substracts the Matrix A by the Matrix B. A-=B.

Parameters:
Matrix   B

virtual void IMatrix::Transpose IMatrix *   Matrix_b [pure virtual]
 

Transposes the Matrix A and stocke the result in the Matrix B. B=Transpose(A).

Parameters:
B   Matrix B


The documentation for this class was generated from the following file:
Top of Page
written by Pierre Rebours © 2000-2001. Terms of Use.