/usr/include/trilinos/Epetra_CrsGraphData.h is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | //@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_CRSGRAPHDATA_H
#define EPETRA_CRSGRAPHDATA_H
#include "Epetra_Data.h"
#include "Epetra_DataAccess.h"
#include "Epetra_BlockMap.h"
#include "Epetra_IntSerialDenseVector.h"
class Epetra_Import;
class Epetra_Export;
//! Epetra_CrsGraphData: The Epetra CrsGraph Data Class.
/*! The Epetra_CrsGraphData class is an implementation detail of Epetra_CrsGraph.
It is reference-counted, and can be shared by multiple Epetra_CrsGraph instances.
It derives from Epetra_Data, and inherits reference-counting from it.
*/
class Epetra_CrsGraphData : public Epetra_Data {
friend class Epetra_CrsGraph;
private:
//! @name Constructor/Destructor Methods
//@{
//! Epetra_CrsGraphData Default Constructor.
Epetra_CrsGraphData(Epetra_DataAccess CV, const Epetra_BlockMap& RowMap, bool StaticProfile);
//! Epetra_CrsGraphData Constructor (user provided ColMap).
Epetra_CrsGraphData(Epetra_DataAccess CV, const Epetra_BlockMap& RowMap, const Epetra_BlockMap& ColMap, bool StaticProfile);
//! Epetra_CrsGraphData copy constructor (not defined).
Epetra_CrsGraphData(const Epetra_CrsGraphData& CrsGraphData);
//! Epetra_CrsGraphData Destructor.
~Epetra_CrsGraphData();
//@}
//! Outputs state of almost all data members. (primarily used for testing purposes).
/*! Output level: Uses same scheme as chmod. 4-bit = BlockMaps, 2-bit = Indices, 1-bit = Everything else.
Default paramenter sets it to 3, which is everything but the BlockMaps. Commonly used options:
1 = Everything except the BlockMaps & Indices_
2 = Just Indices_
3 = Everything except the BlockMaps
*/
void Print(ostream& os, int level = 3) const;
//! Epetra_CrsGraphData assignment operator (not defined)
Epetra_CrsGraphData& operator=(const Epetra_CrsGraphData& CrsGraphData);
//! @name Helper methods called in CrsGraph. Mainly memory allocations and deallocations.
//@{
//! called by FillComplete (and TransformToLocal)
int MakeImportExport();
//! called by PackAndPrepare
int ReAllocateAndCast(char*& UserPtr, int& Length, const int IntPacketSizeTimesNumTrans);
//@}
// Defined by CrsGraph::FillComplete and related
Epetra_BlockMap RowMap_;
Epetra_BlockMap ColMap_;
Epetra_BlockMap DomainMap_;
Epetra_BlockMap RangeMap_;
const Epetra_Import* Importer_;
const Epetra_Export* Exporter_;
bool HaveColMap_;
bool Filled_;
bool Allocated_;
bool Sorted_;
bool StorageOptimized_;
bool NoRedundancies_;
bool IndicesAreGlobal_;
bool IndicesAreLocal_;
bool IndicesAreContiguous_;
bool LowerTriangular_;
bool UpperTriangular_;
bool NoDiagonal_;
bool GlobalConstantsComputed_;
bool StaticProfile_;
bool SortGhostsAssociatedWithEachProcessor_;
int IndexBase_;
int NumGlobalEntries_;
int NumGlobalBlockRows_;
int NumGlobalBlockCols_;
int NumGlobalBlockDiagonals_;
int NumMyEntries_;
int NumMyBlockRows_;
int NumMyBlockCols_;
int NumMyBlockDiagonals_;
int MaxRowDim_;
int MaxColDim_;
int GlobalMaxRowDim_;
int GlobalMaxColDim_;
int MaxNumNonzeros_;
int GlobalMaxNumNonzeros_;
int NumGlobalNonzeros_;
int NumGlobalRows_;
int NumGlobalCols_;
int NumGlobalDiagonals_;
int NumMyNonzeros_;
int NumMyRows_;
int NumMyCols_;
int NumMyDiagonals_;
int MaxNumIndices_;
int GlobalMaxNumIndices_;
int** Indices_;
Epetra_IntSerialDenseVector NumAllocatedIndicesPerRow_;
Epetra_IntSerialDenseVector NumIndicesPerRow_;
Epetra_IntSerialDenseVector IndexOffset_;
Epetra_IntSerialDenseVector All_Indices_;
Epetra_DataAccess CV_;
};
#endif /* EPETRA_CRSGRAPHDATA_H */
|