FEI Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
fei_NodeDescriptor.hpp
Go to the documentation of this file.
1
#ifndef _NodeDescriptor_hpp_
2
#define _NodeDescriptor_hpp_
3
4
/*--------------------------------------------------------------------*/
5
/* Copyright 2005 Sandia Corporation. */
6
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
7
/* non-exclusive license for use of this work by or on behalf */
8
/* of the U.S. Government. Export of this program may require */
9
/* a license from the United States Government. */
10
/*--------------------------------------------------------------------*/
11
12
#include <
fei_macros.hpp
>
13
14
#include <
fei_ArrayUtils.hpp
>
15
#include <iostream>
35
36
class
NodeDescriptor
{
37
public
:
38
NodeDescriptor
();
39
40
NodeDescriptor
(
const
NodeDescriptor
& src)
41
:
nodeID_
(src.
nodeID_
),
nodeNumber_
(src.
nodeNumber_
),
42
numNodalDOF_
(0),
fieldIDList_
(NULL),
43
fieldEqnNumbers_
(NULL),
numFields_
(0),
blkEqnNumber_
(0),
44
ownerProc_
(src.
ownerProc_
),
blockList_
()
45
{}
46
47
virtual
~NodeDescriptor
();
48
49
GlobalID
getGlobalNodeID
()
const
{
return
(
nodeID_
);}
50
void
setGlobalNodeID
(
GlobalID
node) {
nodeID_
= node;}
51
52
int
getNodeNumber
()
const
{
return
(
nodeNumber_
);}
53
void
setNodeNumber
(
int
nn) {
nodeNumber_
= nn;};
54
55
int
getBlkEqnNumber
()
const
{
return
(
blkEqnNumber_
);}
56
void
setBlkEqnNumber
(
int
blkEqn) {
blkEqnNumber_
= blkEqn;}
57
58
int
getNumNodalDOF
()
const
{
return
(
numNodalDOF_
);}
59
void
setNumNodalDOF
(
int
dof) {
numNodalDOF_
= dof;}
60
61
void
addField
(
int
fieldID);
62
void
setFieldEqnNumber
(
int
fieldID,
int
eqn);
63
64
int
getNumFields
()
const
{
return
(
numFields_
);}
65
const
int
*
getFieldIDList
()
const
{
return
(
fieldIDList_
);}
66
const
int
*
getFieldEqnNumbers
()
const
{
return
(
fieldEqnNumbers_
);}
67
74
bool
getFieldEqnNumber
(
int
fieldID,
int
& eqnNumber)
const
;
75
79
void
getFieldID
(
int
eqnNumber,
int
& fieldID,
int
& offset_into_field)
const
;
80
81
bool
operator==
(
const
NodeDescriptor
& nd)
const
82
{
return
(
nodeID_
== nd.
nodeID_
); }
83
84
bool
operator!=
(
const
NodeDescriptor
& nd)
const
85
{
return
(
nodeID_
!= nd.
nodeID_
); }
86
87
bool
operator<
(
const
NodeDescriptor
& nd)
const
88
{
return
(
nodeID_
< nd.
nodeID_
); }
89
90
bool
operator>
(
const
NodeDescriptor
& nd)
const
91
{
return
(
nodeID_
> nd.
nodeID_
); }
92
93
int
getOwnerProc
()
const
{
return
(
ownerProc_
);}
94
void
setOwnerProc
(
int
proc) {
ownerProc_
= proc;}
95
96
void
addBlockIndex
(
unsigned
blk_idx)
97
{
fei::sortedListInsert
(blk_idx,
blockList_
); }
98
99
size_t
getNumBlocks
()
const
{
return
blockList_
.size();}
100
const
std::vector<unsigned>&
getBlockIndexList
()
const
{
return
(
blockList_
);}
101
bool
hasBlockIndex
(
unsigned
blk_idx)
const
;
102
103
private
:
104
NodeDescriptor
&
operator=
(
const
NodeDescriptor
& src);
105
106
void
allocFieldLists
();
107
void
allocBlockList
();
108
109
GlobalID
nodeID_
;
110
111
int
nodeNumber_
;
112
113
int
numNodalDOF_
;
//total number of nodal degrees-of-freedom
114
115
int
*
fieldIDList_
;
//list of field identifiers
116
int
*
fieldEqnNumbers_
;
//list of starting (global) equation numbers.
117
//fields can consist of more than one scalar (and
118
//have more than one associated equation), this
119
//is the first equation number
120
int
numFields_
;
121
122
int
blkEqnNumber_
;
123
124
int
ownerProc_
;
//processor that owns the equations for this node
125
126
std::vector<unsigned>
blockList_
;
//indexes of blocks that contain this node
127
};
128
129
#endif
130
NodeDescriptor::operator!=
bool operator!=(const NodeDescriptor &nd) const
Definition
fei_NodeDescriptor.hpp:84
NodeDescriptor::operator==
bool operator==(const NodeDescriptor &nd) const
Definition
fei_NodeDescriptor.hpp:81
NodeDescriptor::setFieldEqnNumber
void setFieldEqnNumber(int fieldID, int eqn)
Definition
fei_NodeDescriptor.cpp:70
NodeDescriptor::setNumNodalDOF
void setNumNodalDOF(int dof)
Definition
fei_NodeDescriptor.hpp:59
NodeDescriptor::setNodeNumber
void setNodeNumber(int nn)
Definition
fei_NodeDescriptor.hpp:53
NodeDescriptor::blkEqnNumber_
int blkEqnNumber_
Definition
fei_NodeDescriptor.hpp:122
NodeDescriptor::~NodeDescriptor
virtual ~NodeDescriptor()
Definition
fei_NodeDescriptor.cpp:32
NodeDescriptor::numNodalDOF_
int numNodalDOF_
Definition
fei_NodeDescriptor.hpp:113
NodeDescriptor::addBlockIndex
void addBlockIndex(unsigned blk_idx)
Definition
fei_NodeDescriptor.hpp:96
NodeDescriptor::nodeID_
GlobalID nodeID_
Definition
fei_NodeDescriptor.hpp:109
NodeDescriptor::setGlobalNodeID
void setGlobalNodeID(GlobalID node)
Definition
fei_NodeDescriptor.hpp:50
NodeDescriptor::getBlockIndexList
const std::vector< unsigned > & getBlockIndexList() const
Definition
fei_NodeDescriptor.hpp:100
NodeDescriptor::NodeDescriptor
NodeDescriptor(const NodeDescriptor &src)
Definition
fei_NodeDescriptor.hpp:40
NodeDescriptor::getNumNodalDOF
int getNumNodalDOF() const
Definition
fei_NodeDescriptor.hpp:58
NodeDescriptor::operator>
bool operator>(const NodeDescriptor &nd) const
Definition
fei_NodeDescriptor.hpp:90
NodeDescriptor::setBlkEqnNumber
void setBlkEqnNumber(int blkEqn)
Definition
fei_NodeDescriptor.hpp:56
NodeDescriptor::setOwnerProc
void setOwnerProc(int proc)
Definition
fei_NodeDescriptor.hpp:94
NodeDescriptor::getBlkEqnNumber
int getBlkEqnNumber() const
Definition
fei_NodeDescriptor.hpp:55
NodeDescriptor::NodeDescriptor
NodeDescriptor()
Definition
fei_NodeDescriptor.cpp:16
NodeDescriptor::addField
void addField(int fieldID)
Definition
fei_NodeDescriptor.cpp:39
NodeDescriptor::operator<
bool operator<(const NodeDescriptor &nd) const
Definition
fei_NodeDescriptor.hpp:87
NodeDescriptor::fieldEqnNumbers_
int * fieldEqnNumbers_
Definition
fei_NodeDescriptor.hpp:116
NodeDescriptor::fieldIDList_
int * fieldIDList_
Definition
fei_NodeDescriptor.hpp:115
NodeDescriptor::operator=
NodeDescriptor & operator=(const NodeDescriptor &src)
NodeDescriptor::getNodeNumber
int getNodeNumber() const
Definition
fei_NodeDescriptor.hpp:52
NodeDescriptor::numFields_
int numFields_
Definition
fei_NodeDescriptor.hpp:120
NodeDescriptor::blockList_
std::vector< unsigned > blockList_
Definition
fei_NodeDescriptor.hpp:126
NodeDescriptor::getOwnerProc
int getOwnerProc() const
Definition
fei_NodeDescriptor.hpp:93
NodeDescriptor::ownerProc_
int ownerProc_
Definition
fei_NodeDescriptor.hpp:124
NodeDescriptor::getGlobalNodeID
GlobalID getGlobalNodeID() const
Definition
fei_NodeDescriptor.hpp:49
NodeDescriptor::getFieldEqnNumbers
const int * getFieldEqnNumbers() const
Definition
fei_NodeDescriptor.hpp:66
NodeDescriptor::getNumFields
int getNumFields() const
Definition
fei_NodeDescriptor.hpp:64
NodeDescriptor::nodeNumber_
int nodeNumber_
Definition
fei_NodeDescriptor.hpp:111
NodeDescriptor::allocFieldLists
void allocFieldLists()
NodeDescriptor::hasBlockIndex
bool hasBlockIndex(unsigned blk_idx) const
Definition
fei_NodeDescriptor.cpp:131
NodeDescriptor::getNumBlocks
size_t getNumBlocks() const
Definition
fei_NodeDescriptor.hpp:99
NodeDescriptor::getFieldEqnNumber
bool getFieldEqnNumber(int fieldID, int &eqnNumber) const
Definition
fei_NodeDescriptor.cpp:89
NodeDescriptor::getFieldID
void getFieldID(int eqnNumber, int &fieldID, int &offset_into_field) const
Definition
fei_NodeDescriptor.cpp:104
NodeDescriptor::allocBlockList
void allocBlockList()
NodeDescriptor::getFieldIDList
const int * getFieldIDList() const
Definition
fei_NodeDescriptor.hpp:65
fei_ArrayUtils.hpp
GlobalID
int GlobalID
Definition
fei_defs.h:60
fei_macros.hpp
fei::sortedListInsert
int sortedListInsert(const T &item, std::vector< T > &list)
Definition
fei_ArrayUtils.hpp:209
Generated by
1.17.0