What Equations can I use for SPT Results (British Standard)?


Question

The SPT grid contains many fields that can be set up as calculated fields if you are adding blows and penetration for each increment. There are many different calculations or expressions that can be used. Only a few of these fields are set up by default when you install OpenGround Cloud Professional and this article takes you through the options for the fields.

Please note that these records are for the British Standard pack. Items for the ASTM pack are installed by default.

Answer

OpenGround Cloud Professional will install default calculations for all of the SPT fields as fits the British Standard. However, further calculations can be used for advanced users.

Explanation

N value

The N value is only calculated if full penetration is reached in the main test. The equation below therefore checks that the 4 penetration fields add up to 300 mm (4x75) and if so then calculates the N value by adding the Main blows together. Note that the "isnull" command is used to check for any blank values. If an empty field is found then a 0 will be added (this is specified in the second parameter).

if(isnull(PenetrationMain1,0) + isnull(PenetrationMain2,0) + isnull(PenetrationMain3,0)+isnull(PenetrationMain4,0) < 300,null,BlowsMain1 + BlowsMain2 + BlowsMain3 + BlowsMain4)

N60

The N60 value is calculated using the N value and the Energy Ratio. It is suggested that you add a field called N60 to the Standard Penetration Test table and set its data type to decimal (Small 3DP). The equation below checks to see if the required penetration has been reached and that the Energy Ratio has been entered before applying the N60 = (Er/60)*N Value Equation

if(isnull(PenetrationMain1,0)+isnull(PenetrationMain2,0)+isnull(PenetrationMain3,0)+isnull(PenetrationMain4,0) < 300,null,if(isnull(EnergyRatio,0)= 0,null,Round((EnergyRatio/60)*(BlowsMain1+BlowsMain2+BlowsMain3+BlowsMain4),0)))

Reported Remark

There are two ways to set up the Reported Result. The first way group all the blows and penetration together for an incomplete test and the second way reports for each individual increment for incomplete tests

For a test with the following readings option 1 will give "50 (25 for 125mm/50 for 200mm)" and option 2 will give "50 (10,15 for 50mm/10,11,29 for 50mm)"

Seating

10 for 75mm

15 for 50mm

Main

10 for 75mm

11 for 75mm

29 for 50mm

Option 1

concatenate(if(isnull(PenetrationMain1,0) + isnull(PenetrationMain2,0) + isnull(PenetrationMain3,0) + isnull(PenetrationMain4,0) = 300,'','N='),text(isnull(BlowsMain1,0)+isnull(BlowsMain2,0)+isnull(BlowsMain3,0)+isnull(BlowsMain4,0)),' (',if(isnull(PenetrationSeating1,0)+isnull(PenetrationSeating2,0)=150,concatenate(text(isnull(BlowsSeating1,'')),',',text(isnull(BlowsSeating2,''))),concatenate(text(isnull(BlowsSeating1,0)+isnull(BlowsSeating2,0)),' for ',text(isnull(PenetrationSeating1,0)+isnull(PenetrationSeating2,0)),'mm')),'/',if(isnull(PenetrationMain1,0)+isnull(PenetrationMain2,0)+isnull(PenetrationMain3,0)+isnull(PenetrationMain4,0)=300,concatenate(text(isnull(BlowsMain1,'')),',',text(isnull(BlowsMain2,'')),',',text(isnull(BlowsMain3,'')),',',text(isnull(BlowsMain4,''))),concatenate(text(isnull(BlowsMain1,0)+isnull(BlowsMain2,0)+isnull(BlowsMain3,0)+isnull(BlowsMain4,0)),' for ',text(isnull(PenetrationMain1,0)+isnull(PenetrationMain2,0)+isnull(PenetrationMain3,0)+isnull(PenetrationMain4,0)),'mm')),')')

Option 2

concatenate(if(isnull(PenetrationMain1,0)+isnull(PenetrationMain2,0)+isnull(PenetrationMain3,0)+isnull(PenetrationMain4,0) = 300,'N=',''),text(isnull(BlowsMain1,0)+isnull(BlowsMain2,0)+isnull(BlowsMain3,0)+isnull(BlowsMain4,0)),' (', if(isnull(PenetrationSeating1,0)=75,concatenate(text(isnull(BlowsSeating1,0))),concatenate(text(isnull(BlowsSeating1,0)),' for ',text(isnull(PenetrationSeating1,0)),'mm')), if(isnull(PenetrationSeating2,0)=75,concatenate(',',text(isnull(BlowsSeating2,0))),if(isnull(PenetrationSeating1,0)=75,concatenate(',',text(isnull(BlowsSeating2,0)),' for ',text(isnull(PenetrationSeating2,0)),'mm'),'')),'/', if(isnull(PenetrationMain1,0)=75,concatenate(text(isnull(BlowsMain1,0))),concatenate(text(isnull(BlowsMain1,0)),' for ',text(isnull(PenetrationMain1,0)),'mm')),if(isnull(PenetrationMain2,0)=75,concatenate(',' ,text(isnull(BlowsMain2,0))),if(isnull(PenetrationMain1,0)=75,concatenate(',',text(isnull(BlowsMain2,0)),' for ',text(isnull(PenetrationMain2,0)),'mm'),'')), if(isnull(PenetrationMain3,0)=75,concatenate(',' ,text(isnull(BlowsMain3,0))),if(isnull(PenetrationMain2,0)=75,concatenate(',',text(isnull(BlowsMain3,0)),' for ',text(isnull(PenetrationMain3,0)),'mm'),'')), if(isnull(PenetrationMain4,0)=75,concatenate(',' ,text(isnull(BlowsMain4,0))),if(isnull(PenetrationMain3,0)=75,concatenate(',',text(isnull(BlowsMain4,0)),' for ',text(isnull(PenetrationMain4,0)),'mm'),'')),')')

Blows Seating

isnull(BlowsSeating1,0)+isnull(BlowsSeating2,0)

Main Blows Total

isnull(BlowsMain1,0)+isnull(BlowsMain2,0)+isnull(BlowsMain3,0)+isnull(BlowsMain4,0)

Penetration Total

This is an update to the default calculation that will allow for handling of more situations.

numberordefault(PenetrationSeating1,0)+numberordefault(PenetrationSeating2,0)+numberordefault(PenetrationMain1,0)+numberordefault(PenetrationMain2,0)+numberordefault(PenetrationMain3,0)+numberordefault(PenetrationMain4,0)

SPT Base

This calculation can be used to calculate the end depth of the SPT test. This is compatible with both BS and ASTM standards and will function with both complete and incomplete tests. It is suggested that you add a field called DepthBase to the Standard Penetration Test table and set its data type to decimal (Small 3DP).

DepthTop+(numberordefault(PenetrationSeating1,0)/1000)+(numberordefault(PenetrationSeating2,0)/1000)+(numberordefault(PenetrationMain1,0)/1000)+(numberordefault(PenetrationMain2,0)/1000)+(numberordefault(PenetrationMain3,0)/1000)+(numberordefault(PenetrationMain4,0)/1000)