FEI
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
snl_fei_RecordCollection.hpp
1
/*--------------------------------------------------------------------*/
2
/* Copyright 2005 Sandia Corporation. */
3
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4
/* non-exclusive license for use of this work by or on behalf */
5
/* of the U.S. Government. Export of this program may require */
6
/* a license from the United States Government. */
7
/*--------------------------------------------------------------------*/
8
9
#ifndef _snl_fei_RecordCollection_hpp_
10
#define _snl_fei_RecordCollection_hpp_
11
12
#include <fei_iosfwd.hpp>
13
#include <fei_Pool_alloc.hpp>
14
#include <fei_FieldMask.hpp>
15
#include <fei_Record.hpp>
16
17
#include <map>
18
#include <vector>
19
20
#undef fei_file
21
#define fei_file "snl_fei_RecordCollection.hpp"
22
23
#include <fei_ErrMacros.hpp>
24
25
namespace
fei
{
26
template
<
typename
T>
class
SharedIDs
;
27
}
28
29
namespace
snl_fei {
30
32
class
RecordCollection
{
33
public
:
35
RecordCollection
(
int
localProc);
36
38
RecordCollection
(
const
RecordCollection
& src);
39
41
virtual
~RecordCollection
();
42
43
void
setIDMap(
const
int
* localIDs_begin,
const
int
* localIDs_end,
44
const
int
* globalIDs_begin,
const
int
* globalIDs_end);
45
47
void
initRecords
(
int
numIDs,
48
const
int
* IDs,
49
std::vector<fei::FieldMask*>& fieldMasks,
50
int
* recordLocalIDs=NULL);
51
53
void
initRecords
(
int
fieldID,
54
int
fieldSize,
55
int
numIDs,
56
const
int
* IDs,
57
std::vector<fei::FieldMask*>& fieldMasks,
58
int
* recordLocalIDs=NULL);
59
62
void
setOwners_lowestSharing
(
fei::SharedIDs<int>
& sharedIDs);
63
void
setOwners_local();
64
66
size_t
getNumRecords
()
const
67
{
68
return
( m_records.size() );
69
}
70
72
std::map<int,int>&
getGlobalToLocalMap
()
73
{
return
m_global_to_local; }
74
75
const
std::map<int,int>&
getGlobalToLocalMap
()
const
76
{
return
m_global_to_local; }
77
79
std::vector<fei::Record<int> >&
getRecords
()
80
{
81
return
( m_records );
82
}
83
85
const
std::vector<fei::Record<int> >&
getRecords
()
const
86
{
87
return
( m_records );
88
}
89
91
fei::Record<int>
*
getRecordWithID
(
int
ID);
92
94
const
fei::Record<int>
*
getRecordWithID
(
int
ID)
const
;
95
96
fei::Record<int>
* getRecordWithLocalID(
int
lid)
97
{
return
&m_records[lid]; }
98
99
const
fei::Record<int>
* getRecordWithLocalID(
int
lid)
const
100
{
return
&m_records[lid]; }
101
102
int
getLocalID(
int
global_id)
const
103
{
104
std::map<int,int>::const_iterator iter = m_global_to_local.find(global_id);
105
if
(iter == m_global_to_local.end()) {
106
return
-1;
107
}
108
return
iter->second;
109
}
110
112
int
getGlobalIndex
(
int
ID,
113
int
fieldID,
114
int
fieldSize,
115
int
fieldOffset,
116
int
whichComponentOfField,
117
const
int
* eqnNumbers);
118
120
int
getGlobalIndexLocalID
(
int
localID,
121
int
fieldID,
122
int
fieldSize,
123
int
fieldOffset,
124
int
whichComponentOfField,
125
const
int
* eqnNumbers);
126
128
int
getGlobalBlkIndex
(
int
ID,
int
& globalBlkIndex);
129
131
void
setDebugOutput
(FEI_OSTREAM* dbgOut)
132
{
133
dbgOut_ = dbgOut;
134
debugOutput_ =
true
;
135
}
136
137
int
getMinID()
const
{
return
m_minID; }
138
int
getMaxID()
const
{
return
m_maxID; }
139
140
private
:
141
142
std::vector<fei::Record<int> > m_records;
143
std::map<int,int> m_global_to_local;
144
145
int
m_minID, m_maxID;
146
147
int
localProc_;
148
149
bool
debugOutput_;
150
FEI_OSTREAM* dbgOut_;
151
};
152
153
}
//namespace snl_fei
154
155
#undef fei_file
156
157
#endif
// _snl_fei_RecordCollection_hpp_
fei::Record
Definition
fei_Record.hpp:20
fei::SharedIDs
Definition
fei_SharedIDs.hpp:22
snl_fei::RecordCollection::getGlobalIndex
int getGlobalIndex(int ID, int fieldID, int fieldSize, int fieldOffset, int whichComponentOfField, const int *eqnNumbers)
Definition
snl_fei_RecordCollection.cpp:289
snl_fei::RecordCollection::getRecords
std::vector< fei::Record< int > > & getRecords()
Definition
snl_fei_RecordCollection.hpp:79
snl_fei::RecordCollection::initRecords
void initRecords(int numIDs, const int *IDs, std::vector< fei::FieldMask * > &fieldMasks, int *recordLocalIDs=NULL)
Definition
snl_fei_RecordCollection.cpp:73
snl_fei::RecordCollection::setOwners_lowestSharing
void setOwners_lowestSharing(fei::SharedIDs< int > &sharedIDs)
Definition
snl_fei_RecordCollection.cpp:220
snl_fei::RecordCollection::getGlobalIndexLocalID
int getGlobalIndexLocalID(int localID, int fieldID, int fieldSize, int fieldOffset, int whichComponentOfField, const int *eqnNumbers)
Definition
snl_fei_RecordCollection.cpp:328
snl_fei::RecordCollection::getNumRecords
size_t getNumRecords() const
Definition
snl_fei_RecordCollection.hpp:66
snl_fei::RecordCollection::getGlobalToLocalMap
std::map< int, int > & getGlobalToLocalMap()
Definition
snl_fei_RecordCollection.hpp:72
snl_fei::RecordCollection::getRecords
const std::vector< fei::Record< int > > & getRecords() const
Definition
snl_fei_RecordCollection.hpp:85
snl_fei::RecordCollection::~RecordCollection
virtual ~RecordCollection()
Definition
snl_fei_RecordCollection.cpp:46
snl_fei::RecordCollection::RecordCollection
RecordCollection(int localProc)
Definition
snl_fei_RecordCollection.cpp:21
snl_fei::RecordCollection::getGlobalBlkIndex
int getGlobalBlkIndex(int ID, int &globalBlkIndex)
Definition
snl_fei_RecordCollection.cpp:276
snl_fei::RecordCollection::getRecordWithID
fei::Record< int > * getRecordWithID(int ID)
Definition
snl_fei_RecordCollection.cpp:254
snl_fei::RecordCollection::setDebugOutput
void setDebugOutput(FEI_OSTREAM *dbgOut)
Definition
snl_fei_RecordCollection.hpp:131
fei
Definition
fei_ArrayUtils.hpp:16
Generated by
1.17.0