Overview
Project name: False positives for transport barriers
Author : Michele Mugnaine
Date: April/2026
Contact: mugnaine@usp.br
Description:
Code and data repository accompanying the publication "The role of manifolds in the transport of chaotic trajectories in the nontwist map".
Both data and codes are available in the file "Codes.zip".
Requirements
- Fortran compiler (gfortran, ifort, ...).
- Gnuplot
- Files available in "Codes.zip".
Figure 1
- Figure 1 (a): run $ gfortran PhaseSpace.f90; ./a.out , with a=0.38, b=0.75 and different initial conditions.
- Figure 1 (b): run $ gfortran PhaseSpace.f90; ./a.out , with a=0.37, b=0.75 and different initial conditions.
- Figure 1 (c): run $ gfortran PhaseSpace.f90; ./a.out , with a=0.375, b=0.75 and different initial conditions.
- Figure 1 (d): run $ gfortran Transmissivity.f90; ./a.out , with a=0.37, b=0.75 for the orange profile and a=0.375, b=0.75 for the teal profile.
Using the last output, run $ gfortran Profile.f90; ./a.out to obtain the corresponding transmissivity profiles as a function of the final iteration time.
Figure 2
All panels are computed in a similar way, the only difference is the final iteration time: nf=100 for Fig. 2 (a), nf=1000 and nf=10000 for Figures 2 (b) and (c), respectively.
- Input 1: "NoBarrier.dat" → Region in parameter space without a shearless barrier, computed using indicator points.
- run $ gfortran ParameterSpaceTransmissivity.f90; ./a.out, to obtain the transmissivity values for each parameter pair (colored region).
- Output: ParameterSpaceTransmissivity.dat
- Input 2: "ParameterSpaceTransmissivity.dat"
- run $ gfortran FractionNoTransport.f90; ./a.out, to obtain the points in parameter space with no barrier and no transport.
After repeting the above procedure for all the final itertion times, the obtained outputs are:
- ParameterSpaceTransmissivity_n1E2.dat
- ParameterSpaceTransmissivity_n1E3.dat
- ParameterSpaceTransmissivity_n1E4.dat
- NoTransport_n1E2.dat
- NoTransport_n1E3.dat
- NoTransport_n1E4.dat
Run $ gnuplot Figure2.txt to obtain Figure2.png.
Figure 3
- The data files corresponding to the region with a shearless curve are named "Barrier_P i.dat", where i=1,2,...,6.
- The data files corresponding to the region without a shearless curve are named "NoBarrier_P i.dat", where i=1,2,...,6.
- To compute the transmissivity associated with the "NoBarrier_P i.dat", run $ gfortran ParameterSpaceTransmissivity.f90; ./a.out for each file and each final iteration time nf.
- Outputs: "P i_TransmEP_ nf.dat", with i=1,2,...,6. and nf=100 (1E2), 1000 (1E3) and 1000 (1E4).
- To identify the points with no barrier and no transport, run $ gfortran FractionNoTransport.f90; ./a.out for each "P i_TransmEP_ nf.dat" file.
- Outputs: "NoTransport_P i_ nf.dat", with i=1,2,...,6. and nf=100 (1E2), 1000 (1E3) and 1000 (1E4).
- For the phase spaces in Figures 3(b), run $ gfortran PhaseSpace.f90; ./a.out for different initial conditions and using the parameters specified in the file "Parameters.txt" .
Figure 4-6
To obtain the manifolds shown in Figures 4–6, run $ gfortran Manifolds.f90; ./a.out using the parameters a and b, and the initial conditions (x0,y0) provided in file " HyperbolicPoints.dat"
Figure 7
Using the outputs "NoTransport_P i_ nf.dat", for each period i=1,2,...,6., run $ gfortran Decay.f90; ./a.out.
- To optmize, compute first the decay from nf=100 to nf=1000 with input "NoTransport_P i_1E2.dat", and then from nf=1000 to nf=10000 with input "NoTransport_P i_1E3.dat"
- Output: "Decay_P i.dat" with i=1,2,...,6..