(git:374b731)
Loading...
Searching...
No Matches
grid_dgemm_integrate.c File Reference
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <omp.h>
#include "../common/grid_common.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_private_header.h"
#include "grid_dgemm_tensor_local.h"
#include "grid_dgemm_utils.h"

Go to the source code of this file.

Functions

void extract_cube_within_spherical_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 extract_cube_within_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)
 
static void rotate_and_store_coefficients (grid_context *const ctx, const _task *prev_task, const _task *task, tensor *const hab, tensor *work, double *blocks)
 
void update_force_pair (orbital a, orbital b, const double pab, const double ftz[2], const double *const rab, const tensor *const vab, tensor *force)
 
void update_virial_pair (orbital a, orbital b, const double pab, const double ftz[2], const double *const rab, const tensor *const vab, tensor *virial)
 
void update_all (const bool compute_forces, const bool compute_virial, const orbital a, const orbital b, const double f, const double *const ftz, const double *rab, const tensor *vab, const double pab, double *hab, tensor *forces, tensor *virials)
 
static void update_tau (const bool compute_forces, const bool compute_virial, const orbital a, const orbital b, const double ftz[2], const double *const rab, const tensor *const vab, const double pab, double *const hab, tensor *forces, tensor *virials)
 
static void update_hab_forces_and_stress (const _task *task, const tensor *const vab, const tensor *const pab, const bool compute_tau, const bool compute_forces, const bool compute_virial, tensor *const forces, tensor *const virial, tensor *const hab)
 
void extract_cube (struct collocation_integration_ *handler, const int cmax, const int *lower_boundaries_cube, const int *cube_center)
 
void grid_integrate (collocation_integration *const handler, const bool use_ortho, const double zetp, const double rp[3], const double radius)
 
void integrate_one_grid_level_dgemm (grid_context *const ctx, const int level, const bool calculate_tau, const bool calculate_forces, const bool calculate_virial, const int *const shift_local, const int *const border_width, const offload_buffer *const pab_blocks, offload_buffer *const hab_blocks, tensor *forces_, tensor *virial_)
 
void grid_dgemm_integrate_task_list (void *ptr, const bool compute_tau, const int natoms, const int nlevels, const offload_buffer *const pab_blocks, offload_buffer *grids[nlevels], offload_buffer *hab_blocks, double forces[natoms][3], double virial[3][3])
 Integrate all tasks of in given list from given grids using matrix - matrix multiplication.
 

Function Documentation

◆ extract_cube_within_spherical_cutoff_ortho()

void extract_cube_within_spherical_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 32 of file grid_dgemm_integrate.c.

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

◆ extract_cube_within_spherical_cutoff_generic()

void extract_cube_within_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 121 of file grid_dgemm_integrate.c.

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

◆ rotate_and_store_coefficients()

static void rotate_and_store_coefficients ( grid_context *const  ctx,
const _task prev_task,
const _task task,
tensor *const  hab,
tensor work,
double *  blocks 
)
static

Definition at line 242 of file grid_dgemm_integrate.c.

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

◆ update_force_pair()

void update_force_pair ( orbital  a,
orbital  b,
const double  pab,
const double  ftz[2],
const double *const  rab,
const tensor *const  vab,
tensor force 
)

Definition at line 367 of file grid_dgemm_integrate.c.

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

◆ update_virial_pair()

void update_virial_pair ( orbital  a,
orbital  b,
const double  pab,
const double  ftz[2],
const double *const  rab,
const tensor *const  vab,
tensor virial 
)

Definition at line 381 of file grid_dgemm_integrate.c.

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

◆ update_all()

void update_all ( const bool  compute_forces,
const bool  compute_virial,
const orbital  a,
const orbital  b,
const double  f,
const double *const  ftz,
const double *  rab,
const tensor vab,
const double  pab,
double *  hab,
tensor forces,
tensor virials 
)

Definition at line 405 of file grid_dgemm_integrate.c.

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

◆ update_tau()

static void update_tau ( const bool  compute_forces,
const bool  compute_virial,
const orbital  a,
const orbital  b,
const double  ftz[2],
const double *const  rab,
const tensor *const  vab,
const double  pab,
double *const  hab,
tensor forces,
tensor virials 
)
static

Definition at line 422 of file grid_dgemm_integrate.c.

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

◆ update_hab_forces_and_stress()

static void update_hab_forces_and_stress ( const _task task,
const tensor *const  vab,
const tensor *const  pab,
const bool  compute_tau,
const bool  compute_forces,
const bool  compute_virial,
tensor *const  forces,
tensor *const  virial,
tensor *const  hab 
)
static

Definition at line 443 of file grid_dgemm_integrate.c.

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

◆ extract_cube()

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

Definition at line 484 of file grid_dgemm_integrate.c.

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

◆ grid_integrate()

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

Definition at line 578 of file grid_dgemm_integrate.c.

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

◆ integrate_one_grid_level_dgemm()

void integrate_one_grid_level_dgemm ( grid_context *const  ctx,
const int  level,
const bool  calculate_tau,
const bool  calculate_forces,
const bool  calculate_virial,
const int *const  shift_local,
const int *const  border_width,
const offload_buffer *const  pab_blocks,
offload_buffer *const  hab_blocks,
tensor forces_,
tensor virial_ 
)

Definition at line 752 of file grid_dgemm_integrate.c.

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

◆ grid_dgemm_integrate_task_list()

void grid_dgemm_integrate_task_list ( void *  ptr,
const bool  compute_tau,
const int  natoms,
const int  nlevels,
const offload_buffer *const  pab_blocks,
offload_buffer grids[nlevels],
offload_buffer hab_blocks,
double  forces[natoms][3],
double  virial[3][3] 
)

Integrate all tasks of in given list from given grids using matrix - matrix multiplication.

Definition at line 1059 of file grid_dgemm_integrate.c.

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