diff --git a/src/field/SubdomainField.cpp b/src/field/SubdomainField.cpp
index 7ff4d1d51abbca52914ce5750bc090fb48aa3799..299bfd11a99df44a41f4642e0b09abb7cec9b6e2 100644
--- a/src/field/SubdomainField.cpp
+++ b/src/field/SubdomainField.cpp
@@ -31,6 +31,12 @@ namespace gmshddm
       }
     }
 
+    template< class T_Scalar, gmshfem::field::Form T_Form >
+    SubdomainField< T_Scalar, T_Form >::SubdomainField(const std::string &name, const std::vector< gmshfem::field::Field< T_Scalar, T_Form > > &fields) :
+      _name(name), _fields(fields)
+    {
+    }
+
     template< class T_Scalar, gmshfem::field::Form T_Form >
     SubdomainField< T_Scalar, T_Form >::SubdomainField(const SubdomainField< T_Scalar, T_Form > &other) :
       _name(other._name), _fields(other._fields)
diff --git a/src/field/SubdomainField.h b/src/field/SubdomainField.h
index d895bea7eb7b586801ddd116026d24e3b5c7c108..61ad4e8c117e6b9020784620a2303f3846321bd7 100644
--- a/src/field/SubdomainField.h
+++ b/src/field/SubdomainField.h
@@ -31,6 +31,7 @@ namespace gmshddm
      public:
       SubdomainField();
       SubdomainField(const std::string &name, const domain::Subdomain &domains, const gmshfem::field::FunctionSpaceOfForm< T_Form > &type, const unsigned int degree = 1);
+      SubdomainField(const std::string &name, const std::vector< gmshfem::field::Field< T_Scalar, T_Form > > &fields);
       SubdomainField(const SubdomainField< T_Scalar, T_Form > &other);
       SubdomainField(SubdomainField< T_Scalar, T_Form > &&other);
       ~SubdomainField();