Skip to content

Feature/mod adjoint#1608

Open
rkarur wants to merge 66 commits intodevelopfrom
feature/mod-adjoint
Open

Feature/mod adjoint#1608
rkarur wants to merge 66 commits intodevelopfrom
feature/mod-adjoint

Conversation

@rkarur
Copy link
Contributor

@rkarur rkarur commented Jan 6, 2026

Here I have reorganized the measurement scheme involved in adjoint flow of fermion fields. Measurements as a function of flow time have to be completed from scratch, and cannot be completed in an "intermediate" fashion as with normal flow, and this new reorganization accounts for that. I have also added functionality to calculate related observables, such as (for example) scalar condensates.

@rkarur rkarur requested a review from a team as a code owner January 6, 2026 07:58
Copy link
Member

@maddyscientist maddyscientist left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. I have left some comments. I think we should get much of this moved to its own file, as these measurements are becoming unwieldy inlined in interface_quda.cpp.

Would a new file for fermion measurements be appropriate, and have the interface functions in interface_quda.cpp being thin wrappers work?

void computeKSLinkQuda(void* fatlink, void* longlink, void* ulink, void* inlink,
double *path_coeff, QudaGaugeParam *param);

void set_act_path(double *act_path, int i);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't look like an interface function, and if that's the case it shouldn't be in quda.h. It's also missing documentation.

#else
void printQudaFermMeasurements(QudaFermMeasurements *param)
{
printfQuda("QUDA Gauge Smear Parameters:\n");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs fixed

} else {
// QUDA_ASQTAD_DSLASH
if (compute_fatlong) {
printfQuda("this is actually excecuted, nnaik is %d, eps is %1.5e\n",n_naiks,eps_naik);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove debugging print

const std::array<int, 4> &source_position, const std::array<int, n_mom * 4> &mom,
const std::array<QudaFFTSymmType, n_mom * 4> &fft_type)
{
printfQuda("part C\n");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

{
int faults = 0;

printfQuda("part B\n");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

GaugeField *cudaInLink = new GaugeField(gParam);

GaugeField *cudaInLink = new GaugeField(gParam); //called "U"
//GaugeField *v_link = new GaugeField(gParam);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete commented code

gaugeObservables(gout, obs_param[measurement_n]);
logQuda(QUDA_SUMMARIZE, "flow_t = %le \n", smear_param->t0 + smear_param->epsilon * (i + 1));
logQuda(QUDA_SUMMARIZE, "plaquette = %.16e \n", obs_param[measurement_n].plaquette[0]);
logQuda(QUDA_VERBOSE, "flow_t = %le \n", smear_param->t0 + smear_param->epsilon * (i + 1));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this change?

algorithmHier(sf_list,gauge_stages,sub_gf_list,gin,gout,inv_param,smear_param,profileAdjGFlowHier,&ferm_m);
else {

printfQuda("begin initial measurement\n");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be guarded with a verbosity level (QUDA_VERBOSE minimum) or deleted

if (current_size > n_save) errorQuda("something isnt right\n");

int diff = n_save - current_size;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

too much white space

double b = -8.;

int comm_dim[4] = {};
int comm_dim_f[4] = {};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this unnecessary change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants