Skip to content

collapse and tidy up MultiRegions so that ExpList is reduced to one class

Spencer Sherwin requested to merge ssherw/nektar:feature/CollapseExpList into master

Currently this MR has collapsed the classes ExpList, ExpList0D, ExpList1D, ExpList2D and ExpList3D just down to ExpList.

This has allowed for

  1. A single place to define m_phys and m_coeff in ExpList::SetupCoeffPhys()
  2. Reducing the number of constructors in ExpList down from 30 to 6. Some modification of ExpansionInfo constructors has been required (i.e. to allow for ErrorExtraPoints)

Also have made updates to make StdRegions and LocalRegions to make these libraries more dimension independent. To do this I have only tried to keep Trace methods in StdExpansions.h and moved orientation related methods to Expansion where possible. Note that some orientation methods are required in SpatialDomains so not call could be moved. However there are some methods in 3D that required access to Edges which I have now placed only in StedExpansion3D and used the .as() cast when they are called typically in Preconditioners such as Block and LowEnergyBlock. Finally I have tended to use GetGeom()->GetNUmEdges if edge numbers are required for a 3D method.

Edited by Spencer Sherwin

Merge request reports