Brady and Weil (2002) define bulk density as the mass (weight) of a unit volume of dry soil. Blake's (1965) definition states that this soil parameter is the ratio of the mass to the bulk, or microscopic volume of soil particles plus pore spaces in the sample. Therefore, the volume with which bulk density is concerned is that of the solid particles and pore space. Bulk density differs from particle density (q.v.) in that the latter concerns the relationship between the mass and volume of only the solid particles in the soil excluding the volume of pore space. Bulk density and particle‐density values are used to compute pore space (see Soil pores) in a soil using the following relationship:
where Db = bulk density, oven dry, Dp = particle density.
Bulk density is expressed as a ratio of grams per cubic centimeter (g cm −3). Since the mass of a cubic centimeter of water is about 1 g, the bulk density of water is said to be 1 g cm −3or 1. Soil usually has a bulk density greater than...
')
var head = document.getElementsByTagName("head")[0]
var script = document.createElement("script")
script.type = "text/javascript"
script.src = "https://buy.springer.com/assets/js/buybox-bundle-abe5f44a67.js"
script.id = "ecommerce-scripts-" + timestamp
head.appendChild(script)
var buybox = document.querySelector("[data-id=id_"+ timestamp +"]").parentNode
;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(initCollapsibles)
function initCollapsibles(subscription, index) {
var toggle = subscription.querySelector(".buying-option-price")
subscription.classList.remove("expanded")
var form = subscription.querySelector(".buying-option-form")
if (form) {
var formAction = form.getAttribute("action")
document.querySelector("#ecommerce-scripts-" + timestamp).addEventListener("load", bindModal(form, formAction, timestamp, index), false)
}
var priceInfo = subscription.querySelector(".price-info")
var buyingOption = toggle.parentElement
if (toggle && form && priceInfo) {
toggle.setAttribute("role", "button")
toggle.setAttribute("tabindex", "0")
toggle.addEventListener("click", function (event) {
var expanded = toggle.getAttribute("aria-expanded") === "true" || false
toggle.setAttribute("aria-expanded", !expanded)
form.hidden = expanded
if (!expanded) {
buyingOption.classList.add("expanded")
} else {
buyingOption.classList.remove("expanded")
}
priceInfo.hidden = expanded
}, false)
}
}
function bindModal(form, formAction, timestamp, index) {
var weHasBrowserSupport = window.fetch && Array.from
return function() {
var Buybox = EcommScripts ? EcommScripts.Buybox : null
var Modal = EcommScripts ? EcommScripts.Modal : null
if (weHasBrowserSupport && Buybox && Modal) {
var modalID = "ecomm-modal_" + timestamp + "_" + index
var modal = new Modal(modalID)
modal.domEl.addEventListener("close", close)
function close() {
form.querySelector("button[type=submit]").focus()
}
var cartURL = "/cart"
var cartModalURL = "/cart?messageOnly=1"
form.setAttribute(
"action",
formAction.replace(cartURL, cartModalURL)
)
var formSubmit = Buybox.interceptFormSubmit(
Buybox.fetchFormAction(window.fetch),
Buybox.triggerModalAfterAddToCartSuccess(modal),
function() {
form.removeEventListener("submit", formSubmit, false)
form.setAttribute(
"action",
formAction.replace(cartModalURL, cartURL)
)
form.submit()
}
)
form.addEventListener("submit", formSubmit, false)
document.body.appendChild(modal.domEl)
}
}
}
function initKeyControls() {
document.addEventListener("keydown", function (event) {
if (document.activeElement.classList.contains("buying-option-price") && (event.code === "Space" || event.code === "Enter")) {
if (document.activeElement) {
event.preventDefault()
document.activeElement.click()
}
}
}, false)
}
function initialStateOpen() {
var buyboxWidth = buybox.offsetWidth
;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(function (option, index) {
var toggle = option.querySelector(".buying-option-price")
var form = option.querySelector(".buying-option-form")
var priceInfo = option.querySelector(".price-info")
if (buyboxWidth > 480) {
toggle.click()
} else {
if (index === 0) {
toggle.click()
} else {
toggle.setAttribute("aria-expanded", "false")
form.hidden = "hidden"
priceInfo.hidden = "hidden"
}
}
})
}
initialStateOpen()
if (window.buyboxInitialised) return
window.buyboxInitialised = true
initKeyControls()
})()