Files
mlpack/fastlib/trilinos/include/Epetra_BlockMapData.h
T

106 lines
3.1 KiB
C++

//@HEADER
/*
************************************************************************
Epetra: Linear Algebra Services Package
Copyright (2001) Sandia Corporation
Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
license for use of this work by or on behalf of the U.S. Government.
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA
Questions? Contact Michael A. Heroux (maherou@sandia.gov)
************************************************************************
*/
//@HEADER
#ifndef EPETRA_BLOCKMAPDATA_H
#define EPETRA_BLOCKMAPDATA_H
#include "Epetra_Data.h"
#include "Epetra_IntSerialDenseVector.h"
class Epetra_Comm;
class Epetra_Directory;
class Epetra_HashTable;
//! Epetra_BlockMapData: The Epetra BlockMap Data Class.
/*! The Epetra_BlockMapData class is an implementation detail of Epetra_BlockMap.
It is reference-counted, and can be shared by multiple Epetra_BlockMap instances.
It derives from Epetra_Data, and inherits reference-counting from it.
*/
class Epetra_BlockMapData : public Epetra_Data {
friend class Epetra_BlockMap;
private:
//! @name Constructor/Destructor Methods
//@{
//! Epetra_BlockMapData Default Constructor.
Epetra_BlockMapData(int NumGlobalElements, int ElementSize, int IndexBase, const Epetra_Comm & Comm);
//! Epetra_BlockMapData Destructor.
~Epetra_BlockMapData();
//@}
const Epetra_Comm * Comm_;
Epetra_Directory* Directory_;
Epetra_IntSerialDenseVector LID_;
Epetra_IntSerialDenseVector MyGlobalElements_;
Epetra_IntSerialDenseVector FirstPointInElementList_;
Epetra_IntSerialDenseVector ElementSizeList_;
Epetra_IntSerialDenseVector PointToElementList_;
int NumGlobalElements_;
int NumMyElements_;
int IndexBase_;
int ElementSize_;
int MinMyElementSize_;
int MaxMyElementSize_;
int MinElementSize_;
int MaxElementSize_;
int MinAllGID_;
int MaxAllGID_;
int MinMyGID_;
int MaxMyGID_;
int MinLID_;
int MaxLID_;
int NumGlobalPoints_;
int NumMyPoints_;
bool ConstantElementSize_;
bool LinearMap_;
bool DistributedGlobal_;
bool OneToOne_;
int LastContiguousGID_;
int LastContiguousGIDLoc_;
Epetra_HashTable * LIDHash_;
// these are intentionally declared but not defined. See Epetra Developer's Guide for details.
Epetra_BlockMapData(const Epetra_BlockMapData & BlockMapData);
Epetra_BlockMapData& operator=(const Epetra_BlockMapData & BlockMapData);
};
#endif /* EPETRA_BLOCKMAPDATA_H */