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.
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.