• Niklas Eiling's avatar
    refactor MNASolver so that we can choose an implementation at runtime rather than compile time · 875f558c
    Niklas Eiling authored
    
    
    move sparse and dense Eigen implementation to new files and keep MNASolver as abstract base class for all MNASolver implementations.
    For now the GPU implementations still inherit from MNASolverDense and Sparse, but it probably makes sense to change that.
    There is no regression, i.e., we can still use MNASolver without caring about the specific implementation. We only need to use the new MNASolverFactory::factory function to create instances of the solver. By default, the factory choses the most advances implementation available (that is GPUSparse > GPUDense > EigenSparse > EigenDense).
    In-depth testing still to be done.
    Signed-off-by: Niklas Eiling's avatarNiklas Eiling <niklas.eiling@eonerc.rwth-aachen.de>
    875f558c
MNASolver.cpp 17.4 KB