Clariflocculator
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.
Clariflocculators designed for Indian water treatment plants
Adroit’s clariflocculator removes suspended solids and turbidity from raw water and wastewater by combining flocculation and sedimentation in a single circular tank. It has two mechanisms: a flocculator with slow-turning paddles in the central zone, and a clarifier scraper that collects settled sludge from the floor of the outer zone.
Our clariflocculators are approved makes with municipal and state agencies and are running at water treatment plants in Madhya Pradesh, Chhattisgarh and across India. Process design follows CPHEEO guidelines, with attention to velocity gradient (G), projected paddle area, paddle speed and detention time to support stable flocculation and clarification performance.

What a clariflocculator does
Application
At a water treatment plant, coagulant such as alum or PAC is dispersed into the raw water in the flash mixer. The clariflocculator takes it from there. In the flocculation zone, gentle stirring brings the tiny destabilised particles together into larger, heavier flocs. In the clarification zone around it, those flocs settle and the clear water is drawn off the top.
How the clariflocculator works
Operation
Coagulated water enters the central flocculation compartment. Paddles turning slowly on the drive promote contact between particles and build flocs. The water spends typically 15 to 45 minutes here, depending on design, and a baffle wall separates this zone hydraulically from the clarifier.
The water then passes under the baffle into the outer clarification zone. Flow slows down, the heavy flocs settle to the floor, and the clarified water rises and overflows a peripheral weir, or passes through submerged orifices, into the launder.
Scraper blades on the rotating bridge push the settled sludge along the sloping floor to a central sludge pit, from where it is sent to the sludge chamber and on for dewatering.
Where clariflocculators are used
Application areas
Municipal water treatment plants
Removes turbidity and suspended solids from surface water and groundwater after coagulation.
Sewage treatment plants
Chemically assisted clarification in STPs and tertiary treatment.
Industrial wastewater treatment
Textile, chemical, pharmaceutical and food industry effluents.
ETPs and CETPs
Clarification of chemically treated industrial effluent.
Power plants
Clarification of raw water before boiler feed and cooling water treatment.
Why choose Adroit's clariflocculator
Features & advantages
Designed to CPHEEO
Process design to CPHEEO guidelines; structural design to client and tender requirements.
Floc-focused paddle design
Paddle area, G value and speed calculated for good flocs with less coagulant.
High-torque drive
Reputed make gear drive with overload protection.
Every configuration
Full bridge, half bridge, centrally driven or peripherally driven.
Built to last
MS with shot blasting, primer and high-quality paint system, or SS 304 / SS 316.
Installation support
Complete support for erection and commissioning at site. Low capital, operating and maintenance cost.
Clariflocculator specifications
Dimensions & manufacturing
Full bridge / half bridge / centrally driven / peripherally driven
Type
Diameter Up to 60 m
Diameter
Up to 5 m
Side water depth
Typically 15 to 45 minutes, as per design
Flocculation detention time
Mild steel (shot blasted and painted), SS 304, SS 316, or as specified
Material of construction
High-torque gear drive with overload protection
Drive
As per CPHEEO guidelines
Process design
Frequently asked questions
FAQ
What is a clariflocculator used for?
It removes suspended solids and turbidity from water by flocculating the particles into larger flocs and settling them, in one tank.
What is the difference between a clariflocculator and a clarifier?
A clarifier only provides settling. A clariflocculator has a flocculation zone in the centre where flocs are formed before the water reaches the settling zone, so it is used where chemical coagulation is part of the treatment.
Which chemicals are used with a clariflocculator?
The coagulant is usually alum, poly aluminium chloride (PAC) or a ferric salt, added in the flash mixer upstream. Lime is used for pH correction, and polyelectrolyte is sometimes added as a flocculant aid.
Can a clariflocculator handle high turbidity during the monsoon?
Yes, within its design limits. Operators adjust the coagulant dose, and the flocculation zone is designed for the range of raw water conditions expected at the site.
What maintenance does it need?
Periodic inspection, cleaning and greasing, usually every 3 to 6 months depending on operating conditions. Drive bearings are typically replaced after around five years.
Full bridge or half bridge: which do I need?
It depends mainly on tank diameter and the tender specification. Half bridges suit smaller tanks. Full bridges and peripheral drives are used for larger diameters. We will recommend the arrangement for your tank.
Brochures, datasheets & media
Downloads
Documents
files
Photos
photos
Videos
videos
Explore more solutions
Related technologies
Chain Flight Sludge Scraper
Continuous sludge and scum collection for rectangular settling tanks, driven slowly and steadily by heavy-duty chains.
Grit Mechanism (Detritor)
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.
Clarifier
Scraper mechanisms for circular primary and secondary clarifiers, with bridge and drive arrangements matched to tank size.
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.
Call us
+91 70248-48383Email
[email protected]
Enquire about Clariflocculator
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();
}
})();