FEI Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
fei_BlockDescriptor.hpp
Go to the documentation of this file.
1
#ifndef _fei_BlockDescriptor_hpp_
2
#define _fei_BlockDescriptor_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
#include "
fei_defs.h
"
14
#include <vector>
15
65
66
67
class
BlockDescriptor
{
68
public
:
69
BlockDescriptor
();
70
virtual
~BlockDescriptor
();
71
72
GlobalID
getGlobalBlockID
() {
return
(
blockID_
);}
73
void
setGlobalBlockID
(
GlobalID
blockID) {
blockID_
= blockID;}
74
77
int
setNumNodesPerElement
(
int
numNodes);
78
int
getNumNodesPerElement
()
const
{
return
numNodesPerElement_
; }
79
80
int
*
fieldsPerNodePtr
();
//length of this list = getNumNodesPerElement()
81
82
int
allocateFieldIDsTable
();
83
88
int
**
fieldIDsTablePtr
() {
return
(
nodalFieldIDs_
); }
89
90
bool
containsField
(
int
fieldID);
91
92
int
getNumDistinctFields
() {
return
(
numDistinctFields_
); }
93
void
setNumDistinctFields
(
int
nFields) {
numDistinctFields_
= nFields; }
94
95
int
getInterleaveStrategy
()
const
{
return
(
interleaveStrategy_
);}
96
void
setInterleaveStrategy
(
int
strat) {
interleaveStrategy_
= strat;}
97
98
int
getLumpingStrategy
()
const
{
return
(
lumpingStrategy_
);}
99
void
setLumpingStrategy
(
int
strat) {
lumpingStrategy_
= strat;}
100
101
int
getNumElements
() {
return
(
numElements_
);}
102
void
setNumElements
(
int
numElems) {
numElements_
= numElems;}
103
104
size_t
getNumElemDofFieldsPerElement
() {
return
(
elemDofFieldIDs_
.size());}
105
int
setElemDofFieldIDs
(
int
numFields,
const
int
* fieldIDs);
106
std::vector<int>&
getElemDofFieldIDs
() {
return
(
elemDofFieldIDs_
); }
107
108
void
setNumElemDOFPerElement
(
int
ndof) {
numElemDOFPerElement_
= ndof; }
109
int
getNumElemDOFPerElement
() {
return
(
numElemDOFPerElement_
); }
110
111
//elemDOFEqnNumbers is of length numElements.
112
std::vector<int>&
elemDOFEqnNumbers
() {
return
(
elemDOFEqnNumbers_
);}
113
114
int
getNumEqnsPerElement
() {
return
(
numEqnsPerElement_
);};
115
void
setNumEqnsPerElement
(
int
numEqns) {
numEqnsPerElement_
= numEqns;}
116
117
int
getNumBlkEqnsPerElement
() {
return
(
numBlkEqnsPerElement_
);}
118
void
setNumBlkEqnsPerElement
(
int
numBlkEqns) {
numBlkEqnsPerElement_
= numBlkEqns;};
119
120
int
getNumActiveNodes
() {
return
(
numActiveNodes_
);}
121
void
setNumActiveNodes
(
int
num) {
numActiveNodes_
= num;}
122
123
int
getTotalNumEqns
() {
return
(
totalNumEqns_
);}
124
void
setTotalNumEqns
(
int
numEqns) {
totalNumEqns_
= numEqns;}
125
126
private
:
127
BlockDescriptor
(
const
BlockDescriptor
&
/*src*/
)
128
:
blockID_
(0),
numNodesPerElement_
(0),
numFieldsPerNode_
(NULL),
129
nodalFieldIDs_
(NULL),
fieldIDsAllocated_
(false),
130
numDistinctFields_
(0),
elemDofFieldIDs_
(),
interleaveStrategy_
(0),
131
lumpingStrategy_
(0),
numElements_
(0),
numElemDOFPerElement_
(0),
132
elemDOFEqnNumbers_
(),
numEqnsPerElement_
(0),
numBlkEqnsPerElement_
(0),
133
numActiveNodes_
(0),
totalNumEqns_
(0) {}
134
135
BlockDescriptor
&
operator=
(
const
BlockDescriptor
&
/*src*/
)
136
{
137
return
(*
this
);
138
}
139
140
void
destroyFieldArrays
();
141
142
GlobalID
blockID_
;
143
144
int
numNodesPerElement_
;
145
146
int
*
numFieldsPerNode_
;
//list: length = numNodesPerElement_
147
148
int
**
nodalFieldIDs_
;
//table: number-of-rows = numNodesPerElement_
149
// length-of-row[i] = numFieldsPerNode_[i]
150
bool
fieldIDsAllocated_
;
151
152
int
numDistinctFields_
;
153
154
std::vector<int>
elemDofFieldIDs_
;
155
156
int
interleaveStrategy_
;
157
int
lumpingStrategy_
;
158
159
int
numElements_
;
160
int
numElemDOFPerElement_
;
//number of elem-dof in each element (all
161
//elems in block have the same number)
162
163
std::vector<int>
elemDOFEqnNumbers_
;
//list -- length = numElements_
164
//holds eqn number of each element's first elemDOF
165
166
int
numEqnsPerElement_
;
167
int
numBlkEqnsPerElement_
;
168
169
int
numActiveNodes_
;
170
int
totalNumEqns_
;
171
};
172
173
#endif
174
BlockDescriptor::getLumpingStrategy
int getLumpingStrategy() const
Definition
fei_BlockDescriptor.hpp:98
BlockDescriptor::getNumDistinctFields
int getNumDistinctFields()
Definition
fei_BlockDescriptor.hpp:92
BlockDescriptor::setInterleaveStrategy
void setInterleaveStrategy(int strat)
Definition
fei_BlockDescriptor.hpp:96
BlockDescriptor::elemDOFEqnNumbers
std::vector< int > & elemDOFEqnNumbers()
Definition
fei_BlockDescriptor.hpp:112
BlockDescriptor::setNumDistinctFields
void setNumDistinctFields(int nFields)
Definition
fei_BlockDescriptor.hpp:93
BlockDescriptor::setElemDofFieldIDs
int setElemDofFieldIDs(int numFields, const int *fieldIDs)
Definition
fei_BlockDescriptor.cpp:140
BlockDescriptor::BlockDescriptor
BlockDescriptor(const BlockDescriptor &)
Definition
fei_BlockDescriptor.hpp:127
BlockDescriptor::fieldIDsAllocated_
bool fieldIDsAllocated_
Definition
fei_BlockDescriptor.hpp:150
BlockDescriptor::BlockDescriptor
BlockDescriptor()
Definition
fei_BlockDescriptor.cpp:15
BlockDescriptor::operator=
BlockDescriptor & operator=(const BlockDescriptor &)
Definition
fei_BlockDescriptor.hpp:135
BlockDescriptor::lumpingStrategy_
int lumpingStrategy_
Definition
fei_BlockDescriptor.hpp:157
BlockDescriptor::setTotalNumEqns
void setTotalNumEqns(int numEqns)
Definition
fei_BlockDescriptor.hpp:124
BlockDescriptor::getNumActiveNodes
int getNumActiveNodes()
Definition
fei_BlockDescriptor.hpp:120
BlockDescriptor::numElemDOFPerElement_
int numElemDOFPerElement_
Definition
fei_BlockDescriptor.hpp:160
BlockDescriptor::getTotalNumEqns
int getTotalNumEqns()
Definition
fei_BlockDescriptor.hpp:123
BlockDescriptor::numBlkEqnsPerElement_
int numBlkEqnsPerElement_
Definition
fei_BlockDescriptor.hpp:167
BlockDescriptor::blockID_
GlobalID blockID_
Definition
fei_BlockDescriptor.hpp:142
BlockDescriptor::totalNumEqns_
int totalNumEqns_
Definition
fei_BlockDescriptor.hpp:170
BlockDescriptor::containsField
bool containsField(int fieldID)
Definition
fei_BlockDescriptor.cpp:110
BlockDescriptor::getElemDofFieldIDs
std::vector< int > & getElemDofFieldIDs()
Definition
fei_BlockDescriptor.hpp:106
BlockDescriptor::getInterleaveStrategy
int getInterleaveStrategy() const
Definition
fei_BlockDescriptor.hpp:95
BlockDescriptor::fieldsPerNodePtr
int * fieldsPerNodePtr()
Definition
fei_BlockDescriptor.cpp:79
BlockDescriptor::getNumElemDOFPerElement
int getNumElemDOFPerElement()
Definition
fei_BlockDescriptor.hpp:109
BlockDescriptor::elemDofFieldIDs_
std::vector< int > elemDofFieldIDs_
Definition
fei_BlockDescriptor.hpp:154
BlockDescriptor::getGlobalBlockID
GlobalID getGlobalBlockID()
Definition
fei_BlockDescriptor.hpp:72
BlockDescriptor::destroyFieldArrays
void destroyFieldArrays()
Definition
fei_BlockDescriptor.cpp:45
BlockDescriptor::setNumActiveNodes
void setNumActiveNodes(int num)
Definition
fei_BlockDescriptor.hpp:121
BlockDescriptor::getNumBlkEqnsPerElement
int getNumBlkEqnsPerElement()
Definition
fei_BlockDescriptor.hpp:117
BlockDescriptor::numEqnsPerElement_
int numEqnsPerElement_
Definition
fei_BlockDescriptor.hpp:166
BlockDescriptor::setGlobalBlockID
void setGlobalBlockID(GlobalID blockID)
Definition
fei_BlockDescriptor.hpp:73
BlockDescriptor::setNumEqnsPerElement
void setNumEqnsPerElement(int numEqns)
Definition
fei_BlockDescriptor.hpp:115
BlockDescriptor::numDistinctFields_
int numDistinctFields_
Definition
fei_BlockDescriptor.hpp:152
BlockDescriptor::~BlockDescriptor
virtual ~BlockDescriptor()
Definition
fei_BlockDescriptor.cpp:37
BlockDescriptor::setNumNodesPerElement
int setNumNodesPerElement(int numNodes)
Definition
fei_BlockDescriptor.cpp:60
BlockDescriptor::setLumpingStrategy
void setLumpingStrategy(int strat)
Definition
fei_BlockDescriptor.hpp:99
BlockDescriptor::setNumBlkEqnsPerElement
void setNumBlkEqnsPerElement(int numBlkEqns)
Definition
fei_BlockDescriptor.hpp:118
BlockDescriptor::elemDOFEqnNumbers_
std::vector< int > elemDOFEqnNumbers_
Definition
fei_BlockDescriptor.hpp:163
BlockDescriptor::fieldIDsTablePtr
int ** fieldIDsTablePtr()
Definition
fei_BlockDescriptor.hpp:88
BlockDescriptor::interleaveStrategy_
int interleaveStrategy_
Definition
fei_BlockDescriptor.hpp:156
BlockDescriptor::nodalFieldIDs_
int ** nodalFieldIDs_
Definition
fei_BlockDescriptor.hpp:148
BlockDescriptor::allocateFieldIDsTable
int allocateFieldIDsTable()
Definition
fei_BlockDescriptor.cpp:85
BlockDescriptor::setNumElemDOFPerElement
void setNumElemDOFPerElement(int ndof)
Definition
fei_BlockDescriptor.hpp:108
BlockDescriptor::numFieldsPerNode_
int * numFieldsPerNode_
Definition
fei_BlockDescriptor.hpp:146
BlockDescriptor::setNumElements
void setNumElements(int numElems)
Definition
fei_BlockDescriptor.hpp:102
BlockDescriptor::getNumElements
int getNumElements()
Definition
fei_BlockDescriptor.hpp:101
BlockDescriptor::numElements_
int numElements_
Definition
fei_BlockDescriptor.hpp:159
BlockDescriptor::numNodesPerElement_
int numNodesPerElement_
Definition
fei_BlockDescriptor.hpp:144
BlockDescriptor::getNumElemDofFieldsPerElement
size_t getNumElemDofFieldsPerElement()
Definition
fei_BlockDescriptor.hpp:104
BlockDescriptor::numActiveNodes_
int numActiveNodes_
Definition
fei_BlockDescriptor.hpp:169
BlockDescriptor::getNumEqnsPerElement
int getNumEqnsPerElement()
Definition
fei_BlockDescriptor.hpp:114
BlockDescriptor::getNumNodesPerElement
int getNumNodesPerElement() const
Definition
fei_BlockDescriptor.hpp:78
fei_defs.h
GlobalID
int GlobalID
Definition
fei_defs.h:60
fei_macros.hpp
Generated by
1.17.0