1#ifndef BOUNDARY_CONDITIONS_H
2#define BOUNDARY_CONDITIONS_H
13 double gauge_boundary_improvement_cs;
14 double gauge_boundary_improvement_ct;
15 double chiSF_boundary_improvement_ds;
16 double fermion_twisting_theta[4];
18 suNg gauge_boundary_up;
19 suNg gauge_boundary_dn;
23#if (defined(WITH_EXPCLOVER) || defined(WITH_CLOVER)) && (defined(BC_T_SF) || defined(BC_T_SF_ROTATED))
27#if (defined(WITH_EXPCLOVER) || defined(WITH_CLOVER)) && defined(BC_T_OPEN)
31#ifdef BC_T_ANTIPERIODIC
32extern void (*sp_T_antiperiodic_BCs)();
35#ifdef BC_X_ANTIPERIODIC
36extern void (*sp_X_antiperiodic_BCs)();
39#ifdef BC_Y_ANTIPERIODIC
40extern void (*sp_Y_antiperiodic_BCs)();
43#ifdef BC_Z_ANTIPERIODIC
44extern void (*sp_Z_antiperiodic_BCs)();
48extern void (*chiSF_ds_BT)(
double ds);
51#if defined(BC_T_SF) || defined(BC_T_SF_ROTATED)
52extern void (*gf_SF_BCs)(suNg *dn, suNg *up);
53extern void (*SF_classical_solution_core)(suNg *U,
int it);
54void SF_classical_solution(
void);
58extern void (*gf_open_BCs)();
61#if defined(BC_T_SF) || defined(BC_T_SF_ROTATED)
74#if defined(BC_T_SF_ROTATED)
89#if (defined(WITH_EXPCLOVER) || defined(WITH_CLOVER)) && (defined(BC_T_SF) || defined(BC_T_SF_ROTATED))
93#if (defined(WITH_EXPCLOVER) || defined(WITH_CLOVER)) && defined(BC_T_OPEN)
97#ifdef BC_T_ANTIPERIODIC
98void sp_T_antiperiodic_BCs_gpu();
101#ifdef BC_X_ANTIPERIODIC
102void sp_X_antiperiodic_BCs_gpu();
105#ifdef BC_Y_ANTIPERIODIC
106void sp_Y_antiperiodic_BCs_gpu();
109#ifdef BC_Z_ANTIPERIODIC
110void sp_Z_antiperiodic_BCs_gpu();
113#ifdef BC_T_SF_ROTATED
114void chiSF_ds_BT_gpu(
double ds);
117#if defined(BC_T_SF) || defined(BC_T_SF_ROTATED)
118void gf_SF_BCs_gpu(suNg *dn_h, suNg *up_h);
119void SF_classical_solution_core_gpu(suNg *U_h,
int it);
123void gf_open_BCs_gpu();
126#if defined(BC_T_SF) || defined(BC_T_SF_ROTATED)
139#if defined(BC_T_SF_ROTATED)
154#if (defined(WITH_EXPCLOVER) || defined(WITH_CLOVER)) && (defined(BC_T_SF) || defined(BC_T_SF_ROTATED))
158#if (defined(WITH_EXPCLOVER) || defined(WITH_CLOVER)) && defined(BC_T_OPEN)
162#ifdef BC_T_ANTIPERIODIC
163void sp_T_antiperiodic_BCs_cpu();
166#ifdef BC_X_ANTIPERIODIC
167void sp_X_antiperiodic_BCs_cpu();
170#ifdef BC_Y_ANTIPERIODIC
171void sp_Y_antiperiodic_BCs_cpu();
174#ifdef BC_Z_ANTIPERIODIC
175void sp_Z_antiperiodic_BCs_cpu();
178#ifdef BC_T_SF_ROTATED
179void chiSF_ds_BT_cpu(
double ds);
182#if defined(BC_T_SF) || defined(BC_T_SF_ROTATED)
183void gf_SF_BCs_cpu(suNg *dn, suNg *up);
184void SF_classical_solution_core_cpu(suNg *U,
int it);
188void gf_open_BCs_cpu();
191#if defined(BC_T_SF) || defined(BC_T_SF_ROTATED)
204#if defined(BC_T_SF_ROTATED)
214#ifdef GAUGE_SPATIAL_TWIST
215void init_plaq_twisted_BCs();
219void init_plaq_open_BCs(
double *plaq_weight,
double *rect_weight,
double ct,
double cs);
222extern void (*apply_BCs_on_represented_gauge_field)();
223void apply_BCs_on_represented_gauge_field_cpu();
225void apply_BCs_on_represented_gauge_field_gpu();
228extern void (*apply_BCs_on_fundamental_gauge_field)();
229void apply_BCs_on_fundamental_gauge_field_cpu();
231void apply_BCs_on_fundamental_gauge_field_gpu();
234extern void (*apply_BCs_on_momentum_field)(
suNg_av_field *force);
240extern void (*apply_BCs_on_spinor_field)(
spinor_field *sp);
252extern void (*apply_BCs_on_clover_term)(
clover_term *cl);
258void apply_background_field_zdir(
suNg_field *V,
double Q,
int n);
261void calc_SF_U(suNg *U,
int x0);
262void init_gf_SF_BCs(suNg *dn, suNg *up);
263void init_plaq_SF_BCs(
double ct);
The elementary site structures defined in suN.h are used in this file to define field structures that...
Definition boundary_conditions.h:12
Clover term.
Definition spinor_field.h:288
Spinor field array containing single precision SU(N_f) spinors in chosen fermion representation.
Definition spinor_field.h:207
Spinor field array containing SU(N_f) spinors in chosen fermion representation.
Definition spinor_field.h:189
Field of SU(N_g) algebra vectors.
Definition spinor_field.h:224
Gauge field of SU(N_g) matrices.
Definition spinor_field.h:98