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