(git:f2099e5)
Loading...
Searching...
No Matches
grid_dgemm_collocate.c File Reference
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <omp.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../common/grid_basis_set.h"
#include "../common/grid_common.h"
#include "../common/grid_constants.h"
#include "grid_dgemm_coefficients.h"
#include "grid_dgemm_collocate.h"
#include "grid_dgemm_collocation_integration.h"
#include "grid_dgemm_non_orthorombic_corrections.h"
#include "grid_dgemm_prepare_pab.h"
#include "grid_dgemm_private_header.h"
#include "grid_dgemm_task_list.h"
#include "grid_dgemm_tensor_local.h"

Go to the source code of this file.

Functions

void collocate_l0 (double *scratch, const double alpha, const bool orthogonal, const struct tensor_ *exp_xy, const struct tensor_ *p_alpha_beta_reduced_, struct tensor_ *cube)
void rotate_to_cartesian_harmonics (const grid_basis_set *ibasis, const grid_basis_set *jbasis, const int iatom, const int jatom, const int iset, const int jset, double *const block, tensor *work, tensor *pab)
void tensor_reduction_for_collocate_integrate (double *scratch, const double alpha, const bool *const orthogonal, const struct tensor_ *Exp, const struct tensor_ *co, const struct tensor_ *p_alpha_beta_reduced_, struct tensor_ *cube)
void grid_fill_pol_dgemm (const bool transpose, const double dr, const double roffset, const int pol_offset, const int xmin, const int xmax, const int lp, const int cmax, const double zetp, double *pol_)
void apply_sphere_cutoff_ortho (struct collocation_integration_ *const handler, const double disr_radius, const int cmax, const int *const lb_cube, const int *const cube_center)
void apply_spherical_cutoff_generic (struct collocation_integration_ *const handler, const double disr_radius, const int cmax, const int *const lb_cube, const int *const ub_cube, const double *const roffset, const int *const cube_center)
void apply_mapping_cubic (struct collocation_integration_ *handler, const int cmax, const int *const lower_boundaries_cube, const int *const cube_center)
void grid_collocate (collocation_integration *const handler, const bool use_ortho, const double zetp, const double rp[3], const double radius)
void grid_dgemm_collocate_pgf_product (const bool use_ortho, const int border_mask, const enum grid_func func, const int la_max, const int la_min, const int lb_max, const int lb_min, const double zeta, const double zetb, const double rscale, const double dh[3][3], const double dh_inv[3][3], const double ra[3], const double rab[3], const int grid_global_size[3], const int grid_local_size[3], const int shift_local[3], const int border_width[3], const double radius, const int o1, const int o2, const int n1, const int n2, const double pab_[n2][n1], double *const grid_)
void extract_blocks (grid_context *const ctx, const _task *const task, const offload_buffer *pab_blocks, tensor *const work, tensor *const pab)
void compute_coefficients (grid_context *const ctx, struct collocation_integration_ *handler, const _task *const previous_task, const _task *const task, const offload_buffer *pab_blocks, tensor *const pab, tensor *const work, tensor *const pab_prep)
void collocate_one_grid_level_dgemm (grid_context *const ctx, const int *const border_width, const int *const shift_local, const enum grid_func func, const int level, const offload_buffer *pab_blocks)
void grid_dgemm_collocate_task_list (grid_dgemm_task_list *const ptr, const enum grid_func func, const int nlevels, const offload_buffer *pab_blocks, offload_buffer *grids[nlevels])
 Collocate all tasks of a given list onto given grids. See grid_task_list.h for details.

Function Documentation

◆ collocate_l0()

void collocate_l0 ( double * scratch,
const double alpha,
const bool orthogonal,
const struct tensor_ * exp_xy,
const struct tensor_ * p_alpha_beta_reduced_,
struct tensor_ * cube )

Definition at line 442 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rotate_to_cartesian_harmonics()

void rotate_to_cartesian_harmonics ( const grid_basis_set * ibasis,
const grid_basis_set * jbasis,
const int iatom,
const int jatom,
const int iset,
const int jset,
double *const block,
tensor * work,
tensor * pab )

Definition at line 34 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tensor_reduction_for_collocate_integrate()

void tensor_reduction_for_collocate_integrate ( double * scratch,
const double alpha,
const bool *const orthogonal,
const struct tensor_ * Exp,
const struct tensor_ * co,
const struct tensor_ * p_alpha_beta_reduced_,
struct tensor_ * cube )

Definition at line 481 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_fill_pol_dgemm()

void grid_fill_pol_dgemm ( const bool transpose,
const double dr,
const double roffset,
const int pol_offset,
const int xmin,
const int xmax,
const int lp,
const int cmax,
const double zetp,
double * pol_ )

Definition at line 124 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply_sphere_cutoff_ortho()

void apply_sphere_cutoff_ortho ( struct collocation_integration_ *const handler,
const double disr_radius,
const int cmax,
const int *const lb_cube,
const int *const cube_center )

Definition at line 237 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply_spherical_cutoff_generic()

void apply_spherical_cutoff_generic ( struct collocation_integration_ *const handler,
const double disr_radius,
const int cmax,
const int *const lb_cube,
const int *const ub_cube,
const double *const roffset,
const int *const cube_center )

Definition at line 323 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply_mapping_cubic()

void apply_mapping_cubic ( struct collocation_integration_ * handler,
const int cmax,
const int *const lower_boundaries_cube,
const int *const cube_center )

Definition at line 644 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_collocate()

void grid_collocate ( collocation_integration *const handler,
const bool use_ortho,
const double zetp,
const double rp[3],
const double radius )

Definition at line 753 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_dgemm_collocate_pgf_product()

void grid_dgemm_collocate_pgf_product ( const bool use_ortho,
const int border_mask,
const enum grid_func func,
const int la_max,
const int la_min,
const int lb_max,
const int lb_min,
const double zeta,
const double zetb,
const double rscale,
const double dh[3][3],
const double dh_inv[3][3],
const double ra[3],
const double rab[3],
const int grid_global_size[3],
const int grid_local_size[3],
const int shift_local[3],
const int border_width[3],
const double radius,
const int o1,
const int o2,
const int n1,
const int n2,
const double pab_[n2][n1],
double *const grid_ )

Definition at line 854 of file grid_dgemm_collocate.c.

Here is the call graph for this function:

◆ extract_blocks()

void extract_blocks ( grid_context *const ctx,
const _task *const task,
const offload_buffer * pab_blocks,
tensor *const work,
tensor *const pab )

Definition at line 979 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_coefficients()

void compute_coefficients ( grid_context *const ctx,
struct collocation_integration_ * handler,
const _task *const previous_task,
const _task *const task,
const offload_buffer * pab_blocks,
tensor *const pab,
tensor *const work,
tensor *const pab_prep )

Definition at line 1006 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ collocate_one_grid_level_dgemm()

void collocate_one_grid_level_dgemm ( grid_context *const ctx,
const int *const border_width,
const int *const shift_local,
const enum grid_func func,
const int level,
const offload_buffer * pab_blocks )

Definition at line 1080 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_dgemm_collocate_task_list()

void grid_dgemm_collocate_task_list ( grid_dgemm_task_list *const ptr,
const enum grid_func func,
const int nlevels,
const offload_buffer * pab_blocks,
offload_buffer * grids[nlevels] )

Collocate all tasks of a given list onto given grids. See grid_task_list.h for details.

Collocate all tasks of in given list onto given grids. See grid_task_list.h for details.

Definition at line 1229 of file grid_dgemm_collocate.c.

Here is the call graph for this function:
Here is the caller graph for this function: