-
RG_dict.py
: to be edited to change the parameters of the RG computation (see below for a dictionary of parameters) -
RG.py
: contains the RG classes and main functions defining the RG map -
RG_modules.py
: contains the methods to execute the RG map
Once RG_dict.py
has been edited with the relevant parameters, run the file as
python3 RG.py
or
nohup python3 -u RG.py &>RG.out < /dev/null &
The list of Python packages and their version are specified in requirements.txt
- Method: string; 'iterates', 'surface', 'region', 'line'; choice of method
- 'iterates': starting from two Hamiltonians H1 and H2 defined with the modes K and amplitudes AmpInf and AmpSup respectively, the method first refines H1 and H2 close to the critical surface using a dichotomy procedure. Second, it iterates these two Hamiltonians by iterating and refining with the renormalization map
- 'line': for the family of Hamiltonians defined by the modes K in the direction DirLine with ModesLine=1, determines the critical threshold
- 'surface': computes the critical surface in the plane of Fourier modes defined by K and ModesLine (the two modes K with ModesLine=1)
- 'region': in the plane of Fourier modes defined by K and ModesLine (the two modes K with ModesLine=1) with amplitudes in the range defined by AmpInf and AmpSup, determines the number of iterations for the Hamiltonian to converge (negative integers) or diverge (positive integers)
- Iterates: integer; number of iterates to compute for Method='iterates'
- Nxy: integer; number of points along each direction for Method='surface' or 'region'
- RelDist: float; relative distance of approach for the computation of critical values
- N: nxn integer matrix with determinant ±1
- omega0: array of n floats; frequency vector ω of the invariant torus; should be an eigenvector of †N (transposed matrix of N)
- Omega: array of n floats; vector Ω of the perturation in action
- K: 2-dimensional tuple of integers; wavevectors (j,ν)=(j,k1,...,kn) of the perturbation
- AmpInf: array of len(K) floats; minimal amplitudes of the perturbation
- AmpSup: array of len(K) floats; maximum amplitudes of the perturbation
- CoordLine: 1d array of floats; min and max values of the amplitudes of the potential used in Method='line'
- ModesLine: tuple of 0 and 1 of length len(K); specify which modes are being varied (1 for a varied mode)
- DirLine: 1d array of floats; direction of the one-parameter family used in Method='line'
- L: integer; truncation in Fourier series (angles)
- J: integer; truncation in Taylor series (actions)
- ChoiceIm: string; 'AK2000', 'K1999', 'AKW1998'; definition of I-
- Sigma: float; definition of I-
- Kappa: float; definition of I-
- CanonicalTransformation: string; 'expm_onestep', 'expm_adapt', 'expm_multiply'; method to compute the canonical Lie transforms
- 'expm_onestep': compute the exponential of the Liouville operator in one single step
- 'expm_adapt': use an adaptative step-size method to compute the exponential of the Liouville operator with AbsTol and RelTol as tolerance parameters, and MinStep as the minimum value of the step to be used
- 'expm_multiply': use the algorithm developed in A.H. Al-Mohy, N.J. Higham, SIAM Journal on Scientific Computing 33, 488 (2011) to compute the exponential of the Liouville operator
- MinStep: float; minimum value of the steps in the adaptive procedure to compute exponentials (for 'expm_adapt')
- AbsTol: float; absolute tolerance for the adaptive procedure to compute exponentials (for 'expm_adapt')
- RelTol: float; relative tolerance for the adaptive procedure to compute exponentials (for 'expm_adapt')
- MaxLie: integer; maximum number of Lie transforms to be performed to eliminate the non-resonant part of the perturbation
- TolMax: float; value of the norm of the Hamiltonian for divergence
- TolMin: float; value of the norm of the Hamiltonian for convergence
- Precision: integer; 32, 64 or 128; precision of calculations (default=64)
- NormChoice: string; 'sum', 'max', 'Euclidean', 'Analytic'; choice of Hamiltonian norm
- NormAnalytic: float; parameter of norm 'Analytic'
- 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 (all of them: int='all')
0
: all transformations have been properly computed (no error)1
: one of the Lie transforms is not accurately computed2
: the series of canonical transformations to eliminate the non-resonant part of the Hamiltonian is diverging-2
: the series of canonical transformations to eliminate the non-resonant part of the Hamiltonian does not converge or diverge (MaxLie iterations reached)3
: the iterates of the RG map on the initially generated Hamiltonian H1 diverge (H1 is above the critical surface)-3
: the iterates of the RG map on the initially generated Hamiltonian H2 converge (H2 is below the critical surface)4
: the step in the adaptive step-size computation of the Lie transform ('expm_adapt') is below the minimum defined step size (MinStep)
References:
- C. Chandre, H.R. Jauslin, Renormalization-group analysis for the transition to chaos in Hamiltonian systems, Physics Reports 365, 1 (2002)
@article{chandre2002,
title = {Renormalization-group analysis for the transition to chaos in Hamiltonian systems},
author = {C. Chandre and H.R. Jauslin},
journal = {Physics Reports},
volume = {365},
number = {1},
pages = {1-64},
year = {2002},
issn = {0370-1573},
doi = {https://doi.org/10.1016/S0370-1573(01)00094-1},
url = {https://www.sciencedirect.com/science/article/pii/S0370157301000941},
}
- A.P Bustamante, C. Chandre, Numerical computation of critical surfaces for the breakup of invariant tori in Hamiltonian systems, SIAM Journal on Applied Dynamical Systems 22, 483 (2023)
@article{bustamante2023,
title = {Numerical computation of critical surfaces for the breakup of invariant tori in Hamiltonian systems},
author = {Adrian P. Bustamante and Cristel Chandre},
journal = {SIAM Journal on Applied Dynamical Systems},
volume = {22},
number = {1},
pages = {483-500},
year = {2023},
issn = {1536-0040},
doi = {https://doi.org/10.1137/21M1448501},
}
For more information: cristel.chandre@cnrs.fr