| 273 | } |
| 274 | |
| 275 | void HCT_FESpace::Update() |
| 276 | { |
| 277 | FESpace::Update(); |
| 278 | first_edge_dof.SetSize(ma->GetNEdges()+1); |
| 279 | first_element_dof.SetSize(ma->GetNE()+1); |
| 280 | |
| 281 | size_t ndof = ma->GetNV(); |
| 282 | for (size_t i = 0; i < ma->GetNEdges(); i++) |
| 283 | { |
| 284 | first_edge_dof[i] = ndof; |
| 285 | ndof += (order - 1); |
| 286 | } |
| 287 | first_edge_dof[ma->GetNEdges()] = ndof; |
| 288 | |
| 289 | for (size_t i = 0; i < ma->GetNE(); i++) |
| 290 | { |
| 291 | first_element_dof[i] = ndof; |
| 292 | ndof += 3 * (order-1)*(order-2)/2; |
| 293 | } |
| 294 | first_element_dof[ma->GetNE()] = ndof; |
| 295 | |
| 296 | SetNDof (ndof); |
| 297 | } |
| 298 | |
| 299 | void HCT_FESpace::FinalizeUpdate() |
| 300 | { |