, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Drinking Water Distribution and Disinfection Improvements for Curahuasi, Peru | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Drinking Water Distribution and Disinfection Improvements for Curahuasi, Peru

curahuasi

Under the supervision of Professors Robert Hoeksema and David Wunder of ÃÛÌÒapp College, and with assistance from Mr. Bruce Rydbeck, Engineering Unlimited worked to design improvements to the water distribution system in Curahuasi, Peru to provide a continuous supply to the municipality.


<p><span>Curahuasi&rsquo;s current distribution system is fed from natural springs located in the mountainside above the municipality. Due to the large vertical drop from the water source to end use, the distribution network experiences very high system pressures. This has required water shutoffs and inconvenience to the citizens of Curahuasi, due to the poor quality of their water system.</span></p>
<p>ÃÛÌÒapp students, under the supervision of David Wunder and Robert Hoekema, have designed a much more efficient system with additional reservoirs to deal with the pressure issues.</p>