13 #ifndef __STARSH_ELECTRODYNAMICS_H__    14 #define __STARSH_ELECTRODYNAMICS_H__   102         double *point, 
double k, 
double diag);
   115         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   118         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   121         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   124         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   127         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   132         void *result, 
int ld);
   135         void *result, 
int ld);
   138         void *result, 
int ld);
   141         void *result, 
int ld);
   144         void *result, 
int ld);
   147         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   150         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   153         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   156         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   159         STARSH_int *icol, 
void *row_data, 
void *col_data, 
void *result,
   164         void *result, 
int ld);
   167         void *result, 
int ld);
   170         void *result, 
int ld);
   173         void *result, 
int ld);
   176         void *result, 
int ld);
   178 #endif // __STARSH_ELECTRODYNAMICS_H__ 
void starsh_eddata_block_sin_kernel_4d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 4-dimensional electrodynamics problem. 
Definition: kernel_sin_4d.c:107
 
ssize_t STARSH_int
STARSH signed integer to support more, than MAX_INT rows/columns. 
Definition: starsh.h:64
 
void starsh_eddata_block_cos_kernel_4d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 4-dimensional electrodynamics problem. 
Definition: kernel_cos_4d.c:107
 
struct starsh_eddata STARSH_eddata
Structure for electrodynamics problems. 
 
int starsh_eddata_init(STARSH_eddata **data, STARSH_int count, int ndim, double *point, double k, double diag)
Initialize STARSH_eddata object by given data. 
Definition: electrodynamics.c:52
 
void starsh_eddata_block_sin_kernel_nd_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for n-dimensional electrodynamics problem. 
Definition: kernel_sin_nd.c:107
 
Definition: starsh-electrodynamics.h:64
 
void starsh_eddata_block_cos_kernel_1d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 1-dimensional electrodynamics problem. 
Definition: kernel_cos_1d.c:107
 
void starsh_eddata_block_cos_kernel_2d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 2-dimensional electrodynamics problem. 
Definition: kernel_cos_2d.c:107
 
void starsh_eddata_block_cos_kernel_4d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 4-dimensional electrodynamics problem. 
Definition: kernel_cos_4d.c:31
 
Value of diagonal elements (diag, double). 
Definition: starsh-electrodynamics.h:94
 
#define ndim
Replace variable ndim with static integer value. 
Definition: kernel_sin_1d.c:28
 
double diag
Value of diagonal elements. 
Definition: starsh-electrodynamics.h:45
 
Definition: starsh-electrodynamics.h:72
 
void starsh_eddata_block_sin_kernel_nd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz sin for n-dimensional electrodynamics problem. 
Definition: kernel_sin_nd.c:31
 
void starsh_eddata_block_cos_kernel_3d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 3-dimensional electrodynamics problem. 
Definition: kernel_cos_3d.c:107
 
void starsh_eddata_block_sin_kernel_2d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz sin for 2-dimensional electrodynamics problem. 
Definition: kernel_sin_2d.c:31
 
Wave number (k, double). 
Definition: starsh-electrodynamics.h:92
 
Distribution of particles (place, STARSH_PARTICLES_PLACEMENT). 
Definition: starsh-electrodynamics.h:96
 
void starsh_eddata_block_sin_kernel_4d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz sin for 4-dimensional electrodynamics problem. 
Definition: kernel_sin_4d.c:31
 
Definition: starsh-electrodynamics.h:60
 
void starsh_eddata_block_sin_kernel_1d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 1-dimensional electrodynamics problem. 
Definition: kernel_sin_1d.c:107
 
void starsh_eddata_block_cos_kernel_nd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for n-dimensional electrodynamics problem. 
Definition: kernel_cos_nd.c:31
 
void starsh_eddata_block_sin_kernel_2d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 2-dimensional electrodynamics problem. 
Definition: kernel_sin_2d.c:107
 
Dimensionality of space (ndim, integer). 
Definition: starsh-electrodynamics.h:90
 
void starsh_eddata_free(STARSH_eddata *data)
Free memory of STARSH_eddata object. 
Definition: electrodynamics.c:247
 
int starsh_eddata_generate_va(STARSH_eddata **data, STARSH_int count, va_list args)
Generate STARSH_eddata object with incomplete set of parameters. 
Definition: electrodynamics.c:131
 
STARSH_ELECTRODYNAMICS_PARAM
List of parameters for starsh_application(). 
Definition: starsh-electrodynamics.h:78
 
void STARSH_kernel(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Definition: starsh.h:68
 
void starsh_eddata_block_cos_kernel_2d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 2-dimensional electrodynamics problem. 
Definition: kernel_cos_2d.c:31
 
int starsh_eddata_generate(STARSH_eddata **data, STARSH_int count, int ndim, double k, double diag, enum STARSH_PARTICLES_PLACEMENT place)
Generate STARSH_ssdata object by given distribution. 
Definition: electrodynamics.c:96
 
STARSH_PARTICLES_PLACEMENT
Distribution of particles for starsh_particles_generate(). 
Definition: starsh-particles.h:51
 
int starsh_eddata_generate_el(STARSH_eddata **data, STARSH_int count,...)
Generate STARSH_eddata object with incomplete set of parameters. 
Definition: electrodynamics.c:200
 
int starsh_eddata_new(STARSH_eddata **data, STARSH_int count, int ndim)
Allocate memory for STARSH_eddata object. 
Definition: electrodynamics.c:17
 
double k
Characteristical wave number. 
Definition: starsh-electrodynamics.h:43
 
void starsh_eddata_block_cos_kernel_3d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 3-dimensional electrodynamics problem. 
Definition: kernel_cos_3d.c:31
 
STARSH_ELECTRODYNAMICS_KERNEL
List of built-in kernels for starsh_eddata_get_kernel(). 
Definition: starsh-electrodynamics.h:49
 
void starsh_eddata_block_cos_kernel_nd_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for n-dimensional electrodynamics problem. 
Definition: kernel_cos_nd.c:107
 
Structure for electrodynamics problems. 
Definition: starsh-electrodynamics.h:34
 
void starsh_eddata_block_sin_kernel_1d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz sin for 1-dimensional electrodynamics problem. 
Definition: kernel_sin_1d.c:31
 
int starsh_eddata_get_kernel(STARSH_kernel **kernel, STARSH_eddata *data, enum STARSH_ELECTRODYNAMICS_KERNEL type)
Get kernel for electrodynamics problem. 
Definition: electrodynamics.c:386
 
void starsh_eddata_block_cos_kernel_1d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 1-dimensional electrodynamics problem. 
Definition: kernel_cos_1d.c:31
 
void starsh_eddata_block_sin_kernel_3d(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz sin for 3-dimensional electrodynamics problem. 
Definition: kernel_sin_3d.c:31
 
void starsh_eddata_block_sin_kernel_3d_simd(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Helmholtz cos for 3-dimensional electrodynamics problem. 
Definition: kernel_sin_3d.c:107
 
Definition: starsh-electrodynamics.h:68
 
STARSH_particles particles
Particles. 
Definition: starsh-electrodynamics.h:39
 
Structure for general N-body problems. 
Definition: starsh-particles.h:36