Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes (new lattice, measurement fixes, more) #165

Merged
merged 140 commits into from
Oct 18, 2022

Conversation

ffreyer
Copy link
Collaborator

@ffreyer ffreyer commented Apr 28, 2022

Main Goals of this pr are now:

  • update to BinningAnalysis 0.6 (closes CompatHelper: bump compat for BinningAnalysis to 0.5, (keep existing compat) #130 and CompatHelper: bump compat for BinningAnalysis to 0.6, (keep existing compat) #166)
  • fix time integrals for susceptibilities
  • rework the lattice interface
    • add unit cell information
    • streamline the loading/saving (i.e. avoid the number-by-number saving/loading that LatPhysLattice currently has)
    • probably go for more or less feature data parity with LatticePhysics (maybe allowing direct conversion back and forth?)
  • rework/update lattice iterators to include unit cells
    • move cache into lattice
    • change iterator cache keys to enum, symbols or strings for type stability and startup performance
    • maybe add caching for positions, directions, neighbors, reciprocal discretization
  • cleanup/small things
    • superfluid density
    • hopping_directions maybe not worth optimizing
    • directions(iter, lattice) should maybe exist
    • Fourier transform for measurements expensive during simulation, moved elsewhere post simulation
  • optimize measurements/minor measurement rework
    • add flavor iterators to make it possible to move sums over flavors from an inner loop to an outer loop (which is more cache friendly since flavors generate large jumps in indices)
    • add kernel methods specialized on the Greens function type to avoid custom indexing
    • reduce number of hopping matrix lookups in current current correlation kernel (using T Hermitian)
    • performance annotations (inline, propagate_inbounds, fastmath, inbounds)
    • add EachBondPairByBravaisDistance for better measure performance (?) and faster analysis of CCS
  • Move post simulation analysis tools into separate package https://github.com/ffreyer/MonteCarloAnalysis
    • Fourier transforms
    • superfluid density computation
    • Makie helpers
    • DataFrame constructor
    • loading from (multiple) paths

And since the lattice changes will most likely be breaking I'll get some other breaking stuff done.

General changes/TODO:

  • Add Git tag to save files
  • Fixed some types. (type promotions, type instability)
  • Improved performance of EachLocalQuadByDistance a bit
  • Now skipping for the global updates check when none are present
  • maybe take a closer look at errors (test and potentially fix error consistency vs ED (still ~$2\Delta\tau^2$), maybe use jackknife)
  • fix problems/inconsistencies in ALF crosscheck
  • remove cases of saving a custom type - it just ends up making things difficult (saving update types is the latest problem, holding back Chemical potential tuning #158)
  • Use StableRNGs for tests (or use random seeds where applicable) This doesn't really work for us because most of our random's happen inside the library
  • Reduce reliance on Random.seed! in tests (remove DQMC checks vs hardcoded values, allow larger errors, don't check random confs)
  • test JLD2.load() at the start instead of loading data piece by piece
  • remove flv and model from kernel functions. Since mc is passed this information is available and usually doesn't do much but bloat the call signature doesn't need to happen here
  • update docs
  • optimize measurements
  • switch to CodecLz4 for faster compression (but larger file size)
  • optimize nearest_neighbor_count and hopping_directions
  • optimize directions
  • add ED check with Honeycomb lattice to test lattice with basis

@ffreyer ffreyer changed the title Fixes [Breaking ]Fixes May 16, 2022
@ffreyer ffreyer changed the title [Breaking ]Fixes Breaking changes (new lattice, measurement fixes, more) May 16, 2022
Project.toml Outdated Show resolved Hide resolved
@ffreyer ffreyer marked this pull request as ready for review October 18, 2022 13:24
@ffreyer ffreyer merged commit 7525ca6 into carstenbauer:master Oct 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

remove MonteCarloObservable dependency
1 participant