Split DirichletBC class into two

Issue #600 new
Prof Garth Wells created an issue

DirichletBC represents Dirichlet bcs (more specifically, bcs that are imposed algebraically), and for some cases it also performs the modification of matrices and vectors.

The class is getting complicated because it does too much. The representation of Dirichlet bcs is common for different assemblers, but the modification of matrices and vectors is not common to all assemblers. For this reason and to simplify the class, it makes sense to split it onto two: one class that represent a Dirichlet bc, and once class to modify matrices and vectors.

Comments (4)

  1. Chris Richardson

    I guess a first step is to deprecate DirichletBC::apply(), and provide an alternative way of modifying LA objects. Should that be via free functions, a new class, or member functions of Vector/Matrix etc.?

  2. Prof Garth Wells reporter

    Free function would make more sense if DirichletBC::apply(...) doesn't have any state.

  3. Log in to comment