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.
56 lines
1.7 KiB
56 lines
1.7 KiB
2 years ago
|
/*
|
||
|
* 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++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|