Skip to content

Feature/move advection class

Chris Cantwell requested to merge feature/MoveAdvectionClass into master

This MR concerns a restructuring of the handling of advection objects:

  • Advection terms in IncNavierStokesSolver now derive from the SolverUtils Advection base class
  • A new AdvectionSystem holds the Advection term at Driver level and sits between UnsteadySystem and a specific solvers EquationSystems (to allow Advection objects to be manipulated at Driver level)
  • Moved instantiation of the extrapolation terms to the most derived classes in IncNavierStokesSolver. Previously m_fields needed to be initialised (through a call to UnsteadySystem::v_InitObject()), the m_pressure pointer set, and then the extrapolation term initialised through calling IncNavierStokes::v_InitObject(). However, this now also calls UnsteadySystem::v_InitObject resulting in m_fields being initialised twice and m_pressure and m_fields[m_nConvectiveFields] being different.
  • Some tidying up of the advection term code.

A similar structure can be adopted for the diffusion terms. The AdvectionSystem class therefore inherits UnsteadySystem virtually to allow this to be implemented.

Merge request reports