maowerner / contraction-code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Markus new contraction code 2014

in LapHs.cpp

  • modularized building the propagator and Gamma structure into ../modules/Basicoperator.cpp new Initialization of new class ReadWrite (see below) introduced init_operator() to set up D_u^-1 introduced get_operator_charged() for u quark and get_operator_g5() to implement gamma_5 trick and gamma structure
  • implemented C2 and C4
  • transferred read_eigenvectors_from_file() to build_source_matrix()
  • implemented get_operator_uncharged for neutral particles
  • introduced Corr to hold traces for all momenta, dirac structures, times and randomvectors. Build C2, C4_1, C4_2 from Corr to save ca. 25% time
  • changed all memory allocation to boost
  • reworked output format. Now creates a new folder for every GEVP entry (different p^2, dirac, displacement) and writes correlation function configurationwise

in Basicoperator.cpp:

  • changed layout of perambulator and basicoperator to reflect blockdiagonal structure in Dirac space.
  • changed memory layout of basicoperator to array of 4 blocks (rest is 0)
  • introduced contraction[rnd_i][blocknr] array holding the 16 blocks of D_u^-1
  • changed gamma structure from multiplication to reordering for efficiency
  • deleted create_operator(), mul_l_gamma() and mul_r_gamma()
  • introduced a struct for lookup tables
  • transferred build_source_matrix() to ReadWrite.cpp
  • changed create_gamma() into a lookup table
  • re-implemented all 16 Dirac structures
  • implemented char as switch between interlace and block time dilution
  • implemented displacement (not working yet!)
  • introduced s matrix and changed from dilution in build_source_matrix to "live" dilution in get_operator()
  • changed all memory allocation to boost

in ReadWrite.cpp:

  • introduced new class ReadWrite to handle the file input
  • shifted read_eigenvectors_from_file(), read_perambulators_from_file() and read_rnd_vec_from_file() into ReadWrite.cpp
  • changed file layout to Bastians 2014 perambulator code output structure
  • implemented momenta in build_source_matrix()
  • implemented displacement in build_source_matrix()
  • transferred dilution from build_source_matrix() to get_operator() in BasicOperator.cpp
  • changed read_eigenvectors_from_file() to timeslice-wise reading of vectors
  • changed all memory allocation to boost

in config_utils.cpp

  • introduced from Christopher for displacement

in GlobalData.cpp

  • added dirac, displacement, lattice_name (A40, B55, etc.) and outpath to infile

  • introduced create_runs.sh and start_runs.sh to create infiles and submit jobs to cluster

TODO:

  • implement switchable solution for interlace and block time dilution in ReadWrite.cpp -> choose dilution scheme in input file? Change from TI2 to TB24 layout

  • check if create_runs.sh can be writen better in perl (or python)

  • check if change in get_operator in BasicOperator.cpp results in speedup

  • find out why only the code has only 200% CPU-usage

  • write new class Contractions.cpp with code for 2- and 4-pt functions

  • implement disconnected diagramms? not necassary?

  • IMPLEMENT RHO MESON

known bugs:

  • imaginary part always has additional minus sign compared to Bastian
  • two point function switch gamma_10 & gamma_11 (solved?)
  • C4_2 doesnt cover timevalue t_sink = Lt-1, t_sink_1 = 0 (done for consistency with Bastians Code)

29.8.2014 pull request from Christian

About


Languages

Language:C 51.1%Language:C++ 47.0%Language:Makefile 1.9%