static QOP_FermionLinksWilson * create_qop_wilson_fermion_links( Real clov ){ clover *milc_clov = gen_clov; MYSU3_MATRIX **raw_links; MYREAL *raw_clov; QOP_FermionLinksWilson *qop_links; /* Construct raw QOP clover term from MILC clover term */ if(clov == 0){ raw_clov = NULL; } else{ raw_clov = (MYREAL *)malloc(72*sites_on_node*sizeof(MYREAL)); if(raw_clov == NULL){ printf("create_qop_wilson_fermion_links(%d): no room for raw_clov\n", this_node); terminate(1); } // milc_clov = create_clov(); /* Note Real clov has no kappa factor! */ if(milc_clov == NULL) terminate(1); compute_clov(milc_clov,clov); map_milc_clov_to_qop_raw(raw_clov, milc_clov); //free_this_clov(milc_clov); } raw_links = CREATE_RAW4_G_FROM_SITE(F_OFFSET(link), EVENANDODD); if(raw_links == NULL)terminate(1); /* Map QOP/QDP raw to QOP/QDP structure */ qop_links = QOP_wilson_create_L_from_raw((MYREAL **)raw_links, raw_clov, QOP_EVENODD); DESTROY_RAW4_G(raw_links); raw_links = NULL; free(raw_clov); return qop_links; }
static QOP_FermionLinksWilson * create_qop_wilson_fermion_links( Real clov ){ clover *milc_clov = gen_clov; dsu3_matrix **raw_links; double *raw_clov; QOP_FermionLinksWilson *qop_links; /* Construct raw QOP clover term from MILC clover term */ if(clov == 0){ raw_clov = NULL; } else{ raw_clov = (double *)malloc(72*sites_on_node*sizeof(double)); if(raw_clov == NULL){ printf("create_qop_wilson_fermion_links(%d): no room for raw_clov\n", this_node); terminate(1); } // milc_clov = create_clov(); /* Note Real clov has no kappa factor! */ if(milc_clov == NULL) terminate(1); compute_clov(milc_clov,clov); map_milc_clov_to_qop_raw(raw_clov, milc_clov); //free_this_clov(milc_clov); } raw_links = create_raw4_D_G_from_site(F_OFFSET(link), EVENANDODD); if(raw_links == NULL)terminate(1); /* Map QOP/QDP raw to QOP/QDP structure */ qop_links = QOP_wilson_create_L_from_raw((double **)raw_links, raw_clov, QOP_EVENODD); destroy_raw4_D_G(raw_links); raw_links = NULL; free(raw_clov); return qop_links; }