-
Notifications
You must be signed in to change notification settings - Fork 28
Tutorial: Tc
In this example calculation, we study superconductivity in the 2D single-band Hubbard model. Putting the physics that lead to this fascinating phenomenon aside, we guide through the steps to obtain the superconducting transition temperature Tc for the case U = 6 and a filling of d = 0.95 using a 2x2 cluster and the standard DCA method. All relevant files can be found here.
MacBook Pro:
- Intel Core i7-4980HQ @ 2.8GHz (4 cores)
- MPI enabled (8 tasks)
-
"measurements"
: 100000 - T = [1, 0.75, 0.5, 0.25, 0.125, 0.1, 0.09, 0.08, 0.07]
- ~110 min
Piz Daint [Cray XC40 (multi-core)]:
- Intel Xeon E5-2695 v4 @ 2.10GHz (18 cores), 2 sockets per compute node
- MPI enabled: 25 nodes, 2 tasks per node
- Threaded Monte Carlo solver:
"walkers": 14
,"accumulators": 20
-
"measurements"
: 100000 - T = [1, 0.75, 0.5, 0.25, 0.125, 0.1, 0.095, 0.09, 0.085, 0.08, 0.075, 0.07]
- ~9 min
Use the following CMake options:
CMAKE_BUILD_TYPE = Release
DCA_BUILD_ANALYSIS = ON
DCA_BUILD_DCA = ON
DCA_CLUSTER_SOLVER = CT-AUX
DCA_LATTICE = square
DCA_MODEL = tight-binding
DCA_POINT_GROUP = D4
DCA_RNG = std::mt19937_64 # or std::ranlux48
In order to speed up the calculation, enable MPI
DCA_WITH_MPI = ON
and/or use the threaded Monte Carlo solver
DCA_WITH_THREADED_SOLVER = ON
Use the cooldown script to generate directories, input files and batch scripts for the DCA calculation. To do so, follow the steps 1-5 of the instructions for the script. Set the following simulation parameters in the cooldown script:
dca_plus = False
U = 6
d = 0.95
Nc = 4
cluster_vec_1 = [2, 0]
cluster_vec_2 = [0, 2]
iters_ht = 8
iters = 6
temps = [1, 0.75, 0.5, 0.25, 0.125, 0.1, 0.09, 0.08, 0.07] # Or smaller steps.
T_analysis = 0.1
We provide preconfigured input templates specific for this tutorial in the tutorial's directory: input_sp.json.in and input_tp.json.in.
The parameters "walkers"
and "accumulators"
need to be adjusted according to system specifications.
In order to get meaningful results, the number of measurements should be at least 100 000.
Revise the generated batch scripts for the dca (job.dca_*
) and analysis (job.analysis_*
) jobs and adjust resources, if necessary.
Submit/execute the dca batch script, job.dca_*
.
When all dca jobs finished running, submit/execute the analysis batch script, job.analysis_*
.
When the analysis jobs are finished, execute the python script compute_tc.py
in your work directory (i.e. the directory that contains the T=...
subdirectories) to determine the superconducting transition temperature Tc:
python compute_tc.py T=* # Produces plot eigval_vs_temp.pdf.
The resulting plot (see Fig. 1) shows the temperature dependence of the leading eigenvalue λd of the Bether-Salpeter equation. Tc is the temperature where λd(T=Tc) = 1.
We can further analyze the results by looking, for example, at the momentum and frequency dependence of the eigenvector of the leading Bethe-Salpeter eigenvalue. This can be done by running the python script plot_eigenvector.py
on one of the HDF5 files produced by main_analysis
:
python plot_eigenvector.py T=0.08/analysis.hdf5 # Produces plot leading_eigenvector.pdf.