GCC Code Coverage Report


Directory: ./
File: FiniteElement/listCurvilinearFiniteElement.hpp
Date: 2024-04-14 07:32:34
Exec Total Coverage
Lines: 13 15 86.7%
Branches: 3 4 75.0%

Line Branch Exec Source
1 // ______ ______ _ _ _____ ______
2 // | ____| ____| | (_)/ ____| | ____|
3 // | |__ | |__ | | _| (___ ___| |__
4 // | __| | __| | | | |\___ \ / __| __|
5 // | | | |____| |____| |____) | (__| |____
6 // |_| |______|______|_|_____/ \___|______|
7 // Finite Elements for Life Sciences and Engineering
8 //
9 // License: LGL2.1 License
10 // FELiScE default license: LICENSE in root folder
11 //
12 // Main authors: J. Foulon
13 //
14
15 #ifndef LISTCURVILINEARFINITEELEMENT_H
16 #define LISTCURVILINEARFINITEELEMENT_H
17
18 // System includes
19 #include <vector>
20
21 // External includes
22
23 // Project includes
24 #include "Core/felisce.hpp"
25 #include "FiniteElement/curvilinearFiniteElement.hpp"
26
27 namespace felisce
28 {
29 ///@name felisce Globals
30 ///@{
31
32 ///@}
33 ///@name Type Definitions
34 ///@{
35
36 ///@}
37 ///@name Enum's
38 ///@{
39
40 ///@}
41 ///@name Functions
42 ///@{
43
44 ///@}
45 ///@name felisce Classes
46 ///@{
47
48 /**
49 * @class ListCurvilinearFiniteElement
50 * @author J. Foulon
51 * @date 27/01/2011
52 * @brief Class containing a list of finite elements in the problem.
53 * These finite elements are stored with an STL vector.
54 * @todo Replace with a template
55 */
56 class ListCurvilinearFiniteElement {
57 public:
58 ///@name Type Definitions
59 ///@{
60
61 ///@}
62 ///@name Life Cycle
63 ///@{
64
65 /// Default constructor
66 519 ListCurvilinearFiniteElement() = default;
67
68 /// Destructor
69 519 ~ListCurvilinearFiniteElement()
70 {
71 519 clear();
72 519 }
73
74 ///@}
75 ///@name Operators
76 ///@{
77
78 9997070 CurvilinearFiniteElement* operator[](int i) {
79 9997070 return m_listCurvilinearFiniteElement[i];
80 }
81
82 ///@}
83 ///@name Operations
84 ///@{
85
86 //Set functions
87 //=============
88 void add(CurvilinearFiniteElement* fe);
89
90 21765 void clear()
91 {
92
2/2
✓ Branch 1 taken 41290 times.
✓ Branch 2 taken 21765 times.
63055 for (std::size_t i = 0; i < m_listCurvilinearFiniteElement.size(); i++)
93
1/2
✓ Branch 1 taken 41290 times.
✗ Branch 2 not taken.
41290 delete m_listCurvilinearFiniteElement[i];
94
95 21765 m_listCurvilinearFiniteElement.clear();
96 21765 }
97
98 ///@}
99 ///@name Access
100 ///@{
101
102 inline const std::vector<CurvilinearFiniteElement*>& listCurvilinearFiniteElement() const {
103 return m_listCurvilinearFiniteElement;
104 }
105
106 inline std::vector<CurvilinearFiniteElement*>& listCurvilinearFiniteElement() {
107 return m_listCurvilinearFiniteElement;
108 }
109
110 1987800 std::size_t size() {
111 1987800 return m_listCurvilinearFiniteElement.size();
112 }
113
114 ///@}
115 ///@name Inquiry
116 ///@{
117
118 ///@}
119 ///@name Input and output
120 ///@{
121
122 void print(int verbose,std::ostream& c=std::cout) const;
123
124 ///@}
125 ///@name Friends
126 ///@{
127
128 ///@}
129 protected:
130 ///@name Protected static Member Variables
131 ///@{
132
133 ///@}
134 ///@name Protected member Variables
135 ///@{
136
137 ///@}
138 ///@name Protected Operators
139 ///@{
140
141 ///@}
142 ///@name Protected Operations
143 ///@{
144
145 ///@}
146 ///@name Protected Access
147 ///@{
148
149 ///@}
150 ///@name Protected Inquiry
151 ///@{
152
153 ///@}
154 ///@name Protected LifeCycle
155 ///@{
156
157 ///@}
158 private:
159 ///@name Private static Member Variables
160 ///@{
161
162 ///@}
163 ///@name Private member Variables
164 ///@{
165
166 /// Vector STL which contains Felisce's curvilinearFiniteElement.
167 std::vector<CurvilinearFiniteElement*> m_listCurvilinearFiniteElement;
168
169 ///@}
170 ///@name Private Operations
171 ///@{
172
173 ///@}
174 ///@name Private Access
175 ///@{
176
177 ///@}
178 ///@name Private Inquiry
179 ///@{
180
181 ///@}
182 ///@name Private LifeCycle
183 ///@{
184
185 ///@}
186 };
187 ///@}
188 ///@name Type Definitions
189 ///@{
190
191 ///@}
192 } /* namespace felisce.*/
193 #endif
194