|
TrioCFD 1.9.9_beta
TrioCFD documentation
|
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,. More...
#include <Matrice_Morse.h>
Public Member Functions | |
| Matrice_Morse () | |
| template<typename _SIZE_> | |
| Matrice_Morse (int n, _SIZE_ nnz) | |
| Constructor of a square Morse matrix of order n that can store at most nnz non-zero elements. | |
| template<typename _SIZE_> | |
| Matrice_Morse (int n, int m, _SIZE_ nnz) | |
| Constructor of a Morse matrix with n rows and m columns that can store at most nnz non-zero elements. | |
| Matrice_Morse (const Matrice_Morse &) | |
| Copy constructor of a Matrice_Morse. | |
| Matrice_Morse (int, int, const IntLists &, const DoubleLists &, const DoubleVect &) | |
| Sortie & | imprimer (Sortie &s) const override |
| Sortie & | imprimer_formatte (Sortie &s) const override |
| Sortie & | imprimer_formatte (Sortie &s, int symetrie) const |
| Sortie & | imprimer_image (Sortie &s) const |
| Sortie & | imprimer_image (Sortie &s, int symetrie) const |
| void | WriteFileMTX (const Nom &) const |
| int | largeur_de_bande () const |
| Computes the bandwidth of a Morse matrix. | |
| void | remplir (const IntLists &, const DoubleLists &, const DoubleVect &) |
| void | remplir (const IntLists &, const DoubleLists &) |
| void | remplir (const int, const int, const int, const int, const Matrice_Morse &) |
| Fill a Morse matrix from a smaller Morse matrix. | |
| template<typename _SIZE_> | |
| void | dimensionner (int n, _SIZE_ nnz) |
| Size the matrix with n lines and n columns and nnz zero-values coefficients. | |
| template<typename _SIZE_> | |
| void | dimensionner (int n, int m, _SIZE_ nnz) |
| Size the matrix with n lines, m columns with nnz zero-values coefficients. | |
| void | dimensionner (const IntTab &) |
| Resizes the sparse matrix, optionally adding new non-zero coefficients. | |
| int | ordre () const override |
| Returns the order of the matrix: - the number of rows if the matrix is square. | |
| int | nb_lignes () const override |
| Return local number of lines (=size on the current proc). | |
| int | nb_colonnes () const override |
| Return local number of columns (=size on the current proc). | |
| auto | nb_coeff () const |
| void | set_nb_columns (const int) |
| void | set_symmetric (const int) |
| int | get_symmetric () const |
| auto & | get_set_tab1 () |
| auto & | get_set_tab2 () |
| auto & | get_set_coeff () |
| const auto & | get_tab1 () const |
| const auto & | get_tab2 () const |
| const auto & | get_coeff () const |
| int | nb_vois (int i) const |
| void | clean () override |
| Remplit la matrice avec des zeros. | |
| double & | operator() (int i, int j) |
| double | operator() (int i, int j) const |
| double | coef (int i, int j) const |
| double & | coef (int i, int j) |
| Matrice_Morse & | operator= (const Matrice_Morse &) |
| Assignment operator from one Matrice_Morse to another. | |
| Matrice_Morse & | operator+= (const Matrice_Morse &) |
| DOES NOTHING. | |
| Matrice_Morse & | operator*= (double) |
| Operator multiplying all elements of a matrix by a scalar. | |
| void | scale (const double x) override |
| void | get_stencil (Stencil &stencil) const override |
| void | get_stencil_and_coefficients (Stencil &stencil, StencilCoeffs &coefficients) const override |
| void | get_stencil_and_coeff_ptrs (Stencil &stencil, std::vector< const double * > &coeff_ptr) const override |
| Matrice_Morse & | operator/= (double) |
| Operator dividing all elements of a matrix by a scalar. | |
| Matrice_Morse & | operator*= (const DoubleVect &) |
| Matrix-vector multiplication operator: scales rows of the matrix by the corresponding. | |
| Matrice_Morse | operator- () const |
| Unary negation operator, returns the opposite of the matrix: - A. Calls operator*(double,const Matrice_Morse&). | |
| virtual int | inverse (const DoubleVect &, DoubleVect &, double) const |
| Computes the solution of the linear system: A * solution = secmem. | |
| virtual int | inverse (const DoubleVect &, DoubleVect &, double, int) const |
| Matrice_Morse & | affecte_prod (const Matrice_Morse &A, const Matrice_Morse &B) |
| Assigns the product of 2 Morse matrices A and B to this object. | |
| void | compacte (int elim_coeff_nul=0) |
| Method to check/clean the Matrice_Morse matrix: -Suppress coefficient defined several times. | |
| DoubleVect & | ajouter_multvect_ (const DoubleVect &, DoubleVect &) const override |
| Operation de multiplication-accumulation (saxpy) matrice vecteur. | |
| ArrOfDouble & | ajouter_multvect_ (const ArrOfDouble &, ArrOfDouble &, ArrOfInt &) const |
| DoubleTab & | ajouter_multTab_ (const DoubleTab &, DoubleTab &) const override |
| Matrix-matrix multiply-accumulate operation (saxpy) (matrix X represented by an array). | |
| DoubleVect & | ajouter_multvectT_ (const DoubleVect &, DoubleVect &) const override |
| Matrix-vector multiply-accumulate operation (saxpy), by the transposed matrix. | |
| ArrOfDouble & | ajouter_multvectT_ (const ArrOfDouble &, ArrOfDouble &, ArrOfInt &) const |
| virtual Matrice_Morse & | transpose (const Matrice_Morse &a) |
| *this = transpose of a. | |
| virtual Matrice_Morse & | diagmulmat (const DoubleVect &x) |
| virtual Matrice_Morse & | partie_sup (const Matrice_Morse &a) |
| void | unite () |
| Initialize to the identity matrix (modif MT). | |
| void | construire_sous_bloc (int nl0, int nc0, int nl1, int nc1, Matrice_Morse &result) const |
| void | formeC () |
| void | formeF () |
| bool | has_same_morse_matrix_structure (const Matrice_Morse &) const |
| bool | check_morse_matrix_structure () const |
| bool | check_sorted_morse_matrix_structure () const |
| void | assert_check_morse_matrix_structure () const |
| void | assert_check_sorted_morse_matrix_structure () const |
| void | sort_stencil () |
| bool & | constant_stencil () const |
| bool | is_sorted_stencil () const |
| bool | is_diagonal () |
| void | set_tab1_int32 () const |
| const IntVect & | get_tab1_int32 () const |
| void | set_tab1 (const IntVect &tab1_int32) |
| Public Member Functions inherited from Matrice_Base | |
| virtual DoubleVect & | ajouter_multvect (const DoubleVect &x, DoubleVect &r) const |
| Matrix-vector multiply-accumulate operation (saxpy). | |
| virtual DoubleVect & | ajouter_multvectT (const DoubleVect &x, DoubleVect &r) const |
| Matrix-vector multiply-accumulate operation (saxpy). | |
| virtual DoubleTab & | ajouter_multTab (const DoubleTab &, DoubleTab &r) const |
| NOT IMPLEMENTED Matrix-matrix multiply-accumulate operation (saxpy). | |
| virtual DoubleVect & | multvect_ (const DoubleVect &, DoubleVect &) const |
| virtual DoubleVect & | multvect (const DoubleVect &, DoubleVect &) const |
| Multiplication of a vector by the matrix. | |
| virtual DoubleVect & | multvectT_ (const DoubleVect &, DoubleVect &) const |
| virtual DoubleVect & | multvectT (const DoubleVect &, DoubleVect &) const |
| Multiplication of a vector by the transposed matrix. | |
| virtual DoubleTab & | multTab (const DoubleTab &, DoubleTab &r) const |
| NOT IMPLEMENTED Multiplication of a matrix represented by an array by the matrix. | |
| virtual void | get_symmetric_stencil (Stencil &stencil) const |
| virtual void | get_symmetric_stencil_and_coefficients (Stencil &stencil, StencilCoeffs &coefficients) const |
| int | get_stencil_size () const |
| virtual void | build_stencil () |
| void | set_stencil (const Stencil &stencil) |
| bool | is_stencil_up_to_date () const |
| Public Member Functions inherited from Objet_U | |
| ~Objet_U () override | |
| Destructor. Removes the object from the list of objects registered in "memory". | |
| int | numero () const |
| Returns the index of the object in Memoire::data. | |
| virtual int | duplique () const =0 |
| virtual Sortie & | printOn (Sortie &) const |
| Writes the object to an output stream. Virtual method to override. | |
| virtual Entree & | readOn (Entree &) |
| Reads an Objet_U from an input stream. Virtual method to override. | |
| virtual unsigned | taille_memoire () const =0 |
| virtual int | est_egal_a (const Objet_U &) const |
| Returns 1 if x and *this are the same instance (same memory address). | |
| virtual const Nom & | le_nom () const |
| Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation. | |
| virtual void | nommer (const Nom &) |
| Assigns a name to the Objet_U. Virtual method to override. | |
| virtual int | reprendre (Entree &) |
| Restores an Objet_U from an input stream. Virtual method to override. | |
| virtual int | sauvegarder (Sortie &) const |
| Saves an Objet_U to an output stream. Virtual method to override. | |
| int | get_object_id () const |
| Returns the unique identifier of the object (object_id_). | |
| virtual const Type_info * | get_info () const |
| Returns type information for the Objet_U. | |
| const Nom & | que_suis_je () const |
| Returns the string identifying the class. | |
| const char * | le_type () const |
| Returns the type name of the Objet_U. | |
| virtual int | change_num (const int *const) |
| Changes the internal number of the Objet_U. | |
| virtual int | lire_motcle_non_standard (const Motcle &motlu, Entree &is) |
| Reads non-simple-type parameters of an Objet_U from an input stream. | |
| virtual int | associer_ (Objet_U &) |
| Associates the Objet_U with another Objet_U. Virtual method to override. | |
| const Interprete & | interprete () const |
| Interprete & | interprete () |
| Public Member Functions inherited from Process | |
| virtual | ~Process () |
Public Attributes | |
| int | sorted_ |
Protected Member Functions | |
| template<typename _TAB_T_, typename _VALUE_T_> | |
| void | get_stencil_coeff_templ (Stencil &stencil, _TAB_T_ &coeffs_span) const |
| Protected Member Functions inherited from Objet_U | |
| Objet_U () | |
| Default constructor: assigns a unique identifier to the object (object_id_) and registers the object in "memory" by giving it a num_obj number. | |
| Objet_U (const Objet_U &) | |
| Copy constructor. | |
| const Objet_U & | operator= (const Objet_U &) |
| Assignment operator: does nothing (the number and identifier are preserved). | |
| virtual void | set_param (Param &) const |
Protected Attributes | |
| IntVect | tab1_ |
| IntVect | tab2_ |
| DoubleVect | coeff_ |
| int | morse_matrix_structure_has_changed_ =-1 |
| int | m_ |
| int | symetrique_ |
| Protected Attributes inherited from Matrice_Base | |
| bool | is_stencil_up_to_date_ = false |
| Stencil | stencil_ |
Friends | |
| Matrice_Morse | operator+ (const Matrice_Morse &A, const Matrice_Morse &B) |
| Friend function (outside the class) of the Matrice_Morse class. Addition of 2 Morse-format matrices. | |
| Matrice_Morse | operator* (double x, const Matrice_Morse &A) |
| Friend function (outside the class) of the Matrice_Morse class. Scaling of the matrix by a scalar: multiplies all. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from Objet_U | |
| static const Nom & | nom_du_cas () |
| Returns a constant reference to the case name. This method is static. | |
| static Nom & | get_set_nom_du_cas () |
| Returns a non-constant reference to the case name (to allow modification). This method is static. | |
| static const Type_info * | info () |
| Returns type information for the Objet_U (static version). | |
| static const Objet_U & | self_cast (const Objet_U &) |
| Method added for casting in Python. | |
| static Objet_U & | self_cast (Objet_U &) |
| Static Public Member Functions inherited from Process | |
| static int | me () |
| Returns the rank of the local processor in the current communication group. See Comm_Group::rank() and PE_Groups::current_group(). | |
| static int | nproc () |
| Returns the number of processors in the current group. See Comm_Group::nproc() and PE_Groups::current_group(). | |
| static bool | is_parallel () |
| static void | exit (int exit_code=-1) |
| Exit routine for TRUST within a Kokkos region. | |
| static double | mp_sum (double) |
| Computes the sum of x over all processors in the current group. | |
| static float | mp_sum (float) |
| static trustIdType | mp_sum (trustIdType) |
| Computes the sum of x over all processors in the current group. | |
| static double | mp_max (double) |
| static double | mp_min (double) |
| static int | mp_max (int) |
| Returns the maximum value of x across all processors in the current group. | |
| static int | mp_min (int) |
| Returns the minimum value of x across all processors in the current group. | |
| static double | mp_sum_as_double (int v) |
| static trustIdType | mppartial_sum (trustIdType i) |
| Computes the partial sum of x over processors 0 to me()-1 (returns 0 on processor 0). | |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2) |
| C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters. | |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2, T &arg3) |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4) |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5) |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2) |
| C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation. | |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2, T &arg3) |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4) |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5) |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2) |
| C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation. | |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2, T &arg3) |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4) |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5) |
| template<typename _TYPE_> | |
| static void | mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1) |
| template<typename _TYPE_> | |
| static void | mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1) |
| template<typename _TYPE_> | |
| static void | mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1) |
| static bool | mp_and (bool) |
| Computes the logical AND of b across all processors in the current group. | |
| static bool | mp_or (bool) |
| static int | check_int_overflow (trustIdType) |
| static int | je_suis_maitre () |
| Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise. | |
| static KOKKOS_INLINE_FUNCTION void | Kokkos_exit (const char *) |
| Exit routine for TRUST within a Kokkos region. | |
| static int | node_master () |
| Returns 1 if on the NUMA node master processor, 0 otherwise. | |
| static void | exit (const Nom &message, int exit_code=-1) |
| static bool | is_sequential () |
| static void | barrier () |
| Synchronizes all processors in the current group (waits until all processors have reached the barrier). | |
| static void | abort () |
| Abort routine for TRUST on a fatal error. | |
| static Sortie & | Journal (int message_level=0) |
| Returns a static Sortie object used as an event journal. | |
| static double | ram_processeur () |
| static void | imprimer_ram_totale (int all_process=0) |
| static bool | force_single_file (const int ranks, const Nom &filename) |
| Static Public Attributes inherited from Objet_U | |
| static double | precision_geom = 1e-10 |
| static constexpr bool | HAS_POINTER = false |
| static int | dimension =0 |
| static int | format_precision_geom =11 |
| static int | axi =0 |
| static int | bidim_axi =0 |
| static int | DEACTIVATE_SIGINT_CATCH =0 |
| static Type_info | info_obj |
| static bool | disable_TU =false |
| Flag to disable or not the writing of the .TU files. | |
| static bool | stat_per_proc_perf_log =false |
| Flag to enable the writing of the statistics detailed per processor in _csv.TU file. | |
| Static Public Attributes inherited from Process | |
| static int | exception_sur_exit =0 |
| static int | multiple_files =5120 |
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
Uses 3 arrays tab1(n+1), tab2(nnz) and coeff_(nnz): Let Vi = { j different from i / M(i,j) is non-zero } tab1[i] = position in tab2 of the i-th row for tab1[i] <= j < tab1[i+1], tab2[j] describes Vi and coeff_[j] = M(i,tab2[j]) tab1 and tab2 are Fortran-style ranks: 1 <= tab2[i] <= n tab1[n+1] = nnz+1 Note: in this comment [] is used in the Fortran sense: tab1[1] refers to the first value of tab1
This is also the format described on the Wikipedia page: https://fr.wikipedia.org/wiki/Matrice_creuse
Definition at line 49 of file Matrice_Morse.h.
| Matrice_Morse::Matrice_Morse | ( | ) |
Definition at line 254 of file Matrice_Morse.cpp.
| Matrice_Morse::Matrice_Morse | ( | int | n, |
| _SIZE_ | nnz ) |
Constructor of a square Morse matrix of order n that can store at most nnz non-zero elements.
Also the default constructor as both parameters have a default value.
| (int | n) the order of the square matrix to construct |
| (int | nnz) the number of non-zero elements the matrix can store. |
Definition at line 247 of file Matrice_Morse.cpp.
| Matrice_Morse::Matrice_Morse | ( | int | n, |
| int | m, | ||
| _SIZE_ | nnz ) |
Constructor of a Morse matrix with n rows and m columns that can store at most nnz non-zero elements.
| (int | n) the number of rows of the matrix |
| (int | m) the number of columns of the matrix |
| (int | nnz) the number of non-zero elements the matrix can store. |
Definition at line 272 of file Matrice_Morse.cpp.
| Matrice_Morse::Matrice_Morse | ( | const Matrice_Morse & | acopier | ) |
Copy constructor of a Matrice_Morse.
Copies each member of the given parameter.
| (Matrice_Morse& | acopier) the Morse matrix to copy |
Definition at line 228 of file Matrice_Morse.cpp.
| Matrice_Morse::Matrice_Morse | ( | int | n, |
| int | nnz, | ||
| const IntLists & | voisins, | ||
| const DoubleLists & | valeurs, | ||
| const DoubleVect & | terme_diag ) |
Definition at line 280 of file Matrice_Morse.cpp.
| Matrice_Morse & Matrice_Morse::affecte_prod | ( | const Matrice_Morse & | a, |
| const Matrice_Morse & | b ) |
Assigns the product of 2 Morse matrices A and B to this object.
Operation: this = A * B
| (Matrice_Morse& | A) a Morse-format matrix |
| (Matrice_Morse& | B) a Morse-format matrix |
Definition at line 1326 of file Matrice_Morse.cpp.
|
overridevirtual |
Matrix-matrix multiply-accumulate operation (saxpy) (matrix X represented by an array).
Operation: RESU = RESU + A*X
| (DoubleTab& | x) the matrix to multiply |
| (DoubleTab& | resu) the result matrix of the operation |
Implements Matrice_Base.
Reimplemented in Matrice_Morse_Diag, and Matrice_Morse_Sym.
Definition at line 971 of file Matrice_Morse.cpp.
| ArrOfDouble & Matrice_Morse::ajouter_multvect_ | ( | const ArrOfDouble & | x, |
| ArrOfDouble & | resu, | ||
| ArrOfInt & | est_reel_pas_com ) const |
Definition at line 942 of file Matrice_Morse.cpp.
|
overridevirtual |
Operation de multiplication-accumulation (saxpy) matrice vecteur.
Operation: resu = resu + A*x
Implements Matrice_Base.
Reimplemented in Matrice_Morse_Diag, and Matrice_Morse_Sym.
Definition at line 876 of file Matrice_Morse.cpp.
| ArrOfDouble & Matrice_Morse::ajouter_multvectT_ | ( | const ArrOfDouble & | x, |
| ArrOfDouble & | resu, | ||
| ArrOfInt & | est_reel_pas_com ) const |
Definition at line 1025 of file Matrice_Morse.cpp.
|
overridevirtual |
Matrix-vector multiply-accumulate operation (saxpy), by the transposed matrix.
Operation: resu = resu + A^{T}*x
| (DoubleVect& | x) the vector to multiply |
| (DoubleVect& | resu) the result vector of the operation |
Implements Matrice_Base.
Reimplemented in Matrice_Morse_Diag, and Matrice_Morse_Sym.
Definition at line 1010 of file Matrice_Morse.cpp.
| void Matrice_Morse::assert_check_morse_matrix_structure | ( | ) | const |
Definition at line 1936 of file Matrice_Morse.cpp.
| void Matrice_Morse::assert_check_sorted_morse_matrix_structure | ( | ) | const |
Definition at line 1951 of file Matrice_Morse.cpp.
| bool Matrice_Morse::check_morse_matrix_structure | ( | ) | const |
Definition at line 1814 of file Matrice_Morse.cpp.
| bool Matrice_Morse::check_sorted_morse_matrix_structure | ( | ) | const |
Definition at line 1870 of file Matrice_Morse.cpp.
|
overridevirtual |
Remplit la matrice avec des zeros.
Reimplemented from Matrice_Base.
Definition at line 1787 of file Matrice_Morse.cpp.
|
inline |
Definition at line 130 of file Matrice_Morse.h.
|
inline |
Definition at line 129 of file Matrice_Morse.h.
| void Matrice_Morse::compacte | ( | int | elim_coeff_nul = 0 | ) |
Method to check/clean the Matrice_Morse matrix: -Suppress coefficient defined several times.
-elim_coeff_nul=0, zero coefficients are not removed from the matrix -elim_coeff_nul=1, zero coefficients are removed from the matrix -elim_coeff_nul=2, zero and near-zero coefficients are removed from the matrix
Definition at line 519 of file Matrice_Morse.cpp.
|
inline |
Definition at line 188 of file Matrice_Morse.h.
| void Matrice_Morse::construire_sous_bloc | ( | int | nl0, |
| int | nc0, | ||
| int | nl1, | ||
| int | nc1, | ||
| Matrice_Morse & | result ) const |
Definition at line 1969 of file Matrice_Morse.cpp.
|
virtual |
Definition at line 807 of file Matrice_Morse.cpp.
| void Matrice_Morse::dimensionner | ( | const IntTab & | Ind | ) |
Resizes the sparse matrix, optionally adding new non-zero coefficients.
Parameter: const IntTab &Ind Meaning: array of size nc * 2 where nc is the number of pairs (i,j) for the indices of the new coefficients
Definition at line 321 of file Matrice_Morse.cpp.
| void Matrice_Morse::dimensionner | ( | int | n, |
| _SIZE_ | nnz ) |
Size the matrix with n lines and n columns and nnz zero-values coefficients.
Definition at line 304 of file Matrice_Morse.cpp.
| void Matrice_Morse::dimensionner | ( | int | n, |
| int | m, | ||
| _SIZE_ | nnz ) |
Size the matrix with n lines, m columns with nnz zero-values coefficients.
Definition at line 469 of file Matrice_Morse.cpp.
| void Matrice_Morse::formeC | ( | ) |
Definition at line 1747 of file Matrice_Morse.cpp.
| void Matrice_Morse::formeF | ( | ) |
Definition at line 1760 of file Matrice_Morse.cpp.
|
inline |
Definition at line 112 of file Matrice_Morse.h.
|
inline |
Definition at line 108 of file Matrice_Morse.h.
|
inline |
Definition at line 98 of file Matrice_Morse.h.
|
inline |
Definition at line 103 of file Matrice_Morse.h.
|
overridevirtual |
Reimplemented from Matrice_Base.
Reimplemented in Matrice_Morse_Sym.
Definition at line 1464 of file Matrice_Morse.cpp.
|
overridevirtual |
Reimplemented from Matrice_Base.
Definition at line 1555 of file Matrice_Morse.cpp.
|
overridevirtual |
Reimplemented from Matrice_Base.
Reimplemented in Matrice_Morse_Sym.
Definition at line 1574 of file Matrice_Morse.cpp.
|
inlineprotected |
Definition at line 1530 of file Matrice_Morse.cpp.
|
inline |
Definition at line 96 of file Matrice_Morse.h.
|
inline |
Definition at line 110 of file Matrice_Morse.h.
|
inline |
Definition at line 202 of file Matrice_Morse.h.
|
inline |
Definition at line 111 of file Matrice_Morse.h.
| bool Matrice_Morse::has_same_morse_matrix_structure | ( | const Matrice_Morse & | A | ) | const |
Definition at line 1136 of file Matrice_Morse.cpp.
Reimplemented from Matrice_Base.
Definition at line 61 of file Matrice_Morse.cpp.
Reimplemented from Matrice_Base.
Reimplemented in Matrice_Morse_Sym.
Definition at line 78 of file Matrice_Morse.cpp.
Definition at line 83 of file Matrice_Morse.cpp.
Definition at line 140 of file Matrice_Morse.cpp.
Definition at line 145 of file Matrice_Morse.cpp.
|
virtual |
Computes the solution of the linear system: A * solution = secmem.
The method used is GMRES preconditioned with ILUT. WARNING: this method has probably never been tested in parallel
| (DoubleVect& | secmem) the right-hand side of the linear system |
| (DoubleVect& | solution) the solution of the system |
| (double | coeff_seuil) |
| Error | in ilut 'matrix may be wrong' dixit SAAD |
| Error | in ilut: overflow in L |
| Error | in ilut: overflow in U |
| Illegal | value for lfil: probably a memory corruption |
| Empty | row encountered |
| Null | pivot encountered! at step |
| Something | abnormal has happened: it is preferable to stop. |
Reimplemented in Matrice_Morse_Sym.
Definition at line 1169 of file Matrice_Morse.cpp.
|
virtual |
Reimplemented in Matrice_Morse_Sym.
Definition at line 1178 of file Matrice_Morse.cpp.
| bool Matrice_Morse::is_diagonal | ( | ) |
Definition at line 2042 of file Matrice_Morse.cpp.
| bool Matrice_Morse::is_sorted_stencil | ( | ) | const |
Definition at line 2019 of file Matrice_Morse.cpp.
| int Matrice_Morse::largeur_de_bande | ( | ) | const |
Computes the bandwidth of a Morse matrix.
Definition at line 1795 of file Matrice_Morse.cpp.
|
inline |
Definition at line 92 of file Matrice_Morse.h.
|
inlineoverridevirtual |
Return local number of columns (=size on the current proc).
Implements Matrice_Base.
Definition at line 91 of file Matrice_Morse.h.
|
inlineoverridevirtual |
Return local number of lines (=size on the current proc).
Implements Matrice_Base.
Definition at line 90 of file Matrice_Morse.h.
|
inline |
Definition at line 114 of file Matrice_Morse.h.
|
inline |
Definition at line 269 of file Matrice_Morse.h.
|
inline |
Definition at line 244 of file Matrice_Morse.h.
| Matrice_Morse & Matrice_Morse::operator*= | ( | const DoubleVect & | x | ) |
Matrix-vector multiplication operator: scales rows of the matrix by the corresponding.
coefficients of the vector passed as a parameter. A *= x performs the following scalings: A(i,:) = A(i,:) * x(i), for all rows i of A
| (DoubleVect& | x) scaling vector |
Definition at line 1309 of file Matrice_Morse.cpp.
| Matrice_Morse & Matrice_Morse::operator*= | ( | double | x | ) |
Operator multiplying all elements of a matrix by a scalar.
Operation: A = x * A
| (double | x) the scaling parameter |
Definition at line 1453 of file Matrice_Morse.cpp.
| Matrice_Morse & Matrice_Morse::operator+= | ( | const Matrice_Morse & | A | ) |
DOES NOTHING.
| (Matrice_Morse&) | a Morse matrix |
Definition at line 1426 of file Matrice_Morse.cpp.
| Matrice_Morse Matrice_Morse::operator- | ( | ) | const |
Unary negation operator, returns the opposite of the matrix: - A. Calls operator*(double,const Matrice_Morse&).
Definition at line 1415 of file Matrice_Morse.cpp.
| Matrice_Morse & Matrice_Morse::operator/= | ( | double | x | ) |
Operator dividing all elements of a matrix by a scalar.
Operation: A = A / x
| (double | x) the scaling parameter |
| division | by zero not possible |
Definition at line 1606 of file Matrice_Morse.cpp.
| Matrice_Morse & Matrice_Morse::operator= | ( | const Matrice_Morse & | a | ) |
Assignment operator from one Matrice_Morse to another.
| (Matrice_Morse& | a) the right-hand side of the assignment |
Definition at line 738 of file Matrice_Morse.cpp.
|
overridevirtual |
Returns the order of the matrix: - the number of rows if the matrix is square.
- 0 otherwise
Implements Matrice_Base.
Definition at line 504 of file Matrice_Morse.cpp.
|
virtual |
Definition at line 825 of file Matrice_Morse.cpp.
| void Matrice_Morse::remplir | ( | const int | ideb, |
| const int | jdeb, | ||
| const int | n, | ||
| const int | m, | ||
| const Matrice_Morse & | mat ) |
Fill a Morse matrix from a smaller Morse matrix.
Definition at line 1699 of file Matrice_Morse.cpp.
| void Matrice_Morse::remplir | ( | const IntLists & | voisins, |
| const DoubleLists & | valeurs ) |
Definition at line 1656 of file Matrice_Morse.cpp.
| void Matrice_Morse::remplir | ( | const IntLists & | voisins, |
| const DoubleLists & | valeurs, | ||
| const DoubleVect & | terme_diag ) |
Definition at line 1612 of file Matrice_Morse.cpp.
|
overridevirtual |
Implements Matrice_Base.
Reimplemented in Matrice_Morse_Sym.
Definition at line 1459 of file Matrice_Morse.cpp.
| void Matrice_Morse::set_nb_columns | ( | const int | nb_col | ) |
Definition at line 290 of file Matrice_Morse.cpp.
| void Matrice_Morse::set_symmetric | ( | const int | symmetric | ) |
Definition at line 295 of file Matrice_Morse.cpp.
|
inline |
Definition at line 210 of file Matrice_Morse.h.
|
inline |
Definition at line 193 of file Matrice_Morse.h.
| void Matrice_Morse::sort_stencil | ( | ) |
Definition at line 2010 of file Matrice_Morse.cpp.
|
virtual |
*this = transpose of a.
| (Matrice_Morse& | a) the matrix to transpose |
Definition at line 753 of file Matrice_Morse.cpp.
| void Matrice_Morse::unite | ( | ) |
Initialize to the identity matrix (modif MT).
Definition at line 490 of file Matrice_Morse.cpp.
| void Matrice_Morse::WriteFileMTX | ( | const Nom & | name | ) | const |
Definition at line 197 of file Matrice_Morse.cpp.
|
friend |
Friend function (outside the class) of the Matrice_Morse class. Scaling of the matrix by a scalar: multiplies all.
elements of the matrix by a scalar. Operation: returns x*A
| (double | x) scaling value |
| (Matrice_Morse& | B) a Morse-format matrix |
Definition at line 1404 of file Matrice_Morse.cpp.
|
friend |
Friend function (outside the class) of the Matrice_Morse class. Addition of 2 Morse-format matrices.
Operation: returns (A+B)
| (Matrice_Morse& | A) a Morse-format matrix |
| (Matrice_Morse& | B) a Morse-format matrix |
Definition at line 1052 of file Matrice_Morse.cpp.
|
protected |
Definition at line 227 of file Matrice_Morse.h.
|
protected |
Definition at line 231 of file Matrice_Morse.h.
|
mutableprotected |
Definition at line 230 of file Matrice_Morse.h.
|
mutable |
Definition at line 192 of file Matrice_Morse.h.
|
protected |
Definition at line 232 of file Matrice_Morse.h.
|
protected |
Definition at line 225 of file Matrice_Morse.h.
|
protected |
Definition at line 226 of file Matrice_Morse.h.