mabarnes / moment_kinetics

Other
2 stars 4 forks source link

Refactor collision input options to make separate namelist for Krook and Fokker Planck collision operators. #202

Closed mrhardman closed 2 months ago

mrhardman commented 2 months ago

Changes to permit the collision operator inputs to be kept in separate structs.

Making these changes allowed me to review the formulation for the inputs. To simplify the logic for specifying default behaviour, I introduce new "use_krook" and "use_fokker_planck" parameters that must be true for the operators to be used. Checks on use_krook and use_fokker_planck are done when setting up the advance Bools. The "frequency_option" is used to choose whether or not the collision frequency is specified manually or from reference parameters. I think that this formulation is more natural, but this may be a matter of taste. My concern with the previous formulation was that the same string use used to determine the way the frequency is calculated as well as whether or not the operator is used at all.

A by-product of these changes is that a collision frequency from reference parameters for the Fokker-Planck operator is now available.

The feature should now mean that defaults are only specified in a single location, and that further parameters can be easily added in an encapsulated way.

Feedback appreciated.