| 5968 | |
| 5969 | template <class SCAL> |
| 5970 | void S_BilinearForm<SCAL> :: AddMatrixGF (SCAL val, |
| 5971 | const BaseVector & x, |
| 5972 | BaseVector & y, |
| 5973 | bool transpose, |
| 5974 | LocalHeap & lh) const |
| 5975 | { |
| 5976 | static Timer t("BilinearForm::Apply - geomfree"); |
| 5977 | static Timer tgetx("BilinearForm::Apply - get x"); |
| 5978 | static Timer tx("BilinearForm::Apply - transform x"); |
| 5979 | static Timer ty("BilinearForm::Apply - transform y"); |
| 5980 | static Timer taddy("BilinearForm::Apply - add y"); |
| 5981 | static Timer tgf("BilinearForm::Apply - geomfree gridfunction"); |
| 5982 | static Timer tgfmult("BilinearForm::Apply - geomfree gridfunction - mult"); |
| 5983 | static Timer tm("BilinearForm::Apply - geomfree mult"); |
| 5984 | static Timer teval("BilinearForm::Apply - evaluate"); |
| 5985 | RegionTimer reg(t); |
| 5986 | |
| 5987 | // classify: |
| 5988 | auto fesx = GetTrialSpace(); |
| 5989 | auto fesy = GetTestSpace(); |
| 5990 | if (transpose) Swap (fesx, fesy); |
| 5991 | auto ma = GetMeshAccess(); |
| 5992 | |
| 5993 | /* |
| 5994 | Array<short> classnr(ma->GetNE()); |
| 5995 | ma->IterateElements |
| 5996 | (VOL, lh, [&] (auto el, LocalHeap & llh) |
| 5997 | { |
| 5998 | classnr[el.Nr()] = |
| 5999 | SwitchET<ET_TRIG,ET_TET> |
| 6000 | (el.GetType(), |
| 6001 | [el] (auto et) { return ET_trait<et.ElementType()>::GetClassNr(el.Vertices()); }); |
| 6002 | }); |
| 6003 | |
| 6004 | TableCreator<size_t> creator; |
| 6005 | for ( ; !creator.Done(); creator++) |
| 6006 | for (auto i : Range(classnr)) |
| 6007 | creator.Add (classnr[i], i); |
| 6008 | Table<size_t> table = creator.MoveTable(); |
| 6009 | */ |
| 6010 | |
| 6011 | const Table<size_t> & table = ma->GetElementsOfClass(); |
| 6012 | // auto dof_tablex = fesx->CreateDofTable(VOL); |
| 6013 | |
| 6014 | |
| 6015 | |
| 6016 | #ifdef OLDPARALLEL |
| 6017 | |
| 6018 | for (auto elclass_inds : table) |
| 6019 | { |
| 6020 | if (elclass_inds.Size() == 0) continue; |
| 6021 | HeapReset hr(lh); |
| 6022 | |
| 6023 | ElementId ei(VOL,elclass_inds[0]); |
| 6024 | auto & felx = GetTrialSpace()->GetFE (ei, lh); |
| 6025 | auto & fely = GetTestSpace()->GetFE (ei, lh); |
| 6026 | auto & trafo = GetTrialSpace()->GetMeshAccess()->GetTrafo(ei, lh); |
| 6027 |
nothing calls this directly
no test coverage detected