diff --git a/src/UnitTests/Meshes/CMakeLists.txt b/src/UnitTests/Meshes/CMakeLists.txt
index 7ffed3066870037b9bb13fb78c3613a05911c80b..c8e71e9552977a7a4898d47a1f224fc2ceceac7a 100644
--- a/src/UnitTests/Meshes/CMakeLists.txt
+++ b/src/UnitTests/Meshes/CMakeLists.txt
@@ -59,7 +59,7 @@ find_package( ZLIB )
 find_package( tinyxml2 QUIET )
 
 if( ZLIB_FOUND AND tinyxml2_FOUND )
-   foreach( target IN ITEMS NetgenReaderTest VTKReaderTest VTUReaderTest VTIReaderTest )
+   foreach( target IN ITEMS NetgenReaderTest VTKReaderTest VTUReaderTest VTIReaderTest FPMAReaderTest )
       add_executable(${target} ${target}.cpp)
       target_compile_options(${target} PRIVATE ${CXX_TESTS_FLAGS} )
       target_link_libraries(${target} ${TESTS_LIBRARIES})
diff --git a/src/UnitTests/Meshes/FPMAReaderTest.cpp b/src/UnitTests/Meshes/FPMAReaderTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..19aca53d2f8424e42bd8fcdef2e858e2ca4bd92e
--- /dev/null
+++ b/src/UnitTests/Meshes/FPMAReaderTest.cpp
@@ -0,0 +1,51 @@
+#ifdef HAVE_GTEST
+#include <gtest/gtest.h>
+
+#include <TNL/Meshes/Readers/FPMAReader.h>
+#include <TNL/Meshes/Writers/FPMAWriter.h>
+#include <TNL/Meshes/TypeResolver/resolveMeshType.h>
+
+#include "data/loader.h"
+#include "MeshReaderTest.h"
+
+using namespace TNL::Meshes;
+
+static const char* TEST_FILE_NAME = "test_FPMAReaderTest.fpma";
+
+struct MyConfigTag {};
+
+namespace TNL {
+namespace Meshes {
+namespace BuildConfigTags {
+
+// disable all grids
+template< int Dimension, typename Real, typename Device, typename Index >
+struct GridTag< MyConfigTag, Grid< Dimension, Real, Device, Index > >{ enum { enabled = false }; };
+
+// enable meshes used in the tests
+template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Polyhedron > { enum { enabled = true }; };
+
+} // namespace BuildConfigTags
+} // namespace Meshes
+} // namespace TNL
+
+TEST( FPMAReaderTest, polyhedrons )
+{
+   using MeshType = Mesh< DefaultConfig< Topologies::Polyhedron > >;
+   const MeshType mesh = loadMeshFromFile< MeshType, Readers::FPMAReader >( "polyhedrons/Poly_simple_corrected.fpma" );
+
+   // test that the mesh was actually loaded
+   const auto vertices = mesh.template getEntitiesCount< 0 >();
+   const auto faces = mesh.template getEntitiesCount< MeshType::getMeshDimension() - 1 >();
+   const auto cells = mesh.template getEntitiesCount< MeshType::getMeshDimension() >();
+   EXPECT_EQ( vertices, 22 );
+   EXPECT_EQ( faces, 16 );
+   EXPECT_EQ( cells, 2 );
+
+   test_reader< Readers::FPMAReader, Writers::FPMAWriter >( mesh, TEST_FILE_NAME );
+   test_resolveAndLoadMesh< Writers::FPMAWriter, MyConfigTag >( mesh, TEST_FILE_NAME );
+}
+
+#endif
+
+#include "../main.h"
diff --git a/src/UnitTests/Meshes/VTKReaderTest.cpp b/src/UnitTests/Meshes/VTKReaderTest.cpp
index 5bb27c5901c3fd9fec59e6c9bb7aff65126d48ac..9d2df309bb762d2f3c0a26298165d238392f25df 100644
--- a/src/UnitTests/Meshes/VTKReaderTest.cpp
+++ b/src/UnitTests/Meshes/VTKReaderTest.cpp
@@ -26,6 +26,7 @@ struct GridTag< MyConfigTag, Grid< Dimension, Real, Device, Index > >{ enum { en
 //template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Edge > { enum { enabled = true }; };
 template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Triangle > { enum { enabled = true }; };
 template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Tetrahedron > { enum { enabled = true }; };
+template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Polygon > { enum { enabled = true }; };
 
 } // namespace BuildConfigTags
 } // namespace Meshes
@@ -123,6 +124,24 @@ TEST( VTKReaderTest, triangles_2x2x2_minimized_binary )
    test_meshfunction< Readers::VTKReader, Writers::VTKWriter >( mesh, TEST_FILE_NAME, "CellData" );
 }
 
+// ASCII data, produced by TNL writer
+TEST( VTKReaderTest, polygons )
+{
+   using MeshType = Mesh< DefaultConfig< Topologies::Polygon > >;
+   const MeshType mesh = loadMeshFromFile< MeshType, Readers::VTKReader >( "polygons/unicorn.vtk" );
+
+   // test that the mesh was actually loaded
+   const auto vertices = mesh.template getEntitiesCount< 0 >();
+   const auto cells = mesh.template getEntitiesCount< MeshType::getMeshDimension() >();
+   EXPECT_EQ( vertices, 193 );
+   EXPECT_EQ( cells, 90 );
+
+   test_reader< Readers::VTKReader, Writers::VTKWriter >( mesh, TEST_FILE_NAME );
+   test_resolveAndLoadMesh< Writers::VTKWriter, MyConfigTag >( mesh, TEST_FILE_NAME );
+   test_meshfunction< Readers::VTKReader, Writers::VTKWriter >( mesh, TEST_FILE_NAME, "PointData" );
+   test_meshfunction< Readers::VTKReader, Writers::VTKWriter >( mesh, TEST_FILE_NAME, "CellData" );
+}
+
 // TODO: test case for DataFile version 5.1: triangles_2x2x2/DataFile_version_5.1_exported_from_paraview.vtk
 #endif
 
diff --git a/src/UnitTests/Meshes/VTUReaderTest.cpp b/src/UnitTests/Meshes/VTUReaderTest.cpp
index d3d4391e8e40a7d1bd3e9318543366ba803d11d9..9a37f765db40706dbb3d2dc551555802fa406248 100644
--- a/src/UnitTests/Meshes/VTUReaderTest.cpp
+++ b/src/UnitTests/Meshes/VTUReaderTest.cpp
@@ -26,6 +26,7 @@ struct GridTag< MyConfigTag, Grid< Dimension, Real, Device, Index > >{ enum { en
 //template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Edge > { enum { enabled = true }; };
 template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Triangle > { enum { enabled = true }; };
 template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Tetrahedron > { enum { enabled = true }; };
+template<> struct MeshCellTopologyTag< MyConfigTag, Topologies::Polygon > { enum { enabled = true }; };
 
 } // namespace BuildConfigTags
 } // namespace Meshes
@@ -176,6 +177,24 @@ TEST( VTUReaderTest, triangles_2x2x2_minimized_compressed_paraview )
    test_meshfunction< Readers::VTUReader, Writers::VTUWriter >( mesh, TEST_FILE_NAME, "CellData" );
 }
 
+// ASCII data, produced by TNL writer
+TEST( VTUReaderTest, polygons )
+{
+   using MeshType = Mesh< DefaultConfig< Topologies::Polygon > >;
+   const MeshType mesh = loadMeshFromFile< MeshType, Readers::VTUReader >( "polygons/unicorn.vtu" );
+
+   // test that the mesh was actually loaded
+   const auto vertices = mesh.template getEntitiesCount< 0 >();
+   const auto cells = mesh.template getEntitiesCount< MeshType::getMeshDimension() >();
+   EXPECT_EQ( vertices, 193 );
+   EXPECT_EQ( cells, 90 );
+
+   test_reader< Readers::VTUReader, Writers::VTUWriter >( mesh, TEST_FILE_NAME );
+   test_resolveAndLoadMesh< Writers::VTUWriter, MyConfigTag >( mesh, TEST_FILE_NAME );
+   test_meshfunction< Readers::VTUReader, Writers::VTUWriter >( mesh, TEST_FILE_NAME, "PointData" );
+   test_meshfunction< Readers::VTUReader, Writers::VTUWriter >( mesh, TEST_FILE_NAME, "CellData" );
+}
+
 // TODO: test cases for the appended data block: minimized_appended_binary_compressed.vtu, minimized_appended_binary.vtu, minimized_appended_encoded_compressed.vtu, minimized_appended_encoded.vtu
 #endif
 
diff --git a/src/UnitTests/Meshes/data/polygons/unicorn.vtk b/src/UnitTests/Meshes/data/polygons/unicorn.vtk
new file mode 100644
index 0000000000000000000000000000000000000000..82753c4bcac00a78b6a8acddf945a2fd253a1422
--- /dev/null
+++ b/src/UnitTests/Meshes/data/polygons/unicorn.vtk
@@ -0,0 +1,384 @@
+# vtk DataFile Version 2.0
+TNL DATA
+ASCII
+DATASET UNSTRUCTURED_GRID
+POINTS 193 float
+2.11667 1.01667 0
+2.10954 1.13779 0
+13.9688 14.6094 0
+2.63345 1.45552 0
+1.26887 3.19081 0
+1.43175 3.33333 0
+2.78333 3.33333 0
+2.78333 5.55556 0
+0.836308 5.41737 0
+1.46135 1.37098 0
+1.03292 5.55556 0
+2.88673 3.21582 0
+4.43889 4.77639 0
+2.78676 3.33078 0
+5.5 4.00222 0
+6.9375 4.11262 0
+9.92633 1.33571 0
+7.875 4.3384 0
+4.43889 5.55556 0
+6.09444 5.55556 0
+7.75 4.71184 0
+7.75 5.55556 0
+6.09444 4.98306 0
+4.43889 7.77778 0
+9.40556 4.07056 0
+13.5566 11.0418 0
+2.78333 7.77778 0
+1.21022 7.75699 0
+2.78333 10 0
+1.23873 7.77778 0
+1.14063 9.49448 0
+13.6662 11.1442 0
+2.38265 10.2311 0
+4.44508 10 0
+2.74221 10.0306 0
+6.09444 10 0
+4.61042 10.7729 0
+4.43889 9.99719 0
+3.51321 11.3005 0
+7.75 7.77778 0
+7.75 10 0
+9.40556 7.77778 0
+6.30208 11.0147 0
+10.9112 5.60936 0
+7.49296 12.5661 0
+7.95556 15.3444 0
+8.02781 14.3744 0
+7.82873 12.2222 0
+5.65669 11.1113 0
+7.75 11.8421 0
+14.1641 17.2786 0
+9.40556 10 0
+6.09444 7.77778 0
+9.40556 5.55556 0
+9.74226 1.41409 0
+6.3125 4.53059 0
+10 0.5 0
+10 1.23625 0
+9.59459 3.33333 0
+10.4373 3.33333 0
+10.9243 7.77778 0
+11.1213 10 0
+10.8192 5.55556 0
+10.7976 2.0796 0
+9.40556 12.2222 0
+10.9739 7.74052 0
+5.21718 11.333 0
+4.5 4.60222 0
+13.7827 11.5364 0
+4.42606 10 0
+11.3097 10.125 0
+12.8766 12.2222 0
+12.6906 11.3882 0
+13.7995 12.2222 0
+13.8802 12.2387 0
+14.0757 12.0214 0
+10.7891 12.2222 0
+10.9064 3.56654 0
+14.1196 12.5 0
+8.13556 14.4444 0
+9.40556 14.4444 0
+11.0611 12.4546 0
+11.0611 14.4444 0
+9.14062 16.864 0
+9.40556 16.6667 0
+11.1182 17.836 0
+11.0611 17.6843 0
+3.95347 11.0661 0
+10.2946 18.0757 0
+11.0611 16.6667 0
+9.12947 16.8705 0
+12.7167 14.4444 0
+14.0437 15.8968 0
+13.8492 14.4444 0
+13.8708 18.5401 0
+12.7167 16.5369 0
+14.4058 13.75 0
+12.6586 16.6667 0
+12.7005 18.1691 0
+12.7167 16.7626 0
+14.85 19.85 0
+14.0889 18.85 0
+6.09444 10.3577 0
+14.45 18.85 0
+12.7167 18.1517 0
+12.7167 12.3744 0
+9.42605 3.16901 0
+1.05 1.25 0
+1.65 0.2 0
+1.3 0.4 0
+2.5 0.25 0
+2 0 0
+3.25 1.25 0
+3 0.5 0
+15 13.75 0
+14.75 15 0
+15 14.5 0
+14.25 16 0
+3.75 3 0
+3.5 2 0
+0.35 5.4 0
+0.6 3.05 0
+0.4 4 0
+0.8 2.1 0
+0.35 7.8 0
+0.3 6.8 0
+4.5 4 0
+4 4 0
+5.5 4 0
+6.3125 4 0
+6.9375 4 0
+7.875 4 0
+9.75 0.25 0
+9.25 1.25 0
+9.5 0.5 0
+11.025 2 0
+10.675 1 0
+8.75 3 0
+8.5 4 0
+12.65 11.25 0
+13.5625 11.0125 0
+13.5 11 0
+13.6875 11.0375 0
+0.7 9.65 0
+0.4 8.8 0
+2.15 10.9 0
+1 10.5 0
+13.875 11.075 0
+3.5125 11.3125 0
+3.3 11.3 0
+3.9375 11.3375 0
+4.575 11.375 0
+5.2125 11.4125 0
+6.85 12.65 0
+6.275 11.475 0
+6.7 11.5 0
+5.6375 11.4375 0
+11.35 3.5 0
+11.575 5.5625 0
+11.5 4.5 0
+11.725 7.6875 0
+7.15 14.55 0
+7 13.8 0
+7.65 15.65 0
+7.3 15.3 0
+9 17 0
+14.25 17.25 0
+14 16.5 0
+14.75 18.75 0
+9 2 0
+10.25 0.25 0
+10 0 0
+10.5 0.5 0
+11.2 2.5 0
+11.8 10.125 0
+11.8 8.75 0
+14.25 11.15 0
+11.8 11.5 0
+15 12.5 0
+14.75 11.6 0
+15 12 0
+14.5 11.2 0
+10.25 18.15 0
+10 18 0
+11.15 18.25 0
+10.5 18.3 0
+12.475 18.575 0
+11.8 18.2 0
+13.825 19.325 0
+14.5 19.7 0
+15.1 19.75 0
+15 19.5 0
+15.2 20 0
+
+
+CELLS 90 567
+6 109 108 0 1 9 107
+4 110 0 108 111
+6 112 3 1 0 110 113
+8 11 13 6 5 4 9 1 3
+5 93 2 92 95 91
+6 116 115 2 93 96 114
+4 117 92 2 115
+5 118 11 3 112 119
+6 122 121 4 5 8 120
+5 107 9 4 121 123
+5 7 10 8 5 6
+5 7 6 13 12 18
+5 26 29 27 10 7
+6 125 120 8 10 27 124
+7 126 67 12 13 11 118 127
+6 18 12 67 14 22 19
+4 128 14 67 126
+5 129 55 22 14 128
+6 55 15 20 21 19 22
+4 130 15 55 129
+5 131 17 20 15 130
+7 132 56 57 16 54 133 134
+5 135 63 16 57 136
+6 59 58 106 54 16 63
+7 137 106 58 24 17 131 138
+5 53 21 20 17 24
+4 18 23 26 7
+4 52 23 18 19
+4 52 19 21 39
+4 21 53 41 39
+5 35 33 37 23 52
+6 59 77 62 53 24 58
+6 72 25 31 68 73 71
+5 141 140 25 72 139
+4 142 31 25 140
+5 37 69 28 26 23
+6 144 124 27 29 30 143
+6 26 28 34 32 30 29
+5 87 38 34 28 69
+5 146 143 30 32 145
+4 147 68 31 142
+6 149 145 32 34 38 148
+6 102 48 66 36 33 35
+7 150 87 69 37 33 36 151
+4 39 40 35 52
+4 151 36 66 152
+4 148 38 87 150
+5 102 35 40 49 42
+4 41 51 40 39
+6 62 43 65 60 41 53
+5 64 47 49 40 51
+7 155 154 42 49 47 44 153
+5 156 48 102 42 154
+6 159 158 43 62 77 157
+4 160 65 43 158
+6 46 44 47 64 80 79
+5 162 153 44 46 161
+6 161 46 79 45 163 164
+6 80 84 83 90 45 79
+4 163 45 90 165
+4 152 66 48 156
+4 99 50 94 104
+8 167 166 50 99 97 95 92 117
+6 168 103 101 94 50 166
+4 60 61 51 41
+5 169 133 54 106 137
+4 171 170 56 132
+5 136 57 56 170 172
+6 157 77 59 63 135 173
+7 174 70 61 60 65 160 175
+5 76 64 51 61 70
+6 176 75 74 73 68 147
+9 139 72 71 105 81 76 70 174 177
+8 105 71 73 74 78 96 93 91
+6 178 78 74 75 179 180
+4 179 75 176 181
+5 82 80 64 76 81
+4 114 96 78 178
+4 89 84 80 82
+4 82 81 105 91
+5 89 86 88 83 84
+6 165 90 83 88 182 183
+6 182 88 86 85 184 185
+7 89 97 99 104 98 85 86
+5 187 184 85 98 186
+5 89 82 91 95 97
+6 186 98 104 94 101 188
+5 188 101 103 100 189
+5 191 190 100 103 168
+3 100 190 192
+
+
+CELL_TYPES 90
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
+7
diff --git a/src/UnitTests/Meshes/data/polygons/unicorn.vtu b/src/UnitTests/Meshes/data/polygons/unicorn.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..51890a98593c1415c8dbfd7b2ad0a97b426e6bfe
--- /dev/null
+++ b/src/UnitTests/Meshes/data/polygons/unicorn.vtu
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+<UnstructuredGrid>
+<Piece NumberOfPoints="193" NumberOfCells="90">
+<Points>
+<DataArray type="Float32" Name="Points" NumberOfComponents="3" format="binary">
+DAkAAAAAAAA=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
+</DataArray>
+</Points>
+<Cells>
+<DataArray type="Int32" Name="connectivity" format="binary">
+dAcAAAAAAAA=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
+</DataArray>
+<DataArray type="Int32" Name="offsets" format="binary">
+aAEAAAAAAAA=BgAAAAoAAAAQAAAAGAAAAB0AAAAjAAAAJwAAACwAAAAyAAAANwAAADwAAABBAAAARgAAAEwAAABTAAAAWQAAAF0AAABiAAAAaAAAAGwAAABxAAAAeAAAAH0AAACDAAAAigAAAI8AAACTAAAAlwAAAJsAAACfAAAApAAAAKoAAACwAAAAtQAAALkAAAC+AAAAxAAAAMoAAADPAAAA1AAAANgAAADeAAAA5AAAAOsAAADvAAAA8wAAAPcAAAD8AAAAAAEAAAYBAAALAQAAEgEAABcBAAAdAQAAIQEAACcBAAAsAQAAMgEAADgBAAA8AQAAQAEAAEQBAABMAQAAUgEAAFYBAABbAQAAXwEAAGQBAABqAQAAcQEAAHYBAAB8AQAAhQEAAI0BAACTAQAAlwEAAJwBAACgAQAApAEAAKgBAACtAQAAswEAALkBAADAAQAAxQEAAMoBAADQAQAA1QEAANoBAADdAQAA
+</DataArray>
+<DataArray type="UInt8" Name="types" format="binary">
+WgAAAAAAAAA=BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
+</DataArray>
+</Cells>
+</Piece>
+</UnstructuredGrid>
+</VTKFile>
diff --git a/src/UnitTests/Meshes/data/polyhedrons/Poly_simple_corrected.fpma b/src/UnitTests/Meshes/data/polyhedrons/Poly_simple_corrected.fpma
new file mode 100644
index 0000000000000000000000000000000000000000..ccd2ad753e5fc43bfb90711d5f3500f75d951a99
--- /dev/null
+++ b/src/UnitTests/Meshes/data/polyhedrons/Poly_simple_corrected.fpma
@@ -0,0 +1,37 @@
+# 22: number of vertices
+22
+# vertex coordinates (x,y,z)-order
+-1.25 1.1665 1.203 -1.20683 1.16951 1.20537 -1.16843 1.19337 1.17878 -1.21025 1.21901 1.15383 -1.25 1.2128 1.1567 -1.20816 1.25 1.16756 -1.25 1.25 1.18056 -1.14802 1.21553 1.21165 -1.16186 1.25 1.21385 -1.20307 1.17486 1.25 -1.25 1.18056 1.25 -1.15677 1.22115 1.25 -1.18056 1.25 1.25 -1.25 1.25 1.25 -1.09277 1.20806 1.19263 -1.07219 1.22167 1.17994 -1.07215 1.25 1.18679 -1.05697 1.21124 1.19697 -1.04607 1.21508 1.22076 -1.0214 1.25 1.22293 -1.06418 1.22115 1.25 -1.04167 1.25 1.25 
+# 16: number of faces
+16
+# the first number means the number of vertices and the rest of numbers in the same line is vertex indicies attached to the face
+5 0 1 2 3 4 
+4 4 3 5 6 
+5 5 3 2 7 8 
+4 9 1 0 10 
+5 11 7 2 1 9 
+4 8 7 11 12 
+5 13 12 11 9 10 
+5 13 10 0 4 6 
+5 13 6 5 8 12 
+5 8 7 14 15 16 
+5 16 15 17 18 19 
+6 20 18 17 14 7 11 
+3 17 15 14 
+4 21 19 18 20 
+4 21 20 11 12 
+5 12 8 16 19 21 
+# 2: number of cells
+2
+# the first number means the number of faces and the rest of numbers in the same line are face indicies attached to the cell
+9 0 1 2 3 4 5 6 7 8 
+8 9 10 11 12 13 5 14 15 
+# Additional information only, does contain topology information
+# 1: The number of special selections, here there is only one selection named by boudary_face
+1
+# boundary_face" is the name
+boundary_face
+# "3" means a boundary and "5" means 5 faces, and the last line is the face indices. You can see these faces in the figure, surrounded by green edges.
+3
+5
+6 7 8 14 15