| 
    Isorropia: Partitioning, Load Balancing and more
    
   | 
 
An implementation of the LevelScheduler interface that operates on and Epetra_CrsGraph, representing the non-zeros in a matrix. More...
#include <Isorropia_EpetraLevelScheduler.hpp>


Public Member Functions | |
| LevelScheduler (Teuchos::RCP< const Epetra_CrsGraph > input_graph, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList"), bool compute_now=true) | |
| Constructor.  More... | |
| ~LevelScheduler () | |
| Destructor.  More... | |
| void | schedule (bool force_scheduling=false) | 
| Compute the scheduling if it has not already been computed, same effect as Isorropia::Epetra::LevelScheduler::compute.  More... | |
| void | compute (bool force_compute=false) | 
| Compute the scheduling if it has not already been computed, same effect as Isorropia::Epetra::LevelScheduler::schedule.  More... | |
| virtual int | numLevels () const | 
| Method which returns the number of levels.  More... | |
| virtual int | numElemsWithLevel (int level) const | 
| Return the number of elements in a given level.  More... | |
| virtual void | elemsWithLevel (int level, int *elementList, int len) const | 
| Fill user-allocated list (of length len) with the local ID for each element in the given level.  More... | |
| virtual void | setParameters (const Teuchos::ParameterList ¶mlist)=0 | 
| Set parameters for the Operator instance.  More... | |
| void | setParameters (const Teuchos::ParameterList ¶mlist) | 
| setParameters() is an internal method which handles the parameters from a Teuchos::ParameterList object.  More... | |
| Teuchos::RCP < Isorropia::Epetra::CostDescriber > &  | getCosts () | 
| Get the cost object.  More... | |
| bool | alreadyComputed () const | 
| Query whether compute_operation() has already been called.  More... | |
| int | numProperties () const | 
| Return the number of different values used for "properties".  More... | |
| int | numLocalProperties () const | 
| Return the number of different values used for "properties" for this process only.  More... | |
| virtual const int & | operator[] (int myElem) const | 
| Return the new partition ID for a given element that resided locally in the old operation.  More... | |
| virtual int | numElemsWithProperty (int property) const | 
| Return the number of elements in a given partition.  More... | |
| virtual void | elemsWithProperty (int property, int *elementList, int len) const | 
| Fill user-allocated list (of length len) with the global element ids to be located in the given partition.  More... | |
| virtual int | extractPropertiesCopy (int len, int &size, int *array) const | 
| Copy a part of the property array.  More... | |
| virtual int | extractPropertiesView (int &size, const int *&array) const | 
| Give access of the property array that is owned by the current processor.  More... | |
| virtual bool | alreadyComputed () const =0 | 
| Query whether the computation has already been called.  More... | |
| virtual int | numProperties () const =0 | 
| Return the number of different values used for "properties".  More... | |
| virtual int | numLocalProperties () const =0 | 
| Return the number of different values used for "properties" for this process only.  More... | |
| virtual const int & | operator[] (int myElem) const =0 | 
| Return the "property" for a given element that resided locally.  More... | |
| virtual int | numElemsWithProperty (int property) const =0 | 
| Return the number of LOCAL elements with the given property.  More... | |
| virtual void | elemsWithProperty (int property, int *elementList, int len) const =0 | 
| Fill user-allocated list (of length len) with the local element ids of the LOCAL elements with the given property.  More... | |
| virtual int | extractPropertiesView (int &size, const int *&array) const =0 | 
| Give access of the property array that is owned by the current processor.  More... | |
| virtual int | extractPropertiesCopy (int len, int &size, int *array) const =0 | 
| Copy a part of the property array.  More... | |
Protected Member Functions | |
| void | computeNumberOfProperties () | 
Protected Attributes | |
| Teuchos::RCP< const  Epetra_BlockMap >  | input_map_ | 
| Teuchos::RCP< const  Epetra_CrsGraph >  | input_graph_ | 
| Teuchos::RCP< const  Epetra_RowMatrix >  | input_matrix_ | 
| Teuchos::RCP< const  Epetra_MultiVector >  | input_coords_ | 
| Teuchos::RCP < Isorropia::Epetra::CostDescriber >  | costs_ | 
| Teuchos::RCP< const  Epetra_MultiVector >  | weights_ | 
| Teuchos::ParameterList | paramlist_ | 
| int | exportsSize_ | 
| std::vector< int > | imports_ | 
| std::vector< int > | properties_ | 
| bool | operation_already_computed_ | 
| int | global_num_vertex_weights_ | 
| int | global_num_graph_edge_weights_ | 
| int | global_num_hg_edge_weights_ | 
| Teuchos::RCP< Library > | lib_ | 
| int | base_ | 
An implementation of the LevelScheduler interface that operates on and Epetra_CrsGraph, representing the non-zeros in a matrix.
The elements to be partitioned into levels are matrix rows. Assumption is that matrix is lower triangular or upper triangular.
| Isorropia::Epetra::LevelScheduler::LevelScheduler | ( | Teuchos::RCP< const Epetra_CrsGraph > | input_graph, | 
| const Teuchos::ParameterList & | paramlist = Teuchos::ParameterList("EmptyParameterList"),  | 
        ||
| bool | compute_now = true  | 
        ||
| ) | 
Constructor.
| [in] | input_graph | the graph representing the non-zeros of the matrix | 
| [in] | paramlist | list of parameters | 
| [in] | compute_now | if true, the scheduling is computed in the constructor, otherwise call Isorropia::Epetra::LevelScheduler::schedule when you want to compute the scheduling, defaults to false  | 
      
  | 
  virtual | 
Destructor.
Reimplemented from Isorropia::LevelScheduler.
      
  | 
  virtual | 
Compute the scheduling if it has not already been computed, same effect as Isorropia::Epetra::LevelScheduler::compute.
| [in] | force_scheduling | if true recompute the scheduling even if it has already been computed, defaults to false  | 
Implements Isorropia::LevelScheduler.
      
  | 
  inlinevirtual | 
Compute the scheduling if it has not already been computed, same effect as Isorropia::Epetra::LevelScheduler::schedule.
| [in] | force_compute | if true recompute the scheduling even if it has already been computed, defaults to false  | 
Implements Isorropia::Epetra::Operator.
      
  | 
  inlinevirtualinherited | 
Method which returns the number of levels.
      
  | 
  inlinevirtualinherited | 
Return the number of elements in a given level.
| level | The wanted level. | 
      
  | 
  inlinevirtualinherited | 
Fill user-allocated list (of length len) with the local ID for each element in the given level.
| level | the wanted level | 
| elementList | an array to receive local elements of the given level | 
| len | the number of elements wanted | 
      
  | 
  pure virtualinherited | 
Set parameters for the Operator instance.
The contents of the input paramlist object are copied into an internal ParameterList attribute. Instances of this interface should not retain a reference to the input ParameterList after this method returns.
| [in] | paramlist | List of parameters that the user wants to use. | 
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Query whether the computation has already been called.
True if the computation has already been done, False otherwise. Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Return the number of different values used for "properties".
For example, the number of colors or the number of parts used for the overall graph/matrix.
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Return the number of different values used for "properties" for this process only.
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Return the "property" for a given element that resided locally.
| [in] | myElem | the local ID of the element we want to know the property. | 
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Return the number of LOCAL elements with the given property.
| [in] | property | Value of the property to consider. | 
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Fill user-allocated list (of length len) with the local element ids of the LOCAL elements with the given property.
| [in] | property | Value of the property to consider. | 
| [out] | elementList | User allocated array (of size at least len) of local ID that have the asked property. | 
| [in] | len | Maximum lenght for the array. If len is greater than the result of numElemsWithProperty() for property, only the first and relevant elements are filled. | 
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Give access of the property array that is owned by the current processor.
| [out] | size | Number of elements in the array. | 
| [out] | array | Pointer to the the properties array inside the object. | 
Implemented in Isorropia::Epetra::Operator.
      
  | 
  pure virtualinherited | 
Copy a part of the property array.
| [in] | len | of the array given by the user. | 
| [out] | size | Number of elements in the array. | 
| [out] | array | Array of properties. Allocated by the user with a size of at least len elements. | 
Implemented in Isorropia::Epetra::Operator.
      
  | 
  virtualinherited | 
setParameters() is an internal method which handles the parameters from a Teuchos::ParameterList object.
Implements Isorropia::Operator.
      
  | 
  inlineinherited | 
Get the cost object.
      
  | 
  inlinevirtualinherited | 
Query whether compute_operation() has already been called.
Implements Isorropia::Operator.
      
  | 
  inlinevirtualinherited | 
Return the number of different values used for "properties".
For example, the number of colors or the number of parts used for the overall graph/matrix.
Implements Isorropia::Operator.
      
  | 
  inlinevirtualinherited | 
Return the number of different values used for "properties" for this process only.
Implements Isorropia::Operator.
      
  | 
  virtualinherited | 
Return the new partition ID for a given element that resided locally in the old operation.
Implements Isorropia::Operator.
      
  | 
  virtualinherited | 
Return the number of elements in a given partition.
Implements Isorropia::Operator.
      
  | 
  virtualinherited | 
Fill user-allocated list (of length len) with the global element ids to be located in the given partition.
Implements Isorropia::Operator.
      
  | 
  virtualinherited | 
Copy a part of the property array.
| [in] | len | of the array given by the user. | 
| [out] | size | Number of elements in the array. | 
| [out] | array | Array of properties. Allocated by the user with a size of at least len elements. | 
Implements Isorropia::Operator.
      
  | 
  virtualinherited | 
Give access of the property array that is owned by the current processor.
| [out] | size | Number of elements in the array. | 
| [out] | array | Pointer to the the properties array inside the object. | 
Implements Isorropia::Operator.
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited | 
      
  | 
  protectedinherited |