4.3. Elastic Model
4.3.1. Theory
The elastic model is a hypoelastic extension of isotropic, small-strain, linear elasticity [[1], [2], [3]]. The stress-strain response for an isotropic, elastic material is
where the Lamé constants, \(\lambda\) and \(\mu\), are given by
This model is extended to a finite-deformation, hypoelastic model by first making it a rate equation. Then the stress rate is replaced with an objective stress rate and the strain rate is replaced with the rate of deformation. This gives us
The stress rate is arbitrary, as long as it is objective. Two objective stress rates are commonly used: the Jaumann rate and the Green-McInnis rate. For problems with fixed principal axes of deformation, these two rates give the same answers. For problems where the principal axes of deformation rotate during the deformation, the two rates can give different answers. Generally speaking there is no reason to pick one objective rate over another. Sierra/SM uses the Green-McInnis rate.
The fourth-order elastic moduli are used in many constitutive models. There are many equivalent representations for the elastic moduli. In index notation we present the following three representations
where \(K\) is the elastic bulk modulus and is given by
4.3.2. Implementation
The elastic model is a hypoelastic model and is implemented using an unrotated configuration in order to preserve objectivity. Given an unrotated rate of deformation, \(d_{ij}\), and the unrotated stress at time \(t_{n}\), \(T_{ij}^{n}\), the unrotated stress is updated by integrating the constant unrotated rate of deformation
4.3.3. Verification
Three verification problems are run for the elastic model: uniaxial stress, pure shear, and biaxial stress. The results of these test problems serve as verification for the elastic model.
4.3.3.1. Uniaxial Stress
The elastic model was verified in uniaxial stress. The problem was run with a Young’s modulus of 200 GPa and a Poisson’s ratio of 0.3. The axial stress is simply
The axial stress is shown in Fig. 4.1. The axial stress is linear with the axial strain and has a slope of \(E = 200\times10^{3}\) MPa.
The lateral strains for uniaxial stress are
The lateral strains are shown in Fig. 4.2.
Fig. 4.1 The axial stress component \(\sigma_{11}\) in uniaxial stress using the elastic model.
Fig. 4.2 The lateral strain components \(\varepsilon_{22}\) and \(\varepsilon_{33}\) in uniaxial stress using the elastic model.
4.3.3.2. Biaxial Stress
The elastic model is verified in biaxial stress. Biaxial stress is a plane stress state where \(\sigma_{11} = \sigma_{1}\), \(\sigma_{22} = \sigma_{2}\), and all other stress components are zero. The problem is displacement controlled in the \(x_{1}\) and \(x_{2}\) directions. If the applied strains are \(\varepsilon_{11} = \varepsilon\) and \(\varepsilon_{22} = \alpha\varepsilon\) where \(\alpha \in [0,1]\), then the applied displacements are
In the following results, \(\alpha\) will be taken to be 0.45. For the plane stress state, we have \(\sigma_{33} = 0\), which allows us to solve for \(\varepsilon_{33}\)
The component \(\varepsilon_{33}\) is shown in Fig. 4.3. The in-plane stress components are
The in-plane stress components are shown in Fig. 4.4.
Fig. 4.3 The strain component \(\varepsilon_{33}\) in biaxial stress using the elastic model.
Fig. 4.4 The normal stress components \(\sigma_{11}\) and \(\sigma_{22}\) in biaxial stress using the elastic model.
4.3.3.3. Pure Shear
The elastic model is verified in pure shear. Pure shear gives a stress state where \(\sigma_{12}\) is the only non-zero stress component. The problem is completely displacement controlled and the applied shear strain is \(\varepsilon_{12} = \varepsilon (t)\).
The shear stress in the problem is
The shear stress-strain response is shown in Fig. 4.5.
Fig. 4.5 The shear stress component \(\sigma_{12}\) in pure shear using the elastic model.
4.3.3.4. Performance
The performance of the elastic model was analyzed using the material point driver. The elastic model was run in uniaxial strain for 1 billion calculations and the CPU time was recorded using clock() method in the time.h header. The start and end times are found and the CPU time is calculated by dividing the difference by the variable CLOCKS_PER_SECOND.
Since the CPU times will depend on many things outside of the actual code, a set of times were generated as a baseline. For this task the 1 billion calculations were performed 100 times. With the 100 CPU times the mean and standard deviation were calculated. Next we assume a normal distribution of CPU times and the normal distribution is generated.
Subsequent performance tests involve generating 10 sets of the 1 billion calculations. This much smaller data set is used to generate its own mean and standard deviation. If this mean is within 3 standard deviations of the baseline mean, then the performance of the model is assumed to be identical to that of the baseline model.
4.3.4. User Guide
BEGIN PARAMETERS FOR MODEL ELASTIC
#
# Elastic constants
#
YOUNGS MODULUS = <real>
POISSONS RATIO = <real>
SHEAR MODULUS = <real>
BULK MODULUS = <real>
LAMBDA = <real>
TWO MU = <real>
END [PARAMETERS FOR MODEL ELASTIC]
There are no output variables available for the elastic model. For information about the elastic model, consult [[4]].