HiRep 0.1
Loading...
Searching...
No Matches
scattering.h
1
2/*******************************************************************************
3*
4* File scattering.h
5*
6* Functions for Finite Size Method
7*
8*******************************************************************************/
9
10// header for files:
11// - measure_scattering.c
12// - measure_scattering_tools.c
13
14#ifndef SCATTERING_H
15#define SCATTERING_H
16
17#include "spinor_field.h"
18#include "meson_observables.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24void measure_pion_scattering(double *m, int nhits, int conf_num, double precision, int ts); //TODO: not defined in library
25void measure_pion_scattering_I2(double *m, int numsources, double precision, char *path, char *cnfg_filename,
26 meson_observable **mo_arr);
27void measure_pion_scattering_I0(double *m, int numsources, double precision, char *path, char *cnfg_filename, int seq_prop,
28 meson_observable **mo_arr);
29void measure_pion_scattering_I0_TS(double *m, int numsources, double precision, char *path, char *cnfg_filename, int seq_prop,
30 meson_observable **mo_arr);
31
40
44struct src_p {
45 int p[3];
47 spinor_field *src_mp;
48 spinor_field *src_0_p;
49 spinor_field *src_0_mp;
50 spinor_field *src_p_0;
51 spinor_field *src_mp_0;
52};
53
58 spinor_field *Q_0;
59 spinor_field *Q_0_eta;
60 spinor_field **W_0_0;
61};
62
66struct prop_p {
67 spinor_field *Q_p;
68 spinor_field *Q_mp;
69 spinor_field *W_0_p;
70 spinor_field *W_0_mp;
71 spinor_field *W_p_0;
72 spinor_field *W_mp_0;
73};
74
78struct mo_0 {
79 meson_observable *rho[3][3];
81};
82
86struct mo_p {
87 int p[3];
88 meson_observable *d, *r1, *r2, *r3, *r4, *pi;
89 meson_observable *t1[3], *t2[3], *rho[3][3];
90};
91
92// measure_scattering.c
93void measure_scattering_AD_core(meson_observable *mo, spinor_field *psi0, spinor_field *psi1, spinor_field *psi2,
94 spinor_field *psi3, int tau, int split, int n_mom, int p_tot_x, int p_tot_y, int p_tot_z);
95void measure_scattering_BC_core(meson_observable *mo, spinor_field *psi0, spinor_field *psi1, spinor_field *psi2,
96 spinor_field *psi3, int tau, int split, int n_mom, int p_tot_x, int p_tot_y, int p_tot_z);
97
98// measure_scattering_tool.c
99int **getmomlist(char *momstring, int *N);
100void freep(int **p, int N);
101void init_mo(meson_observable *mo, char *name, int size);
102void reset_mo(meson_observable *mo);
103void free_mo(meson_observable *mo);
104void init_src_common(struct src_common *src, int tau);
105void init_src_common_point(struct src_common *src, int tau);
106void init_src_p(struct src_p *srcp, struct src_common *src0, int px, int py, int pz);
107void free_src_common(struct src_common *src);
108void free_src_p(struct src_p *src);
109void make_propagator_P(spinor_field *prop, spinor_field *src, int ndilute, int tau);
110void make_propagator_PA(spinor_field *prop, spinor_field *src, int ndilute, int tau);
111void make_prop_common(struct prop_common *prop, struct src_common *src0, int ndilute, int tau, char *bc);
112void free_mo_0(struct mo_0 *mo);
113void free_mo_p(struct mo_p *mo);
114void io2pt(meson_observable *mo, int pmax, int sourceno, char *path, char *name, char *cnfg_filename);
115void io4pt(meson_observable *mo, int pmax, int sourceno, char *path, char *name, char *cnfg_filename);
116void IOold_0(struct mo_0 *molist[], int numsources, char *path, char *cnfg_filename);
117void IOold_p(struct mo_p *molist[], int numsources, char *path, char *cnfg_filename);
118void IO_json_0(struct mo_0 *molist[], int numsources, char *path, char *cnfg_filename);
119void IO_json_p(struct mo_p *molist[], int numsources, char *path, char *cnfg_filename);
120void init_mo_0(struct mo_0 *mo);
121void init_mo_p(struct mo_p *mo, int px, int py, int pz);
122void gen_mo_0(struct mo_0 *mo, struct prop_common *p0, struct src_common *s0, int tau);
123void gen_mo_p(struct mo_p *mo, struct prop_common *p0, struct prop_p *pp, struct src_common *s0, int tau);
124void make_prop_p(struct prop_p *prop, struct src_p *srcp, struct src_common *src0, int ndilute, int tau, char *bc);
125void free_prop_common(struct prop_common *prop);
126void free_prop_p(struct prop_p *prop);
127
128#ifdef __cplusplus
129}
130#endif
131#endif
The elementary site structures defined in suN.h are used in this file to define field structures that...
Definition meson_observables.h:35
Bundle of meson_observables with momentum 0.
Definition scattering.h:78
Bundle of meson_observables with momentum p.
Definition scattering.h:86
Bundle of propagators with zero momentum.
Definition scattering.h:57
Bundle of propagators with momentum p.
Definition scattering.h:66
Spinor field array containing SU(N_f) spinors in chosen fermion representation.
Definition spinor_field.h:189
Propagator sources with zero-momentum.
Definition scattering.h:35
spinor_field * src_0_eta
Definition scattering.h:37
spinor_field * src_0_0
Definition scattering.h:38
spinor_field * src_0
Definition scattering.h:36
Propagator sources with momentum p.
Definition scattering.h:44
int p[3]
Definition scattering.h:45