Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cchandre/confkam
Conjugation method in configuration space for invariant tori of Hamiltonian systems
https://github.com/cchandre/confkam
conjugation hamiltonian hamiltonian-dynamics invariant-tori kolmogorov-arnold-moser numpy python3 scipy
Last synced: about 1 month ago
JSON representation
Conjugation method in configuration space for invariant tori of Hamiltonian systems
- Host: GitHub
- URL: https://github.com/cchandre/confkam
- Owner: cchandre
- Created: 2021-05-06T07:17:09.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-01T07:43:41.000Z (almost 3 years ago)
- Last Synced: 2024-11-10T21:11:46.460Z (3 months ago)
- Topics: conjugation, hamiltonian, hamiltonian-dynamics, invariant-tori, kolmogorov-arnold-moser, numpy, python3, scipy
- Language: Python
- Homepage:
- Size: 58.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KAM in configuration space for invariant tori in Hamiltonian systems
- [`ConfKAM_dict.py`](https://github.com/cchandre/ConfKAM/blob/main/ConfKAM_dict.py): to be edited to change the parameters of the ConfKAM computation (see below for a dictionary of parameters)
- [`ConfKAM.py`](https://github.com/cchandre/ConfKAM/blob/main/ConfKAM.py): contains the ConfKAM classes and main functions defining the ConfKAM map
- [`ConfKAM_modules.py`](https://github.com/cchandre/ConfKAM/blob/main/ConfKAM_modules.py): contains the methods to execute the ConfKAM map
Once [`ConfKAM_dict.py`](https://github.com/cchandre/ConfKAM/blob/main/ConfKAM_dict.py) has been edited with the relevant parameters, run the file as
```sh
python3 ConfKAM.py
```___
## Parameter dictionary- *Method*: 'line_norm', 'region'; choice of method
- *Nxy*: integer; number of points along each line in computations
- *r*: integer; order of the Sobolev norm used in `compute_line_norm()`
####
- *omega0*: array of *n* floats; frequency vector **ω** of the invariant torus
- *Omega*: array of *n* floats; vector **Ω** defining the perturbation in actions
- *Dv*: function; derivative of the *n*-d potential along a line
- *CoordRegion*: array of floats; min and max values of the amplitudes for each mode of the potential (see *Dv*); used in `compute_region()`
- *IndxLine*: tuple of integers; indices of the modes to be varied in `compute_region()`
parallelization in `compute_region()` is done along the *IndxLine*[0] axis
- *PolarAngles*: array of two floats; min and max value of the angles in 'polar'
- *CoordLine*: 1d array of floats; min and max values of the amplitudes of the potential used in `compute_line_norm()`
- *ModesLine*: tuple of 0 and 1; specify which modes are being varied (1 for a varied mode)
- *DirLine*: 1d array of floats; direction of the one-parameter family used in `compute_line_norm()`
####
####
- *AdaptSize*: boolean; if True, changes the dimension of arrays depending on the tail of the FFT of *h*(*ψ*)
- *Lmin*: integer; minimum and default value of the dimension of arrays for *h*(*ψ*)
- *Lmax*: integer; maximum value of the dimension of arrays for *h*(*ψ*) if *AdaptSize* is True
####
- *TolMax*: float; value of norm for divergence
- *TolMin*: float; value of norm for convergence
- *Threshold*: float; threshold value for truncating Fourier series of *h*(*ψ*)
- *MaxIter*: integer; maximum number of iterations for the Newton method
####
- *Type*: 'cartesian', 'polar'; type of computation for 2d plots
- *ChoiceInitial*: 'fixed', 'continuation'; method for the initial conditions of the Newton method
- *MethodInitial*: 'zero', 'one_step'; method to generate the initial conditions for the Newton iteration
####
- *AdaptEps*: boolean; if True adapt the increment of eps in `compute_line_norm()`
- *MinEps*: float; minimum value of the increment of eps if *AdaptEps*=True
- *MonitorGrad*: boolean; if True, monitors the gradient of *h*(*ψ*)
####
- *Precision*: 32, 64 or 128; precision of calculations (default=64)
- *SaveData*: boolean; if True, the results are saved in a `.mat` file
- *PlotResults*: boolean; if True, the results are plotted right after the computation
- *Parallelization*: tuple (boolean, int); True for parallelization, int is the number of cores to be used (set int='all' for all of the cores)
####
---
Reference: A.P Bustamante, C. Chandre, *Numerical computation of critical surfaces for the breakup of invariant tori in Hamiltonian systems*, [arXiv:2109.12235](https://arxiv.org/abs/2109.12235)
```bibtex
@misc{bustamante2021,
title = {Numerical computation of critical surfaces for the breakup of invariant tori in Hamiltonian systems},
author = {Adrian P. Bustamante and Cristel Chandre},
year = {2021},
eprint = {2109.12235},
archivePrefix = {arXiv},
primaryClass = {math.DS}
}
```For more information: