Differential Algebra Normal Forms for symplectic maps
Project description
DANF
Differential Algebra Normal Forms for symplectic maps, built on DACEyPy.
Computes amplitude-dependent tune shifts (detuning coefficients) of nonlinear symplectic maps via order-by-order normal form transformation in the complex eigenvector basis.
Installation
pip install danf
Quick Start
import numpy as np
from daceypy import DA
from danf import NormalForm
from danf.elements import rotation, thin_sext, compose
# Initialize DA engine: order 7, 2 variables (x, px)
DA.init(7, 2)
# Build a one-turn map: rotation (tune 0.31) + sextupole kick (k2L = 1.0)
one_turn = compose(rotation(0.31), thin_sext(1.0))
# Compute the normal form
nf = NormalForm(one_turn)
nf.compute()
print(f"Tune: {nf.tunes[0]:.6f}")
print(f"dnu/dJ: {nf.detuning['dnux_dJx']:.8f}")
API
NormalForm(da_map)
Main class. Takes a list of DA objects (the symplectic map components) and computes the nonlinear normal form.
nf.compute()- run the full computationnf.tunes- linear tunesnf.detuning- dict of amplitude-dependent tune shift coefficients
danf.elements
Convenience functions for building DA maps: rotation, thin_sext, thin_quad, thin_oct, drift, compose.
compute_detuning_1d(da_x, da_px, tune)
Low-level function for 1D normal form computation. Takes map components in normalized (Floquet) coordinates.
Cross-Validation
Results verified against COSY INFINITY v10.2 (DANF procedure) to 10 significant figures:
| Quantity | DANF (Python) | COSY INFINITY |
|---|---|---|
| dnu/dJ | +0.0121104226 | +0.0121104226 |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file danf-0.4.0.tar.gz.
File metadata
- Download URL: danf-0.4.0.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58123ea5b8eaa3132f5797507e3167060884aa6c293b9f6c6c1785f7f51932bd
|
|
| MD5 |
d35eba406e44fc016f589a9555c07712
|
|
| BLAKE2b-256 |
6e92c083dd58a766803f37ccfe556c39d7db9264cf11b897e3d2618e6c300224
|
File details
Details for the file danf-0.4.0-py3-none-any.whl.
File metadata
- Download URL: danf-0.4.0-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0f67d19511486fb4a028a47b9c4182a67320881e746245d3c99bddf0b97516f
|
|
| MD5 |
f4d08f4d9af02c34f658949f8d57bb4a
|
|
| BLAKE2b-256 |
3585a830ce7cd952f031e83023310905b35a4e8ef461e1f9c2004756e9988b6d
|