(git:06f838d)
Loading...
Searching...
No Matches
grid_ref_task_list.h
Go to the documentation of this file.
1/*----------------------------------------------------------------------------*/
2/* CP2K: A general program to perform molecular dynamics simulations */
3/* Copyright 2000-2026 CP2K developers group <https://cp2k.org> */
4/* */
5/* SPDX-License-Identifier: BSD-3-Clause */
6/*----------------------------------------------------------------------------*/
7#ifndef GRID_REF_TASK_LIST_H
8#define GRID_REF_TASK_LIST_H
9
10#include <stdbool.h>
11
12#include "../../offload/offload_buffer.h"
13#include "../common/grid_basis_set.h"
14#include "../common/grid_constants.h"
15
16typedef void grid_ref_task_list;
17
18/*******************************************************************************
19 * \brief Allocates a task list for the reference backend.
20 * See grid_task_list.h for details.
21 * \author Ole Schuett
22 ******************************************************************************/
24 const bool orthorhombic, const int ntasks, const int nlevels,
25 const int natoms, const int nkinds, const int nblocks,
26 const int block_offsets[nblocks], const double atom_positions[natoms][3],
27 const int atom_kinds[natoms], const grid_basis_set *basis_sets[nkinds],
28 const int level_list[ntasks], const int iatom_list[ntasks],
29 const int jatom_list[ntasks], const int iset_list[ntasks],
30 const int jset_list[ntasks], const int ipgf_list[ntasks],
31 const int jpgf_list[ntasks], const int border_mask_list[ntasks],
32 const int block_num_list[ntasks], const double radius_list[ntasks],
33 const double rab_list[ntasks][3], const int npts_global[nlevels][3],
34 const int npts_local[nlevels][3], const int shift_local[nlevels][3],
35 const int border_width[nlevels][3], const double dh[nlevels][3][3],
36 const double dh_inv[nlevels][3][3], grid_ref_task_list **task_list);
37
38/*******************************************************************************
39 * \brief Deallocates given task list, basis_sets have to be freed separately.
40 * \author Ole Schuett
41 ******************************************************************************/
43
44/*******************************************************************************
45 * \brief Collocate all tasks of in given list onto given grids.
46 * See grid_task_list.h for details.
47 * \author Ole Schuett
48 ******************************************************************************/
50 const enum grid_func func, const int nlevels,
51 const offload_buffer *pab_blocks,
52 offload_buffer *grids[nlevels]);
53
54/*******************************************************************************
55 * \brief Integrate all tasks of in given list from given grids.
56 * See grid_task_list.h for details.
57 * \author Ole Schuett
58 ******************************************************************************/
60 const grid_ref_task_list *task_list, const bool compute_tau,
61 const int natoms, const int nlevels, const offload_buffer *pab_blocks,
62 const offload_buffer *grids[nlevels], offload_buffer *hab_blocks,
63 double forces[natoms][3], double virial[3][3]);
64
65#endif
66
67// EOF
grid_func
static void const int const int const int const int const int const double const int const int const int npts_local[3]
void grid_ref_collocate_task_list(const grid_ref_task_list *task_list, const enum grid_func func, const int nlevels, const offload_buffer *pab_blocks, offload_buffer *grids[nlevels])
Collocate all tasks of in given list onto given grids. See grid_task_list.h for details.
void grid_ref_task_list
void grid_ref_free_task_list(grid_ref_task_list *task_list)
Deallocates given task list, basis_sets have to be freed separately.
void grid_ref_create_task_list(const bool orthorhombic, const int ntasks, const int nlevels, const int natoms, const int nkinds, const int nblocks, const int block_offsets[nblocks], const double atom_positions[natoms][3], const int atom_kinds[natoms], const grid_basis_set *basis_sets[nkinds], const int level_list[ntasks], const int iatom_list[ntasks], const int jatom_list[ntasks], const int iset_list[ntasks], const int jset_list[ntasks], const int ipgf_list[ntasks], const int jpgf_list[ntasks], const int border_mask_list[ntasks], const int block_num_list[ntasks], const double radius_list[ntasks], const double rab_list[ntasks][3], const int npts_global[nlevels][3], const int npts_local[nlevels][3], const int shift_local[nlevels][3], const int border_width[nlevels][3], const double dh[nlevels][3][3], const double dh_inv[nlevels][3][3], grid_ref_task_list **task_list)
Allocates a task list for the reference backend. See grid_task_list.h for details.
void grid_ref_integrate_task_list(const grid_ref_task_list *task_list, const bool compute_tau, const int natoms, const int nlevels, const offload_buffer *pab_blocks, const 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. See grid_task_list.h for details.
Internal representation of a basis set.
Internal representation of a buffer.