Skip to content

Commit

Permalink
made changes based on feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
JustinPrivitera committed Aug 4, 2021
1 parent 906251b commit 952c472
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 44 deletions.
50 changes: 31 additions & 19 deletions src/libs/blueprint/conduit_blueprint_mesh.cpp
Expand Up @@ -3191,7 +3191,8 @@ namespace detail
const Node &field_src,
int num_new_shapes,
const T *tri_to_poly,
float64 *volume_ratio)
float64 *volume_ratio,
bool vol_dep)
{
// a pointer to the destination for field values
U *values_array = field_out["values"].value();
Expand All @@ -3208,7 +3209,7 @@ namespace detail
// which we then assign to the destination field values.

// if our field is volume dependent
if (volume_ratio)
if (vol_dep)
{
values_array[i] = poly_field_data[tri_to_poly[i]] * volume_ratio[i];
}
Expand Down Expand Up @@ -3259,7 +3260,7 @@ namespace detail

const T *tri_to_poly = d2smap["values"].value();

Node &original_elements = fields_dest["original_element_ids"];
Node &original_elements = fields_dest[field_prefix + "original_element_ids"];
original_elements["topology"] = topo_name;
original_elements["association"] = "element";
original_elements["volume_dependent"] = "false";
Expand Down Expand Up @@ -3338,10 +3339,11 @@ namespace detail
}

// handle volume dependent fields
if (vol_dep)
// if the field is volume dependent and we have not already calculated the volumes
if (vol_dep && !volumes_info.has_child("poly"))
{
// make volume into a field
Node &volumes_field = fields_dest["volume"];
Node &volumes_field = fields_dest[field_prefix + "volume"];
volumes_field["topology"] = topo_name;
volumes_field["association"] = "element";
volumes_field["volume_dependent"] = "true";
Expand Down Expand Up @@ -3408,7 +3410,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
else
{
Expand All @@ -3417,7 +3420,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
}
else if (field["values"].dtype().is_uint32())
Expand All @@ -3429,7 +3433,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
else
{
Expand All @@ -3438,7 +3443,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
}
else if (field["values"].dtype().is_int64())
Expand All @@ -3450,7 +3456,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
else
{
Expand All @@ -3459,7 +3466,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
}
else if (field["values"].dtype().is_int32())
Expand All @@ -3471,7 +3479,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
else
{
Expand All @@ -3480,7 +3489,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
}
else if (field["values"].dtype().is_float64())
Expand All @@ -3492,7 +3502,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
else
{
Expand All @@ -3501,7 +3512,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
}
else if (field["values"].dtype().is_float32())
Expand All @@ -3513,7 +3525,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
else
{
Expand All @@ -3522,7 +3535,8 @@ namespace detail
field,
num_new_shapes,
tri_to_poly,
volume_ratio);
volume_ratio,
vol_dep);
}
}
else
Expand All @@ -3532,8 +3546,6 @@ namespace detail

if (vol_dep)
{
volume_ratio = NULL;
volumes_info.reset();
vol_dep = false;
}
if (vert_assoc)
Expand Down
51 changes: 26 additions & 25 deletions src/tests/blueprint/t_blueprint_mesh_generate_map_fields.cpp
Expand Up @@ -325,13 +325,13 @@ TEST(conduit_blueprint_generate_unstructured, generate_sides_2D_options_field_pr
}
}

EXPECT_EQ(side_mesh["fields/original_element_ids/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/original_element_ids/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/original_element_ids/volume_dependent"].as_string(), "false");
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/volume_dependent"].as_string(), "false");

EXPECT_EQ(side_mesh["fields/original_element_ids/values"].dtype().number_of_elements(), num_field_values);
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/values"].dtype().number_of_elements(), num_field_values);

uint32 *id_values = side_mesh["fields/original_element_ids/values"].value();
uint32 *id_values = side_mesh["fields/my_prefix_original_element_ids/values"].value();

int i = 0;
for (int j = 0; j < num_polygons; j ++)
Expand Down Expand Up @@ -456,6 +456,7 @@ TEST(conduit_blueprint_generate_unstructured, generate_sides_2D_vol_dep)
Node &side_topo = side_mesh["topologies/topo"];
Node &side_fields = side_mesh["fields"];
Node options;
options["field_prefix"] = "my_prefix_";

blueprint::mesh::topology::unstructured::generate_sides(n["topologies/topo"],
side_topo,
Expand All @@ -468,15 +469,15 @@ TEST(conduit_blueprint_generate_unstructured, generate_sides_2D_vol_dep)
EXPECT_TRUE(verify(side_mesh, info));

// check level field
EXPECT_EQ(side_mesh["fields/level/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/level/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/level/volume_dependent"].as_string(), "false");
EXPECT_EQ(side_mesh["fields/my_prefix_level/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/my_prefix_level/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/my_prefix_level/volume_dependent"].as_string(), "false");

index_t num_field_values = 56;
index_t num_polygons = 9;
EXPECT_EQ(side_mesh["fields/level/values"].dtype().number_of_elements(), num_field_values);
EXPECT_EQ(side_mesh["fields/my_prefix_level/values"].dtype().number_of_elements(), num_field_values);

uint32 *level_values = side_mesh["fields/level/values"].value();
uint32 *level_values = side_mesh["fields/my_prefix_level/values"].value();

for (int i = 0; i < num_field_values; i ++)
{
Expand All @@ -491,12 +492,12 @@ TEST(conduit_blueprint_generate_unstructured, generate_sides_2D_vol_dep)
}

// check level_vol field
EXPECT_EQ(side_mesh["fields/level_vol/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/level_vol/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/level_vol/volume_dependent"].as_string(), "true");
EXPECT_EQ(side_mesh["fields/level_vol/values"].dtype().number_of_elements(), num_field_values);
EXPECT_EQ(side_mesh["fields/my_prefix_level_vol/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/my_prefix_level_vol/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/my_prefix_level_vol/volume_dependent"].as_string(), "true");
EXPECT_EQ(side_mesh["fields/my_prefix_level_vol/values"].dtype().number_of_elements(), num_field_values);

float64 *level_vol_values = side_mesh["fields/level_vol/values"].value();
float64 *level_vol_values = side_mesh["fields/my_prefix_level_vol/values"].value();

for (int i = 0; i < num_field_values; i ++)
{
Expand Down Expand Up @@ -539,12 +540,12 @@ TEST(conduit_blueprint_generate_unstructured, generate_sides_2D_vol_dep)
}

// check volume field
EXPECT_EQ(side_mesh["fields/volume/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/volume/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/volume/volume_dependent"].as_string(), "true");
EXPECT_EQ(side_mesh["fields/volume/values"].dtype().number_of_elements(), num_field_values);
EXPECT_EQ(side_mesh["fields/my_prefix_volume/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/my_prefix_volume/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/my_prefix_volume/volume_dependent"].as_string(), "true");
EXPECT_EQ(side_mesh["fields/my_prefix_volume/values"].dtype().number_of_elements(), num_field_values);

float64 *volume_values = side_mesh["fields/volume/values"].value();
float64 *volume_values = side_mesh["fields/my_prefix_volume/values"].value();

for (int i = 0; i < num_field_values; i ++)
{
Expand Down Expand Up @@ -587,13 +588,13 @@ TEST(conduit_blueprint_generate_unstructured, generate_sides_2D_vol_dep)
}

// check original element ids
EXPECT_EQ(side_mesh["fields/original_element_ids/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/original_element_ids/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/original_element_ids/volume_dependent"].as_string(), "false");
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/topology"].as_string(), "topo");
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/association"].as_string(), "element");
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/volume_dependent"].as_string(), "false");

EXPECT_EQ(side_mesh["fields/original_element_ids/values"].dtype().number_of_elements(), num_field_values);
EXPECT_EQ(side_mesh["fields/my_prefix_original_element_ids/values"].dtype().number_of_elements(), num_field_values);

uint32 *id_values = side_mesh["fields/original_element_ids/values"].value();
uint32 *id_values = side_mesh["fields/my_prefix_original_element_ids/values"].value();

int i = 0;
for (int j = 0; j < num_polygons; j ++)
Expand Down

0 comments on commit 952c472

Please sign in to comment.