From: mcbride Date: Thu, 16 Feb 2012 05:37:31 +0000 (+0000) Subject: some more small changes and references X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae3469bb70fc79ae207b1ce01b7796ecb3c72ab0;p=dealii-svn.git some more small changes and references git-svn-id: https://svn.dealii.org/trunk@25094 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/examples/step-44/doc/intro.dox b/deal.II/examples/step-44/doc/intro.dox index 53b1c43cac..4a6c347b0a 100644 --- a/deal.II/examples/step-44/doc/intro.dox +++ b/deal.II/examples/step-44/doc/intro.dox @@ -537,36 +537,42 @@ where \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]

Numerical example

The numerical example considered here is a nearly-incompressible block under compression. This benchmark problem is taken from -
    -
  1. - S. Reese, P. Wriggers, B.D. Reddy (2000), - A new locking-free brick element technique for large deformation problems in elasticity, - Computers and Structures , - 75 , - 291-304. -
+- S. Reese, P. Wriggers, B.D. Reddy (2000), + A new locking-free brick element technique for large deformation problems in elasticity, + Computers and Structures , + 75 , + 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 shear modulus $\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$. + + diff --git a/deal.II/examples/step-44/step-44.cc b/deal.II/examples/step-44/step-44.cc index d49ffc99ed..277e32c4f6 100644 --- a/deal.II/examples/step-44/step-44.cc +++ b/deal.II/examples/step-44/step-44.cc @@ -67,12 +67,12 @@ namespace Parameters { // @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. @@ -164,11 +164,10 @@ struct Materials { 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(), @@ -563,21 +562,21 @@ private: // 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 bulk modulus and +// $\lambda$ is Lame's first parameter. template class Material_Compressible_Neo_Hook_Three_Field { public: @@ -1795,7 +1794,6 @@ void Solid::print_conv_footer(void) { // which is then normalised by the current volume // $\int_{\Omega_0} J ~\textrm{d}V = \int_\Omega ~\textrm{d}v$. template -// ToDO: return the ratio of the reference and current volumes double Solid::get_error_dil(void) { double dil_L2_error = 0.0;