Isorropia::Epetra::Colorer Class Reference

An implementation of the Colorer interface that operates on Epetra matrices and linear systems. More...

#include <Isorropia_EpetraColorer.hpp>

Inheritance diagram for Isorropia::Epetra::Colorer:

Inheritance graph
[legend]
Collaboration diagram for Isorropia::Epetra::Colorer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Colorer (Teuchos::RCP< const Epetra_CrsGraph > input_graph, const Teuchos::ParameterList &paramlist, bool compute_now=true)
 Constructor.
 Colorer (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, const Teuchos::ParameterList &paramlist, bool compute_now=true)
 Constructor.
 ~Colorer ()
 Destructor.
void color (bool force_coloring=false)
 Compute the coloring if it has not already been computed, same effect as Isorropia::Epetra::Colorer::compute.
void compute (bool force_compute=false)
 Compute the coloring if it has not already been computed, same effect as Isorropia::Epetra::Colorer::color.
__deprecated Teuchos::RCP<
Epetra_MapColoring > 
generateMapColoring ()
 Generate an Epetra_MapColoring object.
Teuchos::RCP< Epetra_MapColoring > generateRowMapColoring ()
 Generate an Epetra_MapColoring object corresponding of rows color.
Teuchos::RCP< Epetra_MapColoring > generateColMapColoring ()
 Generate an Epetra_MapColoring object corresponding of columns color.
virtual int numColors () const
 Method which returns the number (global) of colors used.
virtual int numElemsWithColor (int color) const
 Return the number of local elements of a given color.
virtual void elemsWithColor (int color, int *elementList, int len) const
 Fill user-allocated list (of length len) with the local element ids for LOCAL elements of the given color.
virtual int extractColorsView (int &size, const int *&array) const
 Give access of the color assignments array that is owned by the current processor.
virtual int extractColorsCopy (int len, int &size, int *array) const
 Copy a part of the color assignments array.
virtual void setParameters (const Teuchos::ParameterList &paramlist)=0
 Set parameters for the Operator instance.
void setParameters (const Teuchos::ParameterList &paramlist)
 setParameters() is an internal method which handles the parameters from a Teuchos::ParameterList object.
bool alreadyComputed () const
 Query whether compute_operation() has already been called.
int numProperties () const
 Return the number of different values used for "properties".
int numLocalProperties () const
 Return the number of different values used for "properties" for this process only.
virtual const int & operator[] (int myElem) const
 Return the new partition ID for a given element that resided locally in the old operation.
virtual int numElemsWithProperty (int property) const
 Return the number of elements in a given partition.
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.
virtual int extractPropertiesCopy (int len, int &size, int *array) const
 Copy a part of the property array.
virtual int extractPropertiesView (int &size, const int *&array) const
 Give access of the property array that is owned by the current processor.

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::CostDescribercosts_
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< Librarylib_
int base_

Private Attributes

Teuchos::RCP< const Epetra_BlockMap > colmap_

Detailed Description

An implementation of the Colorer interface that operates on Epetra matrices and linear systems.


Constructor & Destructor Documentation

Isorropia::Epetra::Colorer::Colorer ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
const Teuchos::ParameterList &  paramlist,
bool  compute_now = true 
)

Constructor.

Parameters:
[in] input_graph the graph which is to have colors assigned to its rows
[in] paramlist this parameter list may be used to pass parameters to Zoltan
[in] compute_now if true, the coloring is computed in the constructor, otherwise call Isorropia::Epetra::Colorer::color when you want to compute the coloring, defaults to false

Isorropia::Epetra::Colorer::Colorer ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
const Teuchos::ParameterList &  paramlist,
bool  compute_now = true 
)

Constructor.

Parameters:
[in] input_matrix the matrix which is to have colors assigned to its rows
[in] paramlist this parameter list may be used to pass parameters to Zoltan
[in] compute_now if true, the coloring is computed in the constructor, otherwise call Isorropia::Epetra::Colorer::color when you want to compute the coloring, defaults to true

Isorropia::Epetra::Colorer::~Colorer (  )  [inline, virtual]

Destructor.

Reimplemented from Isorropia::Colorer.


Member Function Documentation

void Isorropia::Epetra::Colorer::color ( bool  force_coloring = false  )  [virtual]

Compute the coloring if it has not already been computed, same effect as Isorropia::Epetra::Colorer::compute.

Parameters:
[in] force_coloring if true recompute the coloring even if it has already been computed, defaults to false

Implements Isorropia::Colorer.

void Isorropia::Epetra::Colorer::compute ( bool  force_compute = false  )  [inline, virtual]

Compute the coloring if it has not already been computed, same effect as Isorropia::Epetra::Colorer::color.

Parameters:
[in] force_compute if true recompute the coloring even if it has already been computed, defaults to false

Implements Isorropia::Epetra::Operator.

__deprecated Teuchos::RCP<Epetra_MapColoring> Isorropia::Epetra::Colorer::generateMapColoring (  )  [inline]

Generate an Epetra_MapColoring object.

Provide access on the coloring thru the EpetraEXT color class Epetra_MapColoring. This methods requires EpetraEXT support.

Deprecated:
It's recommended to use
See also:
generateRowMapColoring() to this.

Teuchos::RCP<Epetra_MapColoring> Isorropia::Epetra::Colorer::generateRowMapColoring (  ) 

Generate an Epetra_MapColoring object corresponding of rows color.

Provide access on the coloring thru the EpetraEXT color class Epetra_MapColoring. This methods requires EpetraEXT support.

Teuchos::RCP<Epetra_MapColoring> Isorropia::Epetra::Colorer::generateColMapColoring (  ) 

Generate an Epetra_MapColoring object corresponding of columns color.

Provide access on the coloring thru the EpetraEXT color class Epetra_MapColoring. This methods requires EpetraEXT support.

virtual int Isorropia::Colorer::numColors (  )  const [inline, virtual, inherited]

Method which returns the number (global) of colors used.

Returns:
The overall number of colors used. All colors used for all vertices are between 1 and this value (included).
See also:
Isorropia::Operator::numProperties()

virtual int Isorropia::Colorer::numElemsWithColor ( int  color  )  const [inline, virtual, inherited]

Return the number of local elements of a given color.

Parameters:
color The wanted color.
Returns:
The number of local of the asked color.
See also:
Isorropia::Operator::numElemsWithProperty()

virtual void Isorropia::Colorer::elemsWithColor ( int  color,
int *  elementList,
int  len 
) const [inline, virtual, inherited]

Fill user-allocated list (of length len) with the local element ids for LOCAL elements of the given color.

Parameters:
color the wanted color
elementList an array to receive local elements of the given color
len the number of elements wanted
See also:
Isorropia::Operator::elemsWithProperty()

virtual int Isorropia::Colorer::extractColorsView ( int &  size,
const int *&  array 
) const [inline, virtual, inherited]

Give access of the color assignments array that is owned by the current processor.

Parameters:
[out] size Number of elements in the array.
[out] array Pointer to the color assignements array inside the object.
Remarks:
This pointer is only significant if the object still exists. Otherwise, you must use
See also:
Isorropia::Operator::extractPartsCopy()

Isorropia::Operator::extractPropertiesView()

virtual int Isorropia::Colorer::extractColorsCopy ( int  len,
int &  size,
int *  array 
) const [inline, virtual, inherited]

Copy a part of the color assignments array.

Parameters:
[in] len of the array given by the user.
[out] size Number of elements in the array.
[out] array Array of color assignments. Allocated by the user with a size of at least len elements.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.
See also:
Isorropia::Operator::extractPropertiesCopy()

virtual void Isorropia::Operator::setParameters ( const Teuchos::ParameterList &  paramlist  )  [pure virtual, inherited]

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.

Parameters:
[in] paramlist List of parameters that the user wants to use.

Implemented in Isorropia::Epetra::Operator.

virtual bool Isorropia::Operator::alreadyComputed (  )  const [pure virtual, inherited]

Query whether the computation has already been called.

Returns:
True if the computation has already been done, False otherwise.

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::numProperties (  )  const [pure virtual, inherited]

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.

Returns:
Global number of values for properties
Remarks:
Infact, it returns the upper bound of the interval of taken values. For example, for the colors "1,2,4"" , it will return "4"

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::numLocalProperties (  )  const [pure virtual, inherited]

Return the number of different values used for "properties" for this process only.

Returns:
Local number of values for properties

Implemented in Isorropia::Epetra::Operator.

virtual const int& Isorropia::Operator::operator[] ( int  myElem  )  const [pure virtual, inherited]

Return the "property" for a given element that resided locally.

Parameters:
[in] myElem the local ID of the element we want to know the property.
Returns:
property associated to the local element.

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::numElemsWithProperty ( int  property  )  const [pure virtual, inherited]

Return the number of LOCAL elements with the given property.

Parameters:
[in] property Value of the property to consider.
Returns:
Number of local elems which have this property.

Implemented in Isorropia::Epetra::Operator.

virtual void Isorropia::Operator::elemsWithProperty ( int  property,
int *  elementList,
int  len 
) const [pure virtual, inherited]

Fill user-allocated list (of length len) with the local element ids of the LOCAL elements with the given property.

Parameters:
[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.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::extractPropertiesView ( int &  size,
const int *&  array 
) const [pure virtual, inherited]

Give access of the property array that is owned by the current processor.

Parameters:
[out] size Number of elements in the array.
[out] array Pointer to the the properties array inside the object.
Remarks:
This pointer is only significant if the object still exists. Otherwise, you must use
See also:
Isorropia::Operator::extractPropertiesCopy().

Isorropia::Operator::extractPropertiesCopy()

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::extractPropertiesCopy ( int  len,
int &  size,
int *  array 
) const [pure virtual, inherited]

Copy a part of the property array.

Parameters:
[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.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.
See also:
Isorropia::Operator::extractPropertiesView()

Implemented in Isorropia::Epetra::Operator.

void Isorropia::Epetra::Operator::setParameters ( const Teuchos::ParameterList &  paramlist  )  [virtual, inherited]

setParameters() is an internal method which handles the parameters from a Teuchos::ParameterList object.

Implements Isorropia::Operator.

bool Isorropia::Epetra::Operator::alreadyComputed (  )  const [inline, virtual, inherited]

Query whether compute_operation() has already been called.

Implements Isorropia::Operator.

int Isorropia::Epetra::Operator::numProperties (  )  const [inline, virtual, inherited]

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.

Returns:
Global number of values for properties
Remarks:
Infact, it returns the upper bound of the interval of taken values. For example, for the colors "1,2,4"" , it will return "4"

Implements Isorropia::Operator.

int Isorropia::Epetra::Operator::numLocalProperties (  )  const [inline, virtual, inherited]

Return the number of different values used for "properties" for this process only.

Returns:
Local number of values for properties

Implements Isorropia::Operator.

virtual const int& Isorropia::Epetra::Operator::operator[] ( int  myElem  )  const [virtual, inherited]

Return the new partition ID for a given element that resided locally in the old operation.

Implements Isorropia::Operator.

virtual int Isorropia::Epetra::Operator::numElemsWithProperty ( int  property  )  const [virtual, inherited]

Return the number of elements in a given partition.

Implements Isorropia::Operator.

virtual void Isorropia::Epetra::Operator::elemsWithProperty ( int  property,
int *  elementList,
int  len 
) const [virtual, inherited]

Fill user-allocated list (of length len) with the global element ids to be located in the given partition.

Implements Isorropia::Operator.

virtual int Isorropia::Epetra::Operator::extractPropertiesCopy ( int  len,
int &  size,
int *  array 
) const [virtual, inherited]

Copy a part of the property array.

Parameters:
[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.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.
See also:
Isorropia::Operator::extractPropertiesView()

Implements Isorropia::Operator.

virtual int Isorropia::Epetra::Operator::extractPropertiesView ( int &  size,
const int *&  array 
) const [virtual, inherited]

Give access of the property array that is owned by the current processor.

Parameters:
[out] size Number of elements in the array.
[out] array Pointer to the the properties array inside the object.
Remarks:
This pointer is only significant if the object still exists. Otherwise, you must use
See also:
Isorropia::Operator::extractPropertiesCopy().

Isorropia::Operator::extractPropertiesCopy()

Implements Isorropia::Operator.

void Isorropia::Epetra::Operator::computeNumberOfProperties (  )  [protected, inherited]


Member Data Documentation

Teuchos::RCP<const Epetra_BlockMap> Isorropia::Epetra::Colorer::colmap_ [private]

Teuchos::RCP<const Epetra_BlockMap> Isorropia::Epetra::Operator::input_map_ [protected, inherited]

Teuchos::RCP<const Epetra_CrsGraph> Isorropia::Epetra::Operator::input_graph_ [protected, inherited]

Teuchos::RCP<const Epetra_RowMatrix> Isorropia::Epetra::Operator::input_matrix_ [protected, inherited]

Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Operator::input_coords_ [protected, inherited]

Teuchos::RCP<Isorropia::Epetra::CostDescriber> Isorropia::Epetra::Operator::costs_ [protected, inherited]

Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Operator::weights_ [protected, inherited]

Teuchos::ParameterList Isorropia::Epetra::Operator::paramlist_ [protected, inherited]

int Isorropia::Epetra::Operator::exportsSize_ [protected, inherited]

std::vector<int> Isorropia::Epetra::Operator::imports_ [protected, inherited]

std::vector<int> Isorropia::Epetra::Operator::properties_ [protected, inherited]

bool Isorropia::Epetra::Operator::operation_already_computed_ [protected, inherited]

int Isorropia::Epetra::Operator::global_num_vertex_weights_ [protected, inherited]

int Isorropia::Epetra::Operator::global_num_graph_edge_weights_ [protected, inherited]

int Isorropia::Epetra::Operator::global_num_hg_edge_weights_ [protected, inherited]

Teuchos::RCP<Library> Isorropia::Epetra::Operator::lib_ [protected, inherited]

int Isorropia::Epetra::Operator::base_ [protected, inherited]


The documentation for this class was generated from the following file: