diff --git a/src/language/modules/CoreModule.cpp b/src/language/modules/CoreModule.cpp
index 47e0183256413b7579165b26364dff68f0614a74..5b5753eb8b3952d6d9c08c34ccc843f4bece2dc9 100644
--- a/src/language/modules/CoreModule.cpp
+++ b/src/language/modules/CoreModule.cpp
@@ -32,6 +32,7 @@
 #include <language/utils/UnaryOperatorRegisterForRnxn.hpp>
 #include <language/utils/UnaryOperatorRegisterForZ.hpp>
 #include <utils/Messenger.hpp>
+#include <utils/PartitionerOptions.hpp>
 #include <utils/PugsUtils.hpp>
 #include <utils/RandomEngine.hpp>
 #include <utils/Stop.hpp>
@@ -94,6 +95,27 @@ CoreModule::CoreModule() : BuiltinModule(true)
 
                                                  ));
 
+  this->_addBuiltinFunction("setPartitionerLibrary", std::function(
+
+                                                       [](const std::string& library_name) -> void {
+                                                         PartitionerOptions::default_options.library() =
+                                                           getPartitionerEnumFromName<PartitionerLibrary>(library_name);
+                                                       }
+
+                                                       ));
+
+  this->_addBuiltinFunction("getPartitionerOptions", std::function(
+
+                                                       []() -> std::string {
+                                                         std::ostringstream os;
+                                                         os << rang::fgB::yellow << "Partitioner options"
+                                                            << rang::style::reset << '\n';
+                                                         os << PartitionerOptions::default_options;
+                                                         return os.str();
+                                                       }
+
+                                                       ));
+
   this->_addTypeDescriptor(ast_node_data_type_from<std::shared_ptr<const OStream>>);
 
   this->_addBuiltinFunction("ofstream", std::function(
diff --git a/src/utils/PartitionerOptions.hpp b/src/utils/PartitionerOptions.hpp
index 8ce9263b02168f497ea29decfd304865dd8bdab3..e4157f7659cac94ef8b4c7cd02a54d289156d4a8 100644
--- a/src/utils/PartitionerOptions.hpp
+++ b/src/utils/PartitionerOptions.hpp
@@ -32,6 +32,20 @@ name(const PartitionerLibrary library)
   throw UnexpectedError("Linear system library name is not defined!");
 }
 
+template <typename PartitionerEnumType>
+inline PartitionerEnumType
+getPartitionerEnumFromName(const std::string& enum_name)
+{
+  using BaseT = std::underlying_type_t<PartitionerEnumType>;
+  for (BaseT enum_value = static_cast<BaseT>(PartitionerEnumType::PT__begin);
+       enum_value < static_cast<BaseT>(PartitionerEnumType::PT__end); ++enum_value) {
+    if (name(PartitionerEnumType{enum_value}) == enum_name) {
+      return PartitionerEnumType{enum_value};
+    }
+  }
+  throw NormalError(std::string{"could not find '"} + enum_name + "' associate type!");
+}
+
 class PartitionerOptions
 {
  private: