diff --git a/src/Plugins/SimplnxCore/pipelines/CreateEdgeGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateEdgeGeom.d3dpipeline new file mode 100644 index 0000000000..29ee3bb56b --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateEdgeGeom.d3dpipeline @@ -0,0 +1,245 @@ +{ + "isDisabled": false, + "name": "CreateEdgeGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 7, + 7 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/EdgeConnectivity.csv", + "Skipped Array Mask": [ + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 264 + ] + }, + "selected_attribute_matrix_path": "", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data/V0", + "Imported Data/V1" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Faces" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "created_data_group_path": "Imported Data 2", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/VertexCoordinates.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 144 + ] + }, + "selected_attribute_matrix_path": "Imported Data 2", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data 2/x", + "Imported Data 2/y", + "Imported Data 2/z" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Vertices" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "Imported Data/Faces", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 3, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "Imported Data/Faces", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "Imported Data/Faces", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "", + "y_bounds_path": "", + "z_bounds_path": "" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Edge Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Edge Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Edge Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Edge Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateHexahedralGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateHexahedralGeom.d3dpipeline new file mode 100644 index 0000000000..3878797320 --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateHexahedralGeom.d3dpipeline @@ -0,0 +1,263 @@ +{ + "isDisabled": false, + "name": "CreateHexahedralGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/HexaConnectivity.csv", + "Skipped Array Mask": [ + false, + false, + false, + false, + false, + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 3 + ] + }, + "selected_attribute_matrix_path": "", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data/V0", + "Imported Data/V1", + "Imported Data/V2", + "Imported Data/V3", + "Imported Data/V4", + "Imported Data/V5", + "Imported Data/V6", + "Imported Data/V7" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Faces" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "created_data_group_path": "Imported Data 2", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/HexaVertexCoordinates.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 20 + ] + }, + "selected_attribute_matrix_path": "Imported Data 2", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data 2/x", + "Imported Data 2/y", + "Imported Data 2/z" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Vertices" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 7, + "hexahedral_list_path": "Imported Data/Faces", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "", + "y_bounds_path": "", + "z_bounds_path": "" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Cell Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Cell Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Cell Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Cell Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateImageGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateImageGeom.d3dpipeline new file mode 100644 index 0000000000..de5010f239 --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateImageGeom.d3dpipeline @@ -0,0 +1,138 @@ +{ + "isDisabled": false, + "name": "CreateImageGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 5, + 6, + 7 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "Imported Data/Faces", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 0, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Image Geometry", + "quadrilateral_list_path": "Imported Data/Faces", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "Imported Data/Faces", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "Imported Data/X_Bounds", + "y_bounds_path": "Imported Data/Y_Bounds", + "z_bounds_path": "Imported Data/Z_Bounds" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Image Geometry/Cell Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Image Geometry/Cell Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Image Geometry/Cell Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Image Geometry/Cell Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateQuadGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateQuadGeom.d3dpipeline new file mode 100644 index 0000000000..22e07a97bb --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateQuadGeom.d3dpipeline @@ -0,0 +1,251 @@ +{ + "isDisabled": false, + "name": "CreateQuadGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 7, + 7, + 7, + 7 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/QuadConnectivity.csv", + "Skipped Array Mask": [ + false, + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 121 + ] + }, + "selected_attribute_matrix_path": "", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data/V0", + "Imported Data/V1", + "Imported Data/V2", + "Imported Data/V3" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Faces" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "created_data_group_path": "Imported Data 2", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/VertexCoordinates.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 144 + ] + }, + "selected_attribute_matrix_path": "Imported Data 2", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data 2/x", + "Imported Data 2/y", + "Imported Data 2/z" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Vertices" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 5, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "Imported Data/Faces", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "Imported Data/Faces", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "", + "y_bounds_path": "", + "z_bounds_path": "" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Face Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Face Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Face Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Face Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateRectGridGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateRectGridGeom.d3dpipeline new file mode 100644 index 0000000000..43f2b04b90 --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateRectGridGeom.d3dpipeline @@ -0,0 +1,175 @@ +{ + "isDisabled": false, + "name": "CreateRectGridGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/RectGridBounds.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 6 + ] + }, + "selected_attribute_matrix_path": "", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "Imported Data/Faces", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 1, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "Imported Data/Faces", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "Imported Data/Faces", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "Imported Data/X_Bounds", + "y_bounds_path": "Imported Data/Y_Bounds", + "z_bounds_path": "Imported Data/Z_Bounds" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Cell Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Cell Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Cell Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Cell Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateTetrahedralGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateTetrahedralGeom.d3dpipeline new file mode 100644 index 0000000000..c1237a6ee9 --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateTetrahedralGeom.d3dpipeline @@ -0,0 +1,251 @@ +{ + "isDisabled": false, + "name": "CreateTetrahedralGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 7, + 7, + 7, + 7 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/TetraConnectivity.csv", + "Skipped Array Mask": [ + false, + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 3 + ] + }, + "selected_attribute_matrix_path": "", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data/V0", + "Imported Data/V1", + "Imported Data/V2", + "Imported Data/V3" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Faces" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "created_data_group_path": "Imported Data 2", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/TetraVertexCoordinates.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 9 + ] + }, + "selected_attribute_matrix_path": "Imported Data 2", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data 2/x", + "Imported Data 2/y", + "Imported Data 2/z" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Vertices" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 6, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "", + "y_bounds_path": "", + "z_bounds_path": "" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Cell Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Cell Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Cell Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Cell Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateTriangleGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateTriangleGeom.d3dpipeline new file mode 100644 index 0000000000..fe4a137f90 --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateTriangleGeom.d3dpipeline @@ -0,0 +1,248 @@ +{ + "isDisabled": false, + "name": "CreateTriangleGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 7, + 7, + 7 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/TriangleConnectivity.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 242 + ] + }, + "selected_attribute_matrix_path": "", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data/V0", + "Imported Data/V1", + "Imported Data/V2" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Faces" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "created_data_group_path": "Imported Data 2", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/VertexCoordinates.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 144 + ] + }, + "selected_attribute_matrix_path": "Imported Data 2", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data 2/x", + "Imported Data 2/y", + "Imported Data 2/z" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Vertices" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 4, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "Imported Data/Faces", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "", + "y_bounds_path": "", + "z_bounds_path": "" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Face Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Face Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Face Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Face Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/src/Plugins/SimplnxCore/pipelines/CreateVertexGeom.d3dpipeline b/src/Plugins/SimplnxCore/pipelines/CreateVertexGeom.d3dpipeline new file mode 100644 index 0000000000..f461a6c40a --- /dev/null +++ b/src/Plugins/SimplnxCore/pipelines/CreateVertexGeom.d3dpipeline @@ -0,0 +1,193 @@ +{ + "isDisabled": false, + "name": "CreateVertexGeom.d3dpipeline", + "pinnedParams": [], + "pipeline": [ + { + "args": { + "created_data_group_path": "Imported Data 2", + "read_csv_data_object": { + "Consecutive Delimiters": false, + "Custom Headers": null, + "Data Types": [ + 8, + 8, + 8 + ], + "Delimiters": [ + "," + ], + "Header Line": 1, + "Header Mode": 0, + "Input File Path": "Data/Test_Data/VertexCoordinates.csv", + "Skipped Array Mask": [ + false, + false, + false + ], + "Start Import Row": 2, + "Tuple Dimensions": [ + 144 + ] + }, + "selected_attribute_matrix_path": "Imported Data 2", + "use_existing_group": false + }, + "comments": "", + "filter": { + "name": "nx::core::ReadCSVFileFilter", + "uuid": "373be1f8-31cf-49f6-aa5d-e356f4f3f261" + }, + "isDisabled": false + }, + { + "args": { + "input_data_array_paths": [ + "Imported Data 2/x", + "Imported Data 2/y", + "Imported Data 2/z" + ], + "move_values": true, + "normalize_data": false, + "output_data_array_name": "Vertices" + }, + "comments": "", + "filter": { + "name": "nx::core::CombineAttributeArraysFilter", + "uuid": "2436b614-e96d-47f0-9f6f-41d6fe97acd4" + }, + "isDisabled": false + }, + { + "args": { + "array_handling_index": 1, + "cell_attribute_matrix_name": "Cell Data", + "dimensions": [ + 20, + 60, + 200 + ], + "edge_attribute_matrix_name": "Edge Data", + "edge_list_path": "Imported Data/Faces", + "face_attribute_matrix_name": "Face Data", + "geometry_type_index": 2, + "hexahedral_list_path": "", + "length_unit_index": 7, + "origin": [ + 0.0, + 0.0, + 0.0 + ], + "output_geometry_path": "Geometry", + "quadrilateral_list_path": "Imported Data/Faces", + "spacing": [ + 1.0, + 1.0, + 1.0 + ], + "tetrahedral_list_path": "Imported Data/Faces", + "triangle_list_path": "Imported Data/Faces", + "vertex_attribute_matrix_name": "Vertex Data", + "vertex_list_path": "Imported Data 2/Vertices", + "warnings_as_errors": false, + "x_bounds_path": "", + "y_bounds_path": "", + "z_bounds_path": "" + }, + "comments": "", + "filter": { + "name": "nx::core::CreateGeometryFilter", + "uuid": "24768170-5b90-4a9d-82ac-9aeecd9f892e" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 4, + "output_array_path": "Geometry/Vertex Data/Int32Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Vertex Data/Int32Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + }, + { + "args": { + "component_count": 1, + "data_format": "", + "initialization_value_str": "0", + "numeric_type_index": 6, + "output_array_path": "Geometry/Vertex Data/Int64Array", + "set_tuple_dimensions": true, + "tuple_dimensions": [ + [ + 0.0 + ] + ] + }, + "comments": "", + "filter": { + "name": "nx::core::CreateDataArrayFilter", + "uuid": "67041f9b-bdc6-4122-acc6-c9fe9280e90d" + }, + "isDisabled": false + }, + { + "args": { + "array_path": "Geometry/Vertex Data/Int64Array", + "init_end_range": "10", + "init_start_range": "-10", + "init_type_index": 3, + "init_value": "1;1;1", + "seed_array_name": "InitializeDataFilter SeedValue2", + "seed_value": 5489, + "standardize_seed": false, + "starting_fill_value": "0;1;2", + "step_operation_index": 0, + "step_value": "1;1;1", + "use_seed": false + }, + "comments": "", + "filter": { + "name": "nx::core::InitializeDataFilter", + "uuid": "01c82d15-ba52-4ffa-a7a5-487ee5a613f5" + }, + "isDisabled": false + } + ], + "version": 1, + "workflowParams": [] +} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2c55c492f4..8b431baa24 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -88,3 +88,10 @@ catch_discover_tests(simplnx_test) download_test_data(DREAM3D_DATA_DIR ${DREAM3D_DATA_DIR} ARCHIVE_NAME simpl_json_exemplars.tar.gz SHA512 550a1ad3c9c31b1093d961fdda2057d63a48f08c04d2831c70c1ec65d499f39b354a5a569903ff68e9b703ef45c23faba340aa0c61f9a927fbc845c15b87d05e ) +add_custom_target(Copy_simplnx_Test_Data ALL + COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different "${simplnx_SOURCE_DIR}/test/Data" "${DATA_DEST_DIR}/Test_Data" + WORKING_DIRECTORY "${simplnx_SOURCE_DIR}/test" + COMMENT "Copying ${simplnx_SOURCE_DIR}/test/Data data into Binary Directory" + COMMAND_EXPAND_LISTS + VERBATIM + ) \ No newline at end of file diff --git a/test/Data/HexaConnectivity.csv b/test/Data/HexaConnectivity.csv new file mode 100644 index 0000000000..4366bd7d98 --- /dev/null +++ b/test/Data/HexaConnectivity.csv @@ -0,0 +1,4 @@ +V0,V1,V2,V3,V4,V5,V6,V7 +0,1,2,3,4,5,6,7 +0,1,2,3,8,9,10,11 +12,13,14,15,16,17,18,19 diff --git a/test/Data/HexaVertexCoordinates.csv b/test/Data/HexaVertexCoordinates.csv new file mode 100644 index 0000000000..1ca3772635 --- /dev/null +++ b/test/Data/HexaVertexCoordinates.csv @@ -0,0 +1,21 @@ +x,y,z +0.0,0.0,0.0 +1.0,0.0,0.0 +1.0,1.0,0.0 +0.0,1.0,0.0 +0.0,0.0,1.0 +1.0,0.0,1.0 +1.0,1.0,1.0 +0.0,1.0,1.0 +1.0,0.0,-1.0 +2.0,0.0,-1.0 +2.0,1.0,-1.0 +1.0,1.0,-1.0 +3.0,3.0,3.0 +4.0,3.0,3.0 +4.0,4.0,3.0 +3.0,4.0,3.0 +3.0,3.0,4.0 +4.0,3.0,4.0 +4.0,4.0,4.0 +3.0,4.0,4.0 diff --git a/test/Data/RectGridBounds.csv b/test/Data/RectGridBounds.csv new file mode 100644 index 0000000000..ecdde813d5 --- /dev/null +++ b/test/Data/RectGridBounds.csv @@ -0,0 +1,7 @@ +X_Bounds,Y_Bounds,Z_Bounds +0,0,0 +20,10,10 +40,20,30 +50,40,35 +80,90,70 +100,100,100 diff --git a/test/Data/TetraConnectivity.csv b/test/Data/TetraConnectivity.csv new file mode 100644 index 0000000000..c81dee03cd --- /dev/null +++ b/test/Data/TetraConnectivity.csv @@ -0,0 +1,4 @@ +V0,V1,V2,V3 +0,1,2,3 +0,1,2,4 +5,6,7,8 diff --git a/test/Data/TetraVertexCoordinates.csv b/test/Data/TetraVertexCoordinates.csv new file mode 100644 index 0000000000..de1f0314c6 --- /dev/null +++ b/test/Data/TetraVertexCoordinates.csv @@ -0,0 +1,10 @@ +x,y,z +1.0,1.0,1.0 +-1.0,-1.0,1.0 +-1.0,1.0,-1.0 +1.0,-1.0,-1.0 +-1.0,2.0,2.0 +4.0,4.0,4.0 +3.0,3.0,4.0 +3.0,4.0,3.0 +4.0,3.0,3.0 diff --git a/test/H5Test.cpp b/test/H5Test.cpp index 8e2362a9fe..2101c48d49 100644 --- a/test/H5Test.cpp +++ b/test/H5Test.cpp @@ -8,6 +8,7 @@ #include "simplnx/DataStructure/Geometry/EdgeGeom.hpp" #include "simplnx/DataStructure/Geometry/ImageGeom.hpp" #include "simplnx/DataStructure/Geometry/QuadGeom.hpp" +#include "simplnx/DataStructure/Geometry/TetrahedralGeom.hpp" #include "simplnx/DataStructure/Geometry/TriangleGeom.hpp" #include "simplnx/DataStructure/Geometry/VertexGeom.hpp" #include "simplnx/DataStructure/IO/HDF5/DataStructureReader.hpp" @@ -159,6 +160,10 @@ const std::string k_QuadGroupName = "QUAD_GEOMETRY"; const std::string k_QuadFaceName = "SharedQuadList"; const std::string k_EdgeFaceName = "SharedEdgeList"; const std::string k_EdgeGroupName = "EDGE_GEOMETRY"; +const std::string k_TetraGroupName = "TETRA_GEOMETRY"; +const std::string k_TetraFaceName = "SharedCellList"; +const std::string k_HexaGroupName = "HEXA_GEOMETRY"; +const std::string k_HexaFaceName = "SharedCellList"; const std::string k_NeighborGroupName = "NEIGHBORLIST_GROUP"; void CreateVertexGeometry(DataStructure& dataStructure) @@ -299,6 +304,74 @@ void CreateEdgeGeometry(DataStructure& dataStructure) geometry->setVertices(*vertexArray); } +void CreateTetrahedralGeometry(DataStructure& dataStructure) +{ + // Create a Tetrahedral Geometry + DataGroup* geometryGroup = DataGroup::Create(dataStructure, k_TetraGroupName); + using MeshIndexType = IGeometry::MeshIndexType; + auto geometry = TetrahedralGeom::Create(dataStructure, "[Geometry] Tetrahedral", geometryGroup->getId()); + + // Create a Path in the DataStructure to place the geometry + DataPath path = DataPath({k_TetraGroupName, k_TetraFaceName}); + std::string inputFile = fmt::format("{}/test/Data/TetraConnectivity.csv", unit_test::k_SourceDir.view()); + uint64 skipLines = 1; + char delimiter = ','; + uint64 faceCount = CsvParser::LineCount(inputFile) - skipLines; + REQUIRE(faceCount == 3); + // Create the default DataArray that will hold the FaceList and Vertices. We + // size these to 1 because the Csv parser will resize them to the appropriate number of typles + nx::core::Result result = nx::core::CreateArray(dataStructure, {faceCount}, {4}, path, IDataAction::Mode::Execute); + REQUIRE(result.valid()); + auto dataArray = nx::core::ArrayFromPath(dataStructure, path); + CsvParser::ReadFile(inputFile, *dataArray, skipLines, delimiter); + geometry->setPolyhedraList(*dataArray); + + // Create the Vertex Array with a component size of 3 + path = DataPath({k_TetraGroupName, k_VertexListName}); + inputFile = fmt::format("{}/test/Data/TetraVertexCoordinates.csv", unit_test::k_SourceDir.view()); + uint64 vertexCount = CsvParser::LineCount(inputFile) - skipLines; + REQUIRE(vertexCount == 9); + result = nx::core::CreateArray(dataStructure, {vertexCount}, {3}, path, IDataAction::Mode::Execute); + REQUIRE(result.valid()); + auto vertexArray = nx::core::ArrayFromPath(dataStructure, path); + CsvParser::ReadFile(inputFile, *vertexArray, skipLines, delimiter); + geometry->setVertices(*vertexArray); +} + +void CreateHexahedralGeometry(DataStructure& dataStructure) +{ + // Create a Hexahedral Geometry + DataGroup* geometryGroup = DataGroup::Create(dataStructure, k_HexaGroupName); + using MeshIndexType = IGeometry::MeshIndexType; + auto geometry = TetrahedralGeom::Create(dataStructure, "[Geometry] Hexahedral", geometryGroup->getId()); + + // Create a Path in the DataStructure to place the geometry + DataPath path = DataPath({k_HexaGroupName, k_HexaFaceName}); + std::string inputFile = fmt::format("{}/test/Data/HexaConnectivity.csv", unit_test::k_SourceDir.view()); + uint64 skipLines = 1; + char delimiter = ','; + uint64 faceCount = CsvParser::LineCount(inputFile) - skipLines; + REQUIRE(faceCount == 3); + // Create the default DataArray that will hold the FaceList and Vertices. We + // size these to 1 because the Csv parser will resize them to the appropriate number of typles + nx::core::Result result = nx::core::CreateArray(dataStructure, {faceCount}, {8}, path, IDataAction::Mode::Execute); + REQUIRE(result.valid()); + auto dataArray = nx::core::ArrayFromPath(dataStructure, path); + CsvParser::ReadFile(inputFile, *dataArray, skipLines, delimiter); + geometry->setPolyhedraList(*dataArray); + + // Create the Vertex Array with a component size of 3 + path = DataPath({k_HexaGroupName, k_VertexListName}); + inputFile = fmt::format("{}/test/Data/HexaVertexCoordinates.csv", unit_test::k_SourceDir.view()); + uint64 vertexCount = CsvParser::LineCount(inputFile) - skipLines; + REQUIRE(vertexCount == 20); + result = nx::core::CreateArray(dataStructure, {vertexCount}, {3}, path, IDataAction::Mode::Execute); + REQUIRE(result.valid()); + auto vertexArray = nx::core::ArrayFromPath(dataStructure, path); + CsvParser::ReadFile(inputFile, *vertexArray, skipLines, delimiter); + geometry->setVertices(*vertexArray); +} + void CreateNeighborList(DataStructure& dataStructure) { const usize numItems = 50; @@ -351,6 +424,8 @@ DataStructure CreateNodeBasedGeometries() CreateTriangleGeometry(dataStructure); CreateQuadGeometry(dataStructure); CreateEdgeGeometry(dataStructure); + CreateTetrahedralGeometry(dataStructure); + CreateHexahedralGeometry(dataStructure); return dataStructure; } diff --git a/wrapping/python/examples/scripts/geometry_examples.py b/wrapping/python/examples/scripts/geometry_examples.py index 07dbcd0c6f..66d7999548 100644 --- a/wrapping/python/examples/scripts/geometry_examples.py +++ b/wrapping/python/examples/scripts/geometry_examples.py @@ -175,6 +175,34 @@ print(f'id: {rect_grid_geom.id}') print(f'name: {rect_grid_geom.name}') +# ------------------------------------------------------------------------------ +# Lets try a Vertex Geometry +# For this we need the vertex data +# ------------------------------------------------------------------------------ +array_path = nx.DataPath('Vertices') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.float32, + component_count=3, + tuple_dimensions=[[144]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +vertex_coords = data_structure[array_path].npview() +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/VertexCoordinates.csv' +vertex_coords[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +result = nx.CreateGeometryFilter.execute(data_structure=data_structure, + array_handling_index=1, # Move the arrays from their original location. + output_geometry_path=nx.DataPath("Vertex Geometry"), + geometry_type_index=2, + vertex_attribute_matrix_name="Vertex Data", + vertex_list_path=nx.DataPath('Vertices'), + ) +nxtest.check_filter_result(nx.CreateGeometryFilter, result) + # ------------------------------------------------------------------------------ # Lets try a Triangle Geometry # For this we need the vertex data and the Triangle connectivity data @@ -266,9 +294,142 @@ ) nxtest.check_filter_result(nx.CreateGeometryFilter, result) +# ------------------------------------------------------------------------------ +# Lets try a Quad Geometry +# For this we need the vertex data and the Quad connectivity data +# ------------------------------------------------------------------------------ +array_path = nx.DataPath('Vertices') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.float32, + component_count=3, + tuple_dimensions=[[144]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +vertex_coords = data_structure[array_path].npview() +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/VertexCoordinates.csv' +vertex_coords[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +array_path = nx.DataPath('Faces') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.uint64, + component_count=4, + tuple_dimensions=[[121]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/QuadConnectivity.csv' +edges_view = data_structure["Faces"].npview() +edges_view[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +result = nx.CreateGeometryFilter.execute(data_structure=data_structure, + array_handling_index=1, # Move the arrays from their original location. + output_geometry_path=nx.DataPath("Quad Geometry"), + geometry_type_index=5, + face_attribute_matrix_name="Face Data", + vertex_attribute_matrix_name="Vertex Data", + vertex_list_path=nx.DataPath('Vertices'), + quadrilateral_list_path=nx.DataPath('Faces') + ) +nxtest.check_filter_result(nx.CreateGeometryFilter, result) + +# ------------------------------------------------------------------------------ +# Lets try a Tetrahedral Geometry +# For this we need the vertex data and the Tetrahedral connectivity data +# ------------------------------------------------------------------------------ +array_path = nx.DataPath('Vertices') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.float32, + component_count=3, + tuple_dimensions=[[9]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +vertex_coords = data_structure[array_path].npview() +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/TetraVertexCoordinates.csv' +vertex_coords[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +array_path = nx.DataPath('Cells') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.uint64, + component_count=4, + tuple_dimensions=[[3]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/TetraConnectivity.csv' +edges_view = data_structure["Cells"].npview() +edges_view[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +result = nx.CreateGeometryFilter.execute(data_structure=data_structure, + array_handling_index=1, # Move the arrays from their original location. + output_geometry_path=nx.DataPath("Tetra Geometry"), + geometry_type_index=6, + cell_attribute_matrix_name="Cell Data", + vertex_attribute_matrix_name="Vertex Data", + vertex_list_path=nx.DataPath('Vertices'), + tetrahedral_list_path=nx.DataPath('Cells') + ) +nxtest.check_filter_result(nx.CreateGeometryFilter, result) + +# ------------------------------------------------------------------------------ +# Lets try a Hexahedral Geometry +# For this we need the vertex data and the Hexahedral connectivity data +# ------------------------------------------------------------------------------ +array_path = nx.DataPath('Vertices') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.float32, + component_count=3, + tuple_dimensions=[[20]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +vertex_coords = data_structure[array_path].npview() +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/HexaVertexCoordinates.csv' +vertex_coords[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +array_path = nx.DataPath('Cells') +result = nx.CreateDataArrayFilter.execute(data_structure, + numeric_type_index=nx.NumericType.uint64, + component_count=8, + tuple_dimensions=[[3]], + output_array_path=array_path, + initialization_value_str='0') +nxtest.check_filter_result(nx.CreateDataArrayFilter, result) + + +# Read the CSV file into the DataArray using the numpy view +file_path = nxtest.get_simplnx_source_dir() / 'test/Data/HexaConnectivity.csv' +edges_view = data_structure["Cells"].npview() +edges_view[:] = np.loadtxt(file_path, delimiter=',', skiprows=1) + +result = nx.CreateGeometryFilter.execute(data_structure=data_structure, + array_handling_index=1, # Move the arrays from their original location. + output_geometry_path=nx.DataPath("Hexa Geometry"), + geometry_type_index=7, + cell_attribute_matrix_name="Cell Data", + vertex_attribute_matrix_name="Vertex Data", + vertex_list_path=nx.DataPath('Vertices'), + hexahedral_list_path=nx.DataPath('Cells') + ) +nxtest.check_filter_result(nx.CreateGeometryFilter, result) output_file_path = nxtest.get_test_temp_directory() / "geometry_examples.dream3d" result = nx.WriteDREAM3DFilter.execute(data_structure=data_structure, export_file_path=output_file_path, write_xdmf_file=True) -nxtest.check_filter_result(nx.WriteDREAM3DFilter, result) - +nxtest.check_filter_result(nx.WriteDREAM3DFilter, result) \ No newline at end of file