\overline{\overline{\mathbf{\mathsf{K}}}} :=
\mathbf{\mathsf{K}}_{u\widetilde{p}} \overline{\mathbf{\mathsf{K}}} \mathbf{\mathsf{K}}_{\widetilde{p}u} \, .
@f]
-
Note that due to the choice of $\widetilde{p}$ and $\widetilde{J}$ as discontinuous at the element level, all matrices that need to be inverted are defined at the element level.
-
-NEED TO DISCUSS THE STORAGE
-@f[
-\underbrace{\begin{bmatrix}
- \mathbf{\mathsf{K}}_{\textrm{con}} & \mathbf{\mathsf{K}}_{up} & \mathbf{0}
+The procedure to construct the various contributions is as follows:
+- Construct $\mathbf{\mathsf{K}}$.
+- Form $\mathbf{\mathsf{K}}_{\widetilde{p}\widetilde{J}}^{-1}$ for element and store where $\mathbf{\mathsf{K}}_{\widetilde{p}\widetilde{J}}$ was stored in $\mathbf{\mathsf{K}}$.
+- Form $\overline{\overline{\mathbf{\mathsf{K}}}}$ and add to $\mathbf{\mathsf{K}}_{uu}$ to get $\mathbf{\mathsf{K}}_{\textrm{con}}$
+- The modified system matrix is called ${\mathbf{\mathsf{K}}}_{\textrm{store}}$.
+ That is
+ @f[
+ \underbrace{\begin{bmatrix}
+ \mathbf{\mathsf{K}}_{\textrm{con}} & \mathbf{\mathsf{K}}_{u\widetilde{p}} & \mathbf{0}
\\
- \mathbf{\mathsf{K}}_{pu} & \mathbf{0} & \mathbf{\mathsf{K}}_{p\widetilde{J}}^{-1}
+ \mathbf{\mathsf{K}}_{\widetilde{p}u} & \mathbf{0} & \mathbf{\mathsf{K}}_{\widetilde{p}\widetilde{J}}^{-1}
\\
- \mathbf{0} & \mathbf{\mathsf{K}}_{\widetilde{J}p} & \mathbf{\mathsf{K}}_{\widetilde{J}\widetilde{J}}
+ \mathbf{0} & \mathbf{\mathsf{K}}_{\widetilde{J}\widetilde{p}} & \mathbf{\mathsf{K}}_{\widetilde{J}\widetilde{J}}
\end{bmatrix}}_{ {\mathbf{\mathsf{K}}}_{\textrm{store}}}
-@f]
+ @f]
<h3> Numerical example </h3>
The numerical example considered here is a nearly-incompressible block under compression.
This benchmark problem is taken from
-<ol>
- <li>
- S. Reese, P. Wriggers, B.D. Reddy (2000),
- A new locking-free brick element technique for large deformation problems in elasticity,
- <em> Computers and Structures </em>,
- <strong> 75 </strong>,
- 291-304.
-</ol>
+- S. Reese, P. Wriggers, B.D. Reddy (2000),
+ A new locking-free brick element technique for large deformation problems in elasticity,
+ <em> Computers and Structures </em>,
+ <strong> 75 </strong>,
+ 291-304.
@image html "step-44.setup.png"
-Using symmetry, we solve for only one quarter of the geometry, as shown in
-highlights in the figure above.
+The material is quasi-incompressible neo-Hookean with <a href="http://en.wikipedia.org/wiki/Shear_modulus">shear modulus</a> $\mu = 80.194e6$ and $\nu = 0.4999$.
+For such a choice of material properties a conventional $Q_1$ approach would lock.
+That is, the response would be overly stiff.
+The initial and final configurations are shown in the image above.
+Using symmetry, we solve for only one quarter of the geometry (i.e. a cube with dimension $0.001$).
+The inner-quarter of the upper surface of the domain is subject to a load of $p_0$.
+
+
// @sect4{Finite Element system}
// As mentioned in the introduction, a different order
// interpolation should be used for the displacement
-// $\mathbf{u}$ than for the pressure $p$ and
+// $\mathbf{u}$ than for the pressure $\widetilde{p}$ and
// the dilatation $\widetilde{J}$.
-// Choosing $p$ and $\widetilde{J}$ as discontinuous (constant)
+// Choosing $\widetilde{p}$ and $\widetilde{J}$ as discontinuous (constant)
// functions at the element level leads to the
// mean-dilatation method. The discontinuous approximation
-// allows $p$ and $\widetilde{J}$ to be condensed out
+// allows $\widetilde{p}$ and $\widetilde{J}$ to be condensed out
// and a classical displacement based method is recovered.
// Here we specify the polynomial order used to
// approximate the solution.
parse_parameters(ParameterHandler &prm);
};
-// ToDo: add a range check
void Materials::declare_parameters(ParameterHandler &prm) {
prm.enter_subsection("Material properties");
{
- prm.declare_entry("Poisson's ratio", "0.4999", Patterns::Double(),
+ prm.declare_entry("Poisson's ratio", "0.4999", Patterns::Double(-1.0,0.5),
"Poisson's ratio");
prm.declare_entry("Shear modulus", "80.194e6", Patterns::Double(),
// The entire domain is assumed
// to be composed of a compressible neo-Hookean material.
// This class defines
-// the behaviour of this material.
+// the behaviour of this material within a three-field formulation.
// Compressible neo-Hookean materials
// can be described by a strain-energy function (SEF)
-// $ \Psi = \Psi_{\text{iso}}(\overline{\mathbf{b}}) + \Psi_{\text{vol}}(J) $.
+// $ \Psi = \Psi_{\text{iso}}(\overline{\mathbf{b}}) + \Psi_{\text{vol}}(\widetilde{J}) $.
//
// The isochoric response is given by
-// $ \Psi_{\text{iso}}(\mathbf{b}) = c_{1} [\overline{I}_{1} - 3] $
+// $ \Psi_{\text{iso}}(\overline{\mathbf{b}}) = c_{1} [\overline{I}_{1} - 3] $
// where $ c_{1} = \frac{\mu}{2} $ and $\overline{I}_{1}$ is the first
// invariant of the left- or right- isochoric Cauchy-Green deformation tensors.
// That is $\overline{I}_1 :=\textrm{tr}(\overline{\mathbf{b}})$.
// In this example the SEF that governs the volumetric
// response is defined as
// $ \Psi_{\text{vol}}(\widetilde{J}) = \kappa \bigl[ \frac{1}{2} [ \widetilde{J}^{2} - 1 ] - \textrm{ln}( \widetilde{J}) ] \bigr] $
-// where $\kappa:= \lambda + 2/3 \mu$ is the bulk modulus and
-// $\lambda$ is a Lame moduli.
+// where $\kappa:= \lambda + 2/3 \mu$ is the <a href="http://en.wikipedia.org/wiki/Bulk_modulus">bulk modulus</a> and
+// $\lambda$ is <a href="http://en.wikipedia.org/wiki/Lam%C3%A9_parameters">Lame's first parameter</a>.
template<int dim>
class Material_Compressible_Neo_Hook_Three_Field {
public:
// which is then normalised by the current volume
// $\int_{\Omega_0} J ~\textrm{d}V = \int_\Omega ~\textrm{d}v$.
template<int dim>
-// ToDO: return the ratio of the reference and current volumes
double Solid<dim>::get_error_dil(void) {
double dil_L2_error = 0.0;