proctor_prep | R Documentation |
Pass in a tibble of specimen information and compute the amount of water to add for each aliquot.
proctor_prep( x = NULL, PLs = NULL, date = Sys.Date(), sample_name, w_extant = NULL, effort = c("standard", "modified"), w_int = 0.015, assumed_d_max = 2.25, n_cylinders = 6, cylinder_volume_cm3 = 940 )
x |
Data frame containing columns |
PLs |
Plastic limit values. If |
date |
Date of mixing or testing. |
sample_name |
Character vector of unique sample identifiers. |
w_extant |
Existing water content values. If |
effort |
Character vector of compaction efforts. May be one or more of 'standard', 'modified', or 'reduced'. |
w_int |
Gravimetric water content interval between successive compaction points. Defaults to 0.015 (1.5%) |
assumed_d_max |
A conservatively high estimate of the maximum density that will be achieved in this test. Defaults to 2.25 g/cm3 to ensure enough soil is wetted for all aliquots. |
n_cylinders |
Number of specimens to prepare per test. Defaults to 6. 5 specimens is considered the minimum, but more or tighter-spaced cylinders can better define the compaction curve. |
cylinder_volume_cm3 |
volume of the compaction mold in cm3. Used to compute compacted volume of soil plus 0.25" of "over-pack" extending above the top of the 4.5"-high mold. |
The simplest way to use this function for splitting soil mixtures is to generate two tables.
The rationale for this function is efficient Proctor testing of soil mixtures.
When preparing samples for compaction testing, it is often desired to
mix the specimens to known water contents, rather than "eyeballing" the
water additions. This ensures the water contents of the test specimens
tested will bracket the optimum water content and be spaced along a roughly
equal range. Some a priori knowledge about the soil is needed to predict
what this range will be. proctor_prep()
allows the user to specify
the interval between 5 successive water contents to use along with the
anticipated maximum density and the plastic limit of the soil. The maximum
density for the standard effort test is estimated as 95% of w~~opt~~.
w~~opt~~ for the modified test is estimated as 0.75 x w~~opt standard~~.
Returned table contains information about the mass of soil to prepare and
how much water to add.
A tibble with one row per aliquot (tidy format). If there are soils with extant water contents above the lowest required for the test, these cases will populate with negative values for water_to_add_g
. Soil masses are rounded to the nearest 100 g and water additions are rounded to the nearest 10 g.
proctor_fit()
, mix_calcs()
, proctor_datasheet()
# Recommended approach: provide the `x` argument as a full table of required data # first prepare three tables - the efforts to test, the existing water contents, and the plastic limits w_extants <- tibble::tibble( sample_name = paste0("mix_0", 1:3), w_extant = c(0.048, 0.027, 0.052), ) pl_values <- tibble::tibble( sample_name = w_extants$sample_name, PL = c(0.095, 0.10, 0.14)) efforts <- tidyr::crossing( sample_name = paste0("mix_0", 1:3), effort = c('reduced', 'standard', 'modified') ) full_args <- list(efforts, w_extants, pl_values) %>% purrr::reduce(dplyr::left_join, by= 'sample_name') # now pass the complete table to `protor_prep()` proctor_prep(x = full_args) # An alternative approach is to provide the x argument (which can be piped directly from `sand_clay_mix_calcs()` _and_ a data frame # having PL values component_masses <- sand_clay_mix_calcs( mix_date = Sys.Date(), sample_name = NULL, sandy_name = "concrete-sand", clayey_name = 'brown-gumbo', final_sand_pct = seq(0.2, 0.8, by = 0.2), final_OD_kg = 30, sand_sandy = 0.97, sand_clayey = 0.06, w_sand = 0.001, w_clay = 0.02) pl_df2 <- tibble::tibble( sample_name = component_masses$sample_name, PL = (1 - 0.01*component_masses$final_sand_pct) * 0.18 ) proctor_prep(component_masses, PLs = pl_df2) # Alternatively, provide individual 'loose" vectors proctor_prep(sample_name = w_extants$sample_name, w_extant = w_extants$w_extant, PLs = pl_values$PL) # widen the interval for a clayey soil mix_03 <- dplyr::filter(full_args, sample_name == 'mix_03', effort == 'standard') proctor_prep(x = mix_03, PLs = pl_values, date= Sys.Date(), w_int = 0.025)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.