(git:374b731)
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 446 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 38 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 485 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 128 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 241 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 327 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 648 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 757 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 858 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 983 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 1010 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 1084 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 1233 of file grid_dgemm_collocate.c.

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