- Boost>=1.59
- Eigen (optional)
- Blaze (optional)
ieompp has been tested on Linux using:
- clang 3.9.0
- gcc 6.2.1
- icc 17.0.0
Simulate the non-equilibrium dynamics of Fermionic systems
License: MIT License
Agenda should store index of terms in the result as well. This required to form the differential equation system.
4 commutations with an agenda on real space (100 sites) yields (term count):
Why is that? What is correct?
At many places dx=dy=1 is assumed for the lattice (e.g. ExpectationValue2D). This could be changed so that no dx can be different from dy.
Use a template
template <typename T>
std::ostream& operator<<(std::ostream& strm, const T& t) {
return (strm << hubbard::format(t));
}
and implement format()
functions for all types in the library.
Currently most time is spent in the matrix initialization and not the integrator. Building of the matrix should benefit very much from multiple cores as the elements are calculated independently.
While implementing more routines for the momentum space calculations I noticed, that it might be better to have a folder structure like this:
include
|-- ieompp
|-- models
|-- hubbard_real_space
|-- hubbard_momentum_space
|-- hubbard_real_space.hpp
|-- hubbard_momentum_space.hpp
Most functionality is not shared between momentum space and real space. Otherwise a third folder hubbard_common
might make sense.
The regex to parse commutators matches the string --help
.
This can be solved by inserting non-vanishing expectation values directly into the target vector.
See TODO note in unittest https://github.com/f-koehler/hubbard/blob/commutation/tests/algebra/test_hamiltonian_fourier.cpp
It seems that momentum is not conserved in all terms
./fermion_cas "[c_{k_1,↑}^†c_{k_1,↑};c_{q,s}]
gives the expected output while ./fermion_cas "[c_{k_1,↑}^†c_{k_1,↑};c_{q,σ}]
does not.
It would be nice to have values (see commutation with interaction term). So the following will be possible:
δ_{σ_1,↑}
The commutation in momentum space is not yet implemented. Two way are possible and should be tried:
Title says it all, dispersion is a functor like object.
I already tried to implement it but today I am too stupid.
In the Hamilton<Term>::commutate
functions it would be nice to use a reference to a term in the output container for convenient and efficient usage of these methods. I am too tired tonight to fix this.
I have to give more thought about the license to chose for this project.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.