Epetra Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Epetra_OffsetIndex.h
Go to the documentation of this file.
1
/*
2
//@HEADER
3
// ************************************************************************
4
//
5
// Epetra: Linear Algebra Services Package
6
// Copyright 2011 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ************************************************************************
41
//@HEADER
42
*/
43
44
#ifndef EPETRA_OFFSETINDEX_H
45
#define EPETRA_OFFSETINDEX_H
46
47
#include "
Epetra_Object.h
"
48
49
class
Epetra_Import
;
50
class
Epetra_Export
;
51
class
Epetra_CrsGraph
;
52
class
Epetra_Distributor
;
53
55
59
60
class
EPETRA_LIB_DLL_EXPORT
Epetra_OffsetIndex
:
public
Epetra_Object
{
61
62
public
:
63
65
Epetra_OffsetIndex
(
const
Epetra_CrsGraph
& SourceGraph,
66
const
Epetra_CrsGraph
& TargetGraph,
67
Epetra_Import
& Importer );
68
70
Epetra_OffsetIndex
(
const
Epetra_CrsGraph
& SourceGraph,
71
const
Epetra_CrsGraph
& TargetGraph,
72
Epetra_Export
& Exporter );
73
75
Epetra_OffsetIndex
(
const
Epetra_OffsetIndex
& Indexor);
76
78
virtual
~Epetra_OffsetIndex
(
void
);
79
81
82
virtual
void
Print
(std::ostream & os)
const
;
84
86
int
**
SameOffsets
()
const
{
return
SameOffsets_
; }
87
89
int
**
PermuteOffsets
()
const
{
return
PermuteOffsets_
; }
90
92
int
**
RemoteOffsets
()
const
{
return
RemoteOffsets_
; }
93
94
private
:
95
96
template
<
typename
int
_type>
97
void
GenerateLocalOffsets_(
const
Epetra_CrsGraph
& SourceGraph,
98
const
Epetra_CrsGraph
& TargetGraph,
99
const
int
* PermuteLIDs );
100
101
template
<
typename
int
_type>
102
void
GenerateRemoteOffsets_(
const
Epetra_CrsGraph
& SourceGraph,
103
const
Epetra_CrsGraph
& TargetGraph,
104
const
int
* ExportLIDs,
105
const
int
* RemoteLIDs,
106
Epetra_Distributor
& Distor );
107
109
Epetra_OffsetIndex
&
operator=
(
const
Epetra_OffsetIndex
& Indexor);
110
public
:
111
112
int
NumSame_
;
113
int
**
SameOffsets_
;
114
int
NumPermute_
;
115
int
**
PermuteOffsets_
;
116
int
NumExport_
;
117
int
NumRemote_
;
118
int
**
RemoteOffsets_
;
119
120
bool
DataOwned_
;
121
};
122
123
#endif
/* EPETRA_OFFSETINDEX_H */
Epetra_Object.h
Epetra_CrsGraph
Epetra_CrsGraph: A class for constructing and using sparse compressed row graphs.
Definition
Epetra_CrsGraph.h:213
Epetra_Distributor
Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class.
Definition
Epetra_Distributor.h:61
Epetra_Export
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements.
Definition
Epetra_Export.h:62
Epetra_Import
Epetra_Import: This class builds an import object for efficient importing of off-processor elements.
Definition
Epetra_Import.h:63
Epetra_Object::Print
virtual void Print(std::ostream &os) const
Definition
Epetra_Object.cpp:97
Epetra_Object::Epetra_Object
Epetra_Object(int TracebackModeIn=-1, bool set_label=true)
Epetra_Object Constructor.
Definition
Epetra_Object.cpp:50
Epetra_OffsetIndex::DataOwned_
bool DataOwned_
Definition
Epetra_OffsetIndex.h:120
Epetra_OffsetIndex::SameOffsets
int ** SameOffsets() const
Accessor.
Definition
Epetra_OffsetIndex.h:86
Epetra_OffsetIndex::RemoteOffsets_
int ** RemoteOffsets_
Definition
Epetra_OffsetIndex.h:118
Epetra_OffsetIndex::NumPermute_
int NumPermute_
Definition
Epetra_OffsetIndex.h:114
Epetra_OffsetIndex::PermuteOffsets
int ** PermuteOffsets() const
Accessor.
Definition
Epetra_OffsetIndex.h:89
Epetra_OffsetIndex::NumRemote_
int NumRemote_
Definition
Epetra_OffsetIndex.h:117
Epetra_OffsetIndex::SameOffsets_
int ** SameOffsets_
Definition
Epetra_OffsetIndex.h:113
Epetra_OffsetIndex::operator=
Epetra_OffsetIndex & operator=(const Epetra_OffsetIndex &Indexor)
Epetra_OffsetIndex copy constructor.
Epetra_OffsetIndex::RemoteOffsets
int ** RemoteOffsets() const
Accessor.
Definition
Epetra_OffsetIndex.h:92
Epetra_OffsetIndex::NumExport_
int NumExport_
Definition
Epetra_OffsetIndex.h:116
Epetra_OffsetIndex::NumSame_
int NumSame_
Definition
Epetra_OffsetIndex.h:112
Epetra_OffsetIndex::Epetra_OffsetIndex
Epetra_OffsetIndex(const Epetra_CrsGraph &SourceGraph, const Epetra_CrsGraph &TargetGraph, Epetra_Import &Importer)
Constructs a Epetra_OffsetIndex object from the graphs and an importer.
Definition
Epetra_OffsetIndex.cpp:52
Epetra_OffsetIndex::PermuteOffsets_
int ** PermuteOffsets_
Definition
Epetra_OffsetIndex.h:115
Generated by
1.17.0