diff --git a/src/domain/Domain.cpp b/src/domain/Domain.cpp
index 06d9a491667170a3f9c01b47b11335b354e79876..af79983bcc566fc38aa342fb8cc4ab034e3ab686 100644
--- a/src/domain/Domain.cpp
+++ b/src/domain/Domain.cpp
@@ -96,6 +96,14 @@ namespace gmshfem::domain
     }
   }
 
+  Domain::Domain(const std::vector< std::pair< int, int > > &dimTagEntities) :
+    GeometricObject()
+  {
+    for(auto i = 0ULL; i < dimTagEntities.size(); ++i) {
+      _addEntity(dimTagEntities[i].first, dimTagEntities[i].second);
+    }
+  }
+
   Domain::Domain(const Domain &other) :
     GeometricObject(other)
   {
diff --git a/src/domain/Domain.h b/src/domain/Domain.h
index 9ff7b92014cd6dfc6ab31c83aa80aac6cc4eee94..d56ceae16fcf2198522373f6ea5f53267e19bdb8 100644
--- a/src/domain/Domain.h
+++ b/src/domain/Domain.h
@@ -26,6 +26,7 @@ namespace gmshfem::domain
     Domain(const std::string &name);
     Domain(const std::string &name, const JacobiansModificator &jacMod);
     Domain(const Domain &other);
+    Domain(const std::vector< std::pair< int, int > > &dimTagEntities);
     Domain(Domain &&other);
     virtual ~Domain();