Matrice d'un système linéaire. Plus de détails...
#include <arcane/aleph/AlephMatrix.h>
Fonctions membres publiques | |
AlephMatrix (AlephKernel *) | |
void | create (void) |
void | create (IntegerConstArrayView, bool=false) |
void | create_really (void) |
create_really transmet l'ordre de création à la bibliothèque externe | |
void | reset (void) |
reset pour flusher les tableaux des [set&add]Value | |
Integer | reIdx (Integer, Array< Int32 * > &) |
reIdx recherche la correspondance de l'AlephIndexing | |
void | reSetValuesIn (AlephMatrix *, Array< Int32 * > &) |
reSetValuesIn rejoue les setValue avec les indexes calculés via l'AlephIndexing | |
void | reAddValuesIn (AlephMatrix *, Array< Int32 * > &) |
reAddValuesIn rejoue les addValue avec les indexes calculés via l'AlephIndexing | |
void | updateKnownRowCol (Integer, Integer, Real) |
void | rowMapMapCol (Integer, Integer, Real) |
void | addValue (const VariableRef &, const Item &, const VariableRef &, const Item &, const Real) |
void | addValue (const VariableRef &, const ItemEnumerator &, const VariableRef &, const ItemEnumerator &, const Real) |
addValue à partir d'arguments en IVariables, Items et Real | |
void | setValue (const VariableRef &, const Item &, const VariableRef &, const Item &, const Real) |
setValue à partir d'arguments en IVariables, Items et Real | |
void | setValue (const VariableRef &, const ItemEnumerator &, const VariableRef &, const ItemEnumerator &, const Real) |
setValue à partir d'arguments en IVariables, ItemEnumerator et Real | |
void | addValue (Integer, Integer, Real) |
addValue standard en (i,j,val) | |
void | setValue (Integer, Integer, Real) |
setValue standard à partir d'arguments (row,col,val) | |
void | writeToFile (const String) |
Déclenche l'écriture de la matrice dans un fichier. | |
void | startFilling () |
Permet de spécifier le début d'une phase de remplissage. | |
void | assemble () |
assemble les matrices avant résolution | |
void | assemble_waitAndFill () |
assemble_waitAndFill attend que les requètes précédemment postées aient été traitées | |
void | reassemble (Integer &, Real *) |
Déclenche l'ordre de récupération des résultats. | |
void | reassemble_waitAndFill (Integer &, Real *) |
Synchronise les réceptions des résultats. | |
void | solve (AlephVector *, AlephVector *, Integer &, Real *, AlephParams *, bool=false) |
'Poste' le solver au scheduler de façon asynchrone ou pas | |
void | solveNow (AlephVector *, AlephVector *, AlephVector *, Integer &, Real *, AlephParams *) |
Résout le système linéraire. | |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Types privés | |
typedef std::map< Integer, Integer > | colMap |
typedef std::map< Integer, colMap * > | rowColMap |
Attributs privés | |
AlephKernel * | m_kernel = nullptr |
Integer | m_index |
ArrayView< Integer > | m_ranks |
bool | m_participating_in_solver = false |
IAlephMatrix * | m_implementation = nullptr |
MultiArray2< AlephInt > | m_aleph_matrix_buffer_rows |
MultiArray2< AlephInt > | m_aleph_matrix_buffer_cols |
MultiArray2< Real > | m_aleph_matrix_buffer_vals |
Integer | m_setValue_idx |
UniqueArray< AlephInt > | m_setValue_row |
UniqueArray< AlephInt > | m_setValue_col |
UniqueArray< Real > | m_setValue_val |
rowColMap | m_row_col_map |
Integer | m_addValue_idx |
UniqueArray< Integer > | m_addValue_row |
UniqueArray< Integer > | m_addValue_col |
UniqueArray< Real > | m_addValue_val |
UniqueArray< Parallel::Request > | m_aleph_matrix_mpi_data_requests |
UniqueArray< Parallel::Request > | m_aleph_matrix_mpi_results_requests |
UniqueArray< Int32 > | m_aleph_matrix_buffer_n_iteration |
UniqueArray< Real > | m_aleph_matrix_buffer_residual_norm |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Matrice d'un système linéaire.
Définition à la ligne 31 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 89 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 90 du fichier AlephMatrix.h.
|
explicit |
Définition à la ligne 27 du fichier AlephMatrix.cc.
Arcane::AlephMatrix::~AlephMatrix | ( | ) |
Définition à la ligne 60 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::addValue | ( | const VariableRef & | rowVar, |
const Item & | rowItm, | ||
const VariableRef & | colVar, | ||
const Item & | colItm, | ||
const Real | val | ||
) |
Définition à la ligne 125 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::addValue | ( | const VariableRef & | rowVar, |
const ItemEnumerator & | rowItm, | ||
const VariableRef & | colVar, | ||
const ItemEnumerator & | colItm, | ||
const Real | val | ||
) |
addValue à partir d'arguments en IVariables, Items et Real
Définition à la ligne 118 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::addValue | ( | Integer | row, |
Integer | col, | ||
Real | val | ||
) |
addValue standard en (i,j,val)
Définition à la ligne 196 du fichier AlephMatrix.cc.
assemble les matrices avant résolution
Définition à la ligne 305 du fichier AlephMatrix.cc.
assemble_waitAndFill attend que les requètes précédemment postées aient été traitées
Définition à la ligne 463 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::create | ( | IntegerConstArrayView | row_nb_element, |
bool | has_many_elements = false |
||
) |
Définition à la ligne 94 du fichier AlephMatrix.cc.
Définition à la ligne 74 du fichier AlephMatrix.cc.
create_really transmet l'ordre de création à la bibliothèque externe
Définition à la ligne 444 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::reAddValuesIn | ( | AlephMatrix * | thisMatrix, |
Array< Int32 * > & | known_items_own_address | ||
) |
reAddValuesIn rejoue les addValue avec les indexes calculés via l'AlephIndexing
Définition à la ligne 290 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::reassemble | ( | Integer & | nb_iteration, |
Real * | residual_norm | ||
) |
Déclenche l'ordre de récupération des résultats.
Définition à la ligne 630 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::reassemble_waitAndFill | ( | Integer & | nb_iteration, |
Real * | residual_norm | ||
) |
Synchronise les réceptions des résultats.
Définition à la ligne 675 du fichier AlephMatrix.cc.
Int32 Arcane::AlephMatrix::reIdx | ( | Integer | ij, |
Array< Int32 * > & | known_items_own_address | ||
) |
reIdx recherche la correspondance de l'AlephIndexing
Définition à la ligne 266 du fichier AlephMatrix.cc.
reset pour flusher les tableaux des [set&add]Value
Définition à la ligne 106 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::reSetValuesIn | ( | AlephMatrix * | thisMatrix, |
Array< Int32 * > & | known_items_own_address | ||
) |
reSetValuesIn rejoue les setValue avec les indexes calculés via l'AlephIndexing
Définition à la ligne 276 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::rowMapMapCol | ( | Integer | row, |
Integer | col, | ||
Real | val | ||
) |
Définition à la ligne 156 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::setValue | ( | const VariableRef & | rowVar, |
const Item & | rowItm, | ||
const VariableRef & | colVar, | ||
const Item & | colItm, | ||
const Real | val | ||
) |
setValue à partir d'arguments en IVariables, Items et Real
Définition à la ligne 220 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::setValue | ( | const VariableRef & | rowVar, |
const ItemEnumerator & | rowItm, | ||
const VariableRef & | colVar, | ||
const ItemEnumerator & | colItm, | ||
const Real | val | ||
) |
setValue à partir d'arguments en IVariables, ItemEnumerator et Real
Définition à la ligne 209 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::setValue | ( | Integer | row, |
Integer | col, | ||
Real | val | ||
) |
setValue standard à partir d'arguments (row,col,val)
Définition à la ligne 239 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::solve | ( | AlephVector * | x, |
AlephVector * | b, | ||
Integer & | nb_iteration, | ||
Real * | residual_norm, | ||
AlephParams * | solver_param, | ||
bool | async = false |
||
) |
'Poste' le solver au scheduler de façon asynchrone ou pas
Définition à la ligne 546 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::solveNow | ( | AlephVector * | x, |
AlephVector * | b, | ||
AlephVector * | tmp, | ||
Integer & | nb_iteration, | ||
Real * | residual_norm, | ||
AlephParams * | params | ||
) |
Résout le système linéraire.
x | solution du système Ax=b (en sortie) |
b | second membre du système (en entrée) |
nb_iteration | nombre d'itérations du système (en sortie) |
residual_norm | résidu de convergence du système (en sortie) |
info | parametres de l'application parallele (en entrée) |
solver_param | Parametres du Solveur du solveur Ax=b (en entrée) |
Définition à la ligne 576 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::startFilling | ( | ) |
Permet de spécifier le début d'une phase de remplissage.
Définition à la ligne 701 du fichier AlephMatrix.cc.
void Arcane::AlephMatrix::updateKnownRowCol | ( | Integer | row, |
Integer | col, | ||
Real | val | ||
) |
Définition à la ligne 140 du fichier AlephMatrix.cc.
Déclenche l'écriture de la matrice dans un fichier.
Définition à la ligne 713 du fichier AlephMatrix.cc.
|
private |
Définition à la ligne 94 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 92 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 93 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 95 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 80 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 102 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 103 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 79 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 81 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 98 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 99 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 74 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 71 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 70 du fichier AlephMatrix.h.
Définition à la ligne 73 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 72 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 91 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 85 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 83 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 84 du fichier AlephMatrix.h.
|
private |
Définition à la ligne 86 du fichier AlephMatrix.h.