FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
fei_Dof.hpp
Go to the documentation of this file.
1/*--------------------------------------------------------------------*/
2/* Copyright 2009 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 _fei_Dof_hpp_
10#define _fei_Dof_hpp_
11
12#include <fei_macros.hpp>
13
14namespace fei {
15
39template<class LocalOrdinal, class GlobalOrdinal>
40class Dof {
41 public:
43 Dof(LocalOrdinal rank, GlobalOrdinal id, LocalOrdinal field)
44 : m_rank(rank), m_id(id), m_field(field) {}
45
47 ~Dof(){}
48
49 LocalOrdinal rank() const { return m_rank; }
50 GlobalOrdinal id() const { return m_id; }
51 LocalOrdinal field() const { return m_field; }
52
53 private:
54 LocalOrdinal m_rank;
55 GlobalOrdinal m_id;
56 LocalOrdinal m_field;
57};//class Dof
58
61template<class LocalOrdinal, class GlobalOrdinal>
64 const Dof<LocalOrdinal,GlobalOrdinal>& dof2) const
65 {
66 if (dof1.rank()==dof2.rank()) {
67 if (dof1.id() == dof2.id()) return dof1.field() < dof2.field();
68 else return dof1.id() < dof2.id();
69 }
70 else {
71 return dof1.rank() < dof2.rank();
72 }
73 }
74
76 const Dof<LocalOrdinal,GlobalOrdinal>* dof2) const
77 {
78 if (dof1->rank()==dof2->rank()) {
79 if (dof1->id() == dof2->id()) return dof1->field() < dof2->field();
80 else return dof1->id() < dof2->id();
81 }
82 else {
83 return dof1->rank() < dof2->rank();
84 }
85 }
86};
87
90template<class LocalOrdinal, class GlobalOrdinal>
93 const Dof<LocalOrdinal,GlobalOrdinal>& dof2) const
94 {
95 if (dof1.field()==dof2.field()) {
96 if (dof1.rank() == dof2.rank()) return dof1.id() < dof2.id();
97 else return dof1.rank() < dof2.rank();
98 }
99 else {
100 return dof1.field() < dof2.field();
101 }
102 }
103
105 const Dof<LocalOrdinal,GlobalOrdinal>* dof2) const
106 {
107 if (dof1->field()==dof2->field()) {
108 if (dof1->rank() == dof2->rank()) return dof1->id() < dof2->id();
109 else return dof1->rank() < dof2->rank();
110 }
111 else {
112 return dof1->field() < dof2->field();
113 }
114 }
115};
116
117}//namespace fei
118#endif
119
LocalOrdinal m_rank
Definition fei_Dof.hpp:54
GlobalOrdinal m_id
Definition fei_Dof.hpp:55
LocalOrdinal m_field
Definition fei_Dof.hpp:56
GlobalOrdinal id() const
Definition fei_Dof.hpp:50
LocalOrdinal rank() const
Definition fei_Dof.hpp:49
LocalOrdinal field() const
Definition fei_Dof.hpp:51
Dof(LocalOrdinal rank, GlobalOrdinal id, LocalOrdinal field)
Definition fei_Dof.hpp:43
bool operator()(const Dof< LocalOrdinal, GlobalOrdinal > &dof1, const Dof< LocalOrdinal, GlobalOrdinal > &dof2) const
Definition fei_Dof.hpp:92
bool operator()(const Dof< LocalOrdinal, GlobalOrdinal > *dof1, const Dof< LocalOrdinal, GlobalOrdinal > *dof2) const
Definition fei_Dof.hpp:104
bool operator()(const Dof< LocalOrdinal, GlobalOrdinal > *dof1, const Dof< LocalOrdinal, GlobalOrdinal > *dof2) const
Definition fei_Dof.hpp:75
bool operator()(const Dof< LocalOrdinal, GlobalOrdinal > &dof1, const Dof< LocalOrdinal, GlobalOrdinal > &dof2) const
Definition fei_Dof.hpp:63