diff --git a/Framework/Kernel/inc/MantidKernel/Unit.h b/Framework/Kernel/inc/MantidKernel/Unit.h
index a5f10d184ecbf4e7a58aa4fcc5f0537676143fb8..b161178c43f65d2a2c43a2249dc87366ba846c11 100644
--- a/Framework/Kernel/inc/MantidKernel/Unit.h
+++ b/Framework/Kernel/inc/MantidKernel/Unit.h
@@ -662,6 +662,27 @@ private:
   UnitLabel m_label;
 };
 
+//=================================================================================================
+/// Temperature in kelvin
+class MANTID_KERNEL_DLL AtomicDistance : public Empty {
+public:
+  AtomicDistance();
+  const std::string unitID() const override; ///< "AtomicDistance"
+  const std::string caption() const override { return "Atomic Distance"; }
+  const UnitLabel label() const override;
+
+  void init() override;
+  Unit *clone() const override;
+
+  double singleToTOF(const double x) const override;
+  double singleFromTOF(const double tof) const override;
+  double conversionTOFMin() const override;
+  double conversionTOFMax() const override;
+
+private:
+  UnitLabel m_label;
+};
+
 //=================================================================================================
 
 MANTID_KERNEL_DLL double timeConversionValue(std::string input_unit,
diff --git a/Framework/Kernel/src/Unit.cpp b/Framework/Kernel/src/Unit.cpp
index 4aef9211ee611000128b412bc31725c274f0097b..e8ec4ea8047cdb2e42c29e7319c0ce2e823d4bc9 100644
--- a/Framework/Kernel/src/Unit.cpp
+++ b/Framework/Kernel/src/Unit.cpp
@@ -1253,6 +1253,42 @@ double Temperature::conversionTOFMax() const {
 
 Unit *Temperature::clone() const { return new Temperature(*this); }
 
+// =====================================================================================================
+/* Atomic Distance in units of Angstroms
+ * =====================================================================================================
+ *
+ * The distance from the center of an atom in Angstroms
+ */
+DECLARE_UNIT(AtomicDistance)
+
+AtomicDistance::AtomicDistance() : Empty(), m_label("Atomic Distance") {}
+
+const UnitLabel AtomicDistance::label() const { return Symbol::Angstrom; }
+
+void AtomicDistance::init() {}
+
+Unit *AtomicDistance::clone() const { return new AtomicDistance(*this); }
+
+double AtomicDistance::singleToTOF(const double x) const {
+  UNUSED_ARG(x);
+  throw std::runtime_error(
+      "Atomic Distance is not allowed to be converted to TOF. ");
+}
+
+double AtomicDistance::singleFromTOF(const double tof) const {
+  UNUSED_ARG(tof);
+  throw std::runtime_error(
+      "Atomic Distance is not allowed to be converted from TOF. ");
+}
+
+double AtomicDistance::conversionTOFMin() const {
+  return std::numeric_limits<double>::quiet_NaN();
+}
+
+double AtomicDistance::conversionTOFMax() const {
+  return std::numeric_limits<double>::quiet_NaN();
+}
+
 // ================================================================================
 
 double timeConversionValue(std::string input_unit, std::string output_unit) {