Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor!: implement Model interface to lambdify Callables #222

Merged
merged 60 commits into from
Mar 12, 2021
Merged

Conversation

spflueger
Copy link
Member

@spflueger spflueger commented Mar 10, 2021

Several breaking changes

All physics (amplitude, dynamics, kinematics) has been moved to the expertsystem, where the amplitude model is now formulated in terms of SymPy. TensorWaves is now more abstract: the core has become a template Model class that can be 'lambdified' into a Function with different computational backends. The esimator and data modules are still there, but changed slightly because of the intermediate Model layer.

Since the responsibilities of tensorwaves have changed quite a bit and much code has been removed, the module structure has been changed drastically as well. The example workflow notebooks therefore changed as well.

See also: ComPWA/expertsystem#454
Reopened from #203

This PR also closes several issues, because the physics has been 'abstracted out' to the expertsystem through the Model interface.

#184 (will be illustrated in a notebook in a follow-up PR)
Closes #172
Closes #162
Closes #146
Closes #70
Closes #64
Closes #45
Closes #37

redeboer and others added 30 commits March 8, 2021 09:13
In HelicityKinematics calculate the non squared invariant masses
instead. Currently calculated the squared values. The reasoning is to
simplify usage and potentially have small performance gains in the
evaluation.
This completely describes the calculation of an amplitude model from the
four momentum input to the intensity value output. It is based on sympy
expression and symbols.
Note: includes change in estimator interface.
Note: currently only when choosing the jax backend, gradients are
supported.
Allow complex valued parameters to be fitted by defining an adapter
that flattens the complex to a pair of floats and the reverse operation
unflattening.
Use jax.jit in lambdify when using the jax backend.
Removes the need for SubSystem, ParticleReactionInfo, etc.
@redeboer redeboer merged commit dafa150 into master Mar 12, 2021
@redeboer redeboer deleted the sympy branch March 12, 2021 17:00
@redeboer redeboer added this to the Release 0.2.0 milestone Mar 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚠️ Interface Breaking changes to the API 🔨 Maintenance Maintenance and upkeep improvements
Projects
None yet
2 participants