(git:5e7fe52)
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 28 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 117 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()

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 238 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 360 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 374 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 398 of file grid_dgemm_integrate.c.

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

◆ update_tau()

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 415 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()

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 436 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 477 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 571 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 745 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 1052 of file grid_dgemm_integrate.c.

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