STARS-H
Software for Testing Accuracy, Reliability and Scalability of Hierarchical computations

Set of kernels for electrostatics problems. More...

Collaboration diagram for Kernels:

Functions

void starsh_esdata_block_coulomb_potential_kernel_nd (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for n-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_nd_simd (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for n-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_1d (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 1-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_1d_simd (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 1-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_2d (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 2-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_2d_simd (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 2-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_3d (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 3-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_3d_simd (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 3-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_4d (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 4-dimensional electrostatics problem. More...
 
void starsh_esdata_block_coulomb_potential_kernel_4d_simd (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
 Coulomb potential for 4-dimensional electrostatics problem. More...
 

Detailed Description

Set of kernels for electrostatics problems.

Click on functions to view implemented equations.

Function Documentation

◆ starsh_esdata_block_coulomb_potential_kernel_1d()

void starsh_esdata_block_coulomb_potential_kernel_1d ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 1-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d(), starsh_esdata_block_coulomb_potential_kernel_2d(), starsh_esdata_block_coulomb_potential_kernel_3d(), starsh_esdata_block_coulomb_potential_kernel_4d(), starsh_esdata_block_coulomb_potential_kernel_nd().

◆ starsh_esdata_block_coulomb_potential_kernel_1d_simd()

void starsh_esdata_block_coulomb_potential_kernel_1d_simd ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 1-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Uses SIMD instructions.

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d_simd(), starsh_esdata_block_coulomb_potential_kernel_2d_simd(), starsh_esdata_block_coulomb_potential_kernel_3d_simd(), starsh_esdata_block_coulomb_potential_kernel_4d_simd(), starsh_esdata_block_coulomb_potential_kernel_nd_simd().

◆ starsh_esdata_block_coulomb_potential_kernel_2d()

void starsh_esdata_block_coulomb_potential_kernel_2d ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 2-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d(), starsh_esdata_block_coulomb_potential_kernel_2d(), starsh_esdata_block_coulomb_potential_kernel_3d(), starsh_esdata_block_coulomb_potential_kernel_4d(), starsh_esdata_block_coulomb_potential_kernel_nd().

◆ starsh_esdata_block_coulomb_potential_kernel_2d_simd()

void starsh_esdata_block_coulomb_potential_kernel_2d_simd ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 2-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Uses SIMD instructions.

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d_simd(), starsh_esdata_block_coulomb_potential_kernel_2d_simd(), starsh_esdata_block_coulomb_potential_kernel_3d_simd(), starsh_esdata_block_coulomb_potential_kernel_4d_simd(), starsh_esdata_block_coulomb_potential_kernel_nd_simd().

◆ starsh_esdata_block_coulomb_potential_kernel_3d()

void starsh_esdata_block_coulomb_potential_kernel_3d ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 3-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d(), starsh_esdata_block_coulomb_potential_kernel_2d(), starsh_esdata_block_coulomb_potential_kernel_3d(), starsh_esdata_block_coulomb_potential_kernel_4d(), starsh_esdata_block_coulomb_potential_kernel_nd().

◆ starsh_esdata_block_coulomb_potential_kernel_3d_simd()

void starsh_esdata_block_coulomb_potential_kernel_3d_simd ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 3-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Uses SIMD instructions.

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d_simd(), starsh_esdata_block_coulomb_potential_kernel_2d_simd(), starsh_esdata_block_coulomb_potential_kernel_3d_simd(), starsh_esdata_block_coulomb_potential_kernel_4d_simd(), starsh_esdata_block_coulomb_potential_kernel_nd_simd().

◆ starsh_esdata_block_coulomb_potential_kernel_4d()

void starsh_esdata_block_coulomb_potential_kernel_4d ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 4-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d(), starsh_esdata_block_coulomb_potential_kernel_2d(), starsh_esdata_block_coulomb_potential_kernel_3d(), starsh_esdata_block_coulomb_potential_kernel_4d(), starsh_esdata_block_coulomb_potential_kernel_nd().

◆ starsh_esdata_block_coulomb_potential_kernel_4d_simd()

void starsh_esdata_block_coulomb_potential_kernel_4d_simd ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for 4-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Uses SIMD instructions.

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d_simd(), starsh_esdata_block_coulomb_potential_kernel_2d_simd(), starsh_esdata_block_coulomb_potential_kernel_3d_simd(), starsh_esdata_block_coulomb_potential_kernel_4d_simd(), starsh_esdata_block_coulomb_potential_kernel_nd_simd().

◆ starsh_esdata_block_coulomb_potential_kernel_nd()

void starsh_esdata_block_coulomb_potential_kernel_nd ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for n-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d(), starsh_esdata_block_coulomb_potential_kernel_2d(), starsh_esdata_block_coulomb_potential_kernel_3d(), starsh_esdata_block_coulomb_potential_kernel_4d(), starsh_esdata_block_coulomb_potential_kernel_nd().

◆ starsh_esdata_block_coulomb_potential_kernel_nd_simd()

void starsh_esdata_block_coulomb_potential_kernel_nd_simd ( int  nrows,
int  ncols,
STARSH_int irow,
STARSH_int icol,
void *  row_data,
void *  col_data,
void *  result,
int  ld 
)

Coulomb potential for n-dimensional electrostatics problem.

Fills matrix \( A \) with values

\[ A_{ij} = \frac{1}{r_{ij}}, \]

\( r_{ij} \) is a distance between \(i\)-th and \(j\)-th spatial points. No memory is allocated in this function!

Uses SIMD instructions.

Parameters
[in]nrowsNumber of rows of \( A \).
[in]ncolsNumber of columns of \( A \).
[in]irowArray of row indexes.
[in]icolArray of column indexes.
[in]row_dataPointer to physical data (STARSH_ssdata object).
[in]col_dataPointer to physical data (STARSH_ssdata object).
[out]resultPointer to memory of \( A \).
[in]ldLeading dimension of result.
See also
starsh_esdata_block_coulomb_potential_kernel_1d_simd(), starsh_esdata_block_coulomb_potential_kernel_2d_simd(), starsh_esdata_block_coulomb_potential_kernel_3d_simd(), starsh_esdata_block_coulomb_potential_kernel_4d_simd(), starsh_esdata_block_coulomb_potential_kernel_nd_simd().