Comments (10)
Dear Junya,
Unfortunately we haven't implemented anything in Pomerol outside of single- and two- particle Green's functions. There are arbitrary operators available in Pomerol, and by replacing Creation and AnnihilationOperator in Green's function one can do it, but that requires some development and testing.
Of course in your case if you only need this susceptibility once and for small enough system - get a full twoparticleGF and make a sum. The notation for the frequencies is here https://github.com/aeantipov/pomerol/blob/master/doc/gamma4.pdf (it is c_1 c_2 c^+3 c^+4), so by parametrizing w_3 = w + \Omega
, \omega_1 = \omega' + \Omega
, w_2 = \omega'
and \omega_4 = \omega
and summing over \omega and \omega' you'll get what you want. That's of course a very expensive and unoptimized way of doing things.
from pomerol.
Thank you for your quick reply, Andrey.
Can you tell me how exactly one can implement it, though, I'm not sure if I can do it. It seems that I copy GreenFunction.cpp
and GreenFunctionPart.cpp
, and replace CreationOperator and AnnihilationOparator with some arbitrary operators (or product of c_i and c_j^+). Are there something which I should take care of?
from pomerol.
Hi, Andrey. I have implemented a susceptibility calculation. Just for your information, I let you know what I did.
I introduced a class named QuadraticOparator, which inherits FieldOperator in a similar manner to CreationOperator and AnnihilationOperator, but contains a product of creation and annihilation operators, c^+ c. Then, I copy GreenFunction.cpp and replace all appearances of CreationOperator and AnnihilationOperator with QuandraticOperator. Finally, I replace fermionic formulas with bosonic ones. It seems working.
from pomerol.
Junya, sorry I missed the previous message. I am glad to know you worked it out and this is indeed the optimal solution. Would you mind contributing it as a PR to pomerol?
from pomerol.
I'm happy to contribute my implementation as a PR to the original repo. I'm now further working on implementing <c_i^+ c_j>, which is necessary to complete the susceptibility calculation. I'll let you know when those implementations are finished.
from pomerol.
Thanks a lot, Junya!
from pomerol.
Junya, thanks, this is an incredible work.
I noticed the tests are failing now because they try to build a C++98 code (yes, pomerol still supports it).
I guess by now the entire community has moved on to c++11, so there isn't much need in legacy support.
I made a test PR where C++11 is now enforced - if that works one can merge the two.
from pomerol.
Thanks for the patch. I was testing only with gcc 7.
I merged your commit into the PR branch and now Travis CI was passed.
from pomerol.
Great, let me tag the current master as the last one before C++11 and then I'll merge it.
from pomerol.
Now that PR is merged I close this. Once again - thanks a lot!
from pomerol.
Related Issues (20)
- Error while compiling tutorial files HOT 3
- Extend Symmetrizer to support arbitrary integrals of motion HOT 10
- Computing two-particle GF in imaginary time HOT 2
- Disabling MPI in computing two-particle Green's function HOT 3
- Failing Build HOT 3
- ZeroPoleWeight is not necessarily real HOT 3
- Problem linking boost_mpi and boost_serialization HOT 5
- Problem with exported pomerol::pomerol target on MacOS HOT 7
- Remove boost::program options HOT 4
- Code formatting checker HOT 1
- Deprecate gtest? HOT 1
- Employ libcommute to define Hamiltonians HOT 2
- Use libcommute to find Hamiltonian blocks HOT 1
- Deprecate POMEROL_COMPLEX_MATRIX_ELEMENTS ? HOT 1
- Move away from travis to github actions? HOT 3
- Non-zero imaginary part in the latest release HOT 1
- Tutorial example gives zero-valued TwoParticleGF? HOT 2
- MPI Freeze HOT 1
- Worker didn't calculate this part.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pomerol.