-
Notifications
You must be signed in to change notification settings - Fork 21
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
Higher dimensional Tensors #147
Comments
It's mostly template instantiations, which you need to extend beyond the current limits, but to be frank this is scattered all over the code in libadc.Grep for It's doable, but will probably require a bit of fiddeling and especially to support tensors of dimension 8 this could increase code size a lot, so it's best to do this selectively. Have a look and if you have questions we can talk. If you only want to do this once for testing, the effort is not worth it in my opinion. If you want to support this generally in adcc, it might pay off. |
Happy to discuss this further, if you are interested by the way. |
Me too. I just didn't had time to continue working on it yet.
I didn't had a look on the template instantiations yet, but overall it seems doable to mee. But probably I am missing something. |
Ok, now I know what you mean about the code size. The I'm currently trying to get a minimal example running, i.e. I only add the few contractions I actually need atm. However, when I try to import the newly build libadcc (with So I guess that also libtensor needs to be rebuild and some flags set or whatever to enable the higher dims. I don't know how much work this is and what needs to be done there. Alternatively, @maxscheurer pointed out that it is also possible to just use numpy for testing and then only implement the higher tensors later if they are really needed. This would also be a solution for now, since I only need the singles amplitudes. |
It might well be that we do not instantiate these things on the libtensor side either.
Certainly the simpler solution for now. If you stick to the einsum syntax, then it should be relatively easy to reuse the code later. |
Yes, so I think we just postpone this until I'm sure that I need it. |
I want to determine the full iterative second order MP wave function.
Actually, I only need the second order singles Amplitudes. However, since I want to perform calculations with non-canonical orbitals, I determine the MP wave function iteratively, according to the Hylleraas functional. The problem is that the equations of the residual couple the singles to the doubles, the doubles to the triples etc. Therefore, in order to obtain the iterative Singles I also need the Triples and Quadruples.
The iterations require contractions of the form (also including outer products):
I just started having a look at it. Beside the additional contractions, it would only require to create new symmetry objects for the 6 and 8D tensors, correct?
You think it is possible to implement it without putting too much effort into it?
The text was updated successfully, but these errors were encountered: