    

 ## On this page

  

 

 # MeshQueryTest

 Last update: 16.07.2025 

Examples showing how to access mesh data in an RST file.

\#ifdef EXAMPLE

\#include "Example.h"

\#else

\#include &lt;gtest/gtest.h&gt;

\#endif

 

\#include &lt;math.h&gt;

\#include "helpers/dpf\_meshQuery.h"

\#include "helpers/dpf\_model.h"

\#include "Plugin.h"

 

using namespace [ansys::dpf](namespaceansys_1_1dpf.xhtml);

 

TEST(MeshQuery, GetSolidElements)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 <a id="_a0" name="_a0"></a>[ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.<a id="a1" name="a1"></a>[CreateMeshQuery](classansys_1_1dpf_1_1Model.xhtml#aa7b9083700bfa4fe6fae6b08c878eebc)();

 

 std::vector&lt;int&gt; ids;

 <a id="_a2" name="_a2"></a>[ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetSolidElements(error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 81);

}

 

TEST(MeshQuery, GetShellElements)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetShellElements(error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 459);

}

 

TEST(MeshQuery, GetBeamElements)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetBeamElements(error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 45);

}

 

TEST(MeshQuery, GetSkinElements)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetSkinElements(error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 18);

}

 

TEST(MeshQuery, GetPointElements)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetPointElements(error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 3);

}

 

TEST(MeshQuery, GetNodesByNamedSelection)

{

 std::string fileName("../../../testfiles/Cube.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto nodes = meshQuery.GetNodesByNamedSelection("WHOLE\_THING", error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 27);

 

 nodes = meshQuery.GetNodesByNamedSelection("TOP", error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 9);

}

 

TEST(MeshQuery, GetNodesByMaterialId)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto nodes = meshQuery.GetNodesByMaterialId(1, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 180);

 

 nodes = meshQuery.GetNodesByMaterialId(4, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 16);

 

 nodes = meshQuery.GetNodesByMaterialId(7, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 544);

}

 

TEST(MeshQuery, GetNodesByElementType)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto nodes = meshQuery.GetNodesByElementType(elements::line2, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 48);

 

 nodes = meshQuery.GetNodesByElementType(elements::point1, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 1);

 

 nodes = meshQuery.GetNodesByElementType(elements::quad4, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 540);

 

 nodes = meshQuery.GetNodesByElementType(elements::quad8, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 74);

 

 nodes = meshQuery.GetNodesByElementType(elements::hex20, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 544);

}

TEST(MeshQuery, GetNodesBySolverElementType)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 //- 3 - D 20 - Node Structural Solid

 auto nodes = meshQuery.GetNodesBySolverElementType(186, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 544);

 

 //- 3 - D 2 - Node Beam

 nodes = meshQuery.GetNodesBySolverElementType(188, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 48);

 

 //- 3 - D Target Segment

 nodes = meshQuery.GetNodesBySolverElementType(170, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 74);

 

 //- 3 - D 8 - Node Surface - to - Surface Contact

 nodes = meshQuery.GetNodesBySolverElementType(174, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 74);

 

 //- 4 - Node Structural Shell

 nodes = meshQuery.GetNodesBySolverElementType(181, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 540);

 

 //- Follower Load

 nodes = meshQuery.GetNodesBySolverElementType(201, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 1);

}

 

TEST(MeshQuery, GetElementsByNamedSelection)

{

 std::string fileName("../../../testfiles/Cube.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetElementsByNamedSelection("WHOLE\_THING", false, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 8);

 

 elements = meshQuery.GetElementsByNamedSelection("WHOLE\_THING", true, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 8);

 

 elements = meshQuery.GetElementsByNamedSelection("TOP", true, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 4);

 

 elements = meshQuery.GetElementsByNamedSelection("TOP", false, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 0);

}

 

TEST(MeshQuery, GetElementsByMaterialId)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto nodes = meshQuery.GetElementsByMaterialId(1, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 153);

 

 nodes = meshQuery.GetElementsByMaterialId(4, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 15);

 

 nodes = meshQuery.GetElementsByMaterialId(7, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 81);

}

 

TEST(MeshQuery, GetElementsByElementType)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 auto elements = meshQuery.GetElementsByElementType(elements::line2, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 45);

 

 elements = meshQuery.GetElementsByElementType(elements::point1, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 3);

 

 elements = meshQuery.GetElementsByElementType(elements::quad4, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 465);

 

 elements = meshQuery.GetElementsByElementType(elements::quad8, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 30);

 

 elements = meshQuery.GetElementsByElementType(elements::hex20, error);

 elements.getIds(ids);

 EXPECT_EQ(ids.size(), 81);

}

 

TEST(MeshQuery, GetElementsBySolverElementType)

{

 std::string fileName("../../../testfiles/mapdl\_files/SolidSurfaceBeam.rst");

 [ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml) model(fileName);

 

 MeshQuery meshQuery = model.CreateMeshQuery();

 

 std::vector&lt;int&gt; ids;

 [ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml) error;

 

 //- 3 - D 20 - Node Structural Solid

 auto nodes = meshQuery.GetElementsBySolverElementType(186, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 81);

 

 //- 3 - D 2 - Node Beam

 nodes = meshQuery.GetElementsBySolverElementType(188, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 45);

 

 //- 3 - D Target Segment

 nodes = meshQuery.GetElementsBySolverElementType(170, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 18);

 

 //- 3 - D 8 - Node Surface - to - Surface Contact

 nodes = meshQuery.GetElementsBySolverElementType(174, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 18);

 

 //- 4 - Node Structural Shell

 nodes = meshQuery.GetElementsBySolverElementType(181, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 459);

 

 //- Follower Load

 nodes = meshQuery.GetElementsBySolverElementType(201, error);

 nodes.getIds(ids);

 EXPECT_EQ(ids.size(), 3);

}

[ansys::dpf::DpfError](classansys_1_1dpf_1_1DpfError.xhtml)

**Definition:** dpf_api_base.h:1072



[ansys::dpf::Model](classansys_1_1dpf_1_1Model.xhtml)

**Definition:** dpf_model.h:14



[ansys::dpf::Model::CreateMeshQuery](classansys_1_1dpf_1_1Model.xhtml#aa7b9083700bfa4fe6fae6b08c878eebc)

MeshQuery CreateMeshQuery()

**Definition:** dpf_model.h:70



[ansys::dpf](namespaceansys_1_1dpf.xhtml)

This is the main namespace of the HGP API.

**Definition:** dpf_model.h:11