Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.4 KiB

2 years ago
/*
* Copyright(C) 1999-2020, 2023 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
* See packages/seacas/LICENSE for details
*/
#include "refine_map.h" // for refine_vdata, refine_edata
#include "structs.h"
double compute_cube_edata(struct refine_edata *edata, /* desire data for current edge */
struct refine_vdata *vdata, /* data for all vertices */
int nsets_tot, /* total number of processors */
struct vtx_data **comm_graph, /* communication graph */
int *node2vtx /* maps mesh nodes to graph vertices */
)
{
double desire; /* edge's interest in flipping */
float ewgt; /* edge weight */
int offset; /* offset into vdata array */
int vtx1, vtx2; /* vertices on either side of wire */
vtx1 = node2vtx[edata->node1];
vtx2 = node2vtx[edata->node2];
offset = nsets_tot * edata->dim;
desire = (vdata[offset + vtx1].above - vdata[offset + vtx1].same) +
(vdata[offset + vtx2].above - vdata[offset + vtx2].same);
/* Subtract off potential doubly counted edge. */
if (is_an_edge(comm_graph[vtx1], vtx2, &ewgt)) {
desire -= 2 * ewgt;
}
return (desire);
}