]> https://gitweb.dealii.org/ - code-gallery.git/commitdiff
Updates to address WB's comments (29/12/2015)
authorJean-Paul Pelteret <jppelteret@gmail.com>
Mon, 4 Jan 2016 09:11:27 +0000 (10:11 +0100)
committerJean-Paul Pelteret <jppelteret@gmail.com>
Mon, 4 Jan 2016 09:21:53 +0000 (10:21 +0100)
Quasi_static_Finite_strain_Compressible_Elasticity/README.md
Quasi_static_Finite_strain_Compressible_Elasticity/cook_membrane.cc

index 3605f0199a651004d24a66385ef721ec2a5cae37..beeb0934783b029f69aaad43d63b965f0e86cc1b 100644 (file)
@@ -29,8 +29,9 @@ is prevented in order to impose plane strain conditions.
 
 ![Problem geometry](./doc/problem_setup.png)
 
-Note that we perform a three-dimensional computation as two-dimensional 
-elasticity corresponds to neither plane-strain nor plane-stress conditions.
+Note that we perform a three-dimensional computation as, for this particular 
+formulation, the two-dimensional case corresponds to neither plane-strain 
+nor plane-stress conditions.
 
  
 ## Requirements
@@ -58,10 +59,10 @@ make run
 
 
 ## Recommended Literature
-* C. Miehe (1994), Aspects of the formulation and finite element implementation of large strain isotropic elasticity International Journal for Numerical Methods in Engineering 37 , 12, 1981-2004;
-* G.A. Holzapfel (2001), Nonlinear Solid Mechanics. A Continuum Approach for Engineering, John Wiley & Sons;
-* P. Wriggers (2008), Nonlinear finite element methods, Springer;
-* T.J.R. Hughes (2000), The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover. 
+* C. Miehe (1994), Aspects of the formulation and finite element implementation of large strain isotropic elasticity International Journal for Numerical Methods in Engineering 37 , 12, 1981-2004. DOI: [10.1002/nme.1620371202](http://doi.org/10.1002/nme.1620371202);
+* G.A. Holzapfel (2001), Nonlinear Solid Mechanics. A Continuum Approach for Engineering, John Wiley & Sons. ISBN: [978-0-471-82319-3](http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471823198.html);
+* P. Wriggers (2008), Nonlinear finite element methods, Springer. DOI: [10.1007/978-3-540-71001-1](http://doi.org/10.1007/978-3-540-71001-1);
+* T.J.R. Hughes (2000), The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover. ISBN: [978-0486411811](http://store.doverpublications.com/0486411818.html)
 
 The derivation of the finite-element problem, namely the definition and 
 linearisation of the residual and their subsequent discretisation are quite 
@@ -89,8 +90,10 @@ And an example of the displaced solution is given in the next image.
 
 Below we briefly document the tip displacement as predicted for different
 discretisation levels and ansatz for the displacement field.
-A direct comparison of the following results can be made with those found 
-in Miehe (1994).
+A direct and, by visual inspection, favourable comparison of the following 
+results can be made with those found in Miehe (1994).
+Since the material is compressible, shear-locking is not exhibited by the
+beam for low-order elements.
 
 #### Number of degrees of freedom
 
index fbfc824ef3783740b87ec16a233399d8ac615906..4d5adeef798c5acbf4a8ee2e3aac7b5dceb27634 100644 (file)
@@ -31,6 +31,7 @@
 #include <deal.II/base/tensor.h>
 #include <deal.II/base/timer.h>
 #include <deal.II/base/work_stream.h>
+#include <deal.II/base/std_cxx11/shared_ptr.h>
 
 #include <deal.II/dofs/dof_renumbering.h>
 #include <deal.II/dofs/dof_tools.h>
@@ -589,7 +590,7 @@ namespace Cook_Membrane
       return det_F;
     }
 
-  protected:
+  private:
     // Define constitutive model parameters $\kappa$ (bulk modulus) and the
     // neo-Hookean model parameter $c_1$:
     const double kappa;
@@ -679,17 +680,13 @@ namespace Cook_Membrane
   public:
     PointHistory()
       :
-      material(NULL),
       F_inv(StandardTensors<dim>::I),
       tau(SymmetricTensor<2, dim>()),
       Jc(SymmetricTensor<4, dim>())
     {}
 
     virtual ~PointHistory()
-    {
-      delete material;
-      material = NULL;
-    }
+    {}
 
     // The first function is used to create a material object and to
     // initialize all tensors correctly: The second one updates the stored
@@ -697,8 +694,8 @@ namespace Cook_Membrane
     // $\textrm{Grad}\mathbf{u}_{\textrm{n}}$.
     void setup_lqp (const Parameters::AllParameters &parameters)
     {
-      material = new Material_Compressible_Neo_Hook_One_Field<dim>(parameters.mu,
-          parameters.nu);
+      material.reset(new Material_Compressible_Neo_Hook_One_Field<dim>(parameters.mu,
+          parameters.nu));
       update_values(Tensor<2, dim>());
     }
 
@@ -766,7 +763,7 @@ namespace Cook_Membrane
     // materials are used in different regions of the domain, as well as the
     // inverse of the deformation gradient...
   private:
-    Material_Compressible_Neo_Hook_One_Field<dim> *material;
+    std_cxx11::shared_ptr< Material_Compressible_Neo_Hook_One_Field<dim> > material;
 
     Tensor<2, dim> F_inv;
 
@@ -1351,11 +1348,14 @@ Point<dim> grid_y_transform (const Point<dim> &pt_in)
     // (modelling a plane strain condition)
     if (dim == 3)
       repetitions[dim-1] = 1;
+      
+    const Point<dim> bottom_left = (dim == 3 ? Point<dim>(0.0, 0.0, -0.5) : Point<dim>(0.0, 0.0));
+    const Point<dim> top_right = (dim == 3 ? Point<dim>(48.0, 44.0, 0.5) : Point<dim>(48.0, 44.0));
 
     GridGenerator::subdivided_hyper_rectangle(triangulation, 
                                               repetitions,
-                                               Point<dim>(0.0, 0.0, -0.5),
-                                               Point<dim>(48.0, 44.0, 0.5));
+                                              bottom_left,
+                                              top_right);
 
    // Since we wish to apply a Neumann BC to the right-hand surface, we
    // must find the cell faces in this part of the domain and mark them with

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.