Epetra Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Epetra_BlockMapData.cpp
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
#include "
Epetra_ConfigDefs.h
"
44
#include "
Epetra_BlockMapData.h
"
45
#include "
Epetra_HashTable.h
"
46
#include "
Epetra_Comm.h
"
47
#include "
Epetra_Directory.h
"
48
//#include "Epetra_ConfigDefs.h" //DATA_DEBUG
49
// Use the new LID hash table approach by default
50
#define EPETRA_BLOCKMAP_NEW_LID
51
52
//=============================================================================
53
Epetra_BlockMapData::Epetra_BlockMapData
(
long
long
NumGlobalElements,
int
ElementSize,
long
long
IndexBase,
const
Epetra_Comm
& Comm,
bool
IsLongLong)
54
:
Comm_
(Comm.Clone()),
55
Directory_
(0),
56
LID_
(0),
57
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
58
MyGlobalElements_int_
(0),
59
#endif
60
#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
61
MyGlobalElements_LL_
(0),
62
#endif
63
FirstPointInElementList_
(0),
64
ElementSizeList_
(0),
65
PointToElementList_
(0),
66
NumGlobalElements_
(NumGlobalElements),
67
NumMyElements_
(0),
68
IndexBase_
(IndexBase),
69
ElementSize_
(ElementSize),
70
MinMyElementSize_
(0),
71
MaxMyElementSize_
(0),
72
MinElementSize_
(0),
73
MaxElementSize_
(0),
74
MinAllGID_
(0),
75
MaxAllGID_
(0),
76
MinMyGID_
(0),
77
MaxMyGID_
(-1),
78
MinLID_
(0),
79
MaxLID_
(0),
80
NumGlobalPoints_
(0),
81
NumMyPoints_
(0),
82
ConstantElementSize_
(false),
83
LinearMap_
(false),
84
DistributedGlobal_
(false),
85
OneToOneIsDetermined_
(false),
86
OneToOne_
(false),
87
GlobalIndicesInt_
(!IsLongLong),
88
GlobalIndicesLongLong_
(IsLongLong),
89
LastContiguousGID_
(0),
90
LastContiguousGIDLoc_
(0),
91
LIDHash_
(0)
92
{
93
//cout << "--BMD created, addr: " << this << std::endl; //DATA_DEBUG
94
}
95
96
//=============================================================================
97
Epetra_BlockMapData::~Epetra_BlockMapData
()
98
{
99
if
(
LIDHash_
!= 0) {
100
delete
LIDHash_
;
101
LIDHash_
= 0;
102
}
103
104
if
(
Directory_
!= 0) {
105
delete
Directory_
;
106
Directory_
= 0;
107
}
108
109
if
(
Comm_
!= 0) {
110
delete
Comm_
;
111
Comm_
= 0;
112
}
113
//cout << "--BMD destroyed, addr: " << this << std::endl; //DATA_DEBUG
114
}
Epetra_BlockMapData.h
Epetra_Comm.h
Epetra_ConfigDefs.h
Epetra_Directory.h
Epetra_HashTable.h
Epetra_BlockMapData::IndexBase_
long long IndexBase_
Definition
Epetra_BlockMapData.h:98
Epetra_BlockMapData::OneToOneIsDetermined_
bool OneToOneIsDetermined_
Definition
Epetra_BlockMapData.h:116
Epetra_BlockMapData::MaxMyElementSize_
int MaxMyElementSize_
Definition
Epetra_BlockMapData.h:101
Epetra_BlockMapData::MinMyElementSize_
int MinMyElementSize_
Definition
Epetra_BlockMapData.h:100
Epetra_BlockMapData::LastContiguousGID_
long long LastContiguousGID_
Definition
Epetra_BlockMapData.h:121
Epetra_BlockMapData::LinearMap_
bool LinearMap_
Definition
Epetra_BlockMapData.h:114
Epetra_BlockMapData::MaxMyGID_
long long MaxMyGID_
Definition
Epetra_BlockMapData.h:107
Epetra_BlockMapData::MinLID_
int MinLID_
Definition
Epetra_BlockMapData.h:108
Epetra_BlockMapData::MyGlobalElements_int_
Epetra_IntSerialDenseVector MyGlobalElements_int_
Definition
Epetra_BlockMapData.h:87
Epetra_BlockMapData::NumMyElements_
int NumMyElements_
Definition
Epetra_BlockMapData.h:97
Epetra_BlockMapData::NumGlobalPoints_
long long NumGlobalPoints_
Definition
Epetra_BlockMapData.h:110
Epetra_BlockMapData::LIDHash_
Epetra_HashTable< int > * LIDHash_
Definition
Epetra_BlockMapData.h:123
Epetra_BlockMapData::MinAllGID_
long long MinAllGID_
Definition
Epetra_BlockMapData.h:104
Epetra_BlockMapData::NumMyPoints_
int NumMyPoints_
Definition
Epetra_BlockMapData.h:111
Epetra_BlockMapData::LID_
Epetra_IntSerialDenseVector LID_
Definition
Epetra_BlockMapData.h:85
Epetra_BlockMapData::ElementSizeList_
Epetra_IntSerialDenseVector ElementSizeList_
Definition
Epetra_BlockMapData.h:93
Epetra_BlockMapData::ConstantElementSize_
bool ConstantElementSize_
Definition
Epetra_BlockMapData.h:113
Epetra_BlockMapData::MaxLID_
int MaxLID_
Definition
Epetra_BlockMapData.h:109
Epetra_BlockMapData::GlobalIndicesInt_
bool GlobalIndicesInt_
Definition
Epetra_BlockMapData.h:118
Epetra_BlockMapData::MaxElementSize_
int MaxElementSize_
Definition
Epetra_BlockMapData.h:103
Epetra_BlockMapData::MinElementSize_
int MinElementSize_
Definition
Epetra_BlockMapData.h:102
Epetra_BlockMapData::OneToOne_
bool OneToOne_
Definition
Epetra_BlockMapData.h:117
Epetra_BlockMapData::ElementSize_
int ElementSize_
Definition
Epetra_BlockMapData.h:99
Epetra_BlockMapData::Directory_
Epetra_Directory * Directory_
Definition
Epetra_BlockMapData.h:83
Epetra_BlockMapData::MinMyGID_
long long MinMyGID_
Definition
Epetra_BlockMapData.h:106
Epetra_BlockMapData::MaxAllGID_
long long MaxAllGID_
Definition
Epetra_BlockMapData.h:105
Epetra_BlockMapData::FirstPointInElementList_
Epetra_IntSerialDenseVector FirstPointInElementList_
Definition
Epetra_BlockMapData.h:92
Epetra_BlockMapData::NumGlobalElements_
long long NumGlobalElements_
Definition
Epetra_BlockMapData.h:96
Epetra_BlockMapData::Epetra_BlockMapData
Epetra_BlockMapData(long long NumGlobalElements, int ElementSize, long long IndexBase, const Epetra_Comm &Comm, bool IsLongLong)
Epetra_BlockMapData Default Constructor.
Definition
Epetra_BlockMapData.cpp:53
Epetra_BlockMapData::~Epetra_BlockMapData
~Epetra_BlockMapData()
Epetra_BlockMapData Destructor.
Definition
Epetra_BlockMapData.cpp:97
Epetra_BlockMapData::Comm_
const Epetra_Comm * Comm_
Definition
Epetra_BlockMapData.h:81
Epetra_BlockMapData::MyGlobalElements_LL_
Epetra_LongLongSerialDenseVector MyGlobalElements_LL_
Definition
Epetra_BlockMapData.h:90
Epetra_BlockMapData::PointToElementList_
Epetra_IntSerialDenseVector PointToElementList_
Definition
Epetra_BlockMapData.h:94
Epetra_BlockMapData::LastContiguousGIDLoc_
int LastContiguousGIDLoc_
Definition
Epetra_BlockMapData.h:122
Epetra_BlockMapData::GlobalIndicesLongLong_
bool GlobalIndicesLongLong_
Definition
Epetra_BlockMapData.h:119
Epetra_BlockMapData::DistributedGlobal_
bool DistributedGlobal_
Definition
Epetra_BlockMapData.h:115
Epetra_Comm
Epetra_Comm: The Epetra Communication Abstract Base Class.
Definition
Epetra_Comm.h:73
Generated by
1.17.0