ExCALIBUR-NEPTUNE / NESO

MIT License
4 stars 4 forks source link

Collect common solver functionality in a base class #228

Closed oparry-ukaea closed 6 months ago

oparry-ukaea commented 7 months ago

Description

Creates a base class for solver equation systems from which H3LAPD (DriftReducedSystem) and SimpleSOL (SOLSystem) can inherit. Base class is templated on a nektar equation system (for time-evolving systems, it must derive from UnsteadySystem). Time evolving systems are also templated on a particle system class, which must derive from a new particle system base class.

Type of change

Testing

None added

Checklist:

jwscook commented 6 months ago

Once https://github.com/ExCALIBUR-NEPTUNE/NESO-hw-impurity-transport/pull/5 is merged then this can follow quite quickly

jwscook commented 6 months ago

Should run this past Stefan and Sanket before merging because this assumes that there is a single ParticleGroup per ParticleSystem, which may not fit their usecase.

jwscook commented 6 months ago

Need to create some instructions in the README after NESO 0.1.0.

oparry-ukaea commented 6 months ago

Having had another look, I don't think it'll be a problem to adapt the particle system base class to work with multiple ParticleGroups in a separate PR if needs be. Marking this as ready-to-merge.

oparry-ukaea commented 6 months ago

Instructions for using the base classes in a new solver need to be added (#239), but that may depend on other changes (rearranging submodules etc.) to some extent - I propose we do that in a separate PR.