|
QUDA
v0.5.0
A library for QCD on GPUs
|
Fortran interface functions. More...
Go to the source code of this file.
Functions | |
| void | init_quda_ (int *device) |
| void | end_quda_ (void) |
| void | comm_set_gridsize_ (int *grid) |
| void | new_quda_gauge_param_ (QudaGaugeParam *param) |
| void | new_quda_invert_param_ (QudaInvertParam *param) |
| void | load_gauge_quda_ (void *h_gauge, QudaGaugeParam *param) |
| void | free_gauge_quda_ (void) |
| void | load_clover_quda_ (void *h_clover, void *h_clovinv, QudaInvertParam *inv_param) |
| void | free_clover_quda_ (void) |
| void | dslash_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity *parity) |
| void | clover_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity *parity, int *inverse) |
| void | mat_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param) |
| void | mat_dag_mat_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param) |
| void | invert_quda_ (void *h_x, void *h_b, QudaInvertParam *param) |
Fortran interface functions.
The following are Fortran interface functions to QUDA that mirror the C-equivalents. This essentially just means making all calls by refere, using all the lower-case characters and adding a trailing underscore.
Definition in file quda_fortran.h.
| void clover_quda_ | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param, | ||
| QudaParity * | parity, | ||
| int * | inverse | ||
| ) |
Apply the clover operator or its inverse.
| h_out | Result spinor field |
| h_in | Input spinor field |
| param | Contains all metadata regarding host and device storage |
| parity | The source and destination parity of the field |
| inverse | Whether to apply the inverse of the clover term |
Definition at line 1976 of file interface_quda.cpp.
| void comm_set_gridsize_ | ( | int * | grid | ) |
Setter method for the comm grid size to all us to reuse BQCD's MPI topology. This is considered a temporary hack that will be fixed when an interface for setting the logical topology is created (issue 31 on github).
Definition at line 2006 of file interface_quda.cpp.
| void dslash_quda_ | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param, | ||
| QudaParity * | parity | ||
| ) |
Apply the Dslash operator (D_{eo} or D_{oe}).
| h_out | Result spinor field |
| h_in | Input spinor field |
| param | Contains all metadata regarding host and device storage |
| parity | The destination parity of the field |
Definition at line 1974 of file interface_quda.cpp.
| void end_quda_ | ( | void | ) |
Finalize the library.
Definition at line 1968 of file interface_quda.cpp.
| void free_clover_quda_ | ( | void | ) |
Free QUDA's internal copy of the clover term and/or clover inverse.
Definition at line 1973 of file interface_quda.cpp.
| void free_gauge_quda_ | ( | void | ) |
Free QUDA's internal copy of the gauge field.
Definition at line 1970 of file interface_quda.cpp.
| void init_quda_ | ( | int * | device | ) |
Initialize the library.
| device | CUDA device number to use. In a multi-GPU build, this parameter may be either set explicitly on a per-process basis or set to -1 to enable a default allocation of devices to processes. |
Definition at line 1967 of file interface_quda.cpp.
| void invert_quda_ | ( | void * | h_x, |
| void * | h_b, | ||
| QudaInvertParam * | param | ||
| ) |
Perform the solve, according to the parameters set in param. It is assumed that the gauge field has already been loaded via loadGaugeQuda().
| h_x | Solution spinor field |
| h_b | Source spinor field |
| param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 1982 of file interface_quda.cpp.
| void load_clover_quda_ | ( | void * | h_clover, |
| void * | h_clovinv, | ||
| QudaInvertParam * | inv_param | ||
| ) |
Load the clover term and/or the clover inverse from the host. Either h_clover or h_clovinv may be set to NULL.
| h_clover | Base pointer to host clover field |
| h_cloverinv | Base pointer to host clover inverse field |
| inv_param | Contains all metadata regarding host and device storage |
Definition at line 1971 of file interface_quda.cpp.
| void load_gauge_quda_ | ( | void * | h_gauge, |
| QudaGaugeParam * | param | ||
| ) |
Load the gauge field from the host.
| h_gauge | Base pointer to host gauge field (regardless of dimensionality) |
| param | Contains all metadata regarding host and device storage |
Definition at line 1969 of file interface_quda.cpp.
| void mat_dag_mat_quda_ | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param | ||
| ) |
Apply M^{}M, possibly even/odd preconditioned.
| h_out | Result spinor field |
| h_in | Input spinor field |
| param | Contains all metadata regarding host and device storage |
Definition at line 1980 of file interface_quda.cpp.
| void mat_quda_ | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param | ||
| ) |
Apply the full Dslash matrix, possibly even/odd preconditioned.
| h_out | Result spinor field |
| h_in | Input spinor field |
| param | Contains all metadata regarding host and device storage |
Definition at line 1978 of file interface_quda.cpp.
| void new_quda_gauge_param_ | ( | QudaGaugeParam * | param | ) |
Initializes the QudaGaugeParam with default entries.
| The | QudaGaugeParam to be initialized |
Definition at line 1984 of file interface_quda.cpp.
| void new_quda_invert_param_ | ( | QudaInvertParam * | param | ) |
Initializes the QudaInvertParam with default entries.
| The | QudaInvertParam to be initialized |
Definition at line 1987 of file interface_quda.cpp.
1.8.2