YetAnotherCoupler 3.2.0_a
Loading...
Searching...
No Matches
proc_sphere_part.h
Go to the documentation of this file.
1// Copyright (c) 2024 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef PROC_SPHERE_PART_H
6#define PROC_SPHERE_PART_H
7
8#include "yac_types.h"
9#include "geometry.h"
10
20 U_NODE = 1,
21 T_NODE = 2,
22};
23
24// WARNING: before changing this datatype ensure that the MPI datatype created
25// for this still matches its data layout
26struct dist_cell {
27 double coord[3];
29};
30
32
34 struct dist_cell ** cells, size_t * num_cells, MPI_Comm comm);
37 struct proc_sphere_part_node * node, yac_coordinate_pointer search_coords,
38 size_t count, int * ranks);
40 struct proc_sphere_part_node * node, struct bounding_circle bnd_circle,
41 int * ranks, int * rank_count);
43 struct proc_sphere_part_node * node, uint64_t * leaf_sizes,
44 uint64_t min_size, int * send_flags, int * recv_flags,
45 int comm_rank, int comm_size);
46
47#endif // PROC_SPHERE_PART_H
void yac_proc_sphere_part_get_neigh_ranks(struct proc_sphere_part_node *node, uint64_t *leaf_sizes, uint64_t min_size, int *send_flags, int *recv_flags, int comm_rank, int comm_size)
void yac_proc_sphere_part_do_bnd_circle_search(struct proc_sphere_part_node *node, struct bounding_circle bnd_circle, int *ranks, int *rank_count)
NODE_TYPE
@ T_NODE
@ U_NODE
void yac_proc_sphere_part_do_point_search(struct proc_sphere_part_node *node, yac_coordinate_pointer search_coords, size_t count, int *ranks)
void yac_proc_sphere_part_node_delete(struct proc_sphere_part_node *node)
struct proc_sphere_part_node * yac_redistribute_cells(struct dist_cell **cells, size_t *num_cells, MPI_Comm comm)
enum NODE_TYPE node_type
double coord[3]
double(* yac_coordinate_pointer)[3]
Definition yac_types.h:19