diff --git a/tests/regression_tests/external_moab/__init__.py b/tests/regression_tests/external_moab/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/regression_tests/external_moab/inputs_true.dat b/tests/regression_tests/external_moab/inputs_true.dat
new file mode 100644
index 000000000..780811635
--- /dev/null
+++ b/tests/regression_tests/external_moab/inputs_true.dat
@@ -0,0 +1,79 @@
+
+
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ fixed source
+ 100
+ 10
+
+
+
+
+ 0.0 1.0
+
+
+ 0.0 1.0
+
+
+
+
+ 15000000.0 1.0
+
+
+
+
+
+
+ test_mesh_tets.h5m
+
+
+ 1
+
+
+ 1
+ flux
+ tracklength
+
+
diff --git a/tests/regression_tests/external_moab/main.cpp b/tests/regression_tests/external_moab/main.cpp
new file mode 100644
index 000000000..ddcd29992
--- /dev/null
+++ b/tests/regression_tests/external_moab/main.cpp
@@ -0,0 +1,50 @@
+#include "openmc/capi.h"
+#include "openmc/error.h"
+#include "openmc/mesh.h"
+#include
+#include "moab/Core.hpp"
+
+int main(int argc, char * argv[]){
+
+ using namespace openmc;
+ int openmc_err;
+
+ // Create MOAB interface
+ std::shared_ptr moabPtrLocal =
+ std::make_shared();
+
+ // Load unstructured mesh file
+ std::string filename = "test_mesh_tets.h5m";
+ moab::ErrorCode rval = moabPtrLocal->load_file(filename.c_str());
+ if (rval != moab::MB_SUCCESS) {
+ fatal_error("Failed to load the unstructured mesh file: " + filename);
+ }
+ else{
+ std::cout<<"Loaded external mesh from file "<