You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, every AbstractPulsedPlaneWaveField must implement reference_momentum, which is plausible and should not be changed. However, there are circumstances, where the reference momentum is not needed, thus doesn't need to be specified. For instance, the envelope and amplitude function, and the generic spectrum only depend on phi (and fixed parameters) and not directly on the momentum. Even the full phase integrals depend on the kinematic parameters alpha, which are not necessarily calculated in the phase integrals itself.
Moreover, since some of these integrals require some data preparation (e.g. grids and adaptions), it would be not efficient to perform these actions for every possible reference momentum, even if this is not necessary.
Therefore, I propose to insert an abstraction layer, whose types only hold information about the field, like envelope, domain and parameters, but not the reference momentum. I suggest the abstract base type AbstractPulsedPlaneWaveFieldDefinition, and as interface functions: envelope and domain. The current AbstractPulsedPlaneWaveField could then be an extension (subtype) adding reference_momentum as an additional interface function.
Probably, we should discuss, where this abstraction layer should be inserted. Currently, the names become fairly long 🤷♂️
The text was updated successfully, but these errors were encountered:
Currently, every
AbstractPulsedPlaneWaveField
must implementreference_momentum
, which is plausible and should not be changed. However, there are circumstances, where the reference momentum is not needed, thus doesn't need to be specified. For instance, the envelope and amplitude function, and the generic spectrum only depend onphi
(and fixed parameters) and not directly on the momentum. Even the full phase integrals depend on the kinematic parametersalpha
, which are not necessarily calculated in the phase integrals itself.Moreover, since some of these integrals require some data preparation (e.g. grids and adaptions), it would be not efficient to perform these actions for every possible reference momentum, even if this is not necessary.
Therefore, I propose to insert an abstraction layer, whose types only hold information about the field, like envelope, domain and parameters, but not the reference momentum. I suggest the abstract base type
AbstractPulsedPlaneWaveFieldDefinition
, and as interface functions:envelope
anddomain
. The currentAbstractPulsedPlaneWaveField
could then be an extension (subtype) addingreference_momentum
as an additional interface function.Probably, we should discuss, where this abstraction layer should be inserted. Currently, the names become fairly long 🤷♂️
The text was updated successfully, but these errors were encountered: