Skip to content

Overlap

Sanfilippo edited this page Nov 28, 2018 · 6 revisions

Input file

Esempio

Questo input serve solo a far scattare la routine "measure_minmax_eigenvalues" dove fare i test. Prima di lanciarla, copia la configurazione di test che sta in test/data/L4T8conf nella cartella dove si trova l'input, e chiamala conf

Geometry
 T              =       8
 L              =       4

Theory
Quark = "Up"

MeasMinMaxEigenval

Analysis
 ConfList       =       {"conf"} 

Blocco Fermione

  • Aggiungere un nuovo tipo di fermione, che si chiami overlap, che abbia i parametri necessari ad applicarlo: [listare parametri]

  • Il kernel da usare potrebbe essere un parametro

Blocco misura

  • Aggiungere un blocco che misura gli autovalori minimi/massimi, per tutti i fermioni di una teoria qualsiasi tra quelle listate come input

  • Scgliere Nome

Kernel

  • Attualmente c'è un nuovo file dedicato in src/dirac_operators/overlap/dirac_operator_overlap_kernel_portable.cpp

  • questo non fa niente di diverso dal caso Wilson a parte gamma5

  • quindi fondamentalmente è codice duplicato e sarebbe meglio evitarlo, in modo che se avessimo una versione ottimizzata di un kernel, sarebbe automaticamente ottimizzata pure per l'overlap

  • ovviamente aggiungere gamma5 e lo shift a parte aggiunge un piccolo overhead...

  • in questa maniera uno potrebbe, in un altro momento, usare come kernel quello di Wilson o quello staggered (avendo accortezza di usare il giusto gamma5, che probabilmente è quella a 4 link)

Autovalori del kernel

  • Idealmente si dovrebbe usare la nuova routine che calcola gli autovalori minimi o massimi, ovvero eigenvalues_of_hermatr_find in src/eigenvalues/eigenvalues.hpp.

  • L'alternativa è di usare l'approccio semplicistico di max_eigenval in src/hmc/multipseudo/set_expansions.cpp nel quale si trova solo quello massimo, applicando n volte l'operatore stesso, ed usando "0" per quello minimo (se l'algoritmo zolotaro lavora fino a 0)

Approssimazione razionale

La strutura che tiene le approssimazioni razionali è definita in src/new_types/rat_approx.hpp

  • Dove sta Zolotoro?
  • In quale range funziona?

Poi si può riscalare semplicemente l'approssimazione, sulle linee di quanto fatto in src/hmc/multipseudo/set_expansions.cpp, si potrebbe estrarre da questo contesto la routine, e metterla come metodo stesso dell'approssimazione razionale

Multishift

Operatore Overlap

Questo dev'essere implementato come semplice routine che avvolge e maschera la chiamata al multishift

Clone this wiki locally