35 COM::Attribute *pconn) {
44 COM::Attribute *isborder,
51 int *npanes_total,
int *npanes_ghost) {
58 COM::Attribute *pconn){
61 pc.begin_update_shared_nodes();
62 pc.reduce_average_on_shared_nodes();
63 pc.end_update_shared_nodes();
68 COM::Attribute *pconn){
71 pc.begin_update_shared_nodes();
72 pc.reduce_minabs_on_shared_nodes();
73 pc.end_update_shared_nodes();
78 COM::Attribute *pconn){
81 pc.begin_update_shared_nodes();
82 pc.reduce_maxabs_on_shared_nodes();
83 pc.end_update_shared_nodes();
88 const COM::Attribute *pconn){
92 if (att->is_elemental()){
93 pc.begin_update_ghost_cells();
94 pc.end_update_ghost_cells();
97 pc.begin_update_ghost_nodes();
98 pc.end_update_ghost_nodes();
129 types[1] = types[2] = types[3] =
COM_INT;
#define MAP_END_NAMESPACE
int COM_Type
Indices for derived data types.
Utility for constructing pane connectivities in parallel.
static void compute_pconn(const COM::Attribute *mesh, COM::Attribute *pconn)
Compute pane connectivity map between shared nodes.
void COM_delete_window(const char *wname)
static void reduce_minabs_on_shared_nodes(COM::Attribute *att, COM::Attribute *pconn=NULL)
Perform a minabs-reduction on the shared nodes for the given attribute.
void compute_pconn(COM::Attribute *pconn_n, COM::Attribute *pconn_f=NULL)
Create b2v mapping for nodes and facets (edges or faces) correspondence.
void COM_set_function(const char *wf_str, Func_ptr func, const char *intents, const COM_Type *types)
This file contains the prototypes for Roccom API.
void ROCMAP_LOAD_MODULE(const char *mname, long int length)
Handles communication of shared nodes, ghost nodes or ghost cells across panes.
double length(Vector3D *const v, int n)
static void size_of_cpanes(const COM::Attribute *pconn, const int *pane_id, int *npanes_total, int *npanes_ghost=NULL)
Get the number of communicating panes.
void rocmap_load_module(const char *mname, long int length)
static void unload(const std::string &mname)
Unloads Rocmap from Roccom.
void ROCMAP_UNLOAD_MODULE(const char *mname, long int length)
static void reduce_maxabs_on_shared_nodes(COM::Attribute *att, COM::Attribute *pconn=NULL)
Perform a maxabs-reduction on the shared nodes for the given attribute.
void rocmap_load_module_(const char *mname, long int length)
void(* Func_ptr)()
Pointer of functions.
void COM_window_init_done(const char *w_str, int pane_changed=true)
static void pane_border_nodes(const COM::Attribute *mesh, COM::Attribute *isborder, int *ghost_level=NULL)
Determine the nodes at pane boundaries of a given mesh.
void rocmap_unload_module_(const char *mname, long int length)
void COM_new_window(const char *wname, MPI_Comm c=MPI_COMM_NULL)
void ROCMAP_UNLOAD_MODULE_(const char *mname, long int length)
Encapsulates information about distribution of panes on all processes and handles across pane communi...
void rocmap_unload_module(const char *mname, long int length)
static void determine_borders(const COM::Attribute *mesh, COM::Attribute *isborder, int ghost_level=0)
Determine the nodes at pane boundaries of a given mesh.
static void update_ghosts(COM::Attribute *att, const COM::Attribute *pconn=NULL)
Update ghost nodal or elemental values for the given attribute.
void init(void **ptrs, COM_Type type, int ncomp, const int *sizes=NULL, const int *strds=NULL)
Initialize the communication buffers.
static void reduce_average_on_shared_nodes(COM::Attribute *att, COM::Attribute *pconn=NULL)
Perform an average-reduction on the shared nodes for the given attribute.
#define MAP_BEGIN_NAMESPACE
static void load(const std::string &mname)
Loads Rocmap onto Roccom with a given module name.
static void size_of_cpanes(const COM::Attribute *pconn, const int *pane_id, int *npanes_total, int *npanes_ghost=NULL)
Get the number of communicating panes.
void Rocmap_unload_module(const char *mname)
void ROCMAP_LOAD_MODULE_(const char *mname, long int length)
Utility for detecting boundaries of a pane.
void Rocmap_load_module(const char *mname)