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.
 
 
 
 
 
 

55 lines
1.7 KiB

/*
* Copyright(C) 1999-2020 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_edata
/* Initialize the mapping of sets to endpoints of wires in the mesh. */
void init_mesh_edata(struct refine_edata *edata, /* desire data for all edges */
int mesh_dims[3] /* dimensions of mesh */
)
{
int wire; /* loops through wires */
int i, j, k; /* loop counters */
wire = 0;
/* First do all the x-axis wires. */
for (k = 0; k < mesh_dims[2]; k++) {
for (j = 0; j < mesh_dims[1]; j++) {
for (i = 0; i < mesh_dims[0] - 1; i++) {
edata[wire].node1 = i + mesh_dims[0] * (j + k * mesh_dims[1]);
edata[wire].node2 = i + 1 + mesh_dims[0] * (j + k * mesh_dims[1]);
edata[wire].dim = 0;
wire++;
}
}
}
/* Now do all the y-axis wires. */
for (k = 0; k < mesh_dims[2]; k++) {
for (j = 0; j < mesh_dims[1] - 1; j++) {
for (i = 0; i < mesh_dims[0]; i++) {
edata[wire].node1 = i + mesh_dims[0] * (j + k * mesh_dims[1]);
edata[wire].node2 = i + mesh_dims[0] * (j + 1 + k * mesh_dims[1]);
edata[wire].dim = 1;
wire++;
}
}
}
/* Finally, do all the z-axis wires. */
for (k = 0; k < mesh_dims[2] - 1; k++) {
for (j = 0; j < mesh_dims[1]; j++) {
for (i = 0; i < mesh_dims[0]; i++) {
edata[wire].node1 = i + mesh_dims[0] * (j + k * mesh_dims[1]);
edata[wire].node2 = i + mesh_dims[0] * (j + (k + 1) * mesh_dims[1]);
edata[wire].dim = 2;
wire++;
}
}
}
}