Keywords

1 Introduction

1.1 Notation

For evaluation of triaxial tests the Cartesian components \(\sigma _{ij}, \epsilon _{ij}\) or Roscoe invariants \(p,q, \varepsilon _{\mathrm{vol}}, \varepsilon _q\) of stress \(\varvec{\sigma }\) and strain \(\varvec{\epsilon }\) (compression is positive) are less convenient than the isomorphic components:

\(P = (\sigma _{11} + \sigma _{22} + \sigma _{33} ) /\sqrt{3} = p \sqrt{3} \), \(Q= (2 \sigma _{11} - \sigma _{22} - \sigma _{33} ) /\sqrt{3} = \sqrt{\frac{3}{2}}q\), \( \varepsilon _P = (\varepsilon _{11} + \varepsilon _{22} + \varepsilon _{33} ) /\sqrt{3}\), \(\varepsilon _Q = (2 \varepsilon _{11} - \varepsilon _{22} - \varepsilon _{33} ) /\sqrt{3}\). Isomorphic variables preserve the orthogonality and distance contrarily to Roscoe invariants, e.g. \(\left\| \varvec{\sigma }\right\| = \sqrt{P^2+Q^2} \ne \sqrt{p^2+q^2}\), wherein \(\Vert ~~\Vert \) is the Euclidean norm. For brevity we denote the isomorphic components of stress, strain and stiffness as \(\sigma _{A}, \varepsilon _{A}, E_{AB}\) with the usual summation convention, e.g. \(\sigma _{A} = E_{AB} \varepsilon _{B}\). Accordingly, \(\delta _{AB}\) is a \(2 \times 2\) version of the Kronecker symbol.

In the paraelastic (PE) model [7, 9] the reversals of stress and strain paths are of essential importance. The abbreviation \( \overset{\vartriangle }{\sqcup } = \sqcup - \sqcup ^R \) denotes the span of \(\sqcup \) measured from the most recent reversal value \( \sqcup ^R \) and \(h_\sqcup = \Vert \overset{\vartriangle }{\sqcup } \Vert \) is the size of the span.

Fig. 1
figure 1

Concept of response envelopes. Left applied strain increments (equal in all directions). Right stress increments obtained as the material response

1.2 On Evaluation of Stiffness

Stiffness \( E_{ijkl}\) used to describe stress rates \(\dot{\sigma _{ij}}= E_{ijkl}\dot{\varepsilon _{kl}}\) at small strains is an important element of the hypoplastic model [5, 6]. Triaxial data dealing with the small deformation response allows for evaluation of the components of the small strain stiffness. At first, the triaxial testing programme was intended to reproduce experimentally the so-called response envelopes, to compare them (graphically) with the ones obtained from the HP and to conclude some improvements of the model from this comparison. Eventually a different approach based on the error of curve fitting has been proposed.

The polar representation of stiffness with the response envelopes [2, 4] is a well established graphic tool for modelling of soil behaviour. At a given state, a constitutive model obtains small perturbations, usually strain increments \(\dot{\epsilon }_A\) of the same length but in different directions. The resulting stress increments \(\dot{\sigma }_A \) are plotted, Fig. 1. The obtained response envelopeFootnote 1 is a valuable graphic representation of stiffness. For example, the response envelopes should be continuous,Footnote 2 otherwise the jumps would render the constitutive model unstable.

Tests with very small amplitudes (\(\varepsilon ^\mathrm{ampl}< 10^{-5}\)) are technically not feasible in a standard triaxial apparatus. A direct measurement of stiffness is too strongly blurred by inaccuracies from the testing device. At too large amplitudes various non-linear effects as accumulation, hysteretic phenomena, barotropy, anisotropy etc. overly distort the response envelope and unreliable small strain models are concluded. Therefore, we use cycles with intermediate amplitudes (\(\varepsilon ^\mathrm{ampl}\approx 5 \times 10^{-4}\)) and apply various purification procedures to remove the nonlinearities and the accumulation.

Primarily, the constitutive curve-fitting procedure is used to purify the results. After different purifying operation the net small-strain response remains. Beside the components of the elastic stiffness various material constants of PE and HCA etc. are calibrated in the course of the purification. Judging by the fitting error (after optimal calibration), we may also easily discover, which versions of these model are better suited for a given material and a given test. The error of fitting seems to be a convenient quantitative criterion for testing of a constitutive model. A graphical comparison of experimental and theoretical response envelopes is very subjective. Nevertheless, the response envelopes may be used for general visualization of the final results.

A reliable curve fitting requires an extensive experimental database. We use stress and strain paths from several triaxial stress controlled low-cycle tests (asterisk tests) performed at different initial stress levels with different polarizations. For example, Fig. 2 shows a typical asterisk (around the average stress \(P^\mathrm{av}= 521.05\) kPa and \(Q^\mathrm{av}= 124.05\) kPa). The prescribed stress path, Fig. 2 left, consists of six polarizations \(\alpha _\pi \), each composed of regular stress cycles with 180\(^{\circ }\) reversals. Such reversals are chosen to simplify the pertaining PE equation. If the average stress \(\varvec{\sigma }^\mathrm{av}\) was overlaid by a chaotic stress path (a random walk) we could still use the curve fitting procedures but the complicated full versions of PE and HCA models would be indispensable.

Fig. 2
figure 2

Stress controlled low-cyclic asterisk test and corresponding strain response (provided in master thesis by Espino [1]). Reversal points are marked in green. Left Stress cycles. Right Strain response (problem with accumulation)

The high quality laboratory tests were performed on the cubical triaxial samples with local strain measurement by Espino [1]. A single asterisk is intended for evaluation of a single small strain stiffness \(E^\mathrm{max}_{AB}\) at \(\varvec{\sigma }^\mathrm{av}\). The calibration of the material constants of PE and HCA and evaluation of these models is obtained as a by-product just for this stress level.

The curve-fitting algorithm is based on the minimization of error which is the sum of discrepancies between the experimental points and proposed constitutive relation. This is described in Sect. 2. In Sect. 3 we discuss some remedies of some problems appearing due to inaccuracies in raw data. The results of curve fitting can be found in Sect. 4. Having determined the constitutive relation between stress and strain, the response envelopes are drawn at different stress points (for illustration).

2 Linear Approximation of the Small Strain Stiffness

In order to estimate the small strain stiffness from the triaxial test we consider stress and strain values measured from the most recent reversal point R. These quantities are termed spans and are denoted as \( \overset{\vartriangle }{\sigma } _{ij} = \sigma _{ij} - \sigma ^R_{ij}\) and \( \overset{\vartriangle }{\varepsilon } _{ij} = \varepsilon _{ij} - \varepsilon ^R_{ij}\). A reversal is established at the current state whenever the distance h of this state from the most recent reversal begins to decrease, see PE [7, 9]. Only uniaxial cycles with \(180^{\circ }\) reversals are applied in tests, so that the general definition of distance given in [7, 9] simplifies to the Euclidean distance. Only two stress and two strain components can be measured in the triaxial tests and therefore it suffices to use isomorphic (with sign) components \(\varepsilon _P\), \(\varepsilon _Q\), P and Q. For uniaxial cycles we use the Euclidean measures of distance:

$$\begin{aligned} h_\epsilon = \sqrt{( \overset{\vartriangle }{\epsilon } _P)^2 + ( \overset{\vartriangle }{\epsilon } _Q)^2 } \text { or}h_\sigma = \sqrt{( \overset{\vartriangle }{P} )^2 + ( \overset{\vartriangle }{Q} )^2 }. \end{aligned}$$
(1)

Given the first reversal \(R = (P^R , Q^R , \epsilon _P^R, \epsilon _Q^R) \) and the test results in the form of a list of numbered \(m=1,2, \dots M\) records (quadruples) \((P, Q, \epsilon _P, \epsilon _Q)^m \) one can determine all subsequent reversal points (updating sequentially the record R) using following Mathematica script:

figure a

Note that the reversals of the stress and strain path should coincide. Some discrepancies appear presumably due to measurement errors in the lab. Next we may append to each quadruple a list of spans \( \overset{\vartriangle }{P} \), \( \overset{\vartriangle }{Q} \), \( \overset{\vartriangle }{\epsilon } _P\), \( \overset{\vartriangle }{\epsilon } _Q\) and their sizes \(h_\sigma \), \(h_\epsilon \) followed by the void ratio e:

$$\begin{aligned} (P , Q , \epsilon _P , \epsilon _Q, \overset{\vartriangle }{P} , \overset{\vartriangle }{Q} , \overset{\vartriangle }{\epsilon } _P , \overset{\vartriangle }{\epsilon } _Q, h_\sigma , h_\epsilon , e )^m. \end{aligned}$$
(2)

This is done with the following Mathematica procedure:

figure b

In this paper we are considering a nearly linear (paraelastic) relation between the stress and strain spans. For triaxial case it is described with isomorphic components as

$$\begin{aligned} \left\{ \begin{array}{cc} \overset{\vartriangle }{P} \\ \overset{\vartriangle }{Q} \end{array} \right\} = \left[ \begin{array}{cc} E_{PP} &{} E_{PQ} \\ E_{QP} &{} E_{QQ} \end{array} \right] \cdot \left\{ \begin{array}{c} \overset{\vartriangle }{\epsilon } _P \\ \overset{\vartriangle }{\epsilon } _Q \end{array} \right\} ~~\text {or briefly}~~ \overset{\vartriangle }{\sigma } _{A} = E^s_{AB} \overset{\vartriangle }{\varepsilon } _{B} \end{aligned}$$
(3)

with \(E^s_{AB} \ne \text{ const }.\) The stiffness tensor is reduced to three independent (and unknown) components \(E_{PP}, E_{QQ}\) and \(E_{PQ} = E_{QP}\). If these components were constant we could determine them defining the squared error

$$\begin{aligned} F_0 = \sum _m ( \overset{\vartriangle }{\sigma } _{A} - E^s_{AB} \overset{\vartriangle }{\varepsilon } _{B} ) ( \overset{\vartriangle }{\sigma } _{A} - E^s_{AC} \overset{\vartriangle }{\varepsilon } _{C} ), \end{aligned}$$
(4)

wherein the sum is taken over the records \(m=1,2,\dots M\) of interest. The components \(E_{AB}\) are found using the stationarity condition

$$\begin{aligned} ({\partial F_0}/{\partial E^s_{RS}})= & {} -2 \sum _m \overset{\vartriangle }{\varepsilon } _{S} ( \overset{\vartriangle }{\sigma } _{R} - E^s_{RC} \overset{\vartriangle }{\varepsilon } _{C} ) = 0_{RS} \text { and}\text { hence}\end{aligned}$$
(5)
$$\begin{aligned} E^s_{RC}= & {} \left[ \sum _m \overset{\vartriangle }{\varepsilon } _{C} \overset{\vartriangle }{\varepsilon } _{S} \right] ^{-1} \left[ \sum _m \overset{\vartriangle }{\varepsilon } _{S} \overset{\vartriangle }{\sigma } _{R} \right] \!. \end{aligned}$$
(6)

Equation (6) has been implemented in the Mathematica routine getConstApprox

figure c

Note that expressions in the square brackets are sums of dyads (having only one non-zero eigenvalue) so it is essential to have spans \( \overset{\vartriangle }{\varepsilon } _C\) in different directions to avoid singularity. Of course, the first expression is symmetric. If the material response is elastic then the second expression should be also symmetric.

Usually, the secant stiffness \({\mathsf {E}}^s\) is not a constant within the experimental data. The stress components \(\sigma _K = (P,Q)\), especially in the first cycle, may considerably deviate from the average value \(\sigma _K^\mathrm{av}=(P^{av}, Q^{av})\) during the test. Therefore the (linear, in Eq. (7)) influence of stress \( \sigma _K \) on the stiffness should be also considered:

$$\begin{aligned} E^s_{ijkl} \left( \varvec{\sigma }\right) \approx E^0_{ijkl}+ \frac{\partial E^s_{ijkl}}{\partial \sigma _{rs}} \left( \sigma _{rs} -\sigma ^{av}_{rs}\right) \!. \end{aligned}$$
(7)

With isomorphic components and \({\mathsf {E}}^{s(av)} = {\mathsf {E}}^s (P^{av}, Q^{av})\) we obtain

$$\begin{aligned} E^s_{AB} \left( P, Q \right) \approx E^{s(av)}_{AB}+ \frac{\partial E^s_{AB}}{\partial P} \left( P -P^{av}\right) + \frac{\partial E^s_{AB}}{\partial Q} \left( Q -Q^{av}\right) \!. \end{aligned}$$
(8)

In Eq. (8) we allow the resulting secant stiffness \(E^s_{RC}\) to vary depending on the amplitude, on stress and on the void ratio only

$$\begin{aligned} E^s_{RC} = E^s_{RC}(h_\epsilon , P,Q, e). \end{aligned}$$
(9)

\(E^s_{RC}\) does not depend on the direction of deformation (a so-called polarization). Suppose, we have an average stress level \((P^\mathrm{av}, Q^\mathrm{av})\) around which the test has been done. We may approximate stiffness in the vicinity of \((P^\mathrm{av},Q^\mathrm{av})\) using the following Taylor series (here only the barotropy):

$$\begin{aligned} \left[ \begin{array}{cc} E_{PP} &{} E_{PQ} \\ E_{QP} &{} E_{QQ} \end{array} \right] ^s =&\left[ \begin{array}{cc} E_{PP} &{} E_{PQ} \\ E_{QP} &{} E_{QQ} \end{array} \right] ^\mathrm{av}+ (P - P^\mathrm{av}) \left[ \begin{array}{cc} E_{PP,P} &{} E_{PQ,P} \\ E_{QP,P} &{} E_{QQ,P} \end{array} \right] \\ \text { or}E^s_{AB} =&\,\, E^\mathrm{av}_{AB}\,{+}\, \tilde{P} ~E'_{AB}\nonumber \end{aligned}$$
(10)

the unknown derivatives \(E_{PP,P}\), \(E_{PQ,P} \dots \) of stiffness components with respect to pressure P are abbreviated with \(E'_{AB}\). The average stiffness \(E_{AB}^\mathrm{av}\) (components \(E_{PP}\), \(E_{PQ}, \dots \)) is taken from (6) and it is assumed to hold exactly at the average stress \((P^\mathrm{av}, Q^\mathrm{av})\). Additional parameters \(E_{PP,P}\), \(E_{PQ,P} \dots \) should improve the minimization of error F. The error function (4) takes now the form

$$\begin{aligned} F_1 = \sum _m ( s_A - \tilde{P}~ E'_{AB} \overset{\vartriangle }{\varepsilon } _{B} ) ( s_A - \tilde{P} ~E'_{AC} \overset{\vartriangle }{\varepsilon } _{C} ), \end{aligned}$$
(11)

wherein \( s_A = \overset{\vartriangle }{\sigma } _{A} - E_{AB}^\mathrm{av} \overset{\vartriangle }{\varepsilon } _{B} \) and \(\tilde{P} = P -P^\mathrm{av}\) denotes the deviation of pressure P from \(P^\mathrm{av}\) (with sign) for each record m. The components \(E'_{AB}\) are found using the stationarity condition

$$\begin{aligned} ({\partial F_1}/{\partial E'_{RS}}) = 0_{RS}= & {} -2 \sum _m \tilde{P} ~ \overset{\vartriangle }{\varepsilon } _{S} ( \overset{\vartriangle }{s} _{R} - \tilde{P}~ E'_{RC} \overset{\vartriangle }{\varepsilon } _{C} ) \text { hence}\end{aligned}$$
(12)
$$\begin{aligned} E'_{RC}= & {} \left[ \sum _m \tilde{P}^2 \overset{\vartriangle }{\varepsilon } _{C} \overset{\vartriangle }{\varepsilon } _{S} \right] ^{-1} \left[ \sum _m \tilde{P} \overset{\vartriangle }{\varepsilon } _{S} \overset{\vartriangle }{s} _{R} \right] . \end{aligned}$$
(13)

Equation (13) is implemented in getPApprox Mathematica routine:

figure d

Having found the influence of P we may apply the analogous strategy to investigate the influence of Q. These improvements can be made one by one.

figure e

Finally we obtain the constitutive stiffness function

$$\begin{aligned} E^s_{RC}(\sigma _K) = E_{RC}^\mathrm{av}+ \tilde{P} E'_{RC}+ \tilde{Q} E'_{RC} , \end{aligned}$$
(14)

which is performed in Mathematica as:

figure f
Fig. 3
figure 3

Strain accumulation within the first polarization depending on the loading amplitude. Top No strain accumulation within 5 cycles with lower stress amplitude. Bottom Strain accumulation within 7 cycles with higher stress amplitude

3 Problems with Small-Strain Measurements and their Remedies

Apart from the stress dependence the raw data may include a number of other undesirable effects, which can affect the evaluation of small strain stiffness. All fitting procedures described below have been carried out using Mathematica internal functions FindFit, NMinimize or FindMinimum.

3.1 Strain Accumulation

It is evident, e.g. Fig. 2, that during first cycles of each polarization material experiences strong accumulation of strain. It becomes less pronounced in subsequent cycles. The decline of accumulation rate in the first polarization is shown in Fig. 3. Individual cycles have been plotted with different colour. The smaller the strain amplitude \(\varepsilon ^{ampl}\) the less accumulation is observed, see Fig. 3 for comparison.

In order to purify the experimental data from the cumulative phenomena all irregular cycles (from the so-called conditioning phase) were manually removed so that the subsequent ones could have been approximated with the simplified HCA-model [8, 11]. This operation is needed in each polarization (\(\alpha _\pi =0^\circ \), \(30^\circ \), \(60^\circ \), \(90^\circ \), \(120^\circ \), \(150^\circ \)) defined in Fig. 2. The simplified expression for the accumulate strain rate is:

$$\begin{aligned} \dot{\epsilon }_{AB}^{\pi (\mathrm{acc})} (t_i) = \text{ m }_{AB}^\pi ( C^\pi _1 + C^\pi _2 t_i) . \end{aligned}$$
(15)
Table 1 Approximated HCA parameters for each polarization

In order to find unknown flow direction \( \text{ m }_{AB}^\pi \) and HCA parameters \(C^\pi _1\) and \(C^\pi _2\) we approximate experimental strain points at \(t_i\) with following expression:

$$\begin{aligned} \varepsilon ^\pi _P (t_i) = A^\pi _P \cos \left( \omega ^\pi t_i + \theta ^\pi _P\right) + \left( A^{\pi (\mathrm{acc})}_P+B^{\pi (\mathrm{acc})}_P ~t_i/2 \right) t_i , \end{aligned}$$
(16)
$$\begin{aligned} \varepsilon ^\pi _Q (t_i) = A^\pi _Q \cos \left( \omega ^\pi t_i + \theta ^\pi _Q\right) + \left( A^{\pi (\mathrm{acc})}_Q+B^{\pi (\mathrm{acc})}_Q ~t_i/2 \right) t_i , \end{aligned}$$
(17)

where the second summand in each line corresponds to the cumulative part, i.e. \(A^{\pi (\mathrm{acc})}_{(P,Q)} = m^\pi _{(P,Q)} C^\pi _1\) and \(B^{\pi (\mathrm{acc})}_{(P,Q)} = m^\pi _{(P,Q)} C^\pi _2\). In order to remove the accumulation we minimize the squared error between the experimental data and the fitting expressions (16, 17). This is implemented in the following Mathematica procedure:

figure g

The calculated components \(\left\{ m_P,m_Q\right\} \) and the parameters \(C_1\) and \(C_2\) are given in Table 1 for each polarization. It can be seen that the flow direction changes from polarization to polarization. This behaviour contradicts the assumption of HCA model that the flow rule is a function of stress only. Moreover, it has been shown that \(C_1\) does not decrease from polarization to polarization. According to the HCA model such decrease is a consequence of the cyclic pre-loading history of the sample.

The raw experimental data and experimental data with subtracted strain accumulation are compared in Fig. 4.

Fig. 4
figure 4

Strain path before and after subtraction of accumulated strain. Left Original strain path. Right Strain path with subtracted strain accumulation according to Eq. (15)

Fig. 5
figure 5

Measurement noise: original (in blue) and smoothed (in red) strain \(\varepsilon _P (t)\) diagram

3.2 Measurement Noise

Apart from accumulation described in Sect. 3.1 we need to remove the noise in the raw data due to the measurement technology. The smaller is the strain amplitude the higher is the data impurity with respect to the signal. The removal of the noise is provided by a convolution of the raw data with a discrete Gauss distribution as a smoothing function. This is implemented in the following Mathematica procedure:

figure h

We avoid smoothing across the reversal points. Therefore all reversals have to be determined a priori. Figure 5 shows the experimental data with subtracted strain accumulation befor and after the smoothing procedure.

In order to speed up the calculation one may decrease the number of experimental points. In the following example each nth point is processed:

figure i

3.3 Hysteretic \(\sigma \)\(\varepsilon \) Behaviour

Triaxial tests with intermediate strain amplitudes show hysteretic \(\sigma \)\(\varepsilon \) behaviour (see e.g. Fig. 6). It means that for the same stress state we obtain different strain states depending on loading direction (or vice versa). In order to take this effect into account we use the paraelasticity. The PE formulation for 1D cycles can be simplified as a secant [7, 9] stiffness decreasing with the amplitude (or span \(h_\epsilon = \left\| \varepsilon - \varepsilon ^R \right\| \)):

$$\begin{aligned} E^s_{RC} \approx (1- f h_\epsilon ^\chi ) E^\mathrm{max}_{RC} \end{aligned}$$
(18)

The unknown material constants f and \(\chi \) can be determined in the course of the fitting of experimental data. For \(h_\epsilon < 0.02\,\%\) this paraelastic dependence should work well. The desired small stain stiffness \({\mathsf {E}}^\mathrm{max}\) is obtained from the extrapolation at \(h_\epsilon \rightarrow 0\).

Fig. 6
figure 6

Hysteretic behaviour simulated for low cyclic tests

3.4 Anisotropy of Stiffness Depending on \(h_\epsilon \)

In some tests, despite uniaxial stress path along the prescribed polarization, an occurrence of oval strain paths could be observed, Fig. 7. This effect should not be mixed up with the commonly observed \(\sigma \)\(\varepsilon \) hysteresis. This ovality described as a variable anisotropy of stiffness. This phenomenon is not accounted for in any extant small strain model.

Fig. 7
figure 7

Anisotropy of stiffness varies with \(h_\epsilon \)

In order to capture the \(h_\epsilon \)-dependent anisotropy of stiffness a minor modification of PE is proposed by introducing of a small \(h_\epsilon \)-dependent tensorial correction \(\mathsf {C} (h_\epsilon )\) to secant stiffness:

$$\begin{aligned} {\mathsf {E}}^s \approx (1 -f h_\epsilon ^\chi ) {\mathsf {E}}^\mathrm{max}+ \mathsf {C}(h_\epsilon ). \end{aligned}$$
(19)

Unlike the scalar modification of \({\mathsf {E}}^s\) proposed in PE model (19) allows for a \(h_\epsilon \)-dependent anisotropy. Equation (19) can be rewritten in the form

$$\begin{aligned} {\mathsf {E}}^s \approx {\mathsf {E}}^\mathrm{max}-f h_\epsilon ^\chi ~{\mathsf {E}}^{corr} \end{aligned}$$
(20)

with non-proportional tensors \({\mathsf {E}}^\mathrm{max}\not \sim {\mathsf {E}}^{corr}\). Here, apart from f and \(\chi \), we have 8 unknown components of matrices \( {\mathsf {E}}^\mathrm{max}\) and \({\mathsf {E}}^{corr}\) which should be found by fitting. The effect of variable stiffness anisotropy can be alternatively captured using a “rotation” tensor R:

$$\begin{aligned} {\mathsf {E}}^s \approx {\mathsf {E}}^\mathrm{max}- f h_\epsilon ^\chi ~ R^T:{\mathsf {E}}^\mathrm{max}:R \end{aligned}$$
(21)

In the case of isomorphic components we obtain:

$$\begin{aligned} E^s_{RC} \approx (\delta _{RA} \delta _{CB} -f h_\epsilon ^\chi ~ R_{RA} R_{CB} )~ E^\mathrm{max}_{AB} \end{aligned}$$
(22)

which generates strain loops from linear stress path. The improvement can be concluded judging by the significant reduction of fit errors. The rotation tensor \(R = R (h_\epsilon )\) is defined as:

$$\begin{aligned} R (h_\epsilon ) = \left[ \begin{array}{cc} \cos (k h_\epsilon ) &{} \sin (k h_\epsilon ) \\ - \sin (k h_\epsilon ) &{} \cos (k h_\epsilon ) \end{array} \right] . \end{aligned}$$
(23)

Beside four (or three due to symmetry) unknowns components of matrix \(E^\mathrm{max}_{AB}\) we need just one additional parameter k to be found while fitting procedure.

4 Numerical Results and Discussions

The experimental data provided for this analysis by Espino [1] consist of 7 asterisk-shaped stress paths performed at different stress levels as shown in Fig. 8. Material parameters are fitted for each stress level separately. Numerical results and error ranges are therefore independent.

Fig. 8
figure 8

Stress asterisks at different stress levels chosen for small strain analyse

First we read the experimental raw data including information about the time for each measured point from the input file and reorganize it to the form of quadruples \((P, Q, \varepsilon _P, \varepsilon _Q)\). After subtracting strain accumulation (if necessary), the reversal points are found using findRever. Between the reversals the smoothing procedure smoothData is carried out. The essential steps for determination of unknown material parameters, among them the parameters of small strain stiffness itself, are provided below:

  1. a.

    Filtering of experimental points. In order to determine the dependence of \({\mathsf {E}}^s\)on the span \(h_\epsilon \) the measured records are grouped depending on the size of the span \(h_\epsilon \). A filter function filterExperPoints picks out the records containing spans (=increments) of the required size \(h_\epsilon \) ( hDesired \(\pm \) Acc):

figure j

 

  • For example, in Test 3 (see Fig. 8) this procedure could filter out 159 strain points at the distance \(h_\epsilon = 0.0001 \pm 2 \times 10^{-6} \) from the most recent reversals. They are shown in orange in \(\varepsilon _P\)\(\varepsilon _Q\) diagram in Fig. 9. The number of the experimental points (\(m_f\)) after filtering procedure available for further analysis for the chosen test and \(h_\epsilon \) is given in Table 2. The accuracy increases with number of points, of course.

 

Fig. 9
figure 9

Filtered strain points

Table 2 Number of filtered points available for small stiffness analysis for chosen \(h_\epsilon \) range
  1. b.

    Calculating stiffness. Linear approximation of the small strain secant stiffness \(E^s_{AB}(P,Q)\) for a given \(h_\epsilon \) is carried out according to Eq. (14). For example, for \(h_\epsilon = 0.9 \times 10^{-4} \pm 2 \times 10^{-6}\) the values of stiffness components from different tests are given in Table 3 for the average stress level \((P^{av}, Q^{av})\). Squared errors, e.g. \(F_1\) form Eq. (11), can be expressed as a ratio of standard error deviation per pure measurement to \(h_\sigma \):

    $$\begin{aligned} F= \frac{\sqrt{F_1}}{m_f ~ h_\sigma }. \end{aligned}$$
    (24)

    Commonly used in statistic coefficient of determination \(R^2\) (e.g. [10]) is obtained as \(R^2 \approx 1-m_f F^2\). Calculated here average relative fitting error (F) varies from 0.5 to \(2.2\,\%\) per measurement for all tests. Some discrepancies mean non-linear dependence of the small strain stiffness on stress and they are to be removed taking into account hysteretic \(\sigma \)\(\varepsilon \) behaviour (18) and the variable anisotropy of stiffness approximated by (23).

  2. c.

    Determination of paraelastic material parameters f and \(\chi \). Paraelastic parameters f and \(\chi \) are determined separately for all stress levels from Fig. 8. For this purpose stiffness components for different \(h_\epsilon \) must be evaluated. Given the following Mathematica skript we may find the paraelastic parameters from results similar to Table 3 but for different \(h_\epsilon \):

Table 3 The components of small strain stiffness tensor \(E^s_{AB} = E^s_{AB} (P,Q)\) for \(h_\epsilon =0.9 \times 10^{-4} \pm 2 \times 10^{-6}\)
figure k
Table 4 Paraelastic parameters f, \(\chi \) and \(\left\| E^\mathrm{max}\right\| \)

 

  • The results of fitting analysis are presented in Table 4. Except for the Test 5 the values of paraelastic parameters are considerably lower than expected from earlier calibration of the PE model (e.g. \(f \approx 300\) and \(\chi \approx 0.9\) in [9]). It means that for chosen a \(h_\epsilon \) range (from \(h_\epsilon =0.9 \times 10^{-4}\) to \(h_\epsilon =5.1 \times 10^{-4}\)) the material is nearly elastic with a very weak hysteretic effect. A comparison is shown in Fig. 10 for Test 3 only.

    We presume that the weak hysteretic behaviour is a consequence of the experimental errors (relatively high cyclic frequency, low number of cycles, temperature effects during loading, etc.)

 

Fig. 10
figure 10

The secant stiffness \(\left\| E^{h_\epsilon }\right\| /\left\| E^{h_1}\right\| \) decreases with the distance \(h_\epsilon \) from the most recent reversal here shown for Test 3 only. The expected PE curve is shown for \(f=300\) and \(\chi =0.9\)

  1. d.

    Response envelopes. The elastic stiffness has been evaluated from experimental data for each stress level. The constitutive response at small strain can be visualized in the form of response envelopes, Fig. 11. As expected, the ellipses rotate and change their size depending on P and Q. The ellipses also become narrow for triaxial extension.

Fig. 11
figure 11

The stress response envelopes in isomorphic P-Q plane for different tests. The red points correspond to the isotropic compression, blue ones to the isotropic extension and the purple ones to the deviatoric shearing. Green points represent the initial stress state

5 Summary

A general algorithm for determination of stress-dependent small strain stiffness has been presented. This algorithm is insensitive to the method how the tests are performed and controlled (stress-, strain- or mixed-controlled tests can be used). The assumption of a linear dependence of the secant stiffness on stress can be easily extended to non-linear forms. It has been shown that problems of data analysis, such as an accompanying measurement noise or a residual strain accumulation, can be removed using the proposed algorithms. Implementing paraelastic model with some minor modification for variable anisotropy allows to reduce number of laboratory tests, instead concentrating only on one stress (strain) amplitude. The small strain stiffness evaluated from the raw data by fitting the constitutive model can be graphically represented in the isomorphic stress diagram in the form of response envelopes. However, it seems that the direct implementation of constitutive equations into fitting algorithm is of advantage compared with the graphical method, in particular when advanced and well established models are available. We do not recommend the response envelopes as intermediate results between laboratory tests and the constitutive modelling. In future we intend to apply the proposed algorithm to the more experimental data of better quality (e.g. from SP 8, DFG FOR1136 [3]) and to compare our stiffness calculation method with a graphical description of small strain stiffness.