add support for performing 2-flavour and BSM inversions from external program via lib_wrapper#4
add support for performing 2-flavour and BSM inversions from external program via lib_wrapper#4kostrzewa wants to merge 27 commits into
Conversation
…eld reading logic currently in invert
…ernal program using tmLQCD's lib_wrapper
| 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.
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.
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.
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_invertinwrapper/lib_wrapper.c. In the process I've also changed how the scalar field index is kept track of (at least ininvert.cby externalizing this to a function inio/scalar_read.c).I only touched
contractions_BSMin 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?