ISO 9001 · 14001 · 45001

An Advanced Water Treatment Equipment Company

Scraper mechanisms for circular primary and secondary clarifiers, with bridge and drive arrangements matched to tank size.

Clarifier mechanisms for sewage, water and effluent treatment

A clarifier separates suspended solids from water by gravity. The water is slowed down in a large tank so that solids settle to the floor, where a scraper mechanism collects them, while the clear water leaves over the weir at the top.
Adroit builds clarifier mechanisms for primary and secondary clarifiers in sewage treatment plants, water treatment plants and industrial ETPs. Each is designed around the tank diameter, depth, hydraulic load and sludge characteristics of the project.

Primary and secondary clarifiers

Application

In a sewage treatment plant, the primary clarifier removes settleable solids from screened, degritted sewage before biological treatment, reducing the load on the aeration system. The secondary clarifier follows the biological process and separates the activated sludge from the treated water; part of that sludge is returned to the aeration tank and the rest is wasted to the sludge line.
Where chemical coagulation is needed, a clariflocculator is used instead, because it adds a flocculation zone in the centre of the tank.

How a clarifier works

Operation

Water enters at the centre through a feed well that spreads the flow and slows it down. As it moves slowly outwards, solids settle to the floor. Clear water flows over the peripheral weir into the launder.
The bridge rotates slowly, driven from the centre or at the periphery. Scraper blades attached to it sweep the settled sludge along the sloping floor to the central sludge hopper, from where it is withdrawn. A surface skimmer can be added to push floating scum into a scum box.

Where clarifiers are used

Application areas

Primary clarification in STPs

Removes settleable solids before biological treatment.

Secondary clarification in STPs

Separates activated sludge from treated effluent.

Water treatment plants

Settling of raw water solids where flocculation is not required.

Industrial effluent treatment

Solid–liquid separation in ETPs and CETPs.

Why choose Adroit's clarifier mechanism

Features & advantages

Designed for your process

Mechanism designed around surface loading, solids load and sludge characteristics.

Continuous sludge collection

Scrapers move settled sludge to the hopper as the bridge turns.

Drive to suit tank size

Central or peripheral drive; full or half bridge.

High-torque drive with overload protection

Protects the mechanism if sludge builds up.

Scum removal option

Surface skimmer and scum box where required.

Clarifier specifications

Dimensions & manufacturing

Primary / secondary

Clarifier duty

Full bridge / half bridge

Bridge type

Central or peripheral

Drive

Mild steel (painted) / SS 304 / SS 316

Material of construction

Flow, surface loading rate, solids load, sludge characteristics, tank geometry

Design inputs

Frequently asked questions

FAQ

Brochures, datasheets & media

Downloads

Documents

files

No documents are available for this product.

Photos

photos

No media available for this product.

Videos

videos

No videos are available for this product.

Explore more solutions

Related technologies

Chain Flight Sludge Scraper

Clarification & Separation

Continuous sludge and scum collection for rectangular settling tanks, driven slowly and steadily by heavy-duty chains.

View product

Grit Mechanism (Detritor)

Clarification & Separation

Square detritor with rotating scraper and reciprocating rake classifier that settles, collects and washes grit before it can wear out pumps and fill up tanks.

View product

Clariflocculator

Clarification & Separation

Flocculation and clarification in one circular tank, designed to CPHEEO guidelines, in full bridge, half bridge, central and peripheral drive versions up to 60 m diameter.

View product

Need fine screening sized for your inlet works?

Send us your flow rate, channel dimensions and the fine-solids you need to capture — our engineers will recommend the right Stepflow configuration.

    Enquire about Clarifier

    Product enquiry

    Tell us about your requirement and we’ll respond with specifications, references and pricing.

Request a quotation

Fields marked * are required. We typically respond within one business day.

(() => {
  if (window.adroitEnquiryButtonsReady) return;

  window.adroitEnquiryButtonsReady = true;

  const rootSelector = ".adroit-contact-form";

  const buttonSelector = [
    "#wsf-1-field-38",
    "#wsf-1-field-39",
  ].join(", ");

  const values = {
    "wsf-1-field-38": "Product Enquiry",
    "wsf-1-field-39": "Service Request",
  };

  function getFormRoot(element) {
    return element.closest(rootSelector);
  }

  function getHiddenField(form) {
    let field = form.querySelector(
      'input[data-enquiry-type-field="true"]'
    );

    if (!field) {
      field = document.createElement("input");
      field.type = "hidden";
      field.name = "inquiry_type";
      field.dataset.enquiryTypeField = "true";

      form.appendChild(field);
    }

    return field;
  }

  function getErrorRow(formRoot) {
    let errorRow = formRoot.querySelector(
      '[data-enquiry-error-row="true"]'
    );

    if (errorRow) return errorRow;

    const fieldsGrid = formRoot.querySelector(".wsf-fields");
    const firstField = formRoot.querySelector(
      "#wsf-1-field-wrapper-20"
    );

    if (!fieldsGrid || !firstField) return null;

    errorRow = document.createElement("div");
    errorRow.className =
      "wsf-extra-small-12 wsf-tile wsf-field-wrapper";
    errorRow.dataset.enquiryErrorRow = "true";
    errorRow.hidden = true;

    const errorMessage = document.createElement("div");
    errorMessage.className = "wsf-invalid-feedback";
    errorMessage.textContent = "This field is required.";
    errorMessage.setAttribute("aria-live", "polite");

    errorRow.appendChild(errorMessage);

    fieldsGrid.insertBefore(errorRow, firstField);

    return errorRow;
  }

  function showError(formRoot) {
    const errorRow = getErrorRow(formRoot);

    if (!errorRow) return;

    errorRow.hidden = false;

    const errorMessage = errorRow.querySelector(
      ".wsf-invalid-feedback"
    );

    if (errorMessage) {
      errorMessage.style.display = "block";
    }

    formRoot.querySelectorAll(buttonSelector).forEach((button) => {
      button.classList.add("is-invalid");
      button.setAttribute("aria-invalid", "true");
    });
  }

  function clearError(formRoot) {
    const errorRow = formRoot.querySelector(
      '[data-enquiry-error-row="true"]'
    );

    if (errorRow) {
      errorRow.hidden = true;
    }

    formRoot.querySelectorAll(buttonSelector).forEach((button) => {
      button.classList.remove("is-invalid");
      button.removeAttribute("aria-invalid");
    });
  }

  function hasSelection(formRoot) {
    return Boolean(
      formRoot.querySelector(
        "#wsf-1-field-38.is-selected, #wsf-1-field-39.is-selected"
      )
    );
  }

  function validateEnquiry(formRoot) {
    if (hasSelection(formRoot)) {
      clearError(formRoot);
      return true;
    }

    showError(formRoot);
    return false;
  }

  function selectButton(button) {
    const formRoot = getFormRoot(button);
    const form = button.closest("form");

    if (!formRoot || !form) return;

    formRoot.querySelectorAll(buttonSelector).forEach((item) => {
      const isSelected = item === button;

      item.classList.toggle("is-selected", isSelected);
      item.setAttribute("aria-pressed", String(isSelected));
    });

    getHiddenField(form).value = values[button.id] || "";

    clearError(formRoot);
  }

  /*
   * Window capture runs before WS Form's button click handler.
   * This stops WS Form AJAX submission only when enquiry type is missing.
   */
  window.addEventListener(
    "click",
    (event) => {
      const enquiryButton = event.target.closest(
        `${rootSelector} #wsf-1-field-38, ${rootSelector} #wsf-1-field-39`
      );

      if (enquiryButton) {
        selectButton(enquiryButton);
        return;
      }

      const submitButton = event.target.closest(
        `${rootSelector} button[type="submit"], ${rootSelector} input[type="submit"]`
      );

      if (!submitButton) return;

      const formRoot = getFormRoot(submitButton);

      if (!formRoot) return;

      if (validateEnquiry(formRoot)) return;

      event.preventDefault();
      event.stopImmediatePropagation();
    },
    true
  );

  /*
   * Covers pressing Enter in a form field.
   */
  window.addEventListener(
    "submit",
    (event) => {
      const form = event.target;

      if (!(form instanceof HTMLFormElement)) return;

      const formRoot = getFormRoot(form);

      if (!formRoot) return;

      if (validateEnquiry(formRoot)) return;

      event.preventDefault();
      event.stopImmediatePropagation();
    },
    true
  );

  function initialize() {
    document.querySelectorAll(rootSelector).forEach((formRoot) => {
      const form = formRoot.querySelector("form");

      formRoot.querySelectorAll(buttonSelector).forEach((button) => {
        button.classList.remove("is-selected", "is-invalid");
        button.removeAttribute("aria-invalid");
        button.setAttribute("aria-pressed", "false");
      });

      clearError(formRoot);

      if (form) {
        getHiddenField(form).value = "";
      }
    });
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initialize, {
      once: true,
    });
  } else {
    initialize();
  }
})();