Skip to content
Snippets Groups Projects
Commit dde8f597 authored by wenqing's avatar wenqing
Browse files

[UnitTest] Added an unit test for function zeroMeshFieldDataByMaterialIDs

parent 011693a8
No related branches found
No related tags found
No related merge requests found
Source diff could not be displayed: it is too large. Options to address this: view the blob.
<?xml version="1.0"?>
<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
<UnstructuredGrid>
<FieldData>
<DataArray type="Int8" Name="IntegrationPointMetaData" NumberOfTuples="97" format="appended" RangeMin="34" RangeMax="125" offset="0" />
<DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="21" format="appended" RangeMin="45" RangeMax="103" offset="140" />
<DataArray type="Float64" Name="sigma_ip" NumberOfComponents="6" NumberOfTuples="75" format="appended" RangeMin="0" RangeMax="4550074.7896" offset="180" />
</FieldData>
<Piece NumberOfPoints="12" NumberOfCells="4" >
<PointData>
<DataArray type="Float64" Name="MaterialForces" NumberOfComponents="3" format="appended" RangeMin="20.391152381" RangeMax="1421.1205373" offset="4992" />
<DataArray type="Float64" Name="NodalForces" NumberOfComponents="3" format="appended" RangeMin="3.4798233402e-06" RangeMax="1377780.6868" offset="5388" />
<DataArray type="Float64" Name="displacement" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="0.0011215479269" offset="5784" />
<DataArray type="Float64" Name="epsilon" NumberOfComponents="6" format="appended" RangeMin="8.7590842414e-05" RangeMax="0.00077226285884" offset="6180" />
<DataArray type="Float64" Name="sigma" NumberOfComponents="6" format="appended" RangeMin="774089.85127" RangeMax="8538797.1856" offset="6960" />
</PointData>
<CellData>
<DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0" RangeMax="3" offset="7740" />
<DataArray type="Float64" Name="principal_stress_values" NumberOfComponents="3" format="appended" RangeMin="746876.71404" RangeMax="8563642.8742" offset="7772" />
<DataArray type="Float64" Name="principal_stress_vector_1" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="7912" />
<DataArray type="Float64" Name="principal_stress_vector_2" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="8052" />
<DataArray type="Float64" Name="principal_stress_vector_3" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="8192" />
</CellData>
<Points>
<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="2.4494897428" offset="8332" />
</Points>
<Cells>
<DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="8728" />
<DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="8984" />
<DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="9040" />
</Cells>
</Piece>
</UnstructuredGrid>
<AppendedData encoding="base64">
_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EAAAAAAAAAAAAAAAAQAAAAIAAAADAAAAYAAAAAAAAADY0IAu3KsnQbyUzFBW/j9B5S29B++IX0HnqVO6+wIQwS18G2MffPhA8Y4UIbgeJUG9IVumlGkwwekVmz6QLvXACp5//7+7MEGusqq4i8pFwQ0maOgb1TVBtxef4yruR0E=YAAAAAAAAAAuURv2QbjkP7y6T6TkYui/2EYwIWWpiL1HI5Y2S4Dbv+Vx/nx8Fuy/aiPo/Lwgyz+t5I0ZOirkv/y6YkGzY+U/eXmNSKJJ2T8a/rXXpc3mv5SCZaGB2eW/2xYR9YqhxD8=YAAAAAAAAAC9uk+k5GLoPy5RG/ZBuOQ/h4YRKEvBlz30oUii62DovxoMR7gs+8w/l3H+Xd9r47/umqnjqJbmv+FYDhJ6kOa/ONk744wssT/KhcrtHv7NvwJhxFEar9w/IYJw+Bqb6z8=YAAAAAAAAADlndQO5DyEPUo6mso4x5g9AAAAAAAA8L/JlD3R3wXfP+dXDXY9Btu/DVRZePOC6L/vrHkCe7PUv4lwcIcbSs4/puwyXFJR7b9OrjkWNSnlv2P5kX+nduI/SwvMBwmu3r8=IAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAEAAAAAAAADgPwAAAAAAAPC/AAAAAAAA4D8=uAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAKAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAEAAAAAAAAAAEAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAACAAAAAAAAAAMAAAAAAAAABQAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAAEgAAAAAAAAAXAAAAAAAAAA==BAAAAAAAAAAKDA0O
</AppendedData>
</VTKFile>
<?xml version="1.0"?>
<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
<UnstructuredGrid>
<FieldData>
<DataArray type="Int8" Name="IntegrationPointMetaData" NumberOfTuples="97" format="appended" RangeMin="34" RangeMax="125" offset="0" />
<DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="21" format="appended" RangeMin="45" RangeMax="103" offset="140" />
<DataArray type="Float64" Name="sigma_ip" NumberOfComponents="6" NumberOfTuples="75" format="appended" RangeMin="0" RangeMax="8538797.1856" offset="180" />
</FieldData>
<Piece NumberOfPoints="12" NumberOfCells="4" >
<PointData>
<DataArray type="Float64" Name="MaterialForces" NumberOfComponents="3" format="appended" RangeMin="20.391152381" RangeMax="1421.1205373" offset="4992" />
<DataArray type="Float64" Name="NodalForces" NumberOfComponents="3" format="appended" RangeMin="3.4798233402e-06" RangeMax="1377780.6868" offset="5388" />
<DataArray type="Float64" Name="displacement" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="0.0011215479269" offset="5784" />
<DataArray type="Float64" Name="epsilon" NumberOfComponents="6" format="appended" RangeMin="8.7590842414e-05" RangeMax="0.00077226285884" offset="6180" />
<DataArray type="Float64" Name="sigma" NumberOfComponents="6" format="appended" RangeMin="774089.85127" RangeMax="8538797.1856" offset="6960" />
</PointData>
<CellData>
<DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0" RangeMax="3" offset="7740" />
<DataArray type="Float64" Name="principal_stress_values" NumberOfComponents="3" format="appended" RangeMin="746876.71404" RangeMax="8563642.8742" offset="7772" />
<DataArray type="Float64" Name="principal_stress_vector_1" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="7912" />
<DataArray type="Float64" Name="principal_stress_vector_2" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="8052" />
<DataArray type="Float64" Name="principal_stress_vector_3" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="8192" />
</CellData>
<Points>
<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="2.4494897428" offset="8332" />
</Points>
<Cells>
<DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="8728" />
<DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="8984" />
<DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="9040" />
</Cells>
</Piece>
</UnstructuredGrid>
<AppendedData encoding="base64">
_YQAAAAAAAAB7ImludGVncmF0aW9uX3BvaW50X2FycmF5cyI6W3siaW50ZWdyYXRpb25fb3JkZXIiOjMsIm5hbWUiOiJzaWdtYV9pcCIsIm51bWJlcl9vZl9jb21wb25lbnRzIjo2fV19FQAAAAAAAAA2LjQuMy0xNzEtZzE3NGYzY2U1OTM=EA4AAAAAAAAfdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4fdK/m2oo3QQaJXYFpSTRB6C29B++IX0EOKAmtqOQjQd9QIKJjtAO/q1O4aLe96L4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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EAAAAAAAAAAAAAAAAQAAAAIAAAADAAAAYAAAAAAAAADY0IAu3KsnQbyUzFBW/j9B5S29B++IX0HnqVO6+wIQwS18G2MffPhA8Y4UIbgeJUG9IVumlGkwwekVmz6QLvXACp5//7+7MEGusqq4i8pFwQ0maOgb1TVBtxef4yruR0E=YAAAAAAAAAAuURv2QbjkP7y6T6TkYui/2EYwIWWpiL1HI5Y2S4Dbv+Vx/nx8Fuy/aiPo/Lwgyz+t5I0ZOirkv/y6YkGzY+U/eXmNSKJJ2T8a/rXXpc3mv5SCZaGB2eW/2xYR9YqhxD8=YAAAAAAAAAC9uk+k5GLoPy5RG/ZBuOQ/h4YRKEvBlz30oUii62DovxoMR7gs+8w/l3H+Xd9r47/umqnjqJbmv+FYDhJ6kOa/ONk744wssT/KhcrtHv7NvwJhxFEar9w/IYJw+Bqb6z8=YAAAAAAAAADlndQO5DyEPUo6mso4x5g9AAAAAAAA8L/JlD3R3wXfP+dXDXY9Btu/DVRZePOC6L/vrHkCe7PUv4lwcIcbSs4/puwyXFJR7b9OrjkWNSnlv2P5kX+nduI/SwvMBwmu3r8=IAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAEAAAAAAAADgPwAAAAAAAPC/AAAAAAAA4D8=uAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAKAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAEAAAAAAAAAAEAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAACAAAAAAAAAAMAAAAAAAAABQAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAAEgAAAAAAAAAXAAAAAAAAAA==BAAAAAAAAAAKDA0O
</AppendedData>
</VTKFile>
/**
* \file
* \copyright
* Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*
* Created on July 10, 2023, 1:32 PM
*/
#include <gtest/gtest.h>
#include <algorithm>
#include <string>
#include <vector>
#include "InfoLib/TestInfo.h"
#include "MeshLib/Elements/Element.h"
#include "MeshLib/IO/VtkIO/VtuInterface.h"
#include "MeshLib/IO/readMeshFromFile.h"
#include "MeshLib/Mesh.h"
#include "MeshToolsLib/ZeroMeshFieldDataByMaterialIDs.h"
// Note: the two meshes are the same except the values of double type field
// data.
bool compareMeshDoubleTypeIpData(MeshLib::Mesh const& mesh_a,
MeshLib::Mesh const& mesh_b)
{
MeshLib::Properties const& properties_a = mesh_a.getProperties();
MeshLib::Properties const& properties_b = mesh_b.getProperties();
for (auto const& [name, property] : properties_a)
{
auto const item_type = property->getMeshItemType();
if (item_type != MeshLib::MeshItemType::IntegrationPoint)
{
continue;
}
// For special field data such as OGS_VERSION,
// IntegrationPointMetaData,
// etc., which are not "real" integration points:
if (property->getPropertyName().find("_ip") == std::string::npos)
{
continue;
}
if (properties_a.template hasPropertyVector<double>(
name, MeshLib::MeshItemType::IntegrationPoint))
{
auto const& pv_a =
*properties_a.template getPropertyVector<double>(name);
auto const& pv_b =
*properties_b.template getPropertyVector<double>(name);
if (!std::equal(pv_a.begin(), pv_a.end(), pv_b.begin()))
{
return false;
}
}
}
return true;
}
void compareMeshes(std::string const& mesh_file_name,
std::string const& ref_mesh_file_name,
std::vector<int> const& material_ids)
{
auto mesh = std::unique_ptr<MeshLib::Mesh>(
MeshLib::IO::readMeshFromFile(mesh_file_name));
MeshToolsLib::zeroMeshFieldDataByMaterialIDs(*mesh, material_ids);
auto const ref_mesh = std::unique_ptr<MeshLib::Mesh>(
MeshLib::IO::readMeshFromFile(ref_mesh_file_name));
ASSERT_TRUE(compareMeshDoubleTypeIpData(*mesh, *ref_mesh));
}
TEST(MeshLib, ZeroMeshFieldDataByMaterialIDs)
{
// 2D
{
std::string const mesh_file_name =
TestInfoLib::TestInfo::data_path +
"/ThermoMechanics/CreepBGRa/CreepAfterExcavation/"
"CreepAfterExcavation_ts_61_t_4320000.000000.vtu";
std::string ref_mesh_file_name =
TestInfoLib::TestInfo::data_path +
"/MeshLib/2D_mesh_with_reset_sigma_ip.vtu";
std::vector<int> const material_ids = {1};
compareMeshes(mesh_file_name, ref_mesh_file_name, material_ids);
}
// 3D
{
std::string const mesh_file_name =
TestInfoLib::TestInfo::data_path +
"/NodePartitionedMesh/WithIntegrationPointStress/MixedElements/"
"mesh_with_3D_different_elements_sigma_ip.vtu";
// reset the elements with materialIDs 0, 2:
{
std::vector<int> const material_ids = {0, 2};
std::string ref_mesh_file_name =
TestInfoLib::TestInfo::data_path +
"/MeshLib/3D_mesh_with_reset_sigma_ip_1.vtu";
compareMeshes(mesh_file_name, ref_mesh_file_name, material_ids);
}
// reset the elements with materialIDs 1, 3:
{
std::vector<int> const material_ids = {1, 3};
std::string ref_mesh_file_name =
TestInfoLib::TestInfo::data_path +
"/MeshLib/3D_mesh_with_reset_sigma_ip_2.vtu";
compareMeshes(mesh_file_name, ref_mesh_file_name, material_ids);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment