-
Notifications
You must be signed in to change notification settings - Fork 0
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
add support for performing 2-flavour and BSM inversions from external program via lib_wrapper #4
base: BSMmerge
Are you sure you want to change the base?
Conversation
…eld reading logic currently in invert
…ernal program using tmLQCD's lib_wrapper
include/tmLQCD.h
Outdated
@@ -62,6 +62,8 @@ extern "C" | |||
int tmLQCD_get_mpi_params(tmLQCD_mpi_params * params); | |||
int tmLQCD_get_lat_params(tmLQCD_lat_params * params); | |||
|
|||
int tmLQCD_load_next_scalar_field(const int nscalarstep, const int npergauge, const int imeas, const int reset); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if I want to keep this interface like this. Perhaps it makes sense after all that the scalar index is computed externally and simply passed (just like for the gauge field). The reasoning for this was to keep the index calculation in the load_next_scalar_field
function in io/scalar_read.c
to avoid repetition, but I might just externalize this into a separate function which can then be called also by the external program.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I've switched away from this to a solution with two functions.
…erfaces for external usage
exit(0); | ||
} | ||
if (j!=0) fatal_error("Not enough memory for scalar fields! Aborting...\n", __func__); | ||
j = init_bispinor_field(VOLUMEPLUSRAND, 4); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a major problem unfortunately. I don't really want to call init_bispinor_field
from every executable that we have (because it is a bona-fide dependency of the BSM operators). At the same time, this does not really fit into the way that tmLQCD uses the bispinor fields... Not quite sure yet what a good solution would be.
…ugeConfigInputFile is set
I've now extended the support for the smeared gauge field in a more general fashion. When I still need to take care of interfacing the smearing of the scalar field. |
The two inversions performed in It's also quite silly that |
yeah, maybe a boolean inside the parameters, whether it should be daggered or not? |
I actually have problems with the parts of |
can you explain? |
yeah, sorry I got segmentation fault, when trying to read Trying to read smeared gauge field from file conf_smeared.0000 in double precision.Constructing LIME reader for file conf_smeared.0000 ...WARNING: IO CHECKS HAVE BEEN DISABLED[cyclamen:17843] *** Process received signal *** I have to look at it, maybe something in the initializiation changed |
You have to set |
thank you |
sure, I just don't know yet how to integrate this elegantly with the other behaviours |
yeah, basically in the other case we do not need the dagger at all |
1a775e8
to
2690523
Compare
I think there's a way to handle multiplying the source by the operator before the inversion in |
@urbach I would like to modify the logic for dealing with two-flavour operators in
Would value your input if you see issues. |
…idx' and 'dagger' arguments to drive inversions of M and Mdagger as well as the two source flavour indices externally
In 29df069 I've implemented what I came up with to solve our problem in a (hopefully) minimally-invasive way. I've broken |
@pittlerf @Marcogarofalo do I understand it correctly that the scalar field used for the propagators (the one stored in |
Yes, hypercubically smeared. |
Thanks. |
@pittlerf I've got the crosscheck for any combination of gamma and tau structures at source and sink ready. What I don't have yet is the pseudo-Wilson density but I'll likely be able to add that in the coming weeks too. I'll send my correlators to the list in a few minutes. |
Thank you very much |
@pittlerf sorry I just noticed that I had not actually included the axial vector ;) I'll give an update here soon. |
Current state of the cross-check See also https://github.com/HISKP-LQCD/bsmsimul/commit/018a355e2fe1543f0e0ebc8df5fadfaac429467a and https://github.com/HISKP-LQCD/bsmsimul/commit/907e6e480da306ce8ec80a8777e40ebe30e9ad32 |
Scalar field average compute
@pittlerf what does "LOCALCURRENTTAU0P0" mean? More specifically, what is |
I suspect that there was a typo that shifted the enumeration so |
Hi, yes, this is a typo,thanks for noticing it, I am correcting now |
…to tau1 , tau1 to tau2 and tau2 to tau3
ah, ok, thanks there are problems with tau2 and tau3, but tau1 is correct |
it seems so but I wonder how that can happen |
@pittlerf should we compare some intermediate fields or something like that? |
Call Stack (most recent call first): |
yaml-cpp (https://github.com/jbeder/yaml-cpp) is a dependency and one either has to have it installed somewhere where CMake looks for cmake files by default (for example, in
in my cmake call to configure nyom.
So how should we proceed? I can relatively easily write out any intermediate quantity, but I'm not sure whether this makes so much sense or whether we should instead discuss in terms of formulae. I'm a bit surprised that we have compatible results for |
@pittlerf @Marcogarofalo
I've adjusted where things are initialised, such that all BSM operators are now also usable when inversions are driven via
tmLQCD_invert
inwrapper/lib_wrapper.c
. In the process I've also changed how the scalar field index is kept track of (at least ininvert.c
by externalizing this to a function inio/scalar_read.c
).I only touched
contractions_BSM
in a few places. Could you please check that it still works?I was a bit surprised that you have zero-padding of the scalar field index in
contractions_BSM
, while in the past it was not zero-padded. Does this mean that we've agreed on zero-padding now?