Separator components
An Alfa Laval separator consists of a number of proven functions and high-quality components. Click on the hot-spots to learn more about each.
<style> /* misc */ .right {float: right; } /* overlay */ .overlay.show-fullscreen {opacity: 1; z-index: 100000; } /* c-modal */ .c-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: white; border-radius: 3px; box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.25); font-family: roboto; height: auto; width: 90%; max-width: 800px; z-index: -100; } .c-modal.show { z-index: 100000; } .c-modal .c-button { font-size: 16px; } .c-modal-title { font-size: 20px !important; font-weight: 300 !important; margin: 0 0 8px 0; padding: 0; } .c-modal-text { font-size: 14px; } .c-modal-wrapper { display: block; flex-direction: column; overflow-x: hidden; } .c-modal-image { flex: 1; text-align: center; } .c-modal-image img { max-height: 200px; width: auto; } .c-modal-content { flex: 1; } @media (max-width: 800px) { .c-modal .c-close-button { display: block; } } /* c-intersection-point */ .c-intersection-point { position: absolute; } .c-intersection-point:hover { cursor: pointer; } .c-intersection-point:hover svg g#Oval-Copy-2 { fill: white; } .c-intersection-point:hover svg g#Group-2 g { fill: #23337e; } .c-intersection-point svg { position: absolute; margin-left: -18px; margin-top: -18px; display: block; width: 36px; height: 36px; border-radius: 50%; background: #5a99d4; cursor: pointer; box-shadow: 0 0 0 0 #23337e; -webkit-animation: pulse 1.5s infinite; animation: pulse 1.5s infinite; } .c-intersection-point svg:hover { box-shadow: none; } _:-ms-fullscreen, .c-intersection-point:hover svg { animation: none; } @keyframes pulse { 0% { transform: scale(1); } 70% { transform: scale(1); box-shadow: 0 0 0 15px rgba(90, 153, 212, 0); } 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(90, 153, 212, 0); } } @-webkit-keyframes pulse { 0% { transform: scale(1); } 70% { transform: scale(1); box-shadow: 0 0 0 15px rgba(90, 153, 212, 0); } 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(90, 153, 212, 0); } } </style> <script> "use strict"; var flowchart = function() { var intersectionPoints = {}; var updateFunctions = []; function init() { createModal(); addCloseToOverlay(); createCharts(); window.addEventListener("keydown", function(event) { if (event.key === "Escape" || event.key === "Esc") closeModal(); }); for (var i = 0; i < 5000; i += 200) { setTimeout(updatePoints, i); } } function createCharts() { Object.keys(intersectionPoints).forEach(function(key) { var id = document.getElementById(key); if (id) { var chartParent = id.nextElementSibling.nextElementSibling; if (chartParent) { var img = chartParent.children[0]; img.style.display = "block"; img.style.width = "100%"; var imgContainer = document.createElement("div"); imgContainer.appendChild(img); chartParent.appendChild(imgContainer); renderCordsOnChart(key, imgContainer); } } }); } function addPoints(id, object) { intersectionPoints[id] = object; } function addCloseToOverlay() { var overlay = document.querySelector(".overlay"); var modal = document.querySelector("#modal"); if (overlay) { overlay.addEventListener("click", function() { overlay.classList.remove("show-fullscreen"); modal.classList.remove("show"); }); } } function renderCordsOnChart(id, chart) { chart.style.position = "relative"; var cords = intersectionPoints[id]; var renderedCords = []; var _loop = function _loop() { var hover = cords[i].title || "Click for more information"; cord = document.createElement("div"); cord.innerHTML = icon.replace('_hotspotTitle_', hover); cord.classList.add("c-intersection-point"); cord.style.left = cords[i].x + "px"; cord.x = cords[i].x; cord.style.top = cords[i].y + "px"; cord.y = cords[i].y; var card = cords[i]; cord.addEventListener("click", function() { return showModal(card); }); chart.appendChild(cord); renderedCords.push(cord); }; for (var i = 0; i < cords.length; i++) { var cord; _loop(); } window.addEventListener("resize", function() { return updateCordsPositions(chart.children[0], renderedCords); }); updateFunctions.push(function() { return updateCordsPositions(chart.children[0], renderedCords); }); } function updateCordsPositions(image, cords) { var ratio = image.width / image.naturalWidth; for (var i = 0; i < cords.length; i++) { cords[i].style.left = parseInt(cords[i].x) * ratio + "px"; cords[i].style.top = parseInt(cords[i].y) * ratio + "px"; } } function showModal(card) { var overlay = document.querySelector(".overlay"); if (overlay) { overlay.classList.add("show-fullscreen"); } var modal = document.getElementById("modal"); if (!modal) return; modal.children[1].innerHTML = renderModalTemplate(card); modal.classList.add("show"); } function createModal() { var modal = document.createElement("div"); var modalInner = document.createElement("div"); var closeButton = document.createElement("i"); modal.id = "modal"; closeButton.classList.add("c-close-button"); closeButton.classList.add("m-16"); modalInner.classList.add("c-modal-inner"); modal.classList.add("c-modal"); closeButton.innerHTML = closeButtonMarkup; closeButton.addEventListener("click", function() { return closeModal(); }); modal.appendChild(closeButton); modal.appendChild(modalInner); document.body.appendChild(modal); } function closeModal() { var overlay = document.querySelector(".overlay"); if (overlay) { overlay.classList.remove("show-fullscreen"); } var modal = document.getElementById("modal"); if (!modal) return; modal.classList.remove("show"); } function updatePoints() { updateFunctions.forEach(function(f) { return f(); }); } return { init: init, addPoints: addPoints, intersectionPoints: intersectionPoints, updatePoints: updatePoints }; }(); var icon = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="36px" height="36px" viewBox="0 0 36 36" version="1.1"><title>_hotspotTitle_</title><defs><circle id="path-1" cx="18" cy="18" r="18"/></defs><g id="icons/flowchart-marker-hover" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Oval-Copy-2"><use fill="#23337e" fill-rule="evenodd" xlink:href="#path-1"></use><circle stroke="#23337E" stroke-width="3" cx="18" cy="18" r="16.5"></circle></g><g id="Group-2" transform="translate(12.5, 12.5)" fill="#ffffff"><g id="Group"><rect id="Rectangle" x="4" y="0" width="2.647" height="11" rx="1"></rect></g><g id="Group-Copy"><rect id="Rectangle" x="0" y="4" width="11" height="2.647" rx="1"></rect></g></g></g></svg>'; var closeButtonMarkup = '<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg"><title>Close</title><g id="Icons/Close" stroke="none" strokeWidth="1" fillRule="evenodd"><path d="M8,7.3228206 L15.3228206,0 L16,0.677179397 L8.6771794,8 L16,15.3228206 L15.3228206,16 L8,8.6771794 L0.677179397,16 L0,15.3228206 L7.3228206,8 L0,0.677179397 L0.677179397,0 L8,7.3228206 Z" id="Combined-Shape" fillRule="nonzero" /></g></svg>'; function renderModalTemplate(card) { var CTAMarkup = card.CTA ? '<div class="mt-32"><a href="'+ card.href +'" class="c-button is-primary is-large right">'+ card.CTA +'</a></div>' : ''; var imageMarkup = card.image ? '<div class="c-modal-image"><img src="'+ card.image +'""></div>' : ''; return '<div class="c-modal-wrapper p-32">'+ imageMarkup +'<div class="c-modal-content"><div class="flex column justify-content-between"><div class="wysiwyg"><p class="c-modal-title">'+ card.title +'</p><p class="c-modal-text">'+ card.text +'</p></div>'+ CTAMarkup +'</div></div></div>'; } </script><style type="text/css"> #modal.c-modal table { border-width: 0; margin: 24px 0 0 0; } #modal.c-modal td { vertical-align: top; width:33.33%;} #modal.c-modal a.c-button, #modal.c-modal a.c-button:visited { color:#fff; } </style> <div id="fuel-line-troubleshootingg"></div> <script> flowchart.addPoints("fuel-line-troubleshootingg", [ { x : 425, y : 92, title: 'Outlet zone', text : '<p>Area where the cleaned liquids leavethe bowl.</p>' }, { x : 520, y : 140, title: 'Seals', text : '<p>Separators with Hermetic Design have seals in the outlet zone to ensure no leakage of the process liquid from the separator, or for air to encounter the process fluid in the separator</p>' }, { x : 569, y : 290, title: 'Disc stack', text : '<p>Conical discs (bowl discs) stacked on top of each other provide high additional separation surface area. Thin caulks on each disc provide space in between the discs in the disc stack.</p>' }, { x : 683, y : 350, title: 'Solids discharge port', text : '<p>Automatic removal of solids from disc stack separators is made in one of two ways:<br>-Continuous solids discharge through nozzles in the periphery of the bowl <br>-Intermittent solids discharge, in which a carefully designed system opens ports in the periphery of the bowl, at controlled intervals</p>' }, { x : 590, y : 675, title: 'Drive', text : '<p>A drive unit, including an electric motor, is needed to transfer the power required to rotate the bowl. Typical drive units are gear-drive, belt-drive and direct drive.</p>' }, { x : 520, y : 952, title: 'Inlet zone', text : '<p>Point of entry for the feed (process liquid to be cleaned), either at the top or bottom of the separator.</p>' }, { x : 450, y : 248, title: 'Bowl', text : '<p>The central vessel, including the disc stack where separation takes place.</p>' } ]) </script>
<script>flowchart.init(); flowchart.updatePoints();</script>