From c9549fb0ad82552a1694534e05658f59f846e60f Mon Sep 17 00:00:00 2001
From: Ruth Sabariego <ruth.sabariego@kuleuven.be>
Date: Tue, 26 Jun 2018 11:09:45 +0200
Subject: [PATCH] slightly clearer and straightforward...

---
 Elasticity/wrench2D.pro | 100 ++++++++++++++++++++++------------------
 1 file changed, 55 insertions(+), 45 deletions(-)

diff --git a/Elasticity/wrench2D.pro b/Elasticity/wrench2D.pro
index 76147ed..cd70662 100644
--- a/Elasticity/wrench2D.pro
+++ b/Elasticity/wrench2D.pro
@@ -1,35 +1,38 @@
 /* -------------------------------------------------------------------
-   Tutorial 3 : linear elastic model of a wrench
+    Tutorial 3 : linear elastic model of a wrench
 
-   Features:
-   - "grad u" GetDP specific formulation for linear elasticity
-   - first and second order elements
-   - triangular and quadrangular elements
+    Features:
+    - "grad u" GetDP specific formulation for linear elasticity
+    - first and second order elements
+    - triangular and quadrangular elements
 
-   To compute the solution interactively from the Gmsh GUI:
+    To compute the solution in a terminal:
+       getdp wrench2D.pro -solve Elast_u -pos pos
+
+    To compute the solution interactively from the Gmsh GUI:
        File > Open > wrench.pro
        Run (button at the bottom of the left panel)
    ------------------------------------------------------------------- */
 
-/* Linear elasticity with GetDP:
-
-   GetDP has a peculiar way to deal with linear elasticity.  Instead of a vector
-   field "u = Vector[ ux, uy, uz ]", the displacement field is regarded as two
-   (2D case) or 3 (3D case) scalar fields. Unlike conventional formulations
-   then, GetDP's formulation is written in terms of the gradient "grad u" of the
-   displacement field, which is a non-symmetric tensor, and the needed
-   symmetrization (to define the strain tensor and relate it to the stress
-   tensor) is done through the constitutive relationship (Hooke law).  The
-   reason for this unusual formulation is to be able to use also for elastic
-   problems the powerful geometrical and homological kernel of GetDP, which
-   relies on the operators grad, curl and div.
-
-   The "grad u" formulation entails a small increase of assembly work but makes
-   in counterpart lots of geometrical features implemented in GetDP (change of
-   coordinates, function spaces, etc...)  applicable to elastic problems
-   out-of-the-box, since the scalar fields { ux, uy, uz } have exactly the same
-   geometrical properties as, e.g. a scalar electric potential or a temperature
-   field. */
+/* 
+    Particularities of linear elasticity in GetDP:
+
+    Instead of a vector field "u = Vector[ ux, uy, uz ]", the displacement field 
+    is regarded as two (2D case) or three (3D case) scalar fields. 
+    Unlike conventional formulations, GetDP formulation is then written in terms 
+    of the gradient "grad u" of the displacement field, which is a non-symmetric 
+    tensor, and the needed symmetrization (to define the strain tensor and relate 
+    it to the stress tensor) is done via the constitutive relationship (Hooke law). 
+    This unusual formulation allows to take advantage of the powerful geometrical 
+    and homological GetDP kernel, which relies on the operators grad, curl and div.
+    
+    The "grad u" formulation entails a small increase of assembly work but makes
+    in counterpart lots of geometrical features implemented in GetDP (change of
+    coordinates, function spaces, etc...) applicable to elastic problems
+    out-of-the-box, since the scalar fields { ux, uy, uz } have exactly the same
+    geometrical properties as, e.g. an electric scalar potential or a temperature
+    field. 
+*/
 
 Include "wrench2D_common.pro";
 
@@ -54,24 +57,30 @@ Group {
   Sur_Clamp_Mec = Region[ Grip ];
   Sur_Force_Mec = Region[ Force ];
 
-  /* Signification of the abstract regions:
+  /* Meaning of abstract regions:
      - Vol_Mec       : Elastic domain
-     - Vol_Force_Mec : Region with imposed volumic force
+     - Vol_Force_Mec : Region with imposed volume force
      - Sur_Force_Mec : Surface with imposed surface traction
      - Sur_Clamp_Mec : Surface with imposed zero displacements (all components) */
 }
 
 Function {
-  /* Material coefficients.
-     No need to define them regionwise here ( E[{Wrench}] = ... ; )
-     as there is only one region in this model. */
+  /* 
+    Material coefficients
+    No need of regionwise definition ( E[{Wrench}] = ... ; )
+    as this model comprises only one region. 
+    If there is more than one region and coefficients are not particularised, 
+    the same value holds for all of them. 
+ */
   E[] = Young;
   nu[] = Poisson;
-  /* Components of the volumic force applied to the region "Vol_Force_Mec"
-     Gravity could be defined here ( force_y[] = 7000*9.81; ) ; */
+  /* 
+    Volume force components applied to the region "Vol_Force_Mec"
+    Gravity could be defined here as well ( force_y[] = 7000*9.81; ) ; 
+  */
   force_x[] = 0;
   force_y[] = 0;
-  /* Components of the surface traction force applied to the region "Sur_Force_Mec" */
+  /* Surface traction force components applied to the region "Sur_Force_Mec" */
   pressure_x[] = 0;
   pressure_y[] = -AppliedForce/(SurfaceArea[]*Thickness); // downward vertical force
 }
@@ -82,7 +91,7 @@ Function {
 
    sigma_ij = C_ijkl epsilon_ij
 
-   is represented in 2D by 4 2x2 tensors C_ij[], i,j=1,2, depending on the Lamé
+   is represented in 2D by four 2x2 tensors C_ij[], i,j=1,2, depending on the Lamé
    coefficients of the isotropic linear material,
 
    lambda = E[]*nu[]/(1.+nu[])/(1.-2.*nu[])
@@ -94,7 +103,8 @@ Function {
    EPD:  a[] = lambda + 2 mu     b[] = mu     c[] = lambda
     3D:  a[] = lambda + 2 mu     b[] = mu     c[] = lambda
 
-   respectively for the 2D plane strain (EPD), 2D plane stress (EPS) and 3D cases. */
+   respectively for the 2D plane strain (EPD), 2D plane stress (EPS) and 3D cases. 
+*/
 
 Function {
   Flag_EPC = 1;
@@ -128,7 +138,7 @@ Constraint {
   }
 }
 
-/* As explained above, the displacement field is discretized as two scalar
+/* As mentioned above, the displacement field is discretized as two scalar
    fields "ux" and "uy", which are the spatial components of the vector field
    "u" in a fixed Cartesian coordinate system.
 
@@ -143,17 +153,17 @@ Constraint {
    u . n = ux Cos [th] + uy Sin [th] = ... ;
 
    are less naturally accounted for within the "grad u" formulation; but they
-   could be easily implemented with a Lagrange multplier.
+   could be easily implemented with e.g. a Lagrange multiplier.
 
-   Finite element shape (triangles or quadrangles) makes no difference in the
-   definition of the FunctionSpaces. The appropriate shape functions to be used
+   The finite element shape (e.g. triangles or quadrangles in 2D) has no influence 
+   in the definition of the FunctionSpaces. The appropriate shape functions
    are determined by GetDP at a much lower level on basis of the information
    contained in the *.msh file.
 
-   Second order elements, on the other hand, are implemented in the hierarchical
-   fashion by adding to the first order node-based shape functions a set of
-   second order edge-based functions to complete a basis for 2d order
-   polynomials on the reference element. */
+   Second order elements are hierarchically implemented by adding to the first 
+   order node-based shape functions a set of second order edge-based functions 
+   to complete a basis for 2D order polynomials on the reference element. 
+*/
 
 // Domain of definition of the "ux" and "uy" FunctionSpaces
 Group {
@@ -217,8 +227,8 @@ Jacobian {
   }
 }
 
-/* Adapt the number of Gauss points to the polynomial degree of the finite elements
-   is as simple as this: */
+/* Adapting the number of Gauss points to the polynomial degree of the finite elements
+   is simple: */
 Integration {
   { Name Gauss_v;
     Case {
-- 
GitLab