Bridge++  Ver. 2.0.2
qws_lib.h
Go to the documentation of this file.
1 #ifndef QWS_LIB_H
2 #define QWS_LIB_H
3 
4 #ifdef USE_QWSLIB
5 
6 #include <qws.h>
7 
8 namespace QWS_lib {
9  extern int qws_is_setup;
10  extern Bridge::VerboseLevel vl;
11  void init_qws(const int *boundary);
12  void tidyup_qws();
13 }
14 
15 // declaration of functions in qws and its extension in qws_bridge
16 extern "C" {
17 extern int nt, nz, ny, nx;
18 extern int vols, vold;
19 // functions defined in qws_lib.cpp:
20 // int std_xyzt2i_(int* j);
21 // int e_o_(int* j);
22 
23 // functions in libqws.a:
24 void qws_init_(int *lx, int *ly, int *lz, int *lt,
25  int *npe_f, int *fbc_f, int *pce_f, int *pco_f,
26  int *block_size);
27 
28 void qws_finalize_();
29 
30 
31 void qws_loadg_bridge_(const double *u, const int *const volh_tot, const double *in_kappa);
32 
33 // void qws_loadclov_bridge_(const double *u, const int* const volh_tot, const double* in_kappa);
34 
35 
36 // set gauge field with domain decompsed indexing
37 void qws_loadg_dd_bridge_(const double *u, const double *in_kappa);
38 void qws_loadgs_dd_bridge_(const float *u, const double *in_kappa);
39 
40 // inverse clover term
41 void qws_loadc_dd_bridge_(const double *c);
42 void qws_loadcs_dd_bridge_(const float *c);
43 
44 // set fermion field with even-odd indexing
45 void qws_loadfd_bridge_(scd_t *out, const double *in);
46 void qws_loadfs_bridge_(scs_t *out, const float *in);
47 
48 // get fermion gauge field domain decompsed indexing
49 void qws_storefd_bridge_(double *out, const scd_t *in);
50 void qws_storefs_bridge_(float *out, const scs_t *in);
51 
52 // set fermion field with domain decompsed indexing
53 void qws_loadfd_dd_bridge_(scd_t *out, const double *in);
54 void qws_loadfs_dd_bridge_(scs_t *out, const float *in);
55 
56 // get fermion gauge field domain decompsed indexing
57 void qws_storefd_dd_bridge_(double *out, const scd_t *in);
58 void qws_storefs_dd_bridge_(float *out, const scs_t *in);
59 
60 void deo_vm_(int *pe, int *po, scd_t *out, scd_t *in);
61 
62 void deo_dag_vm_(int *pe, int *po, scd_t *out, scd_t *in);
63 
64 void deo_s_(int *pe, int *po, scs_t *out, scs_t *in);
65 
66 // mult with domain deomposed data layout
67 void ddd_s_noprl_(scs_t * out, scs_t *in);
68 void ddd_d_(scd_t * out, scd_t *in);
69 
70 void prec_s_noprl_(scs_t * out, scs_t *in, int *nsap, int *nm, scs_t *s, scs_t *q);
71 
72 void clv_s_dd_(int *deo, scs_t *inout);
73 void clv_d_dd_(int *deo, scd_t *inout);
74 
75 // not tested
76 void clv_matvec_s_dd_(int *deo, scs_t *out, clvs_t *clv, scs_t *in);
77 void clv_matvec_d_dd_(int *deo, scd_t *out, clvd_t *clv, scd_t *in);
78 
79 void bicgstab_dd_mix_(scd_t *x, scd_t *b, double *tol, int *conviter, int *maxiter, double *tol_s, int *maxiter_s, int *nsap, int *nm);
80 }
81 
82 #endif
83 
84 #endif
ParameterCheck::vl
Bridge::VerboseLevel vl
Definition: parameterCheck.cpp:18
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42