| 428 | } |
| 429 | |
| 430 | void HDivHighOrderFESpace :: Update() |
| 431 | { |
| 432 | FESpace::Update(); |
| 433 | // In discontinuous spaces the order on edges and faces |
| 434 | // are also set to the maximal order of adjacent elements |
| 435 | // and not to the element order (Motivation: Equilibrated_EE) |
| 436 | |
| 437 | // SZ hack since is not supported(tested) yet |
| 438 | rel_curl_order= rel_order; |
| 439 | curl_order = order; |
| 440 | |
| 441 | bool first_update = GetTimeStamp() < ma->GetTimeStamp(); |
| 442 | if (first_update) timestamp = NGS_Object::GetNextTimeStamp(); |
| 443 | |
| 444 | if (low_order_space) |
| 445 | low_order_space -> Update(); |
| 446 | |
| 447 | // int nv = ma->GetNV(); |
| 448 | size_t nel = ma->GetNE(); |
| 449 | size_t nfa = ma->GetNFacets(); |
| 450 | size_t dim = ma->GetDimension(); |
| 451 | |
| 452 | if (first_update) |
| 453 | { |
| 454 | order_facet.SetSize(nfa); |
| 455 | order_inner.SetSize(nel); |
| 456 | order_inner_curl.SetSize(nel); |
| 457 | fine_facet.SetSize(nfa); |
| 458 | boundary_facet.SetSize(nfa); |
| 459 | |
| 460 | boundary_facet = false; |
| 461 | /* |
| 462 | for (int i = 0; i < ma->GetNSE(); i++) |
| 463 | { |
| 464 | Array<int> elfacets; |
| 465 | ma->GetSElFacets (i,elfacets); |
| 466 | boundary_facet[elfacets[0]] = true; |
| 467 | } |
| 468 | */ |
| 469 | for (auto el : ma->Elements(BND)) |
| 470 | boundary_facet[el.Facets()] = true; |
| 471 | |
| 472 | // cout << " order hdiv " << order << endl; |
| 473 | // cout << " curl_order hdiv " << curl_order << endl; |
| 474 | |
| 475 | int p = 0, pc = 0; |
| 476 | |
| 477 | if(!var_order) |
| 478 | { |
| 479 | p = order; |
| 480 | pc = curl_order; |
| 481 | } |
| 482 | |
| 483 | order_facet = pc; |
| 484 | order_inner = p; |
| 485 | order_inner_curl = pc; |
| 486 | fine_facet = 0; //!!!! |
| 487 |
nothing calls this directly
no test coverage detected