(Created page with " ==EXPLICIT DYNAMIC ANALYSIS OF THIN MEMBRANE STRUCTURES== <span id='_Toc284589275'></span> ==Roberto Flores, Enrique Ortega and Eugenio Oñate== <span style="text-align: c...")
 
m (Cinmemj moved page Draft Samper 793606474 to Flores et al 2011a)
 
(22 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
 +
==Abstract==
  
==EXPLICIT DYNAMIC ANALYSIS OF THIN MEMBRANE STRUCTURES==
+
An explicit dynamic structural solver developed at CIMNE for the analysis of parachutes is presented. The canopy fabric has a negligible out-of-plane stiffness, therefore its numerical study presents important challenges. Both the large changes in geometry and the statically indeterminate character of the system are problematic from the numerical point of view. This report covers the reasons behind the particular choice of solution scheme as well as a detailed description of the underlying algorithm. Both the theoretical foundations of the method and details of implementation aiming at improving computational efficiency are given. Benchmark cases to assess the accuracy of the solution as well as examples of practical application showing the performance of the code are finally presented.
  
<span id='_Toc284589275'></span>
 
==Roberto Flores, Enrique Ortega and Eugenio Oñate==
 
  
<span style="text-align: center; font-size: 75%;">Centre Internacional de Metodes Numerics a l’Enginyeria (CIMNE)</span>
+
==1 Problem overview==
  
<span id='_GoBack'></span>
+
This report describes the theoretical foundation as well as applications of PUMI_MEM, an explicit dynamics structural solver developed at CIMNE. This code is part of the PARAFLIGHT parachute simulation suite <span id='cite-_Ref284604132'></span>[[#_Ref284604132|[1]]] which also includes a potential flow solver <span id='cite-_Ref284604146'></span>[[#_Ref284604146|[2]]]. The mechanical analysis of thin membrane structures braced with cables (e.g. parachutes) is a challenging task. Two effects entail a host of numerical problems <span id='cite-_Ref284616324'></span>[[#_Ref284616324|[3]]]:
<span style="text-align: center; font-size: 75%;">Universitat Politècnica de Catalunya, Barcelona, España</span>
+
  
'''Abstract'''. An explicit dynamic structural solver developed at CIMNE for the analysis of parachutes is presented. The canopy fabric has a negligible out-of-plane stiffness, therefore its numerical study presents important challenges. Both the large changes in geometry and the statically indeterminate character of the system are problematic from the numerical point of view. This report covers the reasons behind the particular choice of solution scheme as well as a detailed description of the underlying algorithm. Both the theoretical foundations of the method and details of implementation aiming at improving computational efficiency are given. Benchmark cases to assess the accuracy of the solution as well as examples of practical application showing the performance of the code are finally presented.
+
:* In general the structure is not statically determinate for an arbitrary set of loads (i.e. it behaves like a mechanism). Thus, it might be impossible to reach an equilibrium state without drastic changes in geometry. The structural response is therefore highly nonlinear and may cause severe convergence problems.
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
:* Due to the virtually zero bending stiffness of the components the material behaviour is irreversible. The fabric is able to resist tensile stresses but buckles (wrinkles) almost immediately under compressive loads. This asymmetric behaviour further complicates the mechanical analysis <span id='cite-_Ref284688748'></span>[[#_Ref284688748|[4]]]<span id='cite-_Ref284688750'></span>[[#_Ref284688750|[5]]].
'''<br/>'''<big>'''INDEX'''</big></div>
+
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
In the particular case of parachutes there is an additional complication due to the nature of the applied forces. These being mostly pressure loads, their direction is not known ''a priori'' but is a function of the deformed shape and must therefore be computed as part of the solution. This is an additional source of non-linearity. Finally, matters are further complicated by the extreme sensitivity of the pressure field to changes in geometry <span id='cite-_Ref284688881'></span>[[#_Ref284688881|[6]]].
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''1'''
+
| style="" | '''Problem overview
+
| style="" | 3'''
+
|}
+
</div>
+
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
In view of these challenges it was decided to use a finite element (FE) dynamic structural solver. An unsteady analysis is insensitive to the problems caused by the lack of a definite static equilibrium configuration. In a dynamic problem the structure is constantly in equilibrium with the inertial forces so the solution is always unique. Even if only the long-term static response is sought the dynamic study offers clear advantages. Furthermore, the extension to transient dynamic problems becomes trivial. There are two basic kinds of dynamic solvers, implicit and explicit <span id='cite-_Ref284617109'></span>[[#_Ref284617109|[7]]]. Their main features are:
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''2'''
+
| style="" | '''Problem Formulation
+
| style="" | 6'''
+
|}
+
</div>
+
  
{|
+
:* Implicit: Can be made unconditionally stable (allows for large time steps). Cost per time step is large, each step requires solving a non linear problem using an iterative algorithm. The radius of convergence of the iterative algorithms is however limited so the time step cannot be made arbitrarily large.
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 2.1
+
| style="" | Weak equilibrium statement
+
| style="text-align: right; margin-left: 1em;" | 6
+
|}
+
  
{|
+
:* Explicit: Only conditionally stable. The stability limit is determined by the material properties and the geometry of the FE mesh. Cost per time step is low.
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 2.2
+
| style="" | Finite element discretization
+
| style="text-align: right; margin-left: 1em;" | 7
+
|}
+
  
{|
+
When the structural response does not deviate much from linearity the implicit treatment is advantageous as it allows advancing in time quickly. Also, the static equilibrium (when it exists) can be reached in a small number of iterations. However, when the behaviour is heavily non-linear, the time increment must be cut back in order for the iterative schemes to converge and the computational increases quickly. There is also a loss of robustness caused by the possibility of the algorithms failing to converge. On the other hand, the explicit method is extremely insensitive to these effects and requires a number of time steps that does not change substantially as the system response becomes more complex. Material non-linearities and large displacements which are extremely detrimental for the convergence behaviour of the implicit scheme do not affect so adversely the explicit algorithm.
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 2.3
+
| style="" | Time integration
+
| style="text-align: right; margin-left: 1em;" | 9
+
|}
+
  
{|
+
In view of the difficulties expected the choice was made to use an Explicit FE structural solver. A further advantage is the ability of the algorithm to be easily vectored and thus take advantage of modern parallel processing architectures. Linear cable and membrane elements where selected due to their ease of implementation. The fabric is modelled using three-node membrane elements due to their geometric simplicity. As the three nodes of the element can be always assumed to lie in a plane, the definition of the local coordinate systems is straightforward. When a quadrilateral element is passed from the aerodynamic solver, it is internally transformed into a pair of triangular elements in order to carry the analysis.
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 2.4
+
| style="" | Mass scaling
+
| style="text-align: right; margin-left: 1em;" | 12
+
|}
+
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
A local corrotational reference frame is used for each cable and membrane element in order to remove the large rigid-body displacement field and isolate the material strains. Inside each element a simple small-strain formulation is used due to the properties of the fabric. Tensile deformations are always small, on the other hand compressive strains can become extremely large due to the inclusion of a wrinkling model (zero compression stiffness). There is however no stress associated with the compressive strains and, correspondingly, no strain energy. The small-strain formulation is therefore adequate, as only the small tensile deformations must be into account to calculate the stress state.
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''3'''
+
| style="" | '''Numerical damping
+
| style="" | 13'''
+
|}
+
</div>
+
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
While not strictly necessary to model the parachute behaviour, tetrahedral solid (3D) elements have been included in the code. They prove useful in modelling the dynamic interaction between the parachute and its payload. As they are meant to model bodies undergoing only small deformations a linear formulation is considered adequate for the task at hand.
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''4'''
+
| style="" | '''Element formulation
+
| style="" | 15'''
+
|}
+
</div>
+
  
{|
+
<span id='_Toc284943808'></span>
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 4.1
+
| style="" | Two-node linear cable element
+
| style="text-align: right; margin-left: 1em;" | 15
+
|}
+
  
{|
+
==2 Problem Formulation==
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 4.2
+
| style="" | Three-node linear membrane element
+
| style="text-align: right; margin-left: 1em;" | 17
+
|}
+
  
{|
+
<span id='_Toc284943809'></span>
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 4.3
+
| style="" | Four-node linear tetrahedral solid element
+
| style="text-align: right; margin-left: 1em;" | 24
+
|}
+
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
===2.1 Weak equilibrium statement===
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''5'''
+
| style="" | '''Validation examples
+
| style="" | 32'''
+
|}
+
</div>
+
  
{|
+
We start using the internal equilibrium statement for a continuum which relates the gradient of the stress field to the applied loads
|-
+
| style="width: 16.9333mm;vertical-align: top;" | 5.1
+
| style="" | Cable element subject to weight load
+
| style="text-align: right; margin-left: 1em;" | 32
+
|}
+
  
{|
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 
|-
 
|-
| style="width: 16.9333mm;vertical-align: top;" | 5.2
+
|  
| style="" | Circular membrane under uniform pressure
+
{| style="text-align: center; margin:auto;"  
| style="text-align: right; margin-left: 1em;" | 33
+
|}
+
 
+
{|
+
 
|-
 
|-
| style="width: 16.9333mm;vertical-align: top;" | 5.3
+
| <span id='ZEqnNum878772'></span>  <math>\begin{array}{c}
| style="" | Square airbag inflation test
+
\sum_j\frac{\partial {\sigma }_{ij}}{\partial x_j}+b_i=0\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\mbox{ }\boldsymbol{x}\in \Omega \mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }i=1,2,3\\
| style="text-align: right; margin-left: 1em;" | 34
+
u_i={\overline{u}}_i(\boldsymbol{x})\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\mbox{ }\boldsymbol{x}\in {\Gamma }_D\\
 +
\sum_j{\sigma }_{ij}\cdot n_j={\overline{t}}_i(\boldsymbol{x})\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\mbox{ }\boldsymbol{x}\in {\Gamma }_N\mbox{ }\mbox{ }\mbox{ }\mbox{ }
 +
\end{array}</math>
 
|}
 
|}
 
+
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.1)
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''6'''
+
| style="" | '''Application examples
+
| style="" | 35'''
+
 
|}
 
|}
</div>
 
  
{|
+
 
 +
were  <math display="inline">{\overline{u}}_i</math> and  <math display="inline">{\overline{t}}_i</math> stand for prescribed surface displacements and tractions. In the case of a dynamic problem the body forces (b<sub>i</sub>) include the inertial loads given by:
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 
|-
 
|-
| style="width: 16.9333mm;vertical-align: top;" | 6.1
+
|  
| style="" | Ram air parachute modelling
+
{| style="text-align: center; margin:auto;"  
| style="text-align: right; margin-left: 1em;" | 35
+
|}
+
 
+
{|
+
 
|-
 
|-
| style="width: 16.9333mm;vertical-align: top;" | 6.2
+
| <span id='ZEqnNum740733'></span>  <math>{b_i\vert }_{inertial}=-\rho \frac{d^2u_i}{dt^2}</math>
| style="" | Drag canopy deployment
+
|}
| style="text-align: right; margin-left: 1em;" | 37
+
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.2)
 
|}
 
|}
  
{|
+
 
 +
where &#x03c1; is the density of the solid. Note that the time derivative in <span id='cite-ZEqnNum740733'></span>[[#ZEqnNum740733|(2.2)]] is a total one, i.e. tracking the material particles. To obtain the Finite Element (FE) formulation of the problem we construct the weak formulation of <span id='cite-ZEqnNum878772'></span>[[#ZEqnNum878772|(2.1)]]. Let &#x03b4;u<sub>i</sub> be an arbitrary test function (representing in this case a virtual displacement field). We may thus write:
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 
|-
 
|-
| style="width: 16.9333mm;vertical-align: top;" | 6.3
+
| <span id='ZEqnNum272009'></span>  <math>\begin{array}{c}
| style="" | Draping simulation
+
\left(\frac{\partial {\sigma }_{ij}}{\partial x_j}+b_i\right)\delta u_i=0\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\mbox{ }\boldsymbol{x}\in \Omega \mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }i=1,2,3\\
| style="text-align: right; margin-left: 1em;" | 37
+
\left(u_i-{\overline{u}}_i\right)\delta u_i=0\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\mbox{ }\boldsymbol{x}\in {\Gamma }_D\\
 +
\left({\sigma }_{ij}\cdot n_j-{\overline{t}}_i\right)\delta u_i=0\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\mbox{ }\boldsymbol{x}\in {\Gamma }_N
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.3)
 
|}
 
|}
  
{|
+
 
 +
Note that in <span id='cite-ZEqnNum272009'></span>[[#ZEqnNum272009|(2.3)]] implicit summation has been used in order to keep the notation compact. Now, the weighted average of the equations is taken over the relevant domains
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 
|-
 
|-
| style="width: 16.9333mm;vertical-align: top;" | 6.4
+
| <span id='ZEqnNum284786'></span>  <math>\int_{\Omega }\left(\frac{\partial {\sigma }_{ij}}{\partial x_j}\delta u_i+\right. </math><math>\left. b_i\delta u_i\right)d\Omega +\int_{{\Gamma }_D}\left(u_i\delta u_i-\right. </math><math>\left. {\overline{u}}_i\delta u_i\right)d\Gamma +\int_{{\Gamma }_N}\left({\overline{t}}_i\delta u_i-\right. </math><math>\left. {\sigma }_{ij}\cdot n_j\delta u_i\right)d\Gamma =</math><math>0</math>
| style="" | Blast loading of inflatable structures
+
| style="text-align: right; margin-left: 1em;" | 38
+
 
|}
 
|}
 
+
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.4)
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
{|
+
|-
+
| style="width: 8.46667mm;vertical-align: top;" | '''7'''
+
| style="" | '''Conclusions
+
| style="" | 42'''
+
 
|}
 
|}
</div>
 
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
 
{|
+
If <span id='cite-ZEqnNum284786'></span>[[#ZEqnNum284786|(2.4)]] holds for any virtual displacement field, the equation becomes equivalent to (2.5). To keep the expressions simple without loss of generality it is common practice to assume that the virtual displacement field is compatible with any existing prescribed displacement constraints. This way the integrals over &#x0393;<sub>D</sub> can be dropped (i.e.  <math>\delta u_i=0\mbox{ }\mbox{ }\forall \mbox{ }\mbox{ }\boldsymbol{x}\in {\Gamma }_D</math> ) but care must be taken to ensure that the solution is indeed compatible with the constraints. The term containing the internal stresses can be integrated by parts yielding
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"  
 
|-
 
|-
| style="width: 8.46667mm;vertical-align: top;" | '''8'''
+
|
| style="" | '''Acknowledgements
+
{| style="text-align: center; margin:auto;"  
| style="" | 42'''
+
|-
 +
| <span id='ZEqnNum460769'></span>  <math>\int_{\Omega }\left(-{\sigma }_{ij}\frac{\partial \delta u_i}{\partial x_j}+\right. </math><math>\left. b_i\delta u_i\right)d\Omega +\int_{{\Gamma }_N}{\overline{t}}_i\delta u_i\mbox{ }d\Gamma =</math><math>0</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.6)
 
|}
 
|}
</div>
 
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
 
{|
+
The deformation gradient can be split into a symmetric and an antisymmetric part:
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"  
 
|-
 
|-
| style="width: 8.46667mm;vertical-align: top;" | '''9'''
+
|
| style="" | '''References
+
{| style="text-align: center; margin:auto;"  
| style="" | 43'''
+
|-
 +
| <span id='_GoBack'></span><span id='ZEqnNum154457'></span>  <math>\frac{\partial \delta u_i}{\partial x_j}=\frac{1}{2}\left(\frac{\partial \delta u_i}{\partial x_j}+\right. </math><math>\left. \frac{\partial \delta u_j}{\partial x_i}\right)+</math><math>\frac{1}{2}\left(\frac{\partial \delta u_i}{\partial x_j}-\right. </math><math>\left. \frac{\partial \delta u_j}{\partial x_i}\right)=</math><math>\delta {\epsilon }_{ij}+\delta {\omega }_{ij}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.7)
 
|}
 
|}
</div>
 
  
<span id='_Toc284943807'></span>
 
==1 Problem overview==
 
  
This report describes the theoretical foundation as well as applications of PUMI_MEM, an explicit dynamics structural solver developed at CIMNE. This code is part of the PARAFLIGHT parachute simulation suite <span id='cite-_Ref284604132'></span>[[#_Ref284604132|[1]]] which also includes a potential flow solver <span id='cite-_Ref284604146'></span>[[#_Ref284604146|[2]]]. The mechanical analysis of thin membrane structures braced with cables (e.g. parachutes) is a challenging task. Two effects entail a host of numerical problems <span id='cite-_Ref284616324'></span>[[#_Ref284616324|[3]]]:
+
In the expression above &#x03b5;<sub>ij</sub> represents the virtual strain field and &#x03c9;<sub>ij</sub> is the virtual local rotation. Given that the stress tensor is symmetric the product  <math>{\sigma }_{ij}{\omega }_{ij}</math> vanishes. Expression <span id='cite-ZEqnNum460769'></span>[[#ZEqnNum460769|(2.6)]] then becomes the virtual work principle
  
:* In general the structure is not statically determinate for an arbitrary set of loads (i.e. it behaves like a mechanism). Thus, it might be impossible to reach an equilibrium state without drastic changes in geometry. The structural response is therefore highly nonlinear and may cause severe convergence problems.
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum471288'></span> <math>\sum_{i,j}\int_{\Omega }{\sigma }_{ij}\delta {\epsilon }_{ij}\mbox{ }d\Omega =</math><math>\sum_i\int_{\Omega }b_i\delta u_i\mbox{ }d\Omega +</math><math>\sum_i\int_{{\Gamma }_N}{\overline{t}}_i\delta u_i\mbox{ }d\Gamma </math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.8)
 +
|}
  
:*  Due to the virtually zero bending stiffness of the components the material behaviour is irreversible. The fabric is able to resist tensile stresses but buckles (wrinkles) almost immediately under compressive loads. This asymmetric behaviour further complicates the mechanical analysis <span id='cite-_Ref284688748'></span>[[#_Ref284688748|[4]]]<span id='cite-_Ref284688750'></span>[[#_Ref284688750|[5]]].
 
  
In the particular case of parachutes there is an additional complication due to the nature of the applied forces. These being mostly pressure loads, their direction is not known ''a priori'' but is a function of the deformed shape and must therefore be computed as part of the solution. This is an additional source of non-linearity. Finally, matters are further complicated by the extreme sensitivity of the pressure field to changes in geometry <span id='cite-_Ref284688881'></span>[[#_Ref284688881|[6]]].
+
Eq. <span id='cite-ZEqnNum471288'></span>[[#ZEqnNum471288|(2.8)]] states that when the system is in equilibrium the change in strain energy caused by an arbitrary virtual displacement field equals the work done by the external forces.
  
In view of these challenges it was decided to use a finite element (FE) dynamic structural solver. An unsteady analysis is insensitive to the problems caused by the lack of a definite static equilibrium configuration. In a dynamic problem the structure is constantly in equilibrium with the inertial forces so the solution is always unique. Even if only the long-term static response is sought the dynamic study offers clear advantages. Furthermore, the extension to transient dynamic problems becomes trivial. There are two basic kinds of dynamic solvers, implicit and explicit <span id='cite-_Ref284617109'></span>[[#_Ref284617109|[7]]]. Their main features are:
+
<span id='_Toc284943810'></span>
  
:*  Implicit: Can be made unconditionally stable (allows for large time steps). Cost per time step is large, each step requires solving a non linear problem using an iterative algorithm. The radius of convergence of the iterative algorithms is however limited so the time step cannot be made arbitrarily large.
+
===2.2 Finite element discretization===
  
:*  Explicit: Only conditionally stable. The stability limit is determined by the material properties and the geometry of the FE mesh. Cost per time step is low.
+
To obtain the FE discretization we build an approximate solution interpolating the nodal values of the displacements <span id='cite-_Ref284617545'></span>[[#_Ref284617545|[8]]]. A virtual displacement field can be obtained in the same way
  
When the structural response does not deviate much from linearity the implicit treatment is advantageous as it allows advancing in time quickly. Also, the static equilibrium (when it exists) can be reached in a small number of iterations. However, when the behaviour is heavily non-linear, the time increment must be cut back in order for the iterative schemes to converge and the computational increases quickly. There is also a loss of robustness caused by the possibility of the algorithms failing to converge. On the other hand, the explicit method is extremely insensitive to these effects and requires a number of time steps that does not change substantially as the system response becomes more complex. Material non-linearities and large displacements which are extremely detrimental for the convergence behaviour of the implicit scheme do not affect so adversely the explicit algorithm.
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum836024'></span>  <math>{\tilde{u}}_i(\boldsymbol{x})=N^k(\boldsymbol{x})\mbox{ }{\tilde{u}}_i^k\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\delta u_i(\boldsymbol{x})=</math><math>N^l(\boldsymbol{x})\mbox{ }\delta u_i^l</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.9)
 +
|}
  
In view of the difficulties expected the choice was made to use an Explicit FE structural solver. A further advantage is the ability of the algorithm to be easily vectored and thus take advantage of modern parallel processing architectures. Linear cable and membrane elements where selected due to their ease of implementation. The fabric is modelled using three-node membrane elements due to their geometric simplicity. As the three nodes of the element can be always assumed to lie in a plane, the definition of the local coordinate systems is straightforward. When a quadrilateral element is passed from the aerodynamic solver, it is internally transformed into a pair of triangular elements in order to carry the analysis.
 
  
A local corrotational reference frame is used for each cable and membrane element in order to remove the large rigid-body displacement field and isolate the material strains. Inside each element a simple small-strain formulation is used due to the properties of the fabric. Tensile deformations are always small, on the other hand compressive strains can become extremely large due to the inclusion of a wrinkling model (zero compression stiffness). There is however no stress associated with the compressive strains and, correspondingly, no strain energy. The small-strain formulation is therefore adequate, as only the small tensile deformations must be into account to calculate the stress state.
+
In <span id='cite-ZEqnNum836024'></span>[[#ZEqnNum836024|(2.9)]]  <math display="inline">\tilde{u}</math> represents the approximate solution and N<sup>k</sup> is the interpolation function corresponding to the k<sup>th</sup> node (called a shape function). From now on supra-indexes will be used to indicate nodal values. The virtual strain field is a linear function of the virtual displacement field so it also a linear function of  <math display="inline">\delta u_i^l</math> , it is possible therefore to write
  
While not strictly necessary to model the parachute behaviour, tetrahedral solid (3D) elements have been included in the code. They prove useful in modelling the dynamic interaction between the parachute and its payload. As they are meant to model bodies undergoing only small deformations a linear formulation is considered adequate for the task at hand.
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\delta {\epsilon }_{ij}=A_{ij,m}^l\delta u_m^l\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }A_{ij,m}^l=</math><math>\frac{\partial {\epsilon }_{ij}}{\partial u_m^l}=L(N^l)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.10)
 +
|}
  
<span id='_Toc284943808'></span>
 
==2 Problem Formulation==
 
  
<span id='_Toc284943809'></span>
+
With the  <math>A_{ij,k}^l</math> coefficients being linear functions of the shape function gradients. For a dynamic problem the inertial term <span id='cite-ZEqnNum740733'></span>[[#ZEqnNum740733|(2.2)]] is discretized as
===2.1 Weak equilibrium statement===
+
  
We start using the internal equilibrium statement for a continuum which relates the gradient of the stress field to the applied loads
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum941837'></span>  <math>{{\tilde{b}}_i\vert }_{inertial}=-\rho N^k\frac{d^2u_i^k}{dt^2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.11)
 +
|}
  
<span id='ZEqnNum878772'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1025.svg|236px]]
 
  
were [[Image:draft_Samper_793606474-picture-x0000_i1026.svg|15px]] and [[Image:draft_Samper_793606474-picture-x0000_i1027.svg|12px]] stand for prescribed surface displacements and tractions. In the case of a dynamic problem the body forces (b<sub>i</sub>) include the inertial loads given by:
+
As the shape functions are not functions of time (their value does not change for a given material point) the time derivative in <span id='cite-ZEqnNum941837'></span>[[#ZEqnNum941837|(2.11)]] affects only the nodal displacements. Rearranging equation <span id='cite-ZEqnNum471288'></span>[[#ZEqnNum471288|(2.8)]] so only the inertial term remains on the LHS yields
  
<span id='ZEqnNum740733'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1028.svg|116px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\int_{\Omega }\rho N^k\frac{d^2u_i^k}{dt^2}N^l\delta u_i^l\mbox{ }d\Omega =</math><math>\int_{\Omega }b_iN^l\delta u_i^l\mbox{ }d\Omega +</math><math>\int_{{\Gamma }_N}{\overline{t}}_iN^l\delta u_i^l\mbox{ }d\Gamma -</math><math>\int_{\Omega }{\sigma }_{ij}A_{ij,m}^l\delta u_m^l\mbox{ }d\Omega </math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.12)
 +
|}
  
where  is the density of the solid. Note that the time derivative in <span id='cite-ZEqnNum740733'></span>[[#ZEqnNum740733|]] is a total one, i.e. tracking the material particles. To obtain the Finite Element (FE) formulation of the problem we construct the weak formulation of <span id='cite-ZEqnNum878772'></span>[[#ZEqnNum878772|]]. Let u<sub>i</sub> be an arbitrary test function (representing in this case a virtual displacement field). We may thus write:
 
  
<span id='ZEqnNum272009'></span>
+
As the virtual nodal displacements are arbitrary, it is possible to set all but one of them to zero. This way as many equations as degrees of freedom existing on the system are obtained. By setting
[[Image:draft_Samper_793606474-picture-x0000_i1029.svg|256px]]
+
  
Note that in <span id='cite-ZEqnNum272009'></span>[[#ZEqnNum272009|]] implicit summation has been used in order to keep the notation compact. Now, the weighted average of the equations is taken over the relevant domains
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math display="inline">\delta u_a^b=1\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\delta u_a^b=</math><math>1\mbox{ }\mbox{ }:\mbox{ }\mbox{ }i\not =a\mbox{ }\mbox{ },\mbox{ }\mbox{ }j\not =</math><math>b</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.13)
 +
|}
  
<span id='ZEqnNum284786'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1030.svg|600px]]
 
  
If <span id='cite-ZEqnNum284786'></span>[[#ZEqnNum284786|]] holds for any virtual displacement field, the equation becomes equivalent to . To keep the expressions simple without loss of generality it is common practice to assume that the virtual displacement field is compatible with any existing prescribed displacement constraints. This way the integrals over <sub>D</sub> can be dropped (i.e. [[Image:draft_Samper_793606474-picture-x0000_i1031.svg|111px]] ) but care must be taken to ensure that the solution is indeed compatible with the constraints. The term containing the internal stresses can be integrated by parts yielding
+
The following set of equations is obtained:
  
<span id='ZEqnNum460769'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1032.svg|263px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum310531'></span><span id='_Toc284354663'></span>  <math>\int_{\Omega }\rho N^bN^kd\Omega \frac{d^2u_a^k}{dt^2}=</math><math>\int_{\Omega }b_aN^bd\Omega +\int_{{\Gamma }_N}{\overline{t}}_aN^bd\Gamma -</math><math>\int_{\Omega }{\sigma }_{kj}A_{kj,a}^bd\Omega \mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\lbrace \begin{array}{c}
 +
a=1,2,3\\
 +
b=1,...,n_{nod}
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.14)
 +
|}
  
The deformation gradient can be split into a symmetric and an antisymmetric part:
 
  
<span id='ZEqnNum154457'></span>
+
In the equation above sum is assumed over ''j'' & ''k''. The equations can also be written in matrix form as
[[Image:draft_Samper_793606474-picture-x0000_i1033.svg|600px]]
+
  
In the expression above <sub>ij</sub> represents the virtual strain field and <sub>ij</sub> is the virtual local rotation. Given that the stress tensor is symmetric the product [[Image:draft_Samper_793606474-picture-x0000_i1034.svg|37px]] vanishes. Expression <span id='cite-ZEqnNum460769'></span>[[#ZEqnNum460769|]] then becomes the virtual work principle
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='_Toc284354664'></span><span id='ZEqnNum930710'></span><span id='_Toc284354665'></span> <math>\boldsymbol{M\ddot{u}}=\boldsymbol{b}+\boldsymbol{t}-</math><math>\boldsymbol{I}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.15)
 +
|}
  
<span id='ZEqnNum471288'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1035.svg|295px]]
 
  
Eq. <span id='cite-ZEqnNum471288'></span>[[#ZEqnNum471288|]] states that when the system is in equilibrium the change in strain energy caused by an arbitrary virtual displacement field equals the work done by the external forces.
+
'''M''' is called the mass matrix, '''b''' and '''t''' are the external nodal generalized forces and '''I''' is the internal force vector. If the mechanical response is linear the stress tensor can be written as a linear combination of the nodal displacements. The internal force vector can then be recast as
  
<span id='_Toc284943810'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
===2.2 Finite element discretization===
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='_Toc284354666'></span><span id='_Toc284354667'></span>  <math>\boldsymbol{I=Ku}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.16)
 +
|}
  
To obtain the FE discretization we build an approximate solution interpolating the nodal values of the displacements <span id='cite-_Ref284617545'></span>[[#_Ref284617545|[8]]]. A virtual displacement field can be obtained in the same way
 
  
<span id='ZEqnNum836024'></span>
+
<span id='_Toc284354668'></span>where '''K''' is the stiffness matrix of the system. Even if the behaviour of the structure is not truly linear, this may be useful as a linearization around some base state.
[[Image:draft_Samper_793606474-picture-x0000_i1036.svg|247px]]
+
  
In <span id='cite-ZEqnNum836024'></span>[[#ZEqnNum836024|]] [[Image:draft_Samper_793606474-picture-x0000_i1037.svg|12px]] represents the approximate solution and N<sup>k</sup> is the interpolation function corresponding to the k<sup>th</sup> node (called a shape function). From now on supra-indexes will be used to indicate nodal values. The virtual strain field is a linear function of the virtual displacement field so it also a linear function of [[Image:draft_Samper_793606474-picture-x0000_i1038.svg|27px]] , it is possible therefore to write
+
It is possible to solve for the acceleration in <span id='cite-ZEqnNum930710'></span>[[#ZEqnNum930710|(2.15)]] by inverting the mass matrix
  
[[Image:draft_Samper_793606474-picture-x0000_i1039.svg|242px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='_Toc284354669'></span><span id='ZEqnNum363786'></span>  <math>\boldsymbol{\ddot{u}}=\boldsymbol{M}^{\boldsymbol{-1}}\left[\boldsymbol{b}+\right. </math><math>\left. \boldsymbol{t}-\boldsymbol{I}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.17)
 +
|}
  
With the [[Image:draft_Samper_793606474-picture-x0000_i1040.svg|28px]] coefficients being linear functions of the shape function gradients. For a dynamic problem the inertial term <span id='cite-ZEqnNum740733'></span>[[#ZEqnNum740733|]] is discretized as
 
  
<span id='ZEqnNum941837'></span>
+
The system of ODEs <span id='cite-ZEqnNum363786'></span>[[#ZEqnNum363786|(2.17)]] together with the suitable initial conditions
[[Image:draft_Samper_793606474-picture-x0000_i1041.svg|140px]]
+
  
As the shape functions are not functions of time (their value does not change for a given material point) the time derivative in <span id='cite-ZEqnNum941837'></span>[[#ZEqnNum941837|]] affects only the nodal displacements. Rearranging equation <span id='cite-ZEqnNum471288'></span>[[#ZEqnNum471288|]] so only the inertial term remains on the LHS yields
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum711586'></span> <math>\begin{array}{c}
 +
{\boldsymbol{u}\vert }_{t=o}=\boldsymbol{u}_\boldsymbol{0}\\
 +
{\boldsymbol{\dot{u}}\vert }_{t=o}={\boldsymbol{\dot{u}}}_\boldsymbol{0}
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.18)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1042.svg|600px]]
 
  
As the virtual nodal displacements are arbitrary, it is possible to set all but one of them to zero. This way as many equations as degrees of freedom existing on the system are obtained. By setting
+
can be advanced in time to yield the displacement field at every instant. Solving for the acceleration term in <span id='cite-ZEqnNum363786'></span>[[#ZEqnNum363786|(2.17)]] requires inverting the mass matrix. To speed up the computations without significant loss of accuracy, the mass matrix is usually replaced by its lumped (diagonal) counterpart
  
[[Image:draft_Samper_793606474-picture-x0000_i1043.svg|220px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>M_{ij}^d={\delta }_{ij}\sum_jM_{ij}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.19)
 +
|}
  
The following set of equations is obtained:
 
  
<span id='ZEqnNum310531'></span>
+
In the expression above  <math display="inline">{\delta }_{ij}</math> represents the Kronecker delta function (i.e. one when i=j and zero otherwise).
[[Image:draft_Samper_793606474-picture-x0000_i1044.svg|600px]]
+
  
In the equation above sum is assumed over ''j'' & ''k''. The equations can also be written in matrix form as
+
In order to form the matrix and load vectors appearing in <span id='cite-ZEqnNum930710'></span>[[#ZEqnNum930710|(2.15)]] an element-by-element approach is used. As the shape function of node k is nonzero only inside elements containing said node, the integrals need only evaluated in the appropriate elements, for example:
  
<span id='_Toc284354664'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1045.svg|94px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum184303'></span>  <math>M_{ij}=\int_{\Omega }\rho N^iN^jd\Omega =\sum_{el}\int_{{\Omega }_{el}}\rho N^iN^jd\Omega \mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }/\mbox{ }\mbox{ }\mbox{ }i,j\subset el</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.20)
 +
|}
  
'''M''' is called the mass matrix, '''b''' and '''t''' are the external nodal generalized forces and '''I''' is the internal force vector. If the mechanical response is linear the stress tensor can be written as a linear combination of the nodal displacements. The internal force vector can then be recast as
 
  
<span id='_Toc284354666'></span>
+
<span id='_Toc284943811'></span>
[[Image:draft_Samper_793606474-picture-x0000_i1046.svg|48px]]
+
  
<span id='_Toc284354668'></span>
+
===2.3 Time integration===
where '''K''' is the stiffness matrix of the system. Even if the behaviour of the structure is not truly linear, this may be useful as a linearization around some base state.
+
  
It is possible to solve for the acceleration in <span id='cite-ZEqnNum930710'></span>[[#ZEqnNum930710|]] by inverting the mass matrix
+
The integration of the system <span id='cite-ZEqnNum363786'></span>[[#ZEqnNum363786|(2.17)]] can be performed using both implicit and explicit schemes <span id='cite-_Ref284617109'></span>[[#_Ref284617109|[7]]]. For the reasons outlined previously, the explicit method has been chosen. The explicit second order central differencing scheme has been selected due to its high efficiency coupled with acceptable accuracy. Given a series of points in time and their corresponding time increments
  
<span id='_Toc284354669'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1047.svg|116px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\begin{array}{c}
 +
t^{\left(0\right)}\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }...\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }t^{\left(i-1\right)}\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }t^{\left(i\right)}\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }t^{\left(i+1\right)}\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }...\\
 +
...\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }\Delta t^{\left(i\right)}=t^{\left(i\right)}-t^{\left(i-1\right)}\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }\Delta t^{\left(i+1\right)}=t^{\left(i+1\right)}-t^{\left(i\right)}\mbox{ }\mbox{ }\mbox{ },\mbox{ }\mbox{ }\mbox{ }...
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.21)
 +
|}
  
The system of ODEs <span id='cite-ZEqnNum363786'></span>[[#ZEqnNum363786|]] together with the suitable initial conditions
 
  
<span id='ZEqnNum711586'></span>
+
let us define the change in midpoint velocity as
[[Image:draft_Samper_793606474-picture-x0000_i1048.svg|61px]]
+
  
can be advanced in time to yield the displacement field at every instant. Solving for the acceleration term in <span id='cite-ZEqnNum363786'></span>[[#ZEqnNum363786|]] requires inverting the mass matrix. To speed up the computations without significant loss of accuracy, the mass matrix is usually replaced by its lumped (diagonal) counterpart
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum535178'></span> <math>{\frac{d\boldsymbol{u}}{dt}}^{\left(i+\frac{1}{2}\right)}-</math><math>{\frac{d\boldsymbol{u}}{dt}}^{\left(i-\frac{1}{2}\right)}=</math><math>\frac{\Delta t^{\left(i+1\right)}+\Delta t^{\left(i\right)}}{2}\cdot \frac{d^2\boldsymbol{u}^{\left(i\right)}}{dt^2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.22)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1049.svg|101px]]
 
  
In the expression above [[Image:draft_Samper_793606474-picture-x0000_i1050.svg|18px]] represents the Kronecker delta function (i.e. one when i=j and zero otherwise).
+
Observe that in <span id='cite-ZEqnNum535178'></span>[[#ZEqnNum535178|(2.22)]] the accelerations and velocities are expressed at different instants. This scheme provides second order time-accuracy by virtue of using a centered approximation for the time derivative. Once the intermediate velocities have been computed, the displacements can be updated
  
In order to form the matrix and load vectors appearing in <span id='cite-ZEqnNum930710'></span>[[#ZEqnNum930710|]] an element-by-element approach is used. As the shape function of node k is nonzero only inside elements containing said node, the integrals need only evaluated in the appropriate elements, for example:
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum589584'></span> <math>\boldsymbol{u}^{\left(i+1\right)}=\boldsymbol{u}^{\left(i\right)}+</math><math>\Delta t^{\left(i+1\right)}\cdot \frac{d\boldsymbol{u}^{\left(i+\frac{1}{2}\right)}}{dt}=</math><math>\boldsymbol{u}^{\left(i\right)}+\Delta t^{\left(i+1\right)}\cdot \left[{\frac{d\boldsymbol{u}}{dt}}^{\left(i-\frac{1}{2}\right)}+\right. </math><math>\left. \frac{\Delta t^{\left(i+1\right)}+\Delta t^{\left(i\right)}}{2}\cdot \frac{d^2\boldsymbol{u}^{\left(i\right)}}{dt^2}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.23)
 +
|}
  
<span id='ZEqnNum184303'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1051.svg|600px]]
 
  
<span id='_Toc284943811'></span>
+
This scheme is fully explicit in that sense that if  <math>\boldsymbol{u}^{\left(i\right)}\mbox{ },\mbox{ }{\frac{d\boldsymbol{u}}{dt}}^{\left(i-\frac{1}{2}\right)}\mbox{ },\mbox{ }\frac{d^2\boldsymbol{u}^{\left(i\right)}}{dt^2}</math> are kwon, it is possible to compute the updated displacement and velocity without the need to solve any equations. That is, <span id='cite-ZEqnNum589584'></span>[[#ZEqnNum589584|(2.23)]] yields the new values without the need to solve any additional equation. Obviously the method is not self-starting, as at the initial time step the value of  <math>{\frac{d\boldsymbol{u}}{dt}}^{\left(-\frac{1}{2}\right)}</math> is not known (the initial conditions <span id='cite-ZEqnNum711586'></span>[[#ZEqnNum711586|(2.18)]] are specified for i=0). To deal with this inconvenience we may use one sided differencing to estimate the velocity at i=+1/2
===2.3 Time integration===
+
  
The integration of the system <span id='cite-ZEqnNum363786'></span>[[#ZEqnNum363786|]] can be performed using both implicit and explicit schemes <span id='cite-_Ref284617109'></span>[[#_Ref284617109|[7]]]. For the reasons outlined previously, the explicit method has been chosen. The explicit second order central differencing scheme has been selected due to its high efficiency coupled with acceptable accuracy. Given a series of points in time and their corresponding time increments
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\frac{d\boldsymbol{u}}{dt}}^{\left(+\frac{1}{2}\right)}=</math><math>{\frac{d\boldsymbol{u}}{dt}}^{\left(0\right)}+\frac{\Delta t^{\left(1\right)}}{2}\cdot \frac{d^2\boldsymbol{u}^{\left(0\right)}}{dt^2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.24)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1052.svg|292px]]
 
  
let us define the change in midpoint velocity as
+
Using this value together with <span id='cite-ZEqnNum535178'></span>[[#ZEqnNum535178|(2.22)]] gives
  
<span id='ZEqnNum535178'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1053.svg|252px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\frac{d\boldsymbol{u}}{dt}}^{\left(-\mbox{ }\frac{1}{2}\right)}=</math><math>{\frac{d\boldsymbol{u}}{dt}}^{\left(0\right)}-\frac{\Delta t^{\left(0\right)}}{2}\cdot \frac{d^2\boldsymbol{u}^{\left(0\right)}}{dt^2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.25)
 +
|}
  
Observe that in <span id='cite-ZEqnNum535178'></span>[[#ZEqnNum535178|]] the accelerations and velocities are expressed at different instants. This scheme provides second order time-accuracy by virtue of using a centered approximation for the time derivative. Once the intermediate velocities have been computed, the displacements can be updated
 
  
<span id='ZEqnNum589584'></span>
+
Using this dummy velocity value the time integration can be started. Please remark that the choice of  <math>\Delta t^{\left(0\right)}</math> has no effect on the final result. The method outlined has an extremely low computational cost per time step, however it shows a very important limitation. The explicit scheme is only conditionally stable meaning the time step cannot be made arbitrarily large lest the solution diverges. The maximum allowable time step is given by
[[Image:draft_Samper_793606474-picture-x0000_i1054.svg|600px]]
+
  
This scheme is fully explicit in that sense that if [[Image:draft_Samper_793606474-picture-x0000_i1055.svg|124px]] are kwon, it is possible to compute the updated displacement and velocity without the need to solve any equations. That is, <span id='cite-ZEqnNum589584'></span>[[#ZEqnNum589584|]] yields the new values without the need to solve any additional equation. Obviously the method is not self-starting, as at the initial time step the value of [[Image:draft_Samper_793606474-picture-x0000_i1056.svg|47px]] is not known (the initial conditions <span id='cite-ZEqnNum711586'></span>[[#ZEqnNum711586|]] are specified for i=0). To deal with this inconvenience we may use one sided differencing to estimate the velocity at i=+1/2
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|  
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum414904'></span> <math>\Delta t\leq \frac{2}{{\omega }_{max}}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.26)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1057.svg|189px]]
 
  
Using this value together with <span id='cite-ZEqnNum535178'></span>[[#ZEqnNum535178|]] gives
+
with &#x03c9;<sub>max</sub> being the angular frequency of the highest eigenmode of the system. The expression <span id='cite-ZEqnNum414904'></span>[[#ZEqnNum414904|(2.26)]] is truly valid only for undamped systems. If damping is included in the model (it always is for practical reasons) then its effect can be accounted for trough
  
[[Image:draft_Samper_793606474-picture-x0000_i1058.svg|194px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum328773'></span>  <math>\Delta t\leq \frac{2}{{\omega }_{max}}\cdot \left(\sqrt{1+{\xi }^2}-\right. </math><math>\left. \xi \right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.27)
 +
|}
  
Using this dummy velocity value the time integration can be started. Please remark that the choice of [[Image:draft_Samper_793606474-picture-x0000_i1059.svg|31px]] has no effect on the final result. The method outlined has an extremely low computational cost per time step, however it shows a very important limitation. The explicit scheme is only conditionally stable meaning the time step cannot be made arbitrarily large lest the solution diverges. The maximum allowable time step is given by
 
  
<span id='ZEqnNum414904'></span>
+
In the expression above &#x03be; is the damping ratio of the highest eigenmode. From <span id='cite-ZEqnNum328773'></span>[[#ZEqnNum328773|(2.27)]] it becomes obvious that damping can have a very detrimental effect on the stability limit. While <span id='cite-ZEqnNum328773'></span>[[#ZEqnNum328773|(2.27)]] provides a very good estimate of the allowable time step, it is not practical to calculate the highest eigenvalue of the system as this calls for solving a complex problem (the number of degrees of freedom in the model can be very large). Fortunately there is a simple upper bound estimate of &#x03c9;<sub>max</sub>
[[Image:draft_Samper_793606474-picture-x0000_i1060.svg|65px]]
+
  
with <sub>max</sub> being the angular frequency of the highest eigenmode of the system. The expression <span id='cite-ZEqnNum414904'></span>[[#ZEqnNum414904|]] is truly valid only for undamped systems. If damping is included in the model (it always is for practical reasons) then its effect can be accounted for trough
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\omega }_{max}\leq {\omega }_{max}^{elem}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.28)
 +
|}
  
<span id='ZEqnNum328773'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1061.svg|156px]]
 
  
In the expression above is the damping ratio of the highest eigenmode. From <span id='cite-ZEqnNum328773'></span>[[#ZEqnNum328773|]] it becomes obvious that damping can have a very detrimental effect on the stability limit. While <span id='cite-ZEqnNum328773'></span>[[#ZEqnNum328773|]] provides a very good estimate of the allowable time step, it is not practical to calculate the highest eigenvalue of the system as this calls for solving a complex problem (the number of degrees of freedom in the model can be very large). Fortunately there is a simple upper bound estimate of <sub>max</sub>
+
with <math>{\omega }_{max}^{elem}</math> being the highest elemental eigenfrequency in the model. The interaction with neightbouring elements always causes the highest system eigenmode to be slower than the highest isolated-element normal mode. Thus a conservative stability limit can be used in place of <span id='cite-ZEqnNum414904'></span>[[#ZEqnNum414904|(2.26)]]
  
[[Image:draft_Samper_793606474-picture-x0000_i1062.svg|77px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\Delta t\leq \frac{2}{{\omega }_{max}^{elem}}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.29)
 +
|}
  
with [[Image:draft_Samper_793606474-picture-x0000_i1063.svg|32px]] being the highest elemental eigenfrequency in the model. The interaction with neightbouring elements always causes the highest system eigenmode to be slower than the highest isolated-element normal mode. Thus a conservative stability limit can be used in place of <span id='cite-ZEqnNum414904'></span>[[#ZEqnNum414904|]]
 
 
[[Image:draft_Samper_793606474-picture-x0000_i1064.svg|68px]]
 
  
 
The maximum frequency is associated with dilatational modes. An alternative estimate of the maximum time step is given by the minimum transit time of the dilatational waves across the elements of the mesh:
 
The maximum frequency is associated with dilatational modes. An alternative estimate of the maximum time step is given by the minimum transit time of the dilatational waves across the elements of the mesh:
  
<span id='ZEqnNum805396'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1065.svg|1px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum805396'></span>  <math>\Delta t\leq min\left(\frac{L_e}{c_d}\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.30)
 +
|}
  
In <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|]] L<sub>e</sub> is some characteristic element dimension and c<sub>d</sub> is the dilatational wave speed. For an isotropic linear elastic solid
 
  
<span id='ZEqnNum159868'></span>
+
In <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|(2.30)]] L<sub>e</sub> is some characteristic element dimension and c<sub>d</sub> is the dilatational wave speed. For an isotropic linear elastic solid
[[Image:draft_Samper_793606474-picture-x0000_i1066.svg|600px]]
+
  
where and are the Lamé constants which can be calculated from the shear modulus (G) and bulk modulus (K) as stated above.
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum159868'></span>  <math>\begin{array}{c}
 +
c_d=\sqrt{\frac{\lambda +2\mu }{\rho }}\\
 +
\lambda =K-\frac{2}{3}G\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mu =G=\frac{E}{2(1+\nu )}\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }K=\frac{E}{3\left(1-2\nu \right)}
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (2.31)
 +
|}
 +
 
 +
 
 +
where &#x03bb; and &#x03bc; are the Lamé constants which can be calculated from the shear modulus (G) and bulk modulus (K) as stated above.
  
 
<span id='_Toc284943812'></span>
 
<span id='_Toc284943812'></span>
 +
 
===2.4 Mass scaling===
 
===2.4 Mass scaling===
  
If a poor quality mesh is used, some degenerate elements (i.e. having close to zero volume) might be present. These can be extremely detrimental to the performance of the algorithm as their associated characteristic lengths will be very small. Hence, the global stability limit given by <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|]] becomes extremely low, calling for a large number of time steps in order to finish the simulation. To overcome this problem the code includes a selective mass scaling options which introduces local changes in the element density in order to keep the stability limit within acceptable levels. For those elements where the value given by <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|]] is considered excessively small the density is artificially augmented in order to decrease the wave speed <span id='cite-ZEqnNum159868'></span>[[#ZEqnNum159868|]]. The user can select the maximum acceptable scatter in the elemental stability limits and the code (using the statistics for the complete model) automatically corrects the elements falling outside the established bounds. It must be stressed that the effect of the increased density on the global dynamic response is very small because the elements affected are only those with very small volumes. As the mass of these elements, even after scaling, is a negligible fraction of the total system mass the overall behaviour of the structure is almost unchanged (i.e. the inertial properties remain basically the same). In those cases where only the system’s static response in sought, mass scaling can be used in a more aggressive manner without altering the solution.
+
If a poor quality mesh is used, some degenerate elements (i.e. having close to zero volume) might be present. These can be extremely detrimental to the performance of the algorithm as their associated characteristic lengths will be very small. Hence, the global stability limit given by <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|(2.30)]] becomes extremely low, calling for a large number of time steps in order to finish the simulation. To overcome this problem the code includes a selective mass scaling options which introduces local changes in the element density in order to keep the stability limit within acceptable levels. For those elements where the value given by <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|(2.30)]] is considered excessively small the density is artificially augmented in order to decrease the wave speed <span id='cite-ZEqnNum159868'></span>[[#ZEqnNum159868|(2.31)]]. The user can select the maximum acceptable scatter in the elemental stability limits and the code (using the statistics for the complete model) automatically corrects the elements falling outside the established bounds. It must be stressed that the effect of the increased density on the global dynamic response is very small because the elements affected are only those with very small volumes. As the mass of these elements, even after scaling, is a negligible fraction of the total system mass the overall behaviour of the structure is almost unchanged (i.e. the inertial properties remain basically the same). In those cases where only the system’s static response in sought, mass scaling can be used in a more aggressive manner without altering the solution.
  
 
<span id='_Toc284943813'></span>
 
<span id='_Toc284943813'></span>
 +
 
==3 Numerical damping==
 
==3 Numerical damping==
  
 
To achieve a smooth solution it is always needed to introduce some amount of damping into the numerical model. In a real structure different types of damping are always present (e.g. material, aerodynamic, etc…) so the observed behaviour is usually smooth. On the other hand, the dissipation provided by the basic explicit algorithm is really small. This is a problem when a steady state solution is sought but is also undesirable when simulating transient events as high frequency noise can contaminate the solution. To allow greater flexibility controlling the solution process two forms of user-adjustable damping are provided; Rayleigh damping and bulk viscosity. In the first case a damping matrix is built from the mass and stiffness matrices:
 
To achieve a smooth solution it is always needed to introduce some amount of damping into the numerical model. In a real structure different types of damping are always present (e.g. material, aerodynamic, etc…) so the observed behaviour is usually smooth. On the other hand, the dissipation provided by the basic explicit algorithm is really small. This is a problem when a steady state solution is sought but is also undesirable when simulating transient events as high frequency noise can contaminate the solution. To allow greater flexibility controlling the solution process two forms of user-adjustable damping are provided; Rayleigh damping and bulk viscosity. In the first case a damping matrix is built from the mass and stiffness matrices:
  
[[Image:draft_Samper_793606474-picture-x0000_i1067.svg|1px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{C}=\alpha \boldsymbol{M}+\beta \boldsymbol{K}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (3.1)
 +
|}
  
The equation system <span id='cite-ZEqnNum930710'></span>[[#ZEqnNum930710|]] supplemented with this damping term becoming
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1068.svg|128px]]
+
The equation system <span id='cite-ZEqnNum930710'></span>[[#ZEqnNum930710|(2.15)]] supplemented with this damping term becoming
  
The  term creates a damping force which is proportional to the absolute velocity of the nodes. This is roughly equivalent to having the nodes of the structure move trough a viscous fluid. The damping ratio introduced by the mass proportional damping term on a mode of frequency  is
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{M\ddot{u}}=\boldsymbol{b}+\boldsymbol{t}-</math><math>\boldsymbol{I}-\boldsymbol{C\dot{u}}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (3.2)
 +
|}
  
<span id='ZEqnNum979336'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1069.svg|51px]]
 
  
From <span id='cite-ZEqnNum979336'></span>[[#ZEqnNum979336|]] it is apparent that the term affects mainly the low frequency components of the solution. It can be useful to accelerate convergence to a static solution when only the long-term response is sought. However, when the transient response must be accurately determined this factor should not be included (or at least the parameter must be chosen in order to ensure the damping ratio for the lowest mode is very small). The term on the other hand introduces forces that are proportional to the material strain rate. An extra stress '''<sub>d</sub>''' is added to the constitutive law
+
The &#x03b1; term creates a damping force which is proportional to the absolute velocity of the nodes. This is roughly equivalent to having the nodes of the structure move trough a viscous fluid. The damping ratio introduced by the mass proportional damping term on a mode of frequency &#x03c9; is
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum979336'></span>  <math>\xi =\frac{\alpha }{2\omega }</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (3.3)
 +
|}
 +
 
 +
 
 +
From <span id='cite-ZEqnNum979336'></span>[[#ZEqnNum979336|(3.3)]] it is apparent that the &#x03b1; term affects mainly the low frequency components of the solution. It can be useful to accelerate convergence to a static solution when only the long-term response is sought. However, when the transient response must be accurately determined this factor should not be included (or at least the &#x03b1; parameter must be chosen in order to ensure the damping ratio for the lowest mode is very small). The &#x03b2; term on the other hand introduces forces that are proportional to the material strain rate. An extra stress '''&#x03c3;<sub>d</sub>''' is added to the constitutive law
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\boldsymbol{\sigma }}_\boldsymbol{d}=\beta \boldsymbol{D}^{\boldsymbol{el}}\boldsymbol{:\dot{\epsilon }}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (3.4)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1070.svg|86px]]
 
  
 
with '''D<sup>e</sup>'''<sup>l</sup> being the tangent stiffness tensor of the material. The fraction of critical damping for a given mode is:
 
with '''D<sup>e</sup>'''<sup>l</sup> being the tangent stiffness tensor of the material. The fraction of critical damping for a given mode is:
  
[[Image:draft_Samper_793606474-picture-x0000_i1071.svg|57px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\xi =\frac{\beta \mbox{ }\omega }{2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (3.5)
 +
|}
  
In this case only the high order modes are affected appreciably. This is desirable as it prevents high frequency noise from propagating while leaving the low order response (which is usually the part sought) almost unchanged. The parameter however must be used sparingly, as it has a very detrimental effect on the stability limit (because its effect is greatest for the highest eigenmode of the system).
+
 
 +
In this case only the high order modes are affected appreciably. This is desirable as it prevents high frequency noise from propagating while leaving the low order response (which is usually the part sought) almost unchanged. The &#x03b2; parameter however must be used sparingly, as it has a very detrimental effect on the stability limit (because its effect is greatest for the highest eigenmode of the system).
  
 
An additional form of damping is included to prevent high frequency “ringing”. This is caused by excitation of element dilatational modes which are always associated with the highest eigenvalues of the system. An additional hydrostatic stress is included in the constitutive routines which is proportional to the volumetric strain rate. This volumetric viscous stress is given by
 
An additional form of damping is included to prevent high frequency “ringing”. This is caused by excitation of element dilatational modes which are always associated with the highest eigenvalues of the system. An additional hydrostatic stress is included in the constitutive routines which is proportional to the volumetric strain rate. This volumetric viscous stress is given by
  
<span id='ZEqnNum431138'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1072.svg|116px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum431138'></span>  <math>{\sigma }_h=b_1\mbox{ }\rho \mbox{ }c_d\mbox{ }L_e\mbox{ }{\dot{\epsilon }}_{vol}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (3.6)
 +
|}
 +
 
  
 
In the expression above b<sub>1</sub> is the desired damping ratio for the dilatational mode. A suitable value is b<sub>1</sub>=0,06.
 
In the expression above b<sub>1</sub> is the desired damping ratio for the dilatational mode. A suitable value is b<sub>1</sub>=0,06.
  
 
<span id='_Toc284943814'></span>
 
<span id='_Toc284943814'></span>
 +
 
==4 Element formulation==
 
==4 Element formulation==
  
Line 426: Line 562:
  
 
<span id='_Toc284943815'></span>
 
<span id='_Toc284943815'></span>
 +
 
===4.1 Two-node linear cable element===
 
===4.1 Two-node linear cable element===
  
Line 431: Line 568:
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
[[Image:draft_Samper_793606474-image49.png|336px]] </div>
  
[[Image:draft_Samper_793606474-image49.png|center|330px]]
+
<div id="_Ref256696030" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 1''' – Linear cable element internal and external loads</span></div>
  
<span id='_Ref256696030'></span>
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<span style="text-align: center; font-size: 75%;">'''Fig. 1 – Linear cable element internal and external loads'''</span></div>
 
  
An external distributed loading per unit length [[Image:draft_Samper_793606474-picture-x0000_i1073.svg|15px]] acts on the element whose cross sectional area will be denoted by A. As we shall be facing a large displacement problem, the position of the nodes can be written either on the undeformed (reference) configuration or in the deformed (current) configuration. From now on we shall use upper-case letters to denote the original coordinates while lower-case will be reserved for the current configuration. For example, the original length of the cable element is given by
+
An external distributed loading per unit length <math display="inline">\boldsymbol{f}_\boldsymbol{d}</math> acts on the element whose cross sectional area will be denoted by A. As we shall be facing a large displacement problem, the position of the nodes can be written either on the undeformed (reference) configuration or in the deformed (current) configuration. From now on we shall use upper-case letters to denote the original coordinates while lower-case will be reserved for the current configuration. For example, the original length of the cable element is given by
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum657209'></span>  <math>L_0=\Vert \boldsymbol{X}_\boldsymbol{j}-\boldsymbol{X}_i\Vert </math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.1)
 +
|}
  
<span id='ZEqnNum657209'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1074.svg|93px]]
 
  
 
while the actual length at any given time is
 
while the actual length at any given time is
  
[[Image:draft_Samper_793606474-picture-x0000_i1075.svg|97px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>L(t)=\Vert \boldsymbol{x}_\boldsymbol{j}-\boldsymbol{x}_\boldsymbol{i}\Vert </math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.2)
 +
|}
 +
 
  
 
The unit vector along the element is
 
The unit vector along the element is
  
[[Image:draft_Samper_793606474-picture-x0000_i1076.svg|86px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{e}_\boldsymbol{l}=\frac{\boldsymbol{x}_\boldsymbol{j}-\boldsymbol{x}_\boldsymbol{i}}{\Vert \boldsymbol{x}_\boldsymbol{j}-\boldsymbol{x}_\boldsymbol{i}\Vert }</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.3)
 +
|}
 +
 
  
 
From the change in length of the element the axial strain and stress can be obtained. Assuming linear elastic behaviour:
 
From the change in length of the element the axial strain and stress can be obtained. Assuming linear elastic behaviour:
  
<span id='ZEqnNum376275'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1077.svg|196px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum376275'></span>  <math>\epsilon =\frac{L-L_0}{L_0}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\sigma =</math><math>max(0\mbox{ },\mbox{ }E\epsilon )</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.4)
 +
|}
  
As we assume the cables buckle instantly under compressive loads, there is a lower bound on the allowable stresses. Therefore in <span id='cite-ZEqnNum376275'></span>[[#ZEqnNum376275|]] a minimum stress value of zero is enforced. Using this result the internal forces at the nodes become:
 
  
<span id='ZEqnNum666516'></span>
+
As we assume the cables buckle instantly under compressive loads, there is a lower bound on the allowable stresses. Therefore in <span id='cite-ZEqnNum376275'></span>[[#ZEqnNum376275|(4.4)]] a minimum stress value of zero is enforced. Using this result the internal forces at the nodes become:
[[Image:draft_Samper_793606474-picture-x0000_i1078.svg|170px]]
+
  
The nodal generalized external force due to the distributed loading is calculated as indicated in <span id='cite-ZEqnNum310531'></span>[[#ZEqnNum310531|]]. If the load [[Image:draft_Samper_793606474-picture-x0000_i1079.svg|15px]] is constant across the element it reduces to:
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum666516'></span> <math>\boldsymbol{I}_\boldsymbol{i}=-\sigma A\boldsymbol{e}_\boldsymbol{l}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\boldsymbol{I}_\boldsymbol{j}=</math><math>+\sigma A\boldsymbol{e}_\boldsymbol{l}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.5)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1080.svg|128px]]
 
  
When numerical damping is included the stress term in <span id='cite-ZEqnNum376275'></span>[[#ZEqnNum376275|]] is augmented with the viscous contributions
+
The nodal generalized external force due to the distributed loading is calculated as indicated in <span id='cite-ZEqnNum310531'></span>[[#ZEqnNum310531|(2.14)]]. If the load  <math display="inline">\boldsymbol{f}_\boldsymbol{d}</math> is constant across the element it reduces to:
  
<span id='ZEqnNum568137'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1081.svg|600px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{b}_\boldsymbol{i}=\int_0^LN_i\boldsymbol{f}_\boldsymbol{d}dL=</math><math>\frac{L}{2}\boldsymbol{f}_\boldsymbol{d}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.6)
 +
|}
  
Note that in <span id='cite-ZEqnNum568137'></span>[[#ZEqnNum568137|]] the bulk viscosity term is slightly modified as it includes the axial strain rate instead of the volumetric strain rate. While using equations <span id='cite-ZEqnNum657209'></span>[[#ZEqnNum657209|]]-<span id='cite-ZEqnNum568137'></span>[[#ZEqnNum568137|]] is the most efficient way to calculate the internal forces for the element in a large displacement problem, it is also useful to have a closed expression for the elemental stiffness matrix (if the Rayleigh damping matrix is needed for example). This is specially simple if a local reference frame aligned with the element is chosen:
 
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
When numerical damping is included the stress term in <span id='cite-ZEqnNum376275'></span>[[#ZEqnNum376275|(4.4)]] is augmented with the viscous contributions
  
[[Image:draft_Samper_793606474-image58.png|center|204px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
</div>
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum568137'></span>  <math>\frac{d\epsilon }{dt}=\frac{({\boldsymbol{\dot{x}}}_\boldsymbol{j}-{\boldsymbol{\dot{x}}}_\boldsymbol{i})\cdot \boldsymbol{e}_\boldsymbol{1}}{L_0}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\sigma =</math><math>E\left(max(0\mbox{ },\mbox{ }\epsilon )+\beta \dot{\epsilon }\right)+</math><math>b\mbox{ }\rho \mbox{ }c_d\mbox{ }L_0\mbox{ }\dot{\epsilon }</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.7)
 +
|}
 +
 
 +
 
 +
Note that in <span id='cite-ZEqnNum568137'></span>[[#ZEqnNum568137|(4.7)]] the bulk viscosity term is slightly modified as it includes the axial strain rate instead of the volumetric strain rate. While using equations <span id='cite-ZEqnNum657209'></span>[[#ZEqnNum657209|(4.1)]]-<span id='cite-ZEqnNum568137'></span>[[#ZEqnNum568137|(4.7)]] is the most efficient way to calculate the internal forces for the element in a large displacement problem, it is also useful to have a closed expression for the elemental stiffness matrix (if the Rayleigh damping matrix is needed for example). This is specially simple if a local reference frame aligned with the element is chosen:
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 2 – Cable local reference frame'''</span></div>
+
[[Image:draft_Samper_793606474-image58.png|210px]] </div>
 +
 
 +
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
<span style="text-align: center; font-size: 75%;">'''Fig. 2''' – Cable local reference frame</span></div>
 +
 
  
 
For a virtual displacement of the end nodes we can calculate the change in length and in stress as
 
For a virtual displacement of the end nodes we can calculate the change in length and in stress as
  
[[Image:draft_Samper_793606474-picture-x0000_i1082.svg|265px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\delta L=\delta u_{\zeta }^j-\delta u_{\zeta }^j\mbox{ }\mbox{ }\mbox{ }\Rightarrow \mbox{ }\mbox{ }\mbox{ }\delta \sigma =</math><math>\frac{E}{L_0}\left(\delta u_{\zeta }^j-\delta u_{\zeta }^j\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.8)
 +
|}
 +
 
  
 
Thus, the element stiffness matrix in the local coordinate system is given by
 
Thus, the element stiffness matrix in the local coordinate system is given by
  
[[Image:draft_Samper_793606474-picture-x0000_i1083.svg|118px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{K}=\frac{EA}{L_0}\left[\begin{array}{cc}
 +
1 & -1\\
 +
-1 & 1
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.9)
 +
|}
  
Of course, the stiffness matrix is taken as zero whenever compressive strains exist in the element. The mass matrix can be obtained using <span id='cite-ZEqnNum184303'></span>[[#ZEqnNum184303|]] and the expressions of the shape functions in the local reference frame
 
  
<span id='ZEqnNum748831'></span>
+
Of course, the stiffness matrix is taken as zero whenever compressive strains exist in the element. The mass matrix can be obtained using <span id='cite-ZEqnNum184303'></span>[[#ZEqnNum184303|(2.20)]] and the expressions of the shape functions in the local reference frame
[[Image:draft_Samper_793606474-picture-x0000_i1084.svg|144px]]
+
  
As previously stated, the diagonal form of the mass matrix is usually preferred, thus <span id='cite-ZEqnNum748831'></span>[[#ZEqnNum748831|]] is replaced with:
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum748831'></span> <math>\begin{array}{c}
 +
N^i=1-\frac{\xi }{L}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }N^j=\frac{\xi }{L}\\
 +
\boldsymbol{M}=\rho AL\left[\begin{array}{cc}
 +
\frac{1}{3} & \frac{1}{6}\\
 +
\frac{1}{6} & \frac{1}{3}
 +
\end{array}\right]
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.10)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1085.svg|124px]]
 
  
The element characteristic size used to estimate the allowable time step <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|]] for the case of a simple cable element is taken as ''L<sub>0</sub>'' (the cable reference length). Note that it is not necessary to consider the possibility of smaller values as a cable under compression shows no stiffness and therefore has a vanishing elastic wave speed. Due to the one-dimensional character of the problem, the dilatational wave speed can be safely replaced with the longitudinal wave speed
+
As previously stated, the diagonal form of the mass matrix is usually preferred, thus <span id='cite-ZEqnNum748831'></span>[[#ZEqnNum748831|(4.10)]] is replaced with:
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{M}^\boldsymbol{d}=\frac{\rho AL}{2}\left[\begin{array}{cc}
 +
1 & 0\\
 +
0 & 1
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.11)
 +
|}
 +
 
 +
 
 +
The element characteristic size used to estimate the allowable time step <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|(2.30)]] for the case of a simple cable element is taken as ''L<sub>0</sub>'' (the cable reference length). Note that it is not necessary to consider the possibility of smaller values as a cable under compression shows no stiffness and therefore has a vanishing elastic wave speed. Due to the one-dimensional character of the problem, the dilatational wave speed can be safely replaced with the longitudinal wave speed
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='OLE_LINK1'></span><span id='OLE_LINK2'></span>  <math>c_l=\sqrt{\frac{E}{\rho }}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.12)
 +
|}
  
<span id='OLE_LINK1'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1086.svg|58px]]
 
  
 
<span id='_Toc284943816'></span>
 
<span id='_Toc284943816'></span>
 +
 
===4.2 Three-node linear membrane element===
 
===4.2 Three-node linear membrane element===
  
Line 509: Line 758:
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
+
[[Image:draft_Samper_793606474-image64.png|258px]] </div>
[[Image:draft_Samper_793606474-image64.png|center|252px]]
+
</div>
+
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 3 – Triangle local reference frame'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 3''' – Triangle local reference frame</span></div>
 +
 
  
 
The three unit vectors along the local axes are obtained from
 
The three unit vectors along the local axes are obtained from
  
[[Image:draft_Samper_793606474-picture-x0000_i1087.svg|600px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{e}_\boldsymbol{1}=\frac{\boldsymbol{x}^{2}{-}\boldsymbol{x}^{1}}{\Vert \boldsymbol{x}^{2}{-}\boldsymbol{x}^{1}\Vert }~;~\boldsymbol{n}=\frac{\boldsymbol{e}_{1}\times (\boldsymbol{x}^3{-}\boldsymbol{x}^{1})}{\Vert \boldsymbol{e}_{1}\times (\boldsymbol{x}^3{-}\boldsymbol{x}^{1})\Vert }\mbox{ };\mbox{ }\boldsymbol{e}_{2}=\boldsymbol{n}\times \boldsymbol{e}_{1}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.13)
 +
|}
  
Any point of the triangle can now be identified by its two local coordinates (,)
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1088.svg|202px]]
+
Any point of the triangle can now be identified by its two local coordinates (&#x03be;,&#x03b7;)
  
As a linear triangle always remains flat, the problem is greatly simplified by analysing the stress state on the - plane.
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>(\xi ,\eta )=\left((\boldsymbol{x-}\boldsymbol{x}^{1})\cdot \boldsymbol{e}_{1},(\boldsymbol{x}-\boldsymbol{x}^{1})\cdot \boldsymbol{e}_{2}\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.14)
 +
|}
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
  
[[Image:draft_Samper_793606474-image67.png|center|282px]]
+
As a linear triangle always remains flat, the problem is greatly simplified by analysing the stress state on the &#x03be;-&#x03b7; plane.
</div>
+
  
<span id='_Ref256699627'></span>
 
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 4 – Nodal coordinates in the local triangle reference frame'''</span></div>
+
[[Image:draft_Samper_793606474-image67.png|288px]] </div>
 +
 
 +
<div id="_Ref256699627" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
<span style="text-align: center; font-size: 75%;">'''Fig. 4''' – Nodal coordinates in the local triangle reference frame</span></div>
 +
 
  
 
It is worth mentioning that the strain state of the triangle depends only on three parameters, as some of the nodal coordinates vanish in the corrotational reference frame (<span id='cite-_Ref256699627'></span>[[#_Ref256699627|Fig. 4]]). In <span id='cite-_Ref256699627'></span>[[#_Ref256699627|Fig. 4]] the original (undeformed) geometry has been denoted with the subindex 0. The material strain is obtained from the interpolated displacement field
 
It is worth mentioning that the strain state of the triangle depends only on three parameters, as some of the nodal coordinates vanish in the corrotational reference frame (<span id='cite-_Ref256699627'></span>[[#_Ref256699627|Fig. 4]]). In <span id='cite-_Ref256699627'></span>[[#_Ref256699627|Fig. 4]] the original (undeformed) geometry has been denoted with the subindex 0. The material strain is obtained from the interpolated displacement field
  
<span id='ZEqnNum806260'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1089.svg|153px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum806260'></span>  <math>(u_{\xi },u_{\eta })=\sum_{j=2}^3N^j(u_{\xi }^j,u_{\eta }^j)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.15)
 +
|}
  
Note that in <span id='cite-ZEqnNum806260'></span>[[#ZEqnNum806260|]] node 1 has been excluded from the sum as it is fixed at the origin of the local reference system. To calculate the strain the gradients of the shape functions must be known. While it is possible to obtain a closed expression for the shape functions of an arbitrary triangle it is somewhat simpler to operate on a “canonical” element shape where the functions have a simpler form. To this effect we use an additional transformed coordinate system (p-q)
 
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
Note that in <span id='cite-ZEqnNum806260'></span>[[#ZEqnNum806260|(4.15)]] node 1 has been excluded from the sum as it is fixed at the origin of the local reference system. To calculate the strain the gradients of the shape functions must be known. While it is possible to obtain a closed expression for the shape functions of an arbitrary triangle it is somewhat simpler to operate on a “canonical” element shape where the functions have a simpler form. To this effect we use an additional transformed coordinate system (p-q)
  
[[Image:draft_Samper_793606474-image69.png|center|216px]]
+
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
[[Image:draft_Samper_793606474-image69.png|222px]] </div>
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 5 - Transformed coordinate system'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 5''' - Transformed coordinate system</span></div>
 +
 
  
 
The shape functions now become:
 
The shape functions now become:
  
<span id='ZEqnNum463081'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1090.svg|233px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum463081'></span>  <math>N^1=1-p-q\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }N^2=</math><math>p\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }N^3=</math><math>q</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.16)
 +
|}
  
The transform from the p-q plane to the  system is given by the isoparametric transform
 
  
<span id='ZEqnNum435267'></span>
+
The transform from the p-q plane to the <math display="inline">\xi - \eta </math>; system is given by the isoparametric transform
[[Image:draft_Samper_793606474-picture-x0000_i1091.svg|144px]]
+
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum435267'></span>  <math>(\xi ,\eta )=\sum_{j=2}^3({\xi }^j,{\eta }^j)N^j</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.17)
 +
|}
 +
 
  
 
The gradients of the shape functions can be recovered from
 
The gradients of the shape functions can be recovered from
  
<span id='ZEqnNum521193'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1092.svg|245px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum521193'></span> <math>\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial p}\\
 +
\frac{\partial N^i}{\partial q}
 +
\end{array}\right]=\left[\begin{array}{cc}
 +
\frac{\partial \xi }{\partial p} & \frac{\partial \eta }{\partial p}\\
 +
\frac{\partial \xi }{\partial q} & \frac{\partial \eta }{\partial q}
 +
\end{array}\right]\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial \xi }\\
 +
\frac{\partial N^i}{\partial \eta }
 +
\end{array}\right]=\boldsymbol{J}\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial \xi }\\
 +
\frac{\partial N^i}{\partial \eta }
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.18)
 +
|}
  
where '''J''' is the Jacobian of the isoparametric transform. Its value can be obtained from <span id='cite-ZEqnNum463081'></span>[[#ZEqnNum463081|]] & <span id='cite-ZEqnNum435267'></span>[[#ZEqnNum435267|]] and is constant across the element (due to its linear nature)
+
where '''J''' is the Jacobian of the isoparametric transform. Its value can be obtained from <span id='cite-ZEqnNum463081'></span>[[#ZEqnNum463081|(4.16)]] & <span id='cite-ZEqnNum435267'></span>[[#ZEqnNum435267|(4.17)]] and is constant across the element (due to its linear nature)
  
[[Image:draft_Samper_793606474-picture-x0000_i1093.svg|90px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{J}=\left[\begin{array}{cc}
 +
{\xi }^2 & 0\\
 +
{\xi }^3 & {\eta }^3
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.19)
 +
|}
  
Inverting the system <span id='cite-ZEqnNum521193'></span>[[#ZEqnNum521193|]] yields the gradients sought
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1094.svg|600px]]
+
Inverting the system <span id='cite-ZEqnNum521193'></span>[[#ZEqnNum521193|(4.18)]] yields the gradients sought
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|  
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c} \frac{\partial N^i}{\partial \xi }\\ \frac{\partial N^i}{\partial \eta } \end{array}\right]= {\bf J}^{-1} \left[\begin{array}{c} \frac{\partial N^i}{\partial p}\\ \frac{\partial N^i}{\partial q} \end{array}\right]= \frac{1}{\xi_2\eta_3}\left[\begin{array}{cc}
 +
\eta_3 & 0\\
 +
-{\xi}_3 & {\xi }_2
 +
\end{array}\right] \left[\begin{array}{ccc} -1 & 1 & 1\\-1 & 0 & 1 \end{array}\right]= \frac{1}{\xi_2\eta_3}\left[\begin{array}{ccc}-{\eta }_3 & {\eta }_3 & 0\\{\xi }_3-{\xi }_2 & -{\xi }_3 & {\xi }_2\end{array}\right]
 +
</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.20)
 +
|}
 +
 
  
 
The components of the strain tensor can now be determined easily
 
The components of the strain tensor can now be determined easily
  
<span id='ZEqnNum581759'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1095.svg|176px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum581759'></span> <math>\left[\begin{array}{c}
 +
{\epsilon }_{\xi }\\
 +
{\epsilon }_{\eta }\\
 +
{\gamma }_{\xi \eta }
 +
\end{array}\right]=\left[\begin{array}{l}
 +
\frac{\partial N^2}{\partial \xi }u_{\xi }^2\\
 +
\frac{\partial N^3}{\partial \eta }u_{\eta }^3\\
 +
\frac{\partial N^2}{\partial \eta }u_{\xi }^2+\frac{\partial N^3}{\partial \eta }u_{\xi }^3
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.21)
 +
|}
  
Note that in <span id='cite-ZEqnNum581759'></span>[[#ZEqnNum581759|]] the null terms have been dropped in order to achieve an efficient algorithm. The corresponding stresses are calculated assuming a plane stress state (an acceptable hypothesis for thin surface elements) and linear elastic isotropic behaviour.
 
  
<span id='ZEqnNum267232'></span>
+
Note that in <span id='cite-ZEqnNum581759'></span>[[#ZEqnNum581759|(4.21)]] the null terms have been dropped in order to achieve an efficient algorithm. The corresponding stresses are calculated assuming a plane stress state (an acceptable hypothesis for thin surface elements) and linear elastic isotropic behaviour.
[[Image:draft_Samper_793606474-picture-x0000_i1096.svg|161px]]
+
  
As the membrane buckles under compressive loads, the stresses given by the expression above must be corrected to account for this fact. To this end we shall refer to <span id='cite-ZEqnNum267232'></span>[[#ZEqnNum267232|]] as the trial stress state (<sup>t</sup>). Three different membrane states are considered <span id='cite-_Ref284690302'></span>[[#_Ref284690302|[10]]]:
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum267232'></span> <math>\left[\begin{array}{c}
 +
{\sigma }_{\xi }\\
 +
{\sigma }_{\eta }\\
 +
{\tau }_{\xi \eta }
 +
\end{array}\right]=\frac{E}{1-{\nu }^2}\left[\begin{array}{c}
 +
{\epsilon }_{\xi }+\nu {\epsilon }_{\eta }\\
 +
{\epsilon }_{\eta }+\nu {\epsilon }_{\xi }\\
 +
\frac{1-\nu }{2}{\gamma }_{\xi \eta }
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.22)
 +
|}
  
:*  Taut: The minimum principal trial stress is positive. No corrections are needed (<span id='cite-_Ref257199388'></span>[[#_Ref257199388|Fig. 6]]-A)
 
  
:*  Wrinkled: Membrane is not taut, but the maximum principal strain is positive. Trial state is replaced with a uniaxial stress state (<span id='cite-_Ref257199388'></span>[[#_Ref257199388|Fig. 6]]-B)
+
As the membrane buckles under compressive loads, the stresses given by the expression above must be corrected to account for this fact. To this end we shall refer to <span id='cite-ZEqnNum267232'></span>[[#ZEqnNum267232|(4.22)]] as the trial stress state (&#x03c3;<sup>t</sup>). Three different membrane states are considered <span id='cite-_Ref284690302'></span>[[#_Ref284690302|[10]]]:
  
:* Slack: The maximum principal strain is negative. The corrected stresses are zero (<span id='cite-_Ref257199388'></span>[[#_Ref257199388|Fig. 6]]-C)
+
:* Taut: The minimum principal trial stress is positive. No corrections are needed (<span id='cite-_Ref257199388'></span>[[#_Ref257199388|Fig. 6]]-A)
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
:* Wrinkled: Membrane is not taut, but the maximum principal strain is positive. Trial state is replaced with a uniaxial stress state (<span id='cite-_Ref257199388'></span>[[#_Ref257199388|Fig. 6]]-B)
  
[[Image:draft_Samper_793606474-image77.png|center|600px]]
+
:* Slack: The maximum principal strain is negative. The corrected stresses are zero (<span id='cite-_Ref257199388'></span>[[#_Ref257199388|Fig. 6]]-C)
</div>
+
  
<span id='_Ref257199388'></span>
 
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 6 – Trial membrane stress states - Taut (A) Wrinkled (B) and Slack (C)'''</span></div>
+
[[Image:draft_Samper_793606474-image77.png|600px]] </div>
 +
 
 +
<div id="_Ref257199388" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
<span style="text-align: center; font-size: 75%;">'''Fig. 6''' – Trial membrane stress states - Taut (A) Wrinkled (B) and Slack (C)</span></div>
 +
 
  
 
To calculate the correct stress state the average in-plane direct strain and maximum shear strain are first found:
 
To calculate the correct stress state the average in-plane direct strain and maximum shear strain are first found:
  
[[Image:draft_Samper_793606474-picture-x0000_i1097.svg|270px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\epsilon }_m^{}=\frac{{\epsilon }_{\xi }^{}+{\epsilon }_{\eta }^{}}{2}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\frac{{\gamma }_{max}^{}}{2}=</math><math>\sqrt{{\left(\frac{{\epsilon }_{\xi }^{}-{\epsilon }_{\eta }^{}}{2}\right)}^2+\frac{{\gamma }_{\xi \eta }^2}{4}}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.23)
 +
|}
 +
 
  
 
The principal strains can now be evaluated and the stress state of the membrane assessed. If the maximum principal strain is compressive the membrane is slack and the stress tensor is null
 
The principal strains can now be evaluated and the stress state of the membrane assessed. If the maximum principal strain is compressive the membrane is slack and the stress tensor is null
  
[[Image:draft_Samper_793606474-picture-x0000_i1098.svg|229px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\epsilon }_I={\epsilon }_m+\frac{{\gamma }_{max}}{2}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }if\mbox{ }\mbox{ }{\epsilon }_I\leq 0\Rightarrow \boldsymbol{\sigma }=</math><math>\boldsymbol{0}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.24)
 +
|}
 +
 
  
 
otherwise, the minimum principal trial stress is checked. Whenever it is positive (tensile) the membrane is considered taut
 
otherwise, the minimum principal trial stress is checked. Whenever it is positive (tensile) the membrane is considered taut
  
[[Image:draft_Samper_793606474-picture-x0000_i1099.svg|259px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\begin{array}{c}
 +
{\epsilon }_{II}={\epsilon }_m-\frac{{\gamma }_{max}}{2}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }{\sigma }_{II}^t=\frac{E}{1-{\nu }^2}\left({\epsilon }_{II}+\nu {\epsilon }_I\right)\\
 +
\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }if\mbox{ }\mbox{ }{\sigma }_{II}^t\geq 0\Rightarrow \boldsymbol{\sigma }={\boldsymbol{\sigma }}^t
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.25)
 +
|}
 +
 
  
 
Under any other circumstances the membrane is wrinkled and the stress state must be properly corrected (<span id='cite-_Ref257199356'></span>[[#_Ref257199356|Fig. 7]])
 
Under any other circumstances the membrane is wrinkled and the stress state must be properly corrected (<span id='cite-_Ref257199356'></span>[[#_Ref257199356|Fig. 7]])
  
[[Image:draft_Samper_793606474-picture-x0000_i1100.svg|600px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\begin{array}{c}
 +
{\sigma }_I=E{\epsilon }_I\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }{\sigma }_{II}=0\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }{\tau }_{max}={\sigma }_m=\frac{{\sigma }_I}{2}\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\theta ={tan}^{-1}\left(\frac{{\gamma }_{\xi \eta }}{2{\epsilon }_{\xi }}\right)\\
 +
{\sigma }_{\xi }={\sigma }_m\left(1+\frac{{\epsilon }_{\xi }-{\epsilon }_{\eta }}{{\gamma }_{max}}\right)\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }{\sigma }_{\eta }={\sigma }_m\left(1-\frac{{\epsilon }_{\xi }-{\epsilon }_{\eta }}{{\gamma }_{max}}\right)\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }{\tau }_{\xi \eta }={\sigma }_m\frac{{\gamma }_{\xi \eta }}{{\gamma }_{max}}
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.26)
 +
|}
 +
 
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
[[Image:draft_Samper_793606474-image82.png|504px]] </div>
  
[[Image:draft_Samper_793606474-image82.png|center|498px]]
+
<div id="_Ref257199356" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 7''' – Stress correction for wrinkled membrane</span></div>
  
<span id='_Ref257199356'></span>
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<span style="text-align: center; font-size: 75%;">'''Fig. 7 – Stress correction for wrinkled membrane'''</span></div>
 
  
 
The elastic stresses are next augmented with viscous terms to introduce a suitable level of numerical damping. To speed-up calculations the nodal velocities are expressed in a reference frame attached to the first node of the element, thus cancelling out the corresponding values:
 
The elastic stresses are next augmented with viscous terms to introduce a suitable level of numerical damping. To speed-up calculations the nodal velocities are expressed in a reference frame attached to the first node of the element, thus cancelling out the corresponding values:
  
[[Image:draft_Samper_793606474-picture-x0000_i1101.svg|235px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{1}=\boldsymbol{0}\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{2}=</math><math>\boldsymbol{v}^\boldsymbol{2}-\boldsymbol{v}^\boldsymbol{1}\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{3}=</math><math>\boldsymbol{v}^\boldsymbol{3}-\boldsymbol{v}^\boldsymbol{1}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.27)
 +
|}
 +
 
  
 
The velocities are then expressed in their components on the local reference frame
 
The velocities are then expressed in their components on the local reference frame
  
<span id='ZEqnNum624882'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1102.svg|157px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum624882'></span>  <math>\left(v_{\xi }^i,v_{\eta }^i\right)=\left(\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{i}\cdot \boldsymbol{e}_\boldsymbol{1},\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{i}\cdot \boldsymbol{e}_\boldsymbol{2}\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.28)
 +
|}
  
Note that the velocity components in <span id='cite-ZEqnNum624882'></span>[[#ZEqnNum624882|]] are not those measured in the corrotational reference frame, but simply the projections over the local axes of the nodal relative velocities. It is not necessary to subtract the effect of the rotation as the spin rate will be automatically eliminated from the velocity gradient when calculating the strain rate <span id='cite-ZEqnNum154457'></span>[[#ZEqnNum154457|]]. The components of the strain rate tensor are
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1103.svg|233px]]
+
Note that the velocity components in <span id='cite-ZEqnNum624882'></span>[[#ZEqnNum624882|(4.28)]] are not those measured in the corrotational reference frame, but simply the projections over the local axes of the nodal relative velocities. It is not necessary to subtract the effect of the rotation as the spin rate will be automatically eliminated from the velocity gradient when calculating the strain rate <span id='cite-ZEqnNum154457'></span>[[#ZEqnNum154457|(2.7)]]. The components of the strain rate tensor are
  
In a similar way to <span id='cite-ZEqnNum568137'></span>[[#ZEqnNum568137|]] the damping stresses are given by
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c}
 +
{\dot{\epsilon }}_{\xi }\\
 +
{\dot{\epsilon }}_{\eta }\\
 +
{\dot{\gamma }}_{\xi \eta }
 +
\end{array}\right]=\left[\begin{array}{l}
 +
\frac{\partial N^2}{\partial \xi }v_{\xi }^2\\
 +
\frac{\partial N^2}{\partial \eta }v_{\eta }^2+\frac{\partial N^3}{\partial \eta }v_{\eta }^3\\
 +
\frac{\partial N^2}{\partial \eta }v_{\xi }^2+\frac{\partial N^3}{\partial \eta }v_{\xi }^3+\frac{\partial N^2}{\partial \xi }v_{\eta }^2
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.29)
 +
|}
 +
 
 +
 
 +
In a similar way to <span id='cite-ZEqnNum568137'></span>[[#ZEqnNum568137|(4.7)]] the damping stresses are given by
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\left[\begin{array}{c}
 +
{\sigma }_{\xi }\\
 +
{\sigma }_{\eta }\\
 +
{\tau }_{\xi \eta }
 +
\end{array}\right]}_{damp}=\frac{\beta E}{1-{\nu }^2}\left[\begin{array}{c}
 +
{\dot{\epsilon }}_{\xi }+\nu {\dot{\epsilon }}_{\eta }\\
 +
{\dot{\epsilon }}_{\eta }+\nu {\dot{\epsilon }}_{\xi }\\
 +
\frac{1-\nu }{2}{\dot{\gamma }}_{\xi \eta }
 +
\end{array}\right]+b_1\rho c_mL\left({\dot{\epsilon }}_{\xi }+\right. </math><math>\left. {\dot{\epsilon }}_{\eta }\right)\left[\begin{array}{c}
 +
1\\
 +
1\\
 +
0
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.30)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1104.svg|600px]]
 
  
 
where the characteristic wave speed for the membrane has been taken as
 
where the characteristic wave speed for the membrane has been taken as
  
[[Image:draft_Samper_793606474-picture-x0000_i1105.svg|110px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>c_m=\sqrt{\frac{E}{\rho \left(1-{\nu }^2\right)}}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.31)
 +
|}
 +
 
  
 
The total stress (elastic plus viscous) is then used to calculate the nodal forces using the change in energy due to the internal forces. Using the virtual deformation field
 
The total stress (elastic plus viscous) is then used to calculate the nodal forces using the change in energy due to the internal forces. Using the virtual deformation field
  
[[Image:draft_Samper_793606474-picture-x0000_i1106.svg|600px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c}
 +
\delta {\epsilon }_{\xi }\\
 +
\delta {\epsilon }_{\eta }\\
 +
\delta {\gamma }_{\xi \eta }
 +
\end{array}\right]=\left[\begin{array}{cccccc}
 +
\frac{\partial N^1}{\partial \xi } & 0 & \frac{\partial N^2}{\partial \xi } & 0 & 0 & 0\\
 +
0 & \frac{\partial N^1}{\partial \eta } & 0 & \frac{\partial N^2}{\partial \eta } & 0 & \frac{\partial N^3}{\partial \eta }\\
 +
\frac{\partial N^1}{\partial \eta } & \frac{\partial N^1}{\partial \xi } & \frac{\partial N^2}{\partial \eta } & \frac{\partial N^2}{\partial \xi } & \frac{\partial N^3}{\partial \eta } & 0
 +
\end{array}\right]\left[\begin{array}{c}
 +
\delta u_{\xi }^1\\
 +
\delta u_{\eta }^1\\
 +
\delta u_{\xi }^2\\
 +
\delta u_{\eta }^2\\
 +
\delta u_{\xi }^3\\
 +
\delta u_{\eta }^3
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.32)
 +
|}
 +
 
  
 
The total work done by the internal stresses during a virtual displacement is calculated integrating over the element the change in energy. As the triangular linear elements create a constant strain (and stress) field a single point Gauss quadrature is adequate to capture the effect of the virtual displacement
 
The total work done by the internal stresses during a virtual displacement is calculated integrating over the element the change in energy. As the triangular linear elements create a constant strain (and stress) field a single point Gauss quadrature is adequate to capture the effect of the virtual displacement
  
<span id='ZEqnNum814184'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1107.svg|272px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum814184'></span>  <math>\int \boldsymbol{\sigma }:\delta \boldsymbol{\epsilon }\mbox{ }d\Omega =</math><math>tA_0\left({\sigma }_{\xi }\delta {\epsilon }_{\xi }+\right. </math><math>\left. {\sigma }_{\eta }\delta {\epsilon }_{\eta }+\right. </math><math>\left. {\tau }_{\xi \eta }\delta {\gamma }_{\xi \eta }\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.33)
 +
|}
  
with ''t'' being the element thickness and A<sub>0</sub> its reference (undeformed) area. The original surface is used in <span id='cite-ZEqnNum814184'></span>[[#ZEqnNum814184|]] because under compressive loads the element can shrink to a small fraction of its original dimensions. However, as long as the material remains active (i.e. wrinkled but not slack) the actual volume of material stressed is given not by the element projected area (as calculated from the nodal coordinates) but from its original surface. On the other hand, when the membrane is taut the small strains involved make the reference area a good approximation of the real surface.
 
  
The internal force vector derived from <span id='cite-ZEqnNum814184'></span>[[#ZEqnNum814184|]] is:
+
with ''t'' being the element thickness and A<sub>0</sub> its reference (undeformed) area. The original surface is used in <span id='cite-ZEqnNum814184'></span>[[#ZEqnNum814184|(4.33)]] because under compressive loads the element can shrink to a small fraction of its original dimensions. However, as long as the material remains active (i.e. wrinkled but not slack) the actual volume of material stressed is given not by the element projected area (as calculated from the nodal coordinates) but from its original surface. On the other hand, when the membrane is taut the small strains involved make the reference area a good approximation of the real surface.
 +
 
 +
The internal force vector derived from <span id='cite-ZEqnNum814184'></span>[[#ZEqnNum814184|(4.33)]] is:
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c}
 +
I_{\xi }^1\\
 +
I_{\eta }^1\\
 +
I_{\xi }^2\\
 +
I_{\eta }^2\\
 +
I_{\xi }^3\\
 +
I_{\eta }^3
 +
\end{array}\right]=tA_0\left[\begin{array}{l}
 +
{\sigma }_{\xi }\frac{\partial N^1}{\partial \xi }+{\tau }_{\xi \eta }\frac{\partial N^1}{\partial \eta }\\
 +
{\sigma }_{\eta }\frac{\partial N^1}{\partial \eta }+{\tau }_{\xi \eta }\frac{\partial N^1}{\partial \xi }\\
 +
{\sigma }_{\xi }\frac{\partial N^2}{\partial \xi }+{\tau }_{\xi \eta }\frac{\partial N^2}{\partial \eta }\\
 +
{\sigma }_{\eta }\frac{\partial N^2}{\partial \eta }+{\tau }_{\xi \eta }\frac{\partial N^2}{\partial \xi }\\
 +
{\tau }_{\xi \eta }\frac{\partial N^3}{\partial \eta }\\
 +
{\sigma }_{\eta }\frac{\partial N^3}{\partial \eta }
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.34)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1108.svg|199px]]
 
  
 
In order to keep the algorithm as efficient as possible, the terms that vanish due to the particular choice of reference frame have been dropped from the expression above.
 
In order to keep the algorithm as efficient as possible, the terms that vanish due to the particular choice of reference frame have been dropped from the expression above.
  
When the element faces are subject to a pressure loading, the corresponding nodal generalized forces are obtained from <span id='cite-ZEqnNum310531'></span>[[#ZEqnNum310531|]]. For the particular case of a uniform pressure '''p''' acting on the upper face (the side towards which the normal vector '''n''' points) the values are
+
When the element faces are subject to a pressure loading, the corresponding nodal generalized forces are obtained from <span id='cite-ZEqnNum310531'></span>[[#ZEqnNum310531|(2.14)]]. For the particular case of a uniform pressure '''p''' acting on the upper face (the side towards which the normal vector '''n''' points) the values are
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c}
 +
I_n^1\\
 +
I_n^2\\
 +
I_n^3
 +
\end{array}\right]=-\frac{pA_p}{3}\left[\begin{array}{c}
 +
1\\
 +
1\\
 +
1
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.35)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1109.svg|110px]]
 
  
 
where ''A<sub>p</sub>'' stands for current projected area of the element:
 
where ''A<sub>p</sub>'' stands for current projected area of the element:
  
[[Image:draft_Samper_793606474-picture-x0000_i1110.svg|67px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math display="inline">A_p=\frac{{\xi }_2{\eta }_3}{2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.36)
 +
|}
 +
 
  
 
Finally, once all the components of the internal forces have been determined on the local reference frame, the global force vector can be assembled. The transformation to the global inertial reference system is performed through
 
Finally, once all the components of the internal forces have been determined on the local reference frame, the global force vector can be assembled. The transformation to the global inertial reference system is performed through
  
<span id='ZEqnNum530770'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1111.svg|147px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum530770'></span>  <math>\boldsymbol{I}_{\boldsymbol{glob}}^\boldsymbol{i}=</math><math>I_{\xi }^i\boldsymbol{e}_\boldsymbol{1}+I_{\eta }^i\boldsymbol{e}_\boldsymbol{2}+</math><math>I_n^i\boldsymbol{n}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.37)
 +
|}
 +
 
  
 
The mass matrix for the element, assuming uniform density, is
 
The mass matrix for the element, assuming uniform density, is
  
<span id='ZEqnNum657140'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1112.svg|150px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum657140'></span> <math>\boldsymbol{M}=\frac{\rho tA_0}{3}\left[\begin{array}{ccc}
 +
\frac{1}{2} & \frac{1}{4} & \frac{1}{4}\\
 +
\frac{1}{4} & \frac{1}{2} & \frac{1}{4}\\
 +
\frac{1}{4} & \frac{1}{4} & \frac{1}{2}
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.38)
 +
|}
  
The lumped mass matrix is obtained summing the columns of <span id='cite-ZEqnNum657140'></span>[[#ZEqnNum657140|]]
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1113.svg|144px]]
+
The lumped mass matrix is obtained summing the columns of <span id='cite-ZEqnNum657140'></span>[[#ZEqnNum657140|(4.38)]]
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|  
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{M}^\boldsymbol{d}=\frac{\rho tA_0}{3}\left[\begin{array}{ccc}
 +
1 & 0 & 0\\
 +
0 & 1 & 0\\
 +
0 & 0 & 1
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.39)
 +
|}
 +
 
  
 
To obtain a safe estimate of the allowable time step, a conservative estimate of the characteristic element length has been used. The element size is taken as:
 
To obtain a safe estimate of the allowable time step, a conservative estimate of the characteristic element length has been used. The element size is taken as:
  
[[Image:draft_Samper_793606474-picture-x0000_i1114.svg|131px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>L_e=\frac{2A_0}{max\left(\Vert \boldsymbol{x}^j-\boldsymbol{x}^i\Vert \right)}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.40)
 +
|}
 +
 
  
 
<span id='_Toc284943817'></span>
 
<span id='_Toc284943817'></span>
 +
 
===4.3 Four-node linear tetrahedral solid element===
 
===4.3 Four-node linear tetrahedral solid element===
  
Line 695: Line 1,284:
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
+
[[Image:draft_Samper_793606474-image97.png|222px]] </div>
[[Image:draft_Samper_793606474-image97.png|center|216px]]
+
</div>
+
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 8 – Tetrahedron corrotational reference frame'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 8''' – Tetrahedron corrotational reference frame</span></div>
 +
 
  
 
The three unit vectors along the local axes are obtained from
 
The three unit vectors along the local axes are obtained from
  
[[Image:draft_Samper_793606474-picture-x0000_i1115.svg|600px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{e}_\boldsymbol{1}=\frac{\boldsymbol{x}^\boldsymbol{2}\boldsymbol{-}\boldsymbol{x}^\boldsymbol{1}}{\Vert \boldsymbol{x}^\boldsymbol{2}\boldsymbol{-}\boldsymbol{x}^\boldsymbol{1}\Vert }\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\boldsymbol{n}=</math><math>\frac{\boldsymbol{e}_\boldsymbol{1}\times (\boldsymbol{x}^3\boldsymbol{-}\boldsymbol{x}^\boldsymbol{1})}{\Vert \boldsymbol{e}_\boldsymbol{1}\times (\boldsymbol{x}^3\boldsymbol{-}\boldsymbol{x}^\boldsymbol{1})\Vert }\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\boldsymbol{e}_\boldsymbol{2}=</math><math>\boldsymbol{n}\times \boldsymbol{e}_\boldsymbol{1}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.41)
 +
|}
  
Any point '''x''' of the tetrahedron can now be identified by its three local coordinates (,)
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1116.svg|285px]]
+
Any point '''x''' of the tetrahedron can now be identified by its three local coordinates (&#x03be;,&#x03b7;&#x61484;&#x03b6;)
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>(\xi ,\eta ,\zeta )=\left((\boldsymbol{x-}\boldsymbol{x}^{1})\cdot \boldsymbol{e}_{1},(\boldsymbol{x}-\boldsymbol{x}^{1})\cdot \boldsymbol{e}_{2},(\boldsymbol{x}-\boldsymbol{x}^{1})\cdot \boldsymbol{n}\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.42)
 +
|}
 +
 
  
 
Due to this particular choice of coordinates, the vertices of the element no longer have arbitrary coordinates because some components are null
 
Due to this particular choice of coordinates, the vertices of the element no longer have arbitrary coordinates because some components are null
  
[[Image:draft_Samper_793606474-picture-x0000_i1117.svg|107px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\begin{array}{c}
 +
\boldsymbol{x}^\boldsymbol{1}=\left(0,0,0\right)\\
 +
\boldsymbol{x}^2=\left({\xi }^2,0,0\right)\\
 +
\boldsymbol{x}^3=\left({\xi }^3,{\eta }^3,0\right)\\
 +
\boldsymbol{x}^4=\left({\xi }^4,{\eta }^4,{\zeta }^4\right)
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.43)
 +
|}
 +
 
  
 
Therefore, it is possible to calculate the strain field inside the tetrahedron (which is constant for linear elements) as a function of only six variables. The interpolated displacement field is given by
 
Therefore, it is possible to calculate the strain field inside the tetrahedron (which is constant for linear elements) as a function of only six variables. The interpolated displacement field is given by
  
[[Image:draft_Samper_793606474-picture-x0000_i1118.svg|174px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>(u_{\xi },u_{\eta },u_{\zeta })=\sum_{j=2}^4N^j(u_{\xi }^j,u_{\eta }^j)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.44)
 +
|}
 +
 
  
 
where node 1 does not enter the sum as it remains always at the origin of the local frame. In order to calculate the gradients of the shape functions an isoparametric transform is applied in order to perform the relevant operations on a simpler geometry. The transformed coordinate system shall be denoted as (p-q-r).
 
where node 1 does not enter the sum as it remains always at the origin of the local frame. In order to calculate the gradients of the shape functions an isoparametric transform is applied in order to perform the relevant operations on a simpler geometry. The transformed coordinate system shall be denoted as (p-q-r).
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
+
[[Image:draft_Samper_793606474-image101.png|252px]] </div>
[[Image:draft_Samper_793606474-image101.png|center|246px]]
+
</div>
+
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 9 – Tetrahedron reference coordinates in the p-q-r system'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 9''' – Tetrahedron reference coordinates in the p-q-r system</span></div>
 +
 
  
 
The shape functions in the transformed system have very simple expressions:
 
The shape functions in the transformed system have very simple expressions:
  
<span id='ZEqnNum507108'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1119.svg|600px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum507108'></span>  <math>N^1=1-p-q-r\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }N^2=</math><math>p\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }N^3=</math><math>q\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }N^4=</math><math>r</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.45)
 +
|}
  
It can be observed in <span id='cite-ZEqnNum507108'></span>[[#ZEqnNum507108|]] that the four shape functions always add to one. The  coordinates of a point with know values of p-q-r is given by
 
  
<span id='ZEqnNum766478'></span>
+
It can be observed in <span id='cite-ZEqnNum507108'></span>[[#ZEqnNum507108|(4.45)]] that the four shape functions always add to one. The &#x03be;&#x61485;&#x03b7;&#x61485;&#x03b6; coordinates of a point with know values of p-q-r is given by
[[Image:draft_Samper_793606474-picture-x0000_i1120.svg|182px]]
+
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum766478'></span>  <math>(\xi ,\eta ,\zeta )=\sum_{j=2}^4({\xi }^j,{\eta }^j,{\zeta }^j)N^j</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.46)
 +
|}
 +
 
  
 
Using the chain rule the derivatives of the shape functions with respect to the transformed coordinates can be obtained from
 
Using the chain rule the derivatives of the shape functions with respect to the transformed coordinates can be obtained from
  
<span id='ZEqnNum399931'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1121.svg|280px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum399931'></span> <math>\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial p}\\
 +
\frac{\partial N^i}{\partial q}\\
 +
\frac{\partial N^i}{\partial r}
 +
\end{array}\right]=\left[\begin{array}{ccc}
 +
\frac{\partial \xi }{\partial p} & \frac{\partial \eta }{\partial p} & \frac{\partial \zeta }{\partial p}\\
 +
\frac{\partial \xi }{\partial q} & \frac{\partial \eta }{\partial q} & \frac{\partial \zeta }{\partial q}\\
 +
\frac{\partial \xi }{\partial r} & \frac{\partial \eta }{\partial r} & \frac{\partial \zeta }{\partial r}
 +
\end{array}\right]\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial \xi }\\
 +
\frac{\partial N^i}{\partial \eta }\\
 +
\frac{\partial N^i}{\partial \zeta }
 +
\end{array}\right]=\boldsymbol{J}\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial \xi }\\
 +
\frac{\partial N^i}{\partial \eta }\\
 +
\frac{\partial N^i}{\partial \zeta }
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.47)
 +
|}
  
The Jacobian of the isoparametric transform ('''J''') can be obtained from <span id='cite-ZEqnNum507108'></span>[[#ZEqnNum507108|]] & <span id='cite-ZEqnNum766478'></span>[[#ZEqnNum766478|]]and is constant across the element
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1122.svg|123px]]
+
The Jacobian of the isoparametric transform ('''J''') can be obtained from <span id='cite-ZEqnNum507108'></span>[[#ZEqnNum507108|(4.45)]] & <span id='cite-ZEqnNum766478'></span>[[#ZEqnNum766478|(4.46)]]and is constant across the element
  
Inverting the system <span id='cite-ZEqnNum399931'></span>[[#ZEqnNum399931|]] yields the gradients sought
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{J}=\left[\begin{array}{ccc}
 +
{\xi }^2 & 0 & 0\\
 +
{\xi }^3 & {\eta }^3 & 0\\
 +
{\xi }^4 & {\eta }^4 & {\zeta }^4
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.48)
 +
|}
 +
 
 +
 
 +
Inverting the system <span id='cite-ZEqnNum399931'></span>[[#ZEqnNum399931|(4.47)]] yields the gradients sought
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c}
 +
\frac{\partial N^i}{\partial \xi }\\
 +
\frac{\partial N^i}{\partial \eta }
 +
\end{array}\right]=\frac{1}{{\xi }_2{\eta }_3{\zeta }_4}\left[\begin{array}{cccc}
 +
-{\eta }_3{\zeta }_4 & {\eta }_3{\zeta }_4 & 0 & 0\\
 +
{\xi }_3{\zeta }_4-{\xi }_2{\zeta }_4 & -{\xi }_3{\zeta }_4 & {\xi }_2{\zeta }_4 & 0\\
 +
{\xi }_4{\eta }_3-{\xi }_3{\eta }_4+{\xi }_2{\eta }_4-{\xi }_2{\eta }_3 & {\xi }_3{\eta }_4-{\xi }_4{\eta }_3 & -{\xi }_2{\eta }_4 & {\xi }_2{\eta }_3
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.49)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1123.svg|600px]]
 
  
 
The components of the strain tensor can now be determined easily
 
The components of the strain tensor can now be determined easily
  
<span id='ZEqnNum528820'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1124.svg|200px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum528820'></span> <math>\left[\begin{array}{c}
 +
{\epsilon }_{\xi }\\
 +
{\epsilon }_{\eta }\\
 +
{\epsilon }_{\zeta }\\
 +
{\gamma }_{\xi \eta }\\
 +
{\gamma }_{\xi \zeta }\\
 +
{\gamma }_{\eta \zeta }
 +
\end{array}\right]=\left[\begin{array}{l}
 +
N_{\xi }^2u_{\xi }^2\\
 +
N_{\eta }^3u_{\eta }^3\\
 +
N_{\zeta }^4u_{\zeta }^4\\
 +
N_{\eta }^2u_{\xi }^2+N_{\eta }^3u_{\xi }^3\\
 +
N_{\zeta }^2u_{\xi }^2+N_{\zeta }^3u_{\xi }^3+N_{\zeta }^4u_{\xi }^4\\
 +
N_{\zeta }^3u_{\eta }^3+N_{\zeta }^4u_{\eta }^4
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.50)
 +
|}
  
To keep the notation as compact as possible, a sub-index has been introduced in <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|]] which indicates derivation of the shape function with respect to a certain local coordinate. For example:
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1125.svg|67px]]
+
To keep the notation as compact as possible, a sub-index has been introduced in <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|(4.50)]] which indicates derivation of the shape function with respect to a certain local coordinate. For example:
  
As was the case for the membrane element, the null terms in <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|]] have been dropped to improve efficiency. The corresponding stresses are calculated assuming a linear elastic isotropic behaviour.
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>N_{\eta }^i=\frac{\partial N^i}{\partial \eta }</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.51)
 +
|}
 +
 
 +
 
 +
As was the case for the membrane element, the null terms in <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|(4.50)]] have been dropped to improve efficiency. The corresponding stresses are calculated assuming a linear elastic isotropic behaviour.
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum309458'></span>  <math>\begin{array}{c}
 +
\boldsymbol{\sigma }=2G\boldsymbol{e}+{\sigma }_h\boldsymbol{I}\\
 +
\boldsymbol{e}=\boldsymbol{\epsilon }-\frac{{\epsilon }_v}{3}\boldsymbol{I}\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }{\epsilon }_v={\epsilon }_{\xi }+{\epsilon }_{\eta }+{\epsilon }_{\zeta }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }{\sigma }_h=K{\epsilon }_v
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.52)
 +
|}
  
<span id='ZEqnNum309458'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1126.svg|272px]]
 
  
 
The corresponding nodal generalized forces can be determined form the principle of virtual work. Given an arbitrary virtual displacement field, the work done by the nodal loads should equal the virtual change in strain energy
 
The corresponding nodal generalized forces can be determined form the principle of virtual work. Given an arbitrary virtual displacement field, the work done by the nodal loads should equal the virtual change in strain energy
  
<span id='ZEqnNum996283'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1127.svg|154px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum996283'></span>  <math>\sum_j\boldsymbol{F}^j\delta \boldsymbol{u}^j=\int_{{\Omega }_{el}}\boldsymbol{\sigma }:\delta \boldsymbol{\epsilon }\mbox{ }d\Omega </math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.53)
 +
|}
 +
 
  
 
The virtual strain field is a linear combination of the gradients of the shape functions and the virtual nodal displacements given by
 
The virtual strain field is a linear combination of the gradients of the shape functions and the virtual nodal displacements given by
  
<span id='ZEqnNum481616'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1128.svg|600px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum481616'></span> <math>\left[\begin{array}{c}
 +
\delta {\epsilon }_{\xi }\\
 +
\delta {\epsilon }_{\eta }\\
 +
\delta {\epsilon }_{\zeta }\\
 +
\delta {\gamma }_{\xi \eta }\\
 +
\delta {\gamma }_{\xi \zeta }\\
 +
\delta {\gamma }_{\eta \zeta }
 +
\end{array}\right]=\left[\begin{array}{l}
 +
N_{\xi }^1\delta u_{\xi }^1+N_{\xi }^2\delta u_{\xi }^2\\
 +
N_{\eta }^1\delta u_{\eta }^1+N_{\eta }^2\delta u_{\eta }^2+N_{\eta }^3\delta u_{\eta }^3\\
 +
N_{\zeta }^1\delta u_{\zeta }^1+N_{\zeta }^2\delta u_{\zeta }^2+N_{\zeta }^3\delta u_{\zeta }^3+N_{\zeta }^4\delta u_{\zeta }^4\\
 +
N_{\eta }^1\delta u_{\xi }^1+N_{\xi }^1\delta u_{\eta }^1+N_{\eta }^2\delta u_{\xi }^2+N_{\xi }^2\delta u_{\eta }^2+N_{\eta }^3\delta u_{\xi }^3\\
 +
N_{\zeta }^1\delta u_{\xi }^1+N_{\xi }^1\delta u_{\zeta }^1+N_{\zeta }^2\delta u_{\xi }^2+N_{\xi }^2\delta u_{\zeta }^2+N_{\zeta }^3\delta u_{\xi }^3+N_{\zeta }^4\delta u_{\xi }^4\\
 +
N_{\zeta }^1\delta u_{\eta }^1+N_{\eta }^1\delta u_{\zeta }^1+N_{\zeta }^2\delta u_{\eta }^2+N_{\eta }^2\delta u_{\zeta }^2+N_{\zeta }^3\delta u_{\eta }^3+N_{\eta }^3\delta u_{\zeta }^3+N_{\zeta }^4\delta u_{\eta }^4
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.54)
 +
|}
  
Notice that the expression for the virtual deformation field is far more complex than the formula for the strain field <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|]]. This happens because no single component of the virtual displacement field can be discarded. Combining <span id='cite-ZEqnNum481616'></span>[[#ZEqnNum481616|]] and <span id='cite-ZEqnNum996283'></span>[[#ZEqnNum996283|]] yields the internal force vector
 
  
<span id='ZEqnNum685032'></span>
+
Notice that the expression for the virtual deformation field is far more complex than the formula for the strain field <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|(4.50)]]. This happens because no single component of the virtual displacement field can be discarded. Combining <span id='cite-ZEqnNum481616'></span>[[#ZEqnNum481616|(4.54)]] and <span id='cite-ZEqnNum996283'></span>[[#ZEqnNum996283|(4.53)]] yields the internal force vector
[[Image:draft_Samper_793606474-picture-x0000_i1129.svg|230px]]
+
  
As always, only the non-vanishing terms have been included in <span id='cite-ZEqnNum685032'></span>[[#ZEqnNum685032|]] for the sake of efficiency. The volume of the element is obtained from the isoparametric transform as
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum685032'></span>  <math>\left[\begin{array}{l}
 +
I_{\xi }^1\\
 +
I_{\eta }^1\\
 +
I_{\zeta }^1\\
 +
I_{\xi }^2\\
 +
I_{\eta }^2\\
 +
I_{\zeta }^2\\
 +
I_{\xi }^3\\
 +
I_{\eta }^3\\
 +
I_{\zeta }^3\\
 +
I_{\xi }^4\\
 +
I_{\eta }^4\\
 +
I_{\zeta }^4
 +
\end{array}\right]={\Omega }^{el}\left[\begin{array}{l}
 +
{\sigma }_{\xi }N_{\xi }^1+{\tau }_{\xi \eta }N_{\eta }^1+{\tau }_{\xi \zeta }N_{\zeta }^1\\
 +
{\sigma }_{\eta }N_{\eta }^1+{\tau }_{\xi \eta }N_{\xi }^1+{\tau }_{\eta \zeta }N_{\zeta }^1\\
 +
{\sigma }_{\zeta }N_{\zeta }^1+{\tau }_{\xi \zeta }N_{\xi }^1+{\tau }_{\eta \zeta }N_{\eta }^1\\
 +
{\sigma }_{\xi }N_{\xi }^2+{\tau }_{\xi \eta }N_{\eta }^2+{\tau }_{\xi \zeta }N_{\zeta }^2\\
 +
{\sigma }_{\eta }N_{\eta }^2+{\tau }_{\xi \eta }N_{\xi }^2+{\tau }_{\eta \zeta }N_{\zeta }^2\\
 +
{\sigma }_{\zeta }N_{\zeta }^2+{\tau }_{\xi \zeta }N_{\xi }^2+{\tau }_{\eta \zeta }N_{\eta }^2\\
 +
{\tau }_{\xi \eta }N_{\eta }^3+{\tau }_{\xi \zeta }N_{\zeta }^3\\
 +
{\sigma }_{\eta }N_{\eta }^3+{\tau }_{\eta \zeta }N_{\zeta }^3\\
 +
{\sigma }_{\zeta }N_{\zeta }^3+{\tau }_{\eta \zeta }N_{\eta }^3\\
 +
{\tau }_{\xi \zeta }N_{\zeta }^4\\
 +
{\tau }_{\eta \zeta }N_{\zeta }^4\\
 +
{\sigma }_{\zeta }N_{\zeta }^4
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.55)
 +
|}
 +
 
 +
 
 +
As always, only the non-vanishing terms have been included in <span id='cite-ZEqnNum685032'></span>[[#ZEqnNum685032|(4.55)]] for the sake of efficiency. The volume of the element is obtained from the isoparametric transform as
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum395336'></span>  <math>{\Omega }^{el}=\frac{\vert \boldsymbol{J}\vert }{6}=</math><math>\frac{{\xi }_2{\eta }_3{\zeta }_4}{6}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.56)
 +
|}
  
<span id='ZEqnNum395336'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1130.svg|118px]]
 
  
 
In order to calculate the damping terms, the nodal velocities are transformed to the corrotational reference frame. This is a two step process. First, the velocities of all the nodes are measured relative to the origin of the system (i.e. the first node). This yields the intermediate velocity '''w''' whose components are given by:
 
In order to calculate the damping terms, the nodal velocities are transformed to the corrotational reference frame. This is a two step process. First, the velocities of all the nodes are measured relative to the origin of the system (i.e. the first node). This yields the intermediate velocity '''w''' whose components are given by:
  
[[Image:draft_Samper_793606474-picture-x0000_i1131.svg|600px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left(w_{\xi }^i,w_{\eta }^i,w_{\zeta }^i\right)=\left(\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{i}\cdot \boldsymbol{e}_\boldsymbol{1},\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{i}\cdot \boldsymbol{e}_\boldsymbol{2},\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{i}\cdot \boldsymbol{n}\right)\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{where}\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\boldsymbol{v}_\boldsymbol{r}^\boldsymbol{i}=</math><math>\boldsymbol{v}^\boldsymbol{i}-\boldsymbol{v}^1</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.57)
 +
|}
 +
 
  
 
Due to the choice of the reference frame, the following relationship must exist between the intermediate velocities and the angular velocity of the corrotational reference system
 
Due to the choice of the reference frame, the following relationship must exist between the intermediate velocities and the angular velocity of the corrotational reference system
  
[[Image:draft_Samper_793606474-picture-x0000_i1132.svg|128px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\lbrace \begin{array}{l}
 +
w_{\eta }^2={\Omega }_{\zeta }{\xi }^2\\
 +
w_{\zeta }^2=-{\Omega }_{\eta }{\xi }^2\\
 +
w_{\zeta }^3={\Omega }_{\xi }{\eta }^3-{\Omega }_{\eta }{\xi }^3
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.58)
 +
|}
 +
 
  
 
It is therefore easy to calculate the spin rate of the local reference frame
 
It is therefore easy to calculate the spin rate of the local reference frame
  
[[Image:draft_Samper_793606474-picture-x0000_i1133.svg|214px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{\Omega }:\left(\frac{w_{\eta }^2}{{\xi }^2},-\right. </math><math>\left. \frac{w_{\zeta }^2}{{\xi }^2},\frac{1}{{\eta }^3}\left(w_{\zeta }^3-\right. \right. </math><math>\left. \left. \frac{w_{\zeta }^2}{{\xi }^2}{\xi }^3\right)\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.59)
 +
|}
 +
 
  
 
Subtracting the spin-induced components from the intermediate velocities, the corrotational velocities are finally obtained
 
Subtracting the spin-induced components from the intermediate velocities, the corrotational velocities are finally obtained
  
<span id='ZEqnNum517638'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1134.svg|600px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum517638'></span> <math>\begin{array}{c}
 +
{\boldsymbol{\tilde{v}}}^1:\left(0,0,0\right)\\
 +
{\boldsymbol{\tilde{v}}}^2:\left(w_{\xi }^2,0,0\right)\\
 +
{\boldsymbol{\tilde{v}}}^3:\left(w_{\xi }^3+{\Omega }_{\zeta }{\eta }^3,w_{\eta }^3-{\Omega }_{\zeta }{\xi }^3,0\right)\\
 +
{\boldsymbol{\tilde{v}}}^4:\left(w_{\xi }^4-{\Omega }_{\eta }{\zeta }^4+{\Omega }_{\zeta }{\eta }^4,w_{\eta }^4+{\Omega }_{\xi }{\zeta }^4-{\Omega }_{\zeta }{\xi }^4,w_{\zeta }^4-{\Omega }_{\xi }{\eta }^4+{\Omega }_{\eta }{\xi }^4\right)
 +
\end{array}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.60)
 +
|}
  
In <span id='cite-ZEqnNum517638'></span>[[#ZEqnNum517638|]] the tilde indicates the value measured in the corrotational frame of reference. The velocities <span id='cite-ZEqnNum517638'></span>[[#ZEqnNum517638|]] can be used together with <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|]] to yield the components of the strain rate tensor
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1135.svg|199px]]
+
In <span id='cite-ZEqnNum517638'></span>[[#ZEqnNum517638|(4.60)]] the tilde indicates the value measured in the corrotational frame of reference. The velocities <span id='cite-ZEqnNum517638'></span>[[#ZEqnNum517638|(4.60)]] can be used together with <span id='cite-ZEqnNum528820'></span>[[#ZEqnNum528820|(4.50)]] to yield the components of the strain rate tensor
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\left[\begin{array}{c}
 +
{\dot{\epsilon }}_{\xi }\\
 +
{\dot{\epsilon }}_{\eta }\\
 +
{\dot{\epsilon }}_{\zeta }\\
 +
{\dot{\gamma }}_{\xi \eta }\\
 +
{\dot{\gamma }}_{\xi \zeta }\\
 +
{\dot{\gamma }}_{\eta \zeta }
 +
\end{array}\right]=\left[\begin{array}{l}
 +
N_{\xi }^2{\tilde{v}}_{\xi }^2\\
 +
N_{\eta }^3{\tilde{v}}_{\eta }^3\\
 +
N_{\zeta }^4{\tilde{v}}_{\zeta }^4\\
 +
N_{\eta }^2{\tilde{v}}_{\xi }^2+N_{\eta }^3{\tilde{v}}_{\xi }^3\\
 +
N_{\zeta }^2{\tilde{v}}_{\xi }^2+N_{\zeta }^3{\tilde{v}}_{\xi }^3+N_{\zeta }^4{\tilde{v}}_{\xi }^4\\
 +
N_{\zeta }^3{\tilde{v}}_{\eta }^3+N_{\zeta }^4{\tilde{v}}_{\eta }^4
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.61)
 +
|}
 +
 
  
 
In order to improve performance the elastic stresses and the stiffness proportional terms from the Rayleigh damping are computed together in a single step. To this effect an equivalent strain tensor is defined as
 
In order to improve performance the elastic stresses and the stiffness proportional terms from the Rayleigh damping are computed together in a single step. To this effect an equivalent strain tensor is defined as
  
[[Image:draft_Samper_793606474-picture-x0000_i1136.svg|77px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\boldsymbol{\epsilon }}^{\boldsymbol{eq}}=\boldsymbol{\epsilon }+</math><math>\beta \boldsymbol{\dot{\epsilon }}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.62)
 +
|}
  
The equivalent strain is used in the constitutive law <span id='cite-ZEqnNum309458'></span>[[#ZEqnNum309458|]] in order to efficiently include the damping term. Additionally, a bulk viscosity is included both to reduce high frequency ringing and to prevent collapse during high speed events. The linear bulk viscosity takes the form defined in <span id='cite-ZEqnNum431138'></span>[[#ZEqnNum431138|]]. Therefore an additional hydrostatic stress is included in the material computations, which is given by
 
  
<span id='ZEqnNum842654'></span>
+
The equivalent strain is used in the constitutive law <span id='cite-ZEqnNum309458'></span>[[#ZEqnNum309458|(4.52)]] in order to efficiently include the damping term. Additionally, a bulk viscosity is included both to reduce high frequency ringing and to prevent collapse during high speed events. The linear bulk viscosity takes the form defined in <span id='cite-ZEqnNum431138'></span>[[#ZEqnNum431138|(3.6)]]. Therefore an additional hydrostatic stress is included in the material computations, which is given by
[[Image:draft_Samper_793606474-picture-x0000_i1137.svg|124px]]
+
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum842654'></span>  <math>{\sigma }_h^{lbv}=b_1\mbox{ }\rho \mbox{ }c_d\mbox{ }L_e\mbox{ }{\dot{\epsilon }}_{vol}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.63)
 +
|}
 +
 
  
 
Under high rate of deformation conditions the nodal velocities may become higher than the dilatational wave speed of the material. The element could therefore flip inside-out in less than one time step. To prevent this kind of behaviour an additional quadratic bulk viscous term is included which smears shocks over several elements. This allows simulation of, for example, impact and blast events. The quadratic hydrostatic viscous stress takes the form:
 
Under high rate of deformation conditions the nodal velocities may become higher than the dilatational wave speed of the material. The element could therefore flip inside-out in less than one time step. To prevent this kind of behaviour an additional quadratic bulk viscous term is included which smears shocks over several elements. This allows simulation of, for example, impact and blast events. The quadratic hydrostatic viscous stress takes the form:
  
<span id='ZEqnNum654751'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1138.svg|184px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum654751'></span> <math>{\sigma }_h^{qbv}=\mbox{ }-\rho {\left[b_2L_emin(0,{\dot{\epsilon }}_{vol})\right]}^2</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.64)
 +
|}
  
Note that the quadratic bulk viscosity <span id='cite-ZEqnNum654751'></span>[[#ZEqnNum654751|]] is only active when the strain rate is compressive. As the only purpose of this term is to prevent the elements from collapsing, it is not included when the material undergoes an expansion. The fraction of the critical damping (needed to calculate the stability limit) due to the combined effect of the viscous stresses <span id='cite-ZEqnNum842654'></span>[[#ZEqnNum842654|]] & <span id='cite-ZEqnNum654751'></span>[[#ZEqnNum654751|]] is
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1139.svg|171px]]
+
Note that the quadratic bulk viscosity <span id='cite-ZEqnNum654751'></span>[[#ZEqnNum654751|(4.64)]] is only active when the strain rate is compressive. As the only purpose of this term is to prevent the elements from collapsing, it is not included when the material undergoes an expansion. The fraction of the critical damping (needed to calculate the stability limit) due to the combined effect of the viscous stresses <span id='cite-ZEqnNum842654'></span>[[#ZEqnNum842654|(4.63)]] & <span id='cite-ZEqnNum654751'></span>[[#ZEqnNum654751|(4.64)]] is
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>{\xi }^{bv}=b_1-b_2^2\frac{L_e}{c_d}min(0,{\dot{\epsilon }}_{vol})</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.65)
 +
|}
 +
 
  
 
Under most circumstances a value of 1,2 is appropriate for the quadratic bulk viscosity parameter (''b<sub>2</sub>'').
 
Under most circumstances a value of 1,2 is appropriate for the quadratic bulk viscosity parameter (''b<sub>2</sub>'').
Line 828: Line 1,740:
 
When pressure loads are prescribed on faces of a tetrahedral element, the contributions to the internal force vector can be obtained from:
 
When pressure loads are prescribed on faces of a tetrahedral element, the contributions to the internal force vector can be obtained from:
  
<span id='ZEqnNum778836'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1140.svg|224px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum778836'></span>  <math>\boldsymbol{I}^\boldsymbol{j}=-p^i\left(1-{\delta }_{ij}\right)\frac{A^i}{3}\boldsymbol{n}^\boldsymbol{i}\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }j=</math><math>1,2,3,4</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.66)
 +
|}
  
In <span id='cite-ZEqnNum778836'></span>[[#ZEqnNum778836|]] index ''j'' indicates the node on which the load is calculated and ''i'' is the face number on which pressure ''p<sup>i</sup>'' is acting; ''A<sup>i</sup>'' is the face area and '''n<sup>i</sup>''' the outward normal. Face numbering is shown in <span id='cite-_Ref284350681'></span>[[#_Ref284350681|Fig. 10]].
+
 
 +
In <span id='cite-ZEqnNum778836'></span>[[#ZEqnNum778836|(4.66)]] index ''j'' indicates the node on which the load is calculated and ''i'' is the face number on which pressure ''p<sup>i</sup>'' is acting; ''A<sup>i</sup>'' is the face area and '''n<sup>i</sup>''' the outward normal. Face numbering is shown in <span id='cite-_Ref284350681'></span>[[#_Ref284350681|Fig. 10]].
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
[[Image:draft_Samper_793606474-image124.png|204px]] </div>
  
[[Image:draft_Samper_793606474-image124.png|center|204px]]
+
<div id="_Ref284350681" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 10''' - Face numbering for tetrahedral elements</span></div>
  
<span id='_Ref284350681'></span>
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<span style="text-align: center; font-size: 75%;">'''Fig. 10 - Face numbering for tetrahedral elements'''</span></div>
 
  
Once all nodal loads have been calculated on the corrotational frame, the contribution to the global force vector (which is always expressed in global coordinates) is obtained from <span id='cite-ZEqnNum530770'></span>[[#ZEqnNum530770|]].
+
Once all nodal loads have been calculated on the corrotational frame, the contribution to the global force vector (which is always expressed in global coordinates) is obtained from <span id='cite-ZEqnNum530770'></span>[[#ZEqnNum530770|(4.37)]].
  
 
The mass matrix for the element, assuming uniform density, is
 
The mass matrix for the element, assuming uniform density, is
  
[[Image:draft_Samper_793606474-picture-x0000_i1141.svg|163px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{M}=\frac{\rho {\Omega }^{el}}{20}\left[\begin{array}{cccc}
 +
2 & 1 & 1 & 1\\
 +
1 & 2 & 1 & 1\\
 +
1 & 1 & 2 & 1\\
 +
1 & 1 & 1 & 2
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.67)
 +
|}
 +
 
  
 
Therefore, the lumped mass becomes
 
Therefore, the lumped mass becomes
  
[[Image:draft_Samper_793606474-picture-x0000_i1142.svg|169px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{M}^\boldsymbol{d}=\frac{\rho {\Omega }^{el}}{4}\left[\begin{array}{cccc}
 +
1 & 0 & 0 & 0\\
 +
0 & 1 & 0 & 0\\
 +
0 & 0 & 1 & 0\\
 +
0 & 0 & 0 & 1
 +
\end{array}\right]</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.68)
 +
|}
 +
 
  
 
A safe estimate of the allowable time step is given by the minimum height of the element
 
A safe estimate of the allowable time step is given by the minimum height of the element
  
[[Image:draft_Samper_793606474-picture-x0000_i1143.svg|1px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>L_e=\frac{3{\Omega }^{el}}{max\left(A^i\right)}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (4.69)
 +
|}
 +
 
  
 
<span id='_Toc284943818'></span>
 
<span id='_Toc284943818'></span>
 +
 
==5 Validation examples==
 
==5 Validation examples==
  
Line 862: Line 1,818:
  
 
<span id='_Toc284943819'></span>
 
<span id='_Toc284943819'></span>
 +
 
===5.1 Cable element subject to weight load===
 
===5.1 Cable element subject to weight load===
  
 
From elementary mechanics it is known that the equilibrium deformed shape of a cable with uniform weight per unit length is a catenary. The vertical position and arc length along the cable vary according to:
 
From elementary mechanics it is known that the equilibrium deformed shape of a cable with uniform weight per unit length is a catenary. The vertical position and arc length along the cable vary according to:
  
<span id='ZEqnNum682903'></span>
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
[[Image:draft_Samper_793606474-picture-x0000_i1144.svg|213px]]
+
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum682903'></span>  <math>y=a \cos h\left(\frac{x}{a}\right)\mbox{ }\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }s= a \sin h\left(\frac{x}{a}\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (5.1)
 +
|}
  
where the parameter ''a'' depends on the boundary conditions. We consider the problem of a cable which stretches across two point at the same level located a distance ''2d'' apart. Initially the cable is shaped like a “V” with the apex a distance d below the suspension points. The total length of the cable is therefore [[Image:draft_Samper_793606474-picture-x0000_i1145.svg|43px]] . Substituting this condition in <span id='cite-ZEqnNum682903'></span>[[#ZEqnNum682903|]] the value of ''a'' and the height of the catenary () can be obtained
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1146.svg|154px]]
+
where the parameter ''a'' depends on the boundary conditions. We consider the problem of a cable which stretches across two point at the same level located a distance ''2d'' apart. Initially the cable is shaped like a “V” with the apex a distance d below the suspension points. The total length of the cable is therefore  <math display="inline">2\sqrt{2}d</math> . Substituting this condition in <span id='cite-ZEqnNum682903'></span>[[#ZEqnNum682903|(5.1)]] the value of ''a'' and the height of the catenary (''&#x03b4;'') can be obtained
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math display="inline">\frac{d}{a}=1,49\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\mbox{ }\delta =</math><math>0,895d</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (5.2)
 +
|}
  
[[Image:draft_Samper_793606474-image131.png|center|252px]]
 
</div>
 
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 11 - Catenary problem definition'''</span></div>
+
[[Image:draft_Samper_793606474-image131.png|252px]] </div>
 +
 
 +
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
<span style="text-align: center; font-size: 75%;">'''Fig. 11''' - Catenary problem definition</span></div>
 +
 
  
 
The cable has been discretized with 20 linear elements. In order to check also the behaviour of the membrane formulation a strip made of triangular elements has been suspended the same way as the cable. The strip is modelled with a mesh of 20x4 triangles. The relevant properties chosen are:
 
The cable has been discretized with 20 linear elements. In order to check also the behaviour of the membrane formulation a strip made of triangular elements has been suspended the same way as the cable. The strip is modelled with a mesh of 20x4 triangles. The relevant properties chosen are:
  
[[Image:draft_Samper_793606474-picture-x0000_i1147.svg|257px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>E=10GPa\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\rho =</math><math>1000\frac{kg}{m^3}\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }g=</math><math>9,8\frac{m}{s^2}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (5.3)
 +
|}
  
The values of obtained from the FEM solution are given in <span id='cite-_Ref284435822'></span>[[#_Ref284435822|Table 1]], the agreement with the theoretical calculation is excellent. The deformed mesh shape is shown in <span id='cite-_Ref284436048'></span>[[#_Ref284436048|Fig. 12]].
+
 
 +
The values of ''&#x03b4;'' obtained from the FEM solution are given in <span id='cite-_Ref284435822'></span>[[#_Ref284435822|Table 1]], the agreement with the theoretical calculation is excellent. The deformed mesh shape is shown in <span id='cite-_Ref284436048'></span>[[#_Ref284436048|Fig. 12]].
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
[[Image:draft_Samper_793606474-image133.png|400px]] </div>
  
[[Image:draft_Samper_793606474-image133.png|center|558px]]
+
<div id="_Ref284436048" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 12''' - Catenary problem. Deformed shape</span></div>
  
<span id='_Ref284436048'></span>
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<span style="text-align: center; font-size: 75%;">'''Fig. 12 - Catenary problem. Deformed shape'''</span></div>
 
  
{| style="border: 1pt solid black;border-collapse: collapse;"
+
{| style="width: 65%;border-collapse: collapse;font-size:85%;"  
|- style="border: 1pt solid black;"
+
|-
| style="border-top: none;border-left: none;border-bottom: 1pt solid black;border-right: 1pt solid black;text-align: center;vertical-align: top;"|
+
| style="border-bottom: 1pt solid black;border-right: 1pt solid black;text-align: center;vertical-align: top;"|
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Cable elements
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Cable elements
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Membrane elements
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Membrane elements
|- style="border: 1pt solid black;"
+
|-
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|/d
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|&#x03b4;/d
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|'''0,896'''
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|'''0,896'''
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|'''0,897<span id="fnc-1"></span><span style="text-align: center; font-size: 75%;">[[#fn-1|<sup>1</sup>]]</span>'''
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|'''0,897<span id="fnc-1"></span><span style="text-align: center; font-size: 75%;">[[#fn-1|<sup>1</sup>]]</span>'''
 
|}
 
|}
  
<span id='_Ref284435822'></span>
+
<div id="_Ref284435822" class="center" style="width: auto; margin-left: auto; margin-right: auto;font-size:75%;">
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
'''Table 1''' - Computed geometry for the catenary problem</div>
<span style="text-align: center; font-size: 75%;">'''Table 1 - Computed geometry for the catenary problem'''</span></div>
+
  
----
 
  
<span style="text-align: center; font-size: 75%;"><span id="fn-1"></span>([[#fnc-1|<sup>1</sup>]]) </span><span style="text-align: center; font-size: 75%;"> Value for the triangular elements is an average. Due to the constraints imposed by the discretisation the deformed shape is not perfectly cylindrical.</span>
+
 
 +
<span style="text-align: center; font-size: 75%;"><span id="fn-1"></span>([[#fnc-1|<sup>1</sup>]]) Value for the triangular elements is an average. Due to the constraints imposed by the discretisation the deformed shape is not perfectly cylindrical.</span>
 
<span id='_Toc284943820'></span>
 
<span id='_Toc284943820'></span>
 +
 
===5.2 Circular membrane under uniform pressure===
 
===5.2 Circular membrane under uniform pressure===
  
 
Also known as Henky’s problem in the literature <span id='cite-_Ref284690882'></span>[[#_Ref284690882|[11]]] this benchmark studies the elastic deformation of an initially round and flat membrane with fixed edge. The membrane is pressurized thus acquiring a dome-like shape. The characteristics of the membrane are:
 
Also known as Henky’s problem in the literature <span id='cite-_Ref284690882'></span>[[#_Ref284690882|[11]]] this benchmark studies the elastic deformation of an initially round and flat membrane with fixed edge. The membrane is pressurized thus acquiring a dome-like shape. The characteristics of the membrane are:
  
[[Image:draft_Samper_793606474-picture-x0000_i1148.svg|282px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>R=0,1425m\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }Et=</math><math>311488Nm\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\nu =</math><math>0,34</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (5.4)
 +
|}
 +
 
  
 
Reference values can be found in the literature for the vertical displacement of the central point of the membrane for an applied pressure of 100KPa (Pauletti 2005). The solution was computed using an unstructured mesh containing 344 triangular elements.
 
Reference values can be found in the literature for the vertical displacement of the central point of the membrane for an applied pressure of 100KPa (Pauletti 2005). The solution was computed using an unstructured mesh containing 344 triangular elements.
  
{| style="border: 1pt solid black;border-collapse: collapse;"
+
 
|- style="border: 1pt solid black;"
+
{| style="width: 89%;border-collapse: collapse;font-size:85%;"  
| style="border-top: none;border-left: none;border-bottom: 1pt solid black;border-right: 1pt solid black;text-align: center;vertical-align: top;"|
+
|-
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Pauletti (SATS)
+
style="border-bottom: 1pt solid black;border-right: 1pt solid black;text-align: center;vertical-align: top;"|
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Pauletti (ANSYS)  
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Pauletti (SATS)
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|PUMI_MEM
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Pauletti (ANSYS)  
|- style="border: 1pt solid black;"
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|PUMI_MEM
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Deflection (mm)
+
|-
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|33,1
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Deflection (mm)
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|31,9
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|33,1
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|34,8
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|31,9
 +
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|34,8
 
|}
 
|}
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Table 2 – Central deflection of the membrane (mm)'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Table 2''' – Central deflection of the membrane (mm)</span></div>
 +
 
  
 
While there is not a single definite reference solution in the literature, the result obtained compares well with the two values presented. It must be stressed that slight differences must be expected because the deformations experienced by the membrane exceed the strict limits of validity of linear elasticity.
 
While there is not a single definite reference solution in the literature, the result obtained compares well with the two values presented. It must be stressed that slight differences must be expected because the deformations experienced by the membrane exceed the strict limits of validity of linear elasticity.
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
+
[[Image:draft_Samper_793606474-image135.png|600px]] </div>
[[Image:draft_Samper_793606474-image135.png|center|558px]]
+
</div>
+
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 13 – Henky’s problem. Deformed shape'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 13''' – Henky’s problem. Deformed shape</span></div>
  
 
<span id='_Toc284943821'></span>
 
<span id='_Toc284943821'></span>
 +
 
===5.3 Square airbag inflation test===
 
===5.3 Square airbag inflation test===
  
 
This benchmark computes de vertical displacement at the centre of an initially flat square airbag of side length 840mm. An internal pressure of 5kPa is applied. This is a validation test for the wrinkling model, as the deformed configuration is strongly affected by the no-compression condition. The textile properties are:
 
This benchmark computes de vertical displacement at the centre of an initially flat square airbag of side length 840mm. An internal pressure of 5kPa is applied. This is a validation test for the wrinkling model, as the deformed configuration is strongly affected by the no-compression condition. The textile properties are:
  
[[Image:draft_Samper_793606474-picture-x0000_i1149.svg|239px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>E=588MPa\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }t=</math><math>0,6mm\mbox{ }\mbox{ }\mbox{ };\mbox{ }\mbox{ }\mbox{ }\nu =</math><math>0,4</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (5.5)
 +
|}
 +
 
  
 
A mesh composed of 16x16 squares is used for each side of the airbag. Each square has then been divided into 4 equal triangles in order to eliminate mesh orientation effects. The total number of triangular elements is therefore 2048. The next table shows the comparison of the result from PUMI_MEM with several sources <span id='cite-_Ref284691523'></span>[[#_Ref284691523|[12]]]<span id='cite-_Ref284691525'></span>[[#_Ref284691525|[13]]]<span id='cite-_Ref284691526'></span>[[#_Ref284691526|[14]]]. The differences are negligible.
 
A mesh composed of 16x16 squares is used for each side of the airbag. Each square has then been divided into 4 equal triangles in order to eliminate mesh orientation effects. The total number of triangular elements is therefore 2048. The next table shows the comparison of the result from PUMI_MEM with several sources <span id='cite-_Ref284691523'></span>[[#_Ref284691523|[12]]]<span id='cite-_Ref284691525'></span>[[#_Ref284691525|[13]]]<span id='cite-_Ref284691526'></span>[[#_Ref284691526|[14]]]. The differences are negligible.
  
{| style="border: 1pt solid black;border-collapse: collapse;"
+
 
|- style="border: 1pt solid black;"
+
{| style="width: 84%;border-collapse: collapse;font-size:85%;"  
| style="border-top: none;border-left: none;border-bottom: 1pt solid black;border-right: 1pt solid black;text-align: center;vertical-align: top;"|
+
|-
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Contri
+
style="border-bottom: 1pt solid black;border-right: 1pt solid black;text-align: center;vertical-align: top;"|
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Ziegler
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Contri
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Hornig
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Ziegler
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|PUMI_MEM
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Hornig
|- style="border: 1pt solid black;"
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|PUMI_MEM
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Deflection (mm)
+
|-
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|217,0
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|Deflection (mm)
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|216,0
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|217,0
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|216,3
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|216,0
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|216,2
+
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|216,3
 +
| style="border: 1pt solid black;text-align: center;vertical-align: top;"|216,2
 
|}
 
|}
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Table 3 – Central displacement of the airbag (mm)'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Table 3''' – Central displacement of the airbag (mm)</span></div>
  
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
  
[[Image:draft_Samper_793606474-image137.png|center|546px]]
+
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
[[Image:draft_Samper_793606474-image137.png|600px]] </div>
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<span style="text-align: center; font-size: 75%;">'''Fig. 14 – Square airbag. Deformed shape'''</span></div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 14''' – Square airbag. Deformed shape</span></div>
  
 
<span id='_Toc284943822'></span>
 
<span id='_Toc284943822'></span>
 +
 
==6 Application examples==
 
==6 Application examples==
  
Line 990: Line 1,990:
  
 
<span id='_Toc284943823'></span>
 
<span id='_Toc284943823'></span>
 +
 
===6.1 Ram air parachute modelling===
 
===6.1 Ram air parachute modelling===
  
 +
Coupled with a potential flow solver, the code has been used to simulate a high-performance parachute for delivery of heavy payloads. The canopy was designed and manufactured by CIMSA in the framework of the FASTWing Project [10]. The model contains an unstructured distribution of 11760 triangular elements (8824 for the aerodynamic surfaces exposed to the wind and 2936 for the internal ribs) and 11912 cable elements to model the suspension and control lines as well as the reinforcement tapes integrated into the canopy. The simulation is initialized with a partially inflated parachute configuration. The aerodynamic loads are updated as the simulation proceeds until a stable configuration is reached. <span id='cite-_Ref284524976'></span>[[#_Ref284524976|Fig. 15]] shows the change in shape from the beginning of the simulation to the equilibrium configuration.
  
[[Image:draft_Samper_793606474-image138.png|center|558px]]
+
[[Image:draft_Samper_793606474-image138.png|600px]]
  
<span id='_Ref284524976'></span>
+
<div id="_Ref284524976" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
<span style="text-align: center; font-size: 75%;">'''Fig. 15''' - Fastwing parachute. Initial configuration and final deformed shape</span></div>
<span style="text-align: center; font-size: 75%;">'''Fig. 15 - Fastwing parachute. Initial configuration and final deformed shape'''</span></div>
+
  
Coupled with a potential flow solver, the code has been used to simulate a high-performance parachute for delivery of heavy payloads. The canopy was designed and manufactured by CIMSA in the framework of the FASTWing Project [10]. The model contains an unstructured distribution of 11760 triangular elements (8824 for the aerodynamic surfaces exposed to the wind and 2936 for the internal ribs) and 11912 cable elements to model the suspension and control lines as well as the reinforcement tapes integrated into the canopy. The simulation is initialized with a partially inflated parachute configuration. The aerodynamic loads are updated as the simulation proceeds until a stable configuration is reached. <span id='cite-_Ref284524976'></span>[[#_Ref284524976|Fig. 15]] shows the change in shape from the beginning of the simulation to the equilibrium configuration.
 
  
 +
The code has also been used to predict the dynamic response of the parachute in order to simulate, for example, manoeuvres. The choice of an explicit scheme allows for instant transition from static to dynamic analysis if an unsteady flow solver is available. It must be stressed that the time step used by the structural solver is very short while for most applications the high-order modes of the mechanical response are of little relevance. Therefore it is not necessary to update the aerodynamic loads at every step in order to obtain a satisfactory global response. This saves processing time on the part of the flow solver. <span id='cite-_Ref284525112'></span>[[#_Ref284525112|Fig. 16]] illustrates a right turn manoeuvre.
  
[[Image:draft_Samper_793606474-image139.png|center|600px]]
 
  
<span id='_Ref284525112'></span>
+
[[Image:draft_Samper_793606474-image139.png|600px]]
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
<span style="text-align: center; font-size: 75%;">'''Fig. 16 – Fastwing parachute right turn manoeuvre. Starting from the steady state the right brake is pulled. Yaw angle increases form left to right'''</span></div>
+
  
The code has also been used to predict the dynamic response of the parachute in order to simulate, for example, manoeuvres. The choice of an explicit scheme allows for instant transition from static to dynamic analysis if an unsteady flow solver is available. It must be stressed that the time step used by the structural solver is very short while for most applications the high-order modes of the mechanical response are of little relevance. Therefore it is not necessary to update the aerodynamic loads at every step in order to obtain a satisfactory global response. This saves processing time on the part of the flow solver. <span id='cite-_Ref284525112'></span>[[#_Ref284525112|Fig. 16]] illustrates a right turn manoeuvre.
+
<div id="_Ref284525112" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
<span style="text-align: center; font-size: 75%;">'''Fig. 16''' – Fastwing parachute right turn manoeuvre. Starting from the steady state the right brake is pulled. Yaw angle increases form left to right</span></div>
  
 
<span id='_Toc284943824'></span>
 
<span id='_Toc284943824'></span>
 +
 
===6.2 Drag canopy deployment===
 
===6.2 Drag canopy deployment===
  
 
This is a simple inflation test aimed at exploring the capabilities of the code to simulate parachute deployment and inflation. Direct calculation of the pressure field around the partially inflated canopy is an extremely challenging task. Therefore, semi-empirical correlations have been used for the pressure field. Deployment takes place in two steps. Initially the apex of the canopy is pulled in the direction of the incident wind. Once the lines and canopy have been stretched the inflation phase begins. The parachute is discretized with an unstructured grid of 3390 triangular elements and 2040 cable elements modelling the suspension lines and fabric reinforcements. <span id='cite-_Ref284526381'></span>[[#_Ref284526381|Fig.  17]] shows the inflation stage, including the final steady configuration.
 
This is a simple inflation test aimed at exploring the capabilities of the code to simulate parachute deployment and inflation. Direct calculation of the pressure field around the partially inflated canopy is an extremely challenging task. Therefore, semi-empirical correlations have been used for the pressure field. Deployment takes place in two steps. Initially the apex of the canopy is pulled in the direction of the incident wind. Once the lines and canopy have been stretched the inflation phase begins. The parachute is discretized with an unstructured grid of 3390 triangular elements and 2040 cable elements modelling the suspension lines and fabric reinforcements. <span id='cite-_Ref284526381'></span>[[#_Ref284526381|Fig.  17]] shows the inflation stage, including the final steady configuration.
  
 +
 +
[[Image:draft_Samper_793606474-image140.png|600px]]
  
[[Image:draft_Samper_793606474-image140.png|center|600px]]
+
<div id="_Ref284526381" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
+
<span style="text-align: center; font-size: 75%;">'''Fig.  17''' – Several stages of the parachute deployment</span></div>
<span id='_Ref284526381'></span>
+
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
<span style="text-align: center; font-size: 75%;">'''Fig.  17 – Several stages of the parachute deployment'''</span></div>
+
  
 
<span id='_Toc284943825'></span>
 
<span id='_Toc284943825'></span>
 +
 
===6.3 Draping simulation===
 
===6.3 Draping simulation===
  
Line 1,028: Line 2,028:
  
  
[[Image:draft_Samper_793606474-image141.png|center|594px]]
+
[[Image:draft_Samper_793606474-image141.png|600px]]
  
<span id='_Ref284528141'></span>
+
<div id="_Ref284528141" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
<span style="text-align: center; font-size: 75%;">'''Fig. 18''' - Draping simulation. Snapshots taken every 0,4s</span></div>
<span style="text-align: center; font-size: 75%;">'''Fig. 18 - Draping simulation. Snapshots taken every 0,4s'''</span></div>
+
  
 
<span id='_Toc284943826'></span>
 
<span id='_Toc284943826'></span>
 +
 
===6.4 Blast loading of inflatable structures===
 
===6.4 Blast loading of inflatable structures===
  
 
In recent times, use of inflatable structures as shelters against blast waves and even as a means of containing the effects of explosions has become a topic of interest. In order to address this kind of problem an additional material model has been incorporated in the code which allows for simulation of the propagation of pressure perturbations on air. An equation of state model has been used together with the tetrahedral elements in order to asses the blast wave attenuation which takes place across the inflatable structure. The events being simulated involve extremely short time scales during which the distances travelled by most nodes of the mesh are not large compared with the general dimensions of the structure. Thus, a lagrangian formulation for the air is acceptable, at least for those volumes not directly exposed to the effect of the blast. This is the case for the air contained inside the structure and for those parts of the atmosphere shielded from the explosion. Assuming an ideal gas which evolves in an isentropic way, the relation between pressure and density is:
 
In recent times, use of inflatable structures as shelters against blast waves and even as a means of containing the effects of explosions has become a topic of interest. In order to address this kind of problem an additional material model has been incorporated in the code which allows for simulation of the propagation of pressure perturbations on air. An equation of state model has been used together with the tetrahedral elements in order to asses the blast wave attenuation which takes place across the inflatable structure. The events being simulated involve extremely short time scales during which the distances travelled by most nodes of the mesh are not large compared with the general dimensions of the structure. Thus, a lagrangian formulation for the air is acceptable, at least for those volumes not directly exposed to the effect of the blast. This is the case for the air contained inside the structure and for those parts of the atmosphere shielded from the explosion. Assuming an ideal gas which evolves in an isentropic way, the relation between pressure and density is:
  
[[Image:draft_Samper_793606474-picture-x0000_i1150.svg|61px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\frac{p}{{\rho }^{\gamma }}=\frac{p_0}{{\rho }_0^{\gamma }}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (6.1)
 +
|}
  
where the subindex 0 denotes some reference conditions (e.g. initial conditions) and  is the ratio of specifics heats of the gas. The pressure at any time is therefore obtained from
 
  
<span id='ZEqnNum601585'></span>
+
where the subindex 0 denotes some reference conditions (e.g. initial conditions) and &#x03b3; is the ratio of specifics heats of the gas. The pressure at any time is therefore obtained from
[[Image:draft_Samper_793606474-picture-x0000_i1151.svg|167px]]
+
  
It is thus possible to calculate the pressure using the initial conditions and the change in volume of the element. This information is available from <span id='cite-ZEqnNum395336'></span>[[#ZEqnNum395336|]]. The speed of sound in the medium is given by
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum601585'></span> <math>p=p_0{\left(\frac{\rho }{{\rho }_0}\right)}^{\gamma }=</math><math>p_0{\left(\frac{{\Omega }_0}{\Omega }\right)}^{\gamma }</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (6.2)
 +
|}
  
<span id='ZEqnNum398560'></span>
 
[[Image:draft_Samper_793606474-picture-x0000_i1152.svg|58px]]
 
  
An equivalent bulk stiffness for the air can be obtained from <span id='cite-ZEqnNum398560'></span>[[#ZEqnNum398560|]] by defining
+
It is thus possible to calculate the pressure using the initial conditions and the change in volume of the element. This information is available from <span id='cite-ZEqnNum395336'></span>[[#ZEqnNum395336|(4.56)]]. The speed of sound in the medium is given by
  
[[Image:draft_Samper_793606474-picture-x0000_i1153.svg|149px]]
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <span id='ZEqnNum398560'></span>  <math>c^2=\gamma \frac{p}{\rho }</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (6.3)
 +
|}
  
The parameter Keq is an estimate of the volumetric stiffness of the air. A gas has no shear stiffness so excessive mesh distortions could appear if only the pressure term <span id='cite-ZEqnNum601585'></span>[[#ZEqnNum601585|]] were included into the material response for those elements modelling air. To counter this problem some level of numerical shear stiffness is added to the formulation in order to control mesh distortion while not affecting the overall properties of the solution. To this effect this stabilizing term is defined as:
 
  
[[Image:draft_Samper_793606474-picture-x0000_i1154.svg|149px]]
+
An equivalent bulk stiffness for the air can be obtained from <span id='cite-ZEqnNum398560'></span>[[#ZEqnNum398560|(6.3)]] by defining
  
The parameter  must be kept small in order to prevent excessive accumulation of energy in the form of shear deformation. The complete material response (including the shear stabilization term) is then given by
+
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>c^2=\frac{K_{eq}}{\rho }\mbox{ }\mbox{ }\mbox{ }\Rightarrow \mbox{ }\mbox{ }\mbox{ }K_{eq}=</math><math>\gamma p</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (6.4)
 +
|}
  
[[Image:draft_Samper_793606474-picture-x0000_i1155.svg|157px]]
 
  
The stability limit for the gas elements is calculated in the usual way <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|]] using <span id='cite-ZEqnNum398560'></span>[[#ZEqnNum398560|]] as the characteristic wave sped. As the speed of sound in air is much smaller that the wave speeds in solids, the air elements are not usually a limiting factor (except in cases of severe element distortion).
+
The parameter Keq is an estimate of the volumetric stiffness of the air. A gas has no shear stiffness so excessive mesh distortions could appear if only the pressure term <span id='cite-ZEqnNum601585'></span>[[#ZEqnNum601585|(6.2)]] were included into the material response for those elements modelling air. To counter this problem some level of numerical shear stiffness is added to the formulation in order to control mesh distortion while not affecting the overall properties of the solution. To this effect this stabilizing term is defined as:
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>G_{num}=\delta K_{eq}\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\mbox{ }\left(\delta <<1\right)</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (6.5)
 +
|}
 +
 
 +
 
 +
The parameter &#x03b4; must be kept small in order to prevent excessive accumulation of energy in the form of shear deformation. The complete material response (including the shear stabilization term) is then given by
 +
 
 +
{| class="formulaSCP" style="width: 100%; text-align: center;"
 +
|-
 +
|
 +
{| style="text-align: center; margin:auto;"
 +
|-
 +
| <math>\boldsymbol{\sigma }=2G_{num}\boldsymbol{e}-p_0{\left(\frac{{\Omega }_0}{\Omega }\right)}^{\gamma }\boldsymbol{I}</math>
 +
|}
 +
| style="width: 5px;text-align: right;white-space: nowrap;" | (6.6)
 +
|}
 +
 
 +
 
 +
The stability limit for the gas elements is calculated in the usual way <span id='cite-ZEqnNum805396'></span>[[#ZEqnNum805396|(2.30)]] using <span id='cite-ZEqnNum398560'></span>[[#ZEqnNum398560|(6.3)]] as the characteristic wave sped. As the speed of sound in air is much smaller that the wave speeds in solids, the air elements are not usually a limiting factor (except in cases of severe element distortion).
  
 
The example presented corresponds to a conceptual design for a blast containment device. The overall dimensions of the structure are 16x11x4,5m. Due to the double symmetry only a quarter of the geometry has been modelled. The mesh contains 2376000 tetrahedral elements and 79440 triangular membrane elements. The volume elements are located inside the cells of the structure and in the surrounding atmosphere. The volume of atmosphere meshed extends 9m outside the structure (see <span id='cite-_Ref284534609'></span>[[#_Ref284534609|Fig. 19]]).
 
The example presented corresponds to a conceptual design for a blast containment device. The overall dimensions of the structure are 16x11x4,5m. Due to the double symmetry only a quarter of the geometry has been modelled. The mesh contains 2376000 tetrahedral elements and 79440 triangular membrane elements. The volume elements are located inside the cells of the structure and in the surrounding atmosphere. The volume of atmosphere meshed extends 9m outside the structure (see <span id='cite-_Ref284534609'></span>[[#_Ref284534609|Fig. 19]]).
 +
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
[[Image:draft_Samper_793606474-image148.png|390px]] </div>
  
[[Image:draft_Samper_793606474-image148.png|center|384px]]
+
<div id="_Ref284534609" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 19''' – Computational domain geometry. Structure shown in dark grey and surrounding atmosphere in light gray</span></div>
  
<span id='_Ref284534609'></span>
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<span style="text-align: center; font-size: 75%;">'''Fig. 19 – Computational domain geometry. Structure shown in dark grey and surrounding atmosphere in light gray'''</span></div>
 
  
 
The pressure field corresponding to the explosion of a charge of 10kg of TNT has been computed with an Euler flow solver and used as prescribed load history on the inner wall of the structure. In a regular desktop computer the code is able to advance 10 time steps approximately every 9s. Given to short time scales involved (the time it takes for the shockwave to leave the domain is on the order of 10ms) the CPU time for a complete simulation is in the neighbourhood of 10 minutes (the exact value depends on the particular conditions of each simulation, as the stability limit changes as the mesh deforms). The explicit algorithm proves itself extremely efficient when dealing with fast transient events. <span id='cite-_Ref284603098'></span>[[#_Ref284603098|Fig. 20]] shows four snapshots of the temporal evolution of the structural deformations.
 
The pressure field corresponding to the explosion of a charge of 10kg of TNT has been computed with an Euler flow solver and used as prescribed load history on the inner wall of the structure. In a regular desktop computer the code is able to advance 10 time steps approximately every 9s. Given to short time scales involved (the time it takes for the shockwave to leave the domain is on the order of 10ms) the CPU time for a complete simulation is in the neighbourhood of 10 minutes (the exact value depends on the particular conditions of each simulation, as the stability limit changes as the mesh deforms). The explicit algorithm proves itself extremely efficient when dealing with fast transient events. <span id='cite-_Ref284603098'></span>[[#_Ref284603098|Fig. 20]] shows four snapshots of the temporal evolution of the structural deformations.
  
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
 +
[[Image:draft_Samper_793606474-image149.png|600px]] </div>
  
[[Image:draft_Samper_793606474-image149.png|center|594px]]
+
<div id="_Ref284603098" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
</div>
+
<span style="text-align: center; font-size: 75%;">'''Fig. 20''' - Inflatable structure subject to blast loading. Time between frames: 2ms</span></div>
 
+
<span id='_Ref284603098'></span>
+
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
+
<span style="text-align: center; font-size: 75%;">'''Fig. 20 - Inflatable structure subject to blast loading. Time between frames: 2ms'''</span></div>
+
  
 
<span id='_Toc284943827'></span>
 
<span id='_Toc284943827'></span>
 +
 
==7 Conclusions==
 
==7 Conclusions==
  
Line 1,093: Line 2,142:
  
 
<span id='_Toc284943828'></span>
 
<span id='_Toc284943828'></span>
==8 Acknowledgements==
+
 
 +
==Acknowledgements==
  
 
The authors wish to thank the support from CIMSA Ingeniería y Sistemas <span id='cite-_Ref284943732'></span>[[#_Ref284943732|[15]]] for providing sample parachute geometries as well as experimental measurements used during the development of the code.
 
The authors wish to thank the support from CIMSA Ingeniería y Sistemas <span id='cite-_Ref284943732'></span>[[#_Ref284943732|[15]]] for providing sample parachute geometries as well as experimental measurements used during the development of the code.
  
 
<span id='_Toc284943829'></span>
 
<span id='_Toc284943829'></span>
==9 References==
 
  
<span id='_Ref284604132'></span>
+
==References==
:[[#cite-_Ref284604132|[1]]] E. Ortega, R. Flores and E. Oñate. ''Innovative numerical tools for the simulation of parachutes''. ''CIMNE publication,'' PI341, 2010.
+
 
 +
<span id='_Ref284604132'></span>[[#cite-_Ref284604132|[1]]] E. Ortega, R. Flores and E. Oñate. ''Innovative numerical tools for the simulation of parachutes''. ''CIMNE publication,'' PI341, 2010.
  
<span id='_Ref284604146'></span>
+
<span id='_Ref284604146'></span>[[#cite-_Ref284604146|[2]]] E. Ortega, R. Flores and E. Oñate. ''A 3D low-order panel method for unsteady aerodynamic problems''. ''CIMNE publication,'' PI343, 2010.
:[[#cite-_Ref284604146|[2]]] E. Ortega, R. Flores and E. Oñate. ''A 3D low-order panel method for unsteady aerodynamic problems''. ''CIMNE publication,'' PI343, 2010.
+
  
<span id='_Ref284616324'></span>
+
<span id='_Ref284616324'></span>[[#cite-_Ref284616324|[3]]] R. Rossi. ''Light weight structures: Structural analysis and coupling issues''. PhD thesis, University of Bologna, 2005.
:[[#cite-_Ref284616324|[3]]] R. Rossi. ''Light weight structures: Structural analysis and coupling issues''. PhD thesis, University of Bologna, 2005.
+
  
<span id='_Ref284616569'></span>
+
<span id='_Ref284616569'></span><span id='_Ref284688748'></span>[[#cite-_Ref284688748|[4]]] J. Drukker and. D.G. Roddeman. ''The wrinkling of thin membranes: Part 1 -theory''. Journal of Applied Mechanics, 54:884–887, 1987.
:[[#cite-_Ref284616569|[4]]] J. Drukker and. D.G. Roddeman. ''The wrinkling of thin membranes: Part 1 -theory''. Journal of Applied Mechanics, 54:884–887, 1987.
+
  
<span id='_Ref284688750'></span>
+
<span id='_Ref284688750'></span>[[#cite-_Ref284688750|[5]]] J. Drukker and. D.G. Roddeman. ''The wrinkling of thin membranes: Part 2 -'' ''numerical analysis''. Journal of Applied Mechanics, 54:888–892, 1987.
:[[#cite-_Ref284688750|[5]]] J. Drukker and. D.G. Roddeman. ''The wrinkling of thin membranes: Part 2 -'' ''numerical analysis''. Journal of Applied Mechanics, 54:888–892, 1987.
+
  
<span id='_Ref284688881'></span>
+
<span id='_Ref284688881'></span>[[#cite-_Ref284688881|[6]]] R. Rossi, R. Vitaliani. ''Numerical coupled analysis of flexible structures subjected to the fluid action''. In 5<sup>th</sup> PhD ''symposium'', Delft, 2004.
:[[#cite-_Ref284688881|[6]]] R. Rossi, R. Vitaliani. ''Numerical coupled analysis of flexible structures subjected to the fluid action''. In 5<sup>th</sup> PhD ''symposium'', Delft, 2004.
+
  
<span id='_Ref284617109'></span>
+
<span id='_Ref284617109'></span>[[#cite-_Ref284617109|[7]]] T. Belytschko, W.K. Liu, and B. Moran. ''Nonlinear finite elements for continua and structures''. John Wiley & Sons, 2000.
:[[#cite-_Ref284617109|[7]]] T. Belytschko, W.K. Liu, and B. Moran. ''Nonlinear finite elements for continua and structures''. John Wiley & Sons, 2000.
+
  
<span id='_Ref284617545'></span>
+
<span id='_Ref284617545'></span>[[#cite-_Ref284617545|[8]]] O.C. Zienkiewicz and R.L Taylor. ''The finite element method, Volume I''. Butterworth-Heinemann, 2000.
:[[#cite-_Ref284617545|[8]]] O.C. Zienkiewicz and R.L Taylor. ''The finite element method, Volume I''. Butterworth-Heinemann, 2000.
+
  
<span id='_Ref284690146'></span>
+
<span id='_Ref284690146'></span>[[#cite-_Ref284690146|[9]]] R.L. Taylor. ''Finite element analysis of membrane structures''. Technical report, CIMNE, 2001
:[[#cite-_Ref284690146|[9]]] R.L. Taylor. ''Finite element analysis of membrane structures''. Technical report, CIMNE, 2001
+
  
<span id='_Ref284690302'></span>
+
<span id='_Ref284690302'></span>[[#cite-_Ref284690302|[10]]] R. Rossi. ''A finite element formulation for 3D membrane structures including a wrinkling modified material model''. Technical Report 226, CIMNE, 2003.
:[[#cite-_Ref284690302|[10]]] R. Rossi. ''A finite element formulation for 3D membrane structures including a wrinkling modified material model''. Technical Report 226, CIMNE, 2003.
+
  
<span id='_Ref284690882'></span>
+
<span id='_Ref284690882'></span>[[#cite-_Ref284690882|[11]]] R.M. Pauletti, D.M. Guirardi and T.E. Deifeld. ''Argyri’s natural membrane finite element revisited''. Proceedings of the International Conference on Textile composites and Inflatable Structures, Barcelona, 2005.
:[[#cite-_Ref284690882|[11]]] R.M. Pauletti, D.M. Guirardi and T.E. Deifeld. ''Argyri’s natural membrane finite element revisited''. Proceedings of the International Conference on Textile composites and Inflatable Structures, Barcelona, 2005.
+
  
<span id='_Ref284691523'></span>
+
<span id='_Ref284691523'></span>[[#cite-_Ref284691523|[12]]] P. Contri and B.A. Schrefler. ''A geometrically nonlinear finite element analysis of wrinkled membrane surfaces by a no-compression material model''. Communications in applied numerical methods, 4:5–15, 1988.
:[[#cite-_Ref284691523|[12]]] P. Contri and B.A. Schrefler. ''A geometrically nonlinear finite element analysis of wrinkled membrane surfaces by a no-compression material model''. Communications in applied numerical methods, 4:5–15, 1988.
+
  
<span id='_Ref284691525'></span>
+
<span id='_Ref284691525'></span>[[#cite-_Ref284691525|[13]]] R. Ziegler, W. Wagner and K. Bletzinger. ''A multisurface concept for the finite element analysis of wrinkled membranes''. Proceedings of the 4<sup>th</sup> International colloquium on computation of shell & spatial structures, IASS – IACM, 2000.
:[[#cite-_Ref284691525|[13]]] R. Ziegler, W. Wagner and K. Bletzinger. ''A multisurface concept for the finite element analysis of wrinkled membranes''. Proceedings of the 4<sup>th</sup> International colloquium on computation of shell & spatial structures, IASS – IACM, 2000.
+
  
<span id='_Ref284691526'></span>
+
<span id='_Ref284691526'></span>[[#cite-_Ref284691526|[14]]] J. Hornig. ''Analyse der Faltenbildung in Membranen aus unterschiedlichen Material''. PhD thesis, Technischen Universität Berlin, 2004.
:[[#cite-_Ref284691526|[14]]] J. Hornig. ''Analyse der Faltenbildung in Membranen aus unterschiedlichen Material''. PhD thesis, Technischen Universität Berlin, 2004.
+
  
<span id='_Ref284943732'></span>
+
<span id='_Ref284943732'></span>[[#cite-_Ref284943732|[15]]] CIMSA Ingeniería y Sistemas. Web page: [http://www.cimsa.com/ http://www.cimsa.com/] (checked February 8<sup>th</sup> 2011).
:[[#cite-_Ref284943732|[15]]] CIMSA Ingeniería y Sistemas. Web page: [http://www.cimsa.com/ http://www.cimsa.com/] (checked February 8<sup>th</sup> 2011).
+

Latest revision as of 13:46, 12 April 2018

Abstract

An explicit dynamic structural solver developed at CIMNE for the analysis of parachutes is presented. The canopy fabric has a negligible out-of-plane stiffness, therefore its numerical study presents important challenges. Both the large changes in geometry and the statically indeterminate character of the system are problematic from the numerical point of view. This report covers the reasons behind the particular choice of solution scheme as well as a detailed description of the underlying algorithm. Both the theoretical foundations of the method and details of implementation aiming at improving computational efficiency are given. Benchmark cases to assess the accuracy of the solution as well as examples of practical application showing the performance of the code are finally presented.


1 Problem overview

This report describes the theoretical foundation as well as applications of PUMI_MEM, an explicit dynamics structural solver developed at CIMNE. This code is part of the PARAFLIGHT parachute simulation suite [1] which also includes a potential flow solver [2]. The mechanical analysis of thin membrane structures braced with cables (e.g. parachutes) is a challenging task. Two effects entail a host of numerical problems [3]:

  • In general the structure is not statically determinate for an arbitrary set of loads (i.e. it behaves like a mechanism). Thus, it might be impossible to reach an equilibrium state without drastic changes in geometry. The structural response is therefore highly nonlinear and may cause severe convergence problems.
  • Due to the virtually zero bending stiffness of the components the material behaviour is irreversible. The fabric is able to resist tensile stresses but buckles (wrinkles) almost immediately under compressive loads. This asymmetric behaviour further complicates the mechanical analysis [4][5].

In the particular case of parachutes there is an additional complication due to the nature of the applied forces. These being mostly pressure loads, their direction is not known a priori but is a function of the deformed shape and must therefore be computed as part of the solution. This is an additional source of non-linearity. Finally, matters are further complicated by the extreme sensitivity of the pressure field to changes in geometry [6].

In view of these challenges it was decided to use a finite element (FE) dynamic structural solver. An unsteady analysis is insensitive to the problems caused by the lack of a definite static equilibrium configuration. In a dynamic problem the structure is constantly in equilibrium with the inertial forces so the solution is always unique. Even if only the long-term static response is sought the dynamic study offers clear advantages. Furthermore, the extension to transient dynamic problems becomes trivial. There are two basic kinds of dynamic solvers, implicit and explicit [7]. Their main features are:

  • Implicit: Can be made unconditionally stable (allows for large time steps). Cost per time step is large, each step requires solving a non linear problem using an iterative algorithm. The radius of convergence of the iterative algorithms is however limited so the time step cannot be made arbitrarily large.
  • Explicit: Only conditionally stable. The stability limit is determined by the material properties and the geometry of the FE mesh. Cost per time step is low.

When the structural response does not deviate much from linearity the implicit treatment is advantageous as it allows advancing in time quickly. Also, the static equilibrium (when it exists) can be reached in a small number of iterations. However, when the behaviour is heavily non-linear, the time increment must be cut back in order for the iterative schemes to converge and the computational increases quickly. There is also a loss of robustness caused by the possibility of the algorithms failing to converge. On the other hand, the explicit method is extremely insensitive to these effects and requires a number of time steps that does not change substantially as the system response becomes more complex. Material non-linearities and large displacements which are extremely detrimental for the convergence behaviour of the implicit scheme do not affect so adversely the explicit algorithm.

In view of the difficulties expected the choice was made to use an Explicit FE structural solver. A further advantage is the ability of the algorithm to be easily vectored and thus take advantage of modern parallel processing architectures. Linear cable and membrane elements where selected due to their ease of implementation. The fabric is modelled using three-node membrane elements due to their geometric simplicity. As the three nodes of the element can be always assumed to lie in a plane, the definition of the local coordinate systems is straightforward. When a quadrilateral element is passed from the aerodynamic solver, it is internally transformed into a pair of triangular elements in order to carry the analysis.

A local corrotational reference frame is used for each cable and membrane element in order to remove the large rigid-body displacement field and isolate the material strains. Inside each element a simple small-strain formulation is used due to the properties of the fabric. Tensile deformations are always small, on the other hand compressive strains can become extremely large due to the inclusion of a wrinkling model (zero compression stiffness). There is however no stress associated with the compressive strains and, correspondingly, no strain energy. The small-strain formulation is therefore adequate, as only the small tensile deformations must be into account to calculate the stress state.

While not strictly necessary to model the parachute behaviour, tetrahedral solid (3D) elements have been included in the code. They prove useful in modelling the dynamic interaction between the parachute and its payload. As they are meant to model bodies undergoing only small deformations a linear formulation is considered adequate for the task at hand.

2 Problem Formulation

2.1 Weak equilibrium statement

We start using the internal equilibrium statement for a continuum which relates the gradient of the stress field to the applied loads

(2.1)


were and stand for prescribed surface displacements and tractions. In the case of a dynamic problem the body forces (bi) include the inertial loads given by:

(2.2)


where ρ is the density of the solid. Note that the time derivative in (2.2) is a total one, i.e. tracking the material particles. To obtain the Finite Element (FE) formulation of the problem we construct the weak formulation of (2.1). Let δui be an arbitrary test function (representing in this case a virtual displacement field). We may thus write:

(2.3)


Note that in (2.3) implicit summation has been used in order to keep the notation compact. Now, the weighted average of the equations is taken over the relevant domains

(2.4)


If (2.4) holds for any virtual displacement field, the equation becomes equivalent to (2.5). To keep the expressions simple without loss of generality it is common practice to assume that the virtual displacement field is compatible with any existing prescribed displacement constraints. This way the integrals over ΓD can be dropped (i.e. ) but care must be taken to ensure that the solution is indeed compatible with the constraints. The term containing the internal stresses can be integrated by parts yielding

(2.6)


The deformation gradient can be split into a symmetric and an antisymmetric part:

(2.7)


In the expression above εij represents the virtual strain field and ωij is the virtual local rotation. Given that the stress tensor is symmetric the product vanishes. Expression (2.6) then becomes the virtual work principle

(2.8)


Eq. (2.8) states that when the system is in equilibrium the change in strain energy caused by an arbitrary virtual displacement field equals the work done by the external forces.

2.2 Finite element discretization

To obtain the FE discretization we build an approximate solution interpolating the nodal values of the displacements [8]. A virtual displacement field can be obtained in the same way

(2.9)


In (2.9) represents the approximate solution and Nk is the interpolation function corresponding to the kth node (called a shape function). From now on supra-indexes will be used to indicate nodal values. The virtual strain field is a linear function of the virtual displacement field so it also a linear function of , it is possible therefore to write

(2.10)


With the coefficients being linear functions of the shape function gradients. For a dynamic problem the inertial term (2.2) is discretized as

(2.11)


As the shape functions are not functions of time (their value does not change for a given material point) the time derivative in (2.11) affects only the nodal displacements. Rearranging equation (2.8) so only the inertial term remains on the LHS yields

(2.12)


As the virtual nodal displacements are arbitrary, it is possible to set all but one of them to zero. This way as many equations as degrees of freedom existing on the system are obtained. By setting

(2.13)


The following set of equations is obtained:

(2.14)


In the equation above sum is assumed over j & k. The equations can also be written in matrix form as

(2.15)


M is called the mass matrix, b and t are the external nodal generalized forces and I is the internal force vector. If the mechanical response is linear the stress tensor can be written as a linear combination of the nodal displacements. The internal force vector can then be recast as

(2.16)


where K is the stiffness matrix of the system. Even if the behaviour of the structure is not truly linear, this may be useful as a linearization around some base state.

It is possible to solve for the acceleration in (2.15) by inverting the mass matrix

(2.17)


The system of ODEs (2.17) together with the suitable initial conditions

(2.18)


can be advanced in time to yield the displacement field at every instant. Solving for the acceleration term in (2.17) requires inverting the mass matrix. To speed up the computations without significant loss of accuracy, the mass matrix is usually replaced by its lumped (diagonal) counterpart

(2.19)


In the expression above represents the Kronecker delta function (i.e. one when i=j and zero otherwise).

In order to form the matrix and load vectors appearing in (2.15) an element-by-element approach is used. As the shape function of node k is nonzero only inside elements containing said node, the integrals need only evaluated in the appropriate elements, for example:

(2.20)


2.3 Time integration

The integration of the system (2.17) can be performed using both implicit and explicit schemes [7]. For the reasons outlined previously, the explicit method has been chosen. The explicit second order central differencing scheme has been selected due to its high efficiency coupled with acceptable accuracy. Given a series of points in time and their corresponding time increments

(2.21)


let us define the change in midpoint velocity as

(2.22)


Observe that in (2.22) the accelerations and velocities are expressed at different instants. This scheme provides second order time-accuracy by virtue of using a centered approximation for the time derivative. Once the intermediate velocities have been computed, the displacements can be updated

(2.23)


This scheme is fully explicit in that sense that if are kwon, it is possible to compute the updated displacement and velocity without the need to solve any equations. That is, (2.23) yields the new values without the need to solve any additional equation. Obviously the method is not self-starting, as at the initial time step the value of is not known (the initial conditions (2.18) are specified for i=0). To deal with this inconvenience we may use one sided differencing to estimate the velocity at i=+1/2

(2.24)


Using this value together with (2.22) gives

(2.25)


Using this dummy velocity value the time integration can be started. Please remark that the choice of has no effect on the final result. The method outlined has an extremely low computational cost per time step, however it shows a very important limitation. The explicit scheme is only conditionally stable meaning the time step cannot be made arbitrarily large lest the solution diverges. The maximum allowable time step is given by

(2.26)


with ωmax being the angular frequency of the highest eigenmode of the system. The expression (2.26) is truly valid only for undamped systems. If damping is included in the model (it always is for practical reasons) then its effect can be accounted for trough

(2.27)


In the expression above ξ is the damping ratio of the highest eigenmode. From (2.27) it becomes obvious that damping can have a very detrimental effect on the stability limit. While (2.27) provides a very good estimate of the allowable time step, it is not practical to calculate the highest eigenvalue of the system as this calls for solving a complex problem (the number of degrees of freedom in the model can be very large). Fortunately there is a simple upper bound estimate of ωmax

(2.28)


with being the highest elemental eigenfrequency in the model. The interaction with neightbouring elements always causes the highest system eigenmode to be slower than the highest isolated-element normal mode. Thus a conservative stability limit can be used in place of (2.26)

(2.29)


The maximum frequency is associated with dilatational modes. An alternative estimate of the maximum time step is given by the minimum transit time of the dilatational waves across the elements of the mesh:

(2.30)


In (2.30) Le is some characteristic element dimension and cd is the dilatational wave speed. For an isotropic linear elastic solid

(2.31)


where λ and μ are the Lamé constants which can be calculated from the shear modulus (G) and bulk modulus (K) as stated above.

2.4 Mass scaling

If a poor quality mesh is used, some degenerate elements (i.e. having close to zero volume) might be present. These can be extremely detrimental to the performance of the algorithm as their associated characteristic lengths will be very small. Hence, the global stability limit given by (2.30) becomes extremely low, calling for a large number of time steps in order to finish the simulation. To overcome this problem the code includes a selective mass scaling options which introduces local changes in the element density in order to keep the stability limit within acceptable levels. For those elements where the value given by (2.30) is considered excessively small the density is artificially augmented in order to decrease the wave speed (2.31). The user can select the maximum acceptable scatter in the elemental stability limits and the code (using the statistics for the complete model) automatically corrects the elements falling outside the established bounds. It must be stressed that the effect of the increased density on the global dynamic response is very small because the elements affected are only those with very small volumes. As the mass of these elements, even after scaling, is a negligible fraction of the total system mass the overall behaviour of the structure is almost unchanged (i.e. the inertial properties remain basically the same). In those cases where only the system’s static response in sought, mass scaling can be used in a more aggressive manner without altering the solution.

3 Numerical damping

To achieve a smooth solution it is always needed to introduce some amount of damping into the numerical model. In a real structure different types of damping are always present (e.g. material, aerodynamic, etc…) so the observed behaviour is usually smooth. On the other hand, the dissipation provided by the basic explicit algorithm is really small. This is a problem when a steady state solution is sought but is also undesirable when simulating transient events as high frequency noise can contaminate the solution. To allow greater flexibility controlling the solution process two forms of user-adjustable damping are provided; Rayleigh damping and bulk viscosity. In the first case a damping matrix is built from the mass and stiffness matrices:

(3.1)


The equation system (2.15) supplemented with this damping term becoming

(3.2)


The α term creates a damping force which is proportional to the absolute velocity of the nodes. This is roughly equivalent to having the nodes of the structure move trough a viscous fluid. The damping ratio introduced by the mass proportional damping term on a mode of frequency ω is

(3.3)


From (3.3) it is apparent that the α term affects mainly the low frequency components of the solution. It can be useful to accelerate convergence to a static solution when only the long-term response is sought. However, when the transient response must be accurately determined this factor should not be included (or at least the α parameter must be chosen in order to ensure the damping ratio for the lowest mode is very small). The β term on the other hand introduces forces that are proportional to the material strain rate. An extra stress σd is added to the constitutive law

(3.4)


with Del being the tangent stiffness tensor of the material. The fraction of critical damping for a given mode is:

(3.5)


In this case only the high order modes are affected appreciably. This is desirable as it prevents high frequency noise from propagating while leaving the low order response (which is usually the part sought) almost unchanged. The β parameter however must be used sparingly, as it has a very detrimental effect on the stability limit (because its effect is greatest for the highest eigenmode of the system).

An additional form of damping is included to prevent high frequency “ringing”. This is caused by excitation of element dilatational modes which are always associated with the highest eigenvalues of the system. An additional hydrostatic stress is included in the constitutive routines which is proportional to the volumetric strain rate. This volumetric viscous stress is given by

(3.6)


In the expression above b1 is the desired damping ratio for the dilatational mode. A suitable value is b1=0,06.

4 Element formulation

The elements chosen are linear two-node cables and three node membranes. As an introduction to the details of implementation the cable element formulation is described first. While extremely simple, it contains many of the relevant features needed to formulate the surface element. As only small tensile strains are expected, a small-strain formulation has been adopted to calculate the elemental stresses. This assumption allows for efficient coding while maintaining acceptable accuracy.

4.1 Two-node linear cable element

Let us consider a linear element stretching between nodes i and j

Draft Samper 793606474-image49.png
Fig. 1 – Linear cable element internal and external loads


An external distributed loading per unit length acts on the element whose cross sectional area will be denoted by A. As we shall be facing a large displacement problem, the position of the nodes can be written either on the undeformed (reference) configuration or in the deformed (current) configuration. From now on we shall use upper-case letters to denote the original coordinates while lower-case will be reserved for the current configuration. For example, the original length of the cable element is given by

(4.1)


while the actual length at any given time is

(4.2)


The unit vector along the element is

(4.3)


From the change in length of the element the axial strain and stress can be obtained. Assuming linear elastic behaviour:

(4.4)


As we assume the cables buckle instantly under compressive loads, there is a lower bound on the allowable stresses. Therefore in (4.4) a minimum stress value of zero is enforced. Using this result the internal forces at the nodes become:

(4.5)


The nodal generalized external force due to the distributed loading is calculated as indicated in (2.14). If the load is constant across the element it reduces to:

(4.6)


When numerical damping is included the stress term in (4.4) is augmented with the viscous contributions

(4.7)


Note that in (4.7) the bulk viscosity term is slightly modified as it includes the axial strain rate instead of the volumetric strain rate. While using equations (4.1)-(4.7) is the most efficient way to calculate the internal forces for the element in a large displacement problem, it is also useful to have a closed expression for the elemental stiffness matrix (if the Rayleigh damping matrix is needed for example). This is specially simple if a local reference frame aligned with the element is chosen:

Draft Samper 793606474-image58.png
Fig. 2 – Cable local reference frame


For a virtual displacement of the end nodes we can calculate the change in length and in stress as

(4.8)


Thus, the element stiffness matrix in the local coordinate system is given by

(4.9)


Of course, the stiffness matrix is taken as zero whenever compressive strains exist in the element. The mass matrix can be obtained using (2.20) and the expressions of the shape functions in the local reference frame

(4.10)


As previously stated, the diagonal form of the mass matrix is usually preferred, thus (4.10) is replaced with:

(4.11)


The element characteristic size used to estimate the allowable time step (2.30) for the case of a simple cable element is taken as L0 (the cable reference length). Note that it is not necessary to consider the possibility of smaller values as a cable under compression shows no stiffness and therefore has a vanishing elastic wave speed. Due to the one-dimensional character of the problem, the dilatational wave speed can be safely replaced with the longitudinal wave speed

(4.12)


4.2 Three-node linear membrane element

Given that large displacements are expected, the strain state of the element is easier to assess using a local corrotational frame than in the global reference system [9]. Let us consider a triangular element defined by its three corner nodes

Draft Samper 793606474-image64.png
Fig. 3 – Triangle local reference frame


The three unit vectors along the local axes are obtained from

(4.13)


Any point of the triangle can now be identified by its two local coordinates (ξ,η)

(4.14)


As a linear triangle always remains flat, the problem is greatly simplified by analysing the stress state on the ξ-η plane.

Draft Samper 793606474-image67.png
Fig. 4 – Nodal coordinates in the local triangle reference frame


It is worth mentioning that the strain state of the triangle depends only on three parameters, as some of the nodal coordinates vanish in the corrotational reference frame (Fig. 4). In Fig. 4 the original (undeformed) geometry has been denoted with the subindex 0. The material strain is obtained from the interpolated displacement field

(4.15)


Note that in (4.15) node 1 has been excluded from the sum as it is fixed at the origin of the local reference system. To calculate the strain the gradients of the shape functions must be known. While it is possible to obtain a closed expression for the shape functions of an arbitrary triangle it is somewhat simpler to operate on a “canonical” element shape where the functions have a simpler form. To this effect we use an additional transformed coordinate system (p-q)

Draft Samper 793606474-image69.png
Fig. 5 - Transformed coordinate system


The shape functions now become:

(4.16)


The transform from the p-q plane to the ; system is given by the isoparametric transform

(4.17)


The gradients of the shape functions can be recovered from

(4.18)

where J is the Jacobian of the isoparametric transform. Its value can be obtained from (4.16) & (4.17) and is constant across the element (due to its linear nature)

(4.19)


Inverting the system (4.18) yields the gradients sought

(4.20)


The components of the strain tensor can now be determined easily

(4.21)


Note that in (4.21) the null terms have been dropped in order to achieve an efficient algorithm. The corresponding stresses are calculated assuming a plane stress state (an acceptable hypothesis for thin surface elements) and linear elastic isotropic behaviour.

(4.22)


As the membrane buckles under compressive loads, the stresses given by the expression above must be corrected to account for this fact. To this end we shall refer to (4.22) as the trial stress state (σt). Three different membrane states are considered [10]:

  • Taut: The minimum principal trial stress is positive. No corrections are needed (Fig. 6-A)
  • Wrinkled: Membrane is not taut, but the maximum principal strain is positive. Trial state is replaced with a uniaxial stress state (Fig. 6-B)
  • Slack: The maximum principal strain is negative. The corrected stresses are zero (Fig. 6-C)
Draft Samper 793606474-image77.png
Fig. 6 – Trial membrane stress states - Taut (A) Wrinkled (B) and Slack (C)


To calculate the correct stress state the average in-plane direct strain and maximum shear strain are first found:

(4.23)


The principal strains can now be evaluated and the stress state of the membrane assessed. If the maximum principal strain is compressive the membrane is slack and the stress tensor is null

(4.24)


otherwise, the minimum principal trial stress is checked. Whenever it is positive (tensile) the membrane is considered taut

(4.25)


Under any other circumstances the membrane is wrinkled and the stress state must be properly corrected (Fig. 7)

(4.26)


Draft Samper 793606474-image82.png
Fig. 7 – Stress correction for wrinkled membrane


The elastic stresses are next augmented with viscous terms to introduce a suitable level of numerical damping. To speed-up calculations the nodal velocities are expressed in a reference frame attached to the first node of the element, thus cancelling out the corresponding values:

(4.27)


The velocities are then expressed in their components on the local reference frame

(4.28)


Note that the velocity components in (4.28) are not those measured in the corrotational reference frame, but simply the projections over the local axes of the nodal relative velocities. It is not necessary to subtract the effect of the rotation as the spin rate will be automatically eliminated from the velocity gradient when calculating the strain rate (2.7). The components of the strain rate tensor are

(4.29)


In a similar way to (4.7) the damping stresses are given by

(4.30)


where the characteristic wave speed for the membrane has been taken as

(4.31)


The total stress (elastic plus viscous) is then used to calculate the nodal forces using the change in energy due to the internal forces. Using the virtual deformation field

(4.32)


The total work done by the internal stresses during a virtual displacement is calculated integrating over the element the change in energy. As the triangular linear elements create a constant strain (and stress) field a single point Gauss quadrature is adequate to capture the effect of the virtual displacement

(4.33)


with t being the element thickness and A0 its reference (undeformed) area. The original surface is used in (4.33) because under compressive loads the element can shrink to a small fraction of its original dimensions. However, as long as the material remains active (i.e. wrinkled but not slack) the actual volume of material stressed is given not by the element projected area (as calculated from the nodal coordinates) but from its original surface. On the other hand, when the membrane is taut the small strains involved make the reference area a good approximation of the real surface.

The internal force vector derived from (4.33) is:

(4.34)


In order to keep the algorithm as efficient as possible, the terms that vanish due to the particular choice of reference frame have been dropped from the expression above.

When the element faces are subject to a pressure loading, the corresponding nodal generalized forces are obtained from (2.14). For the particular case of a uniform pressure p acting on the upper face (the side towards which the normal vector n points) the values are

(4.35)


where Ap stands for current projected area of the element:

(4.36)


Finally, once all the components of the internal forces have been determined on the local reference frame, the global force vector can be assembled. The transformation to the global inertial reference system is performed through

(4.37)


The mass matrix for the element, assuming uniform density, is

(4.38)


The lumped mass matrix is obtained summing the columns of (4.38)

(4.39)


To obtain a safe estimate of the allowable time step, a conservative estimate of the characteristic element length has been used. The element size is taken as:

(4.40)


4.3 Four-node linear tetrahedral solid element

This element has been designed to model the loads suspended from the parachute in order to enable modelling of the complete parachute-payload dynamical system. While only small strains are expected the rigid body displacements involved are usually very large. In order to completely isolate the material behaviour from these effects a corrotational formulation similar to case of the membrane has been adopted. The base of the element is used to define the local corrotational reference frame in the same way as it was done for the triangular membrane.

Draft Samper 793606474-image97.png
Fig. 8 – Tetrahedron corrotational reference frame


The three unit vectors along the local axes are obtained from

(4.41)


Any point x of the tetrahedron can now be identified by its three local coordinates (ξ,η񡒄ζ)

(4.42)


Due to this particular choice of coordinates, the vertices of the element no longer have arbitrary coordinates because some components are null

(4.43)


Therefore, it is possible to calculate the strain field inside the tetrahedron (which is constant for linear elements) as a function of only six variables. The interpolated displacement field is given by

(4.44)


where node 1 does not enter the sum as it remains always at the origin of the local frame. In order to calculate the gradients of the shape functions an isoparametric transform is applied in order to perform the relevant operations on a simpler geometry. The transformed coordinate system shall be denoted as (p-q-r).

Draft Samper 793606474-image101.png
Fig. 9 – Tetrahedron reference coordinates in the p-q-r system


The shape functions in the transformed system have very simple expressions:

(4.45)


It can be observed in (4.45) that the four shape functions always add to one. The ξ񡒅η񡒅ζ coordinates of a point with know values of p-q-r is given by

(4.46)


Using the chain rule the derivatives of the shape functions with respect to the transformed coordinates can be obtained from

(4.47)


The Jacobian of the isoparametric transform (J) can be obtained from (4.45) & (4.46)and is constant across the element

(4.48)


Inverting the system (4.47) yields the gradients sought

(4.49)


The components of the strain tensor can now be determined easily

(4.50)


To keep the notation as compact as possible, a sub-index has been introduced in (4.50) which indicates derivation of the shape function with respect to a certain local coordinate. For example:

(4.51)


As was the case for the membrane element, the null terms in (4.50) have been dropped to improve efficiency. The corresponding stresses are calculated assuming a linear elastic isotropic behaviour.

(4.52)


The corresponding nodal generalized forces can be determined form the principle of virtual work. Given an arbitrary virtual displacement field, the work done by the nodal loads should equal the virtual change in strain energy

(4.53)


The virtual strain field is a linear combination of the gradients of the shape functions and the virtual nodal displacements given by

(4.54)


Notice that the expression for the virtual deformation field is far more complex than the formula for the strain field (4.50). This happens because no single component of the virtual displacement field can be discarded. Combining (4.54) and (4.53) yields the internal force vector

(4.55)


As always, only the non-vanishing terms have been included in (4.55) for the sake of efficiency. The volume of the element is obtained from the isoparametric transform as

(4.56)


In order to calculate the damping terms, the nodal velocities are transformed to the corrotational reference frame. This is a two step process. First, the velocities of all the nodes are measured relative to the origin of the system (i.e. the first node). This yields the intermediate velocity w whose components are given by:

(4.57)


Due to the choice of the reference frame, the following relationship must exist between the intermediate velocities and the angular velocity of the corrotational reference system

(4.58)


It is therefore easy to calculate the spin rate of the local reference frame

(4.59)


Subtracting the spin-induced components from the intermediate velocities, the corrotational velocities are finally obtained

(4.60)


In (4.60) the tilde indicates the value measured in the corrotational frame of reference. The velocities (4.60) can be used together with (4.50) to yield the components of the strain rate tensor

(4.61)


In order to improve performance the elastic stresses and the stiffness proportional terms from the Rayleigh damping are computed together in a single step. To this effect an equivalent strain tensor is defined as

(4.62)


The equivalent strain is used in the constitutive law (4.52) in order to efficiently include the damping term. Additionally, a bulk viscosity is included both to reduce high frequency ringing and to prevent collapse during high speed events. The linear bulk viscosity takes the form defined in (3.6). Therefore an additional hydrostatic stress is included in the material computations, which is given by

(4.63)


Under high rate of deformation conditions the nodal velocities may become higher than the dilatational wave speed of the material. The element could therefore flip inside-out in less than one time step. To prevent this kind of behaviour an additional quadratic bulk viscous term is included which smears shocks over several elements. This allows simulation of, for example, impact and blast events. The quadratic hydrostatic viscous stress takes the form:

(4.64)


Note that the quadratic bulk viscosity (4.64) is only active when the strain rate is compressive. As the only purpose of this term is to prevent the elements from collapsing, it is not included when the material undergoes an expansion. The fraction of the critical damping (needed to calculate the stability limit) due to the combined effect of the viscous stresses (4.63) & (4.64) is

(4.65)


Under most circumstances a value of 1,2 is appropriate for the quadratic bulk viscosity parameter (b2).

When pressure loads are prescribed on faces of a tetrahedral element, the contributions to the internal force vector can be obtained from:

(4.66)


In (4.66) index j indicates the node on which the load is calculated and i is the face number on which pressure pi is acting; Ai is the face area and ni the outward normal. Face numbering is shown in Fig. 10.

Draft Samper 793606474-image124.png
Fig. 10 - Face numbering for tetrahedral elements


Once all nodal loads have been calculated on the corrotational frame, the contribution to the global force vector (which is always expressed in global coordinates) is obtained from (4.37).

The mass matrix for the element, assuming uniform density, is

(4.67)


Therefore, the lumped mass becomes

(4.68)


A safe estimate of the allowable time step is given by the minimum height of the element

(4.69)


5 Validation examples

In this chapter several benchmark cases are presented in order to test solution accuracy. The cases focus on the non-linear aspects of the solutions, the main challenge when analysing structural membranes.

5.1 Cable element subject to weight load

From elementary mechanics it is known that the equilibrium deformed shape of a cable with uniform weight per unit length is a catenary. The vertical position and arc length along the cable vary according to:

(5.1)


where the parameter a depends on the boundary conditions. We consider the problem of a cable which stretches across two point at the same level located a distance 2d apart. Initially the cable is shaped like a “V” with the apex a distance d below the suspension points. The total length of the cable is therefore . Substituting this condition in (5.1) the value of a and the height of the catenary (δ) can be obtained

(5.2)


Draft Samper 793606474-image131.png
Fig. 11 - Catenary problem definition


The cable has been discretized with 20 linear elements. In order to check also the behaviour of the membrane formulation a strip made of triangular elements has been suspended the same way as the cable. The strip is modelled with a mesh of 20x4 triangles. The relevant properties chosen are:

(5.3)


The values of δ obtained from the FEM solution are given in Table 1, the agreement with the theoretical calculation is excellent. The deformed mesh shape is shown in Fig. 12.

Draft Samper 793606474-image133.png
Fig. 12 - Catenary problem. Deformed shape


Cable elements Membrane elements
δ/d 0,896 0,8971
Table 1 - Computed geometry for the catenary problem


(1) Value for the triangular elements is an average. Due to the constraints imposed by the discretisation the deformed shape is not perfectly cylindrical.

5.2 Circular membrane under uniform pressure

Also known as Henky’s problem in the literature [11] this benchmark studies the elastic deformation of an initially round and flat membrane with fixed edge. The membrane is pressurized thus acquiring a dome-like shape. The characteristics of the membrane are:

(5.4)


Reference values can be found in the literature for the vertical displacement of the central point of the membrane for an applied pressure of 100KPa (Pauletti 2005). The solution was computed using an unstructured mesh containing 344 triangular elements.


Pauletti (SATS) Pauletti (ANSYS) PUMI_MEM
Deflection (mm) 33,1 31,9 34,8
Table 2 – Central deflection of the membrane (mm)


While there is not a single definite reference solution in the literature, the result obtained compares well with the two values presented. It must be stressed that slight differences must be expected because the deformations experienced by the membrane exceed the strict limits of validity of linear elasticity.

Draft Samper 793606474-image135.png
Fig. 13 – Henky’s problem. Deformed shape

5.3 Square airbag inflation test

This benchmark computes de vertical displacement at the centre of an initially flat square airbag of side length 840mm. An internal pressure of 5kPa is applied. This is a validation test for the wrinkling model, as the deformed configuration is strongly affected by the no-compression condition. The textile properties are:

(5.5)


A mesh composed of 16x16 squares is used for each side of the airbag. Each square has then been divided into 4 equal triangles in order to eliminate mesh orientation effects. The total number of triangular elements is therefore 2048. The next table shows the comparison of the result from PUMI_MEM with several sources [12][13][14]. The differences are negligible.


Contri Ziegler Hornig PUMI_MEM
Deflection (mm) 217,0 216,0 216,3 216,2
Table 3 – Central displacement of the airbag (mm)


Draft Samper 793606474-image137.png
Fig. 14 – Square airbag. Deformed shape

6 Application examples

Here some examples of the use of the code are presented. The focus during the design of PUMI_MEM was on parachute analysis. As such many examples come from this field. Applications to other fields will also be highlighted.

6.1 Ram air parachute modelling

Coupled with a potential flow solver, the code has been used to simulate a high-performance parachute for delivery of heavy payloads. The canopy was designed and manufactured by CIMSA in the framework of the FASTWing Project [10]. The model contains an unstructured distribution of 11760 triangular elements (8824 for the aerodynamic surfaces exposed to the wind and 2936 for the internal ribs) and 11912 cable elements to model the suspension and control lines as well as the reinforcement tapes integrated into the canopy. The simulation is initialized with a partially inflated parachute configuration. The aerodynamic loads are updated as the simulation proceeds until a stable configuration is reached. Fig. 15 shows the change in shape from the beginning of the simulation to the equilibrium configuration.

Draft Samper 793606474-image138.png
Fig. 15 - Fastwing parachute. Initial configuration and final deformed shape


The code has also been used to predict the dynamic response of the parachute in order to simulate, for example, manoeuvres. The choice of an explicit scheme allows for instant transition from static to dynamic analysis if an unsteady flow solver is available. It must be stressed that the time step used by the structural solver is very short while for most applications the high-order modes of the mechanical response are of little relevance. Therefore it is not necessary to update the aerodynamic loads at every step in order to obtain a satisfactory global response. This saves processing time on the part of the flow solver. Fig. 16 illustrates a right turn manoeuvre.


Draft Samper 793606474-image139.png
Fig. 16 – Fastwing parachute right turn manoeuvre. Starting from the steady state the right brake is pulled. Yaw angle increases form left to right

6.2 Drag canopy deployment

This is a simple inflation test aimed at exploring the capabilities of the code to simulate parachute deployment and inflation. Direct calculation of the pressure field around the partially inflated canopy is an extremely challenging task. Therefore, semi-empirical correlations have been used for the pressure field. Deployment takes place in two steps. Initially the apex of the canopy is pulled in the direction of the incident wind. Once the lines and canopy have been stretched the inflation phase begins. The parachute is discretized with an unstructured grid of 3390 triangular elements and 2040 cable elements modelling the suspension lines and fabric reinforcements. Fig. 17 shows the inflation stage, including the final steady configuration.


Draft Samper 793606474-image140.png
Fig. 17 – Several stages of the parachute deployment

6.3 Draping simulation

By virtue of the wrinkling model the code is able to simulate the interaction between flexible fabrics and rigid objects. In the example shown a square membrane 3m across is released on top of a rigid circular disc with a diameter of 2m. The fabric is subject to the action of gravity, contact forces and damping forces introduced to simulate the effect of the air. The definition of the rigid surface is analytic so it does not need to be discretized (i.e. it does not enter the mesh). The membrane has been meshed with an unstructured grid of 8262 elements. The complete process, 4s of real time, can be simulated in just 9s in a current mid-range desktop computer. Fig. 18 shows several snapshots of the process.


Draft Samper 793606474-image141.png

Fig. 18 - Draping simulation. Snapshots taken every 0,4s

6.4 Blast loading of inflatable structures

In recent times, use of inflatable structures as shelters against blast waves and even as a means of containing the effects of explosions has become a topic of interest. In order to address this kind of problem an additional material model has been incorporated in the code which allows for simulation of the propagation of pressure perturbations on air. An equation of state model has been used together with the tetrahedral elements in order to asses the blast wave attenuation which takes place across the inflatable structure. The events being simulated involve extremely short time scales during which the distances travelled by most nodes of the mesh are not large compared with the general dimensions of the structure. Thus, a lagrangian formulation for the air is acceptable, at least for those volumes not directly exposed to the effect of the blast. This is the case for the air contained inside the structure and for those parts of the atmosphere shielded from the explosion. Assuming an ideal gas which evolves in an isentropic way, the relation between pressure and density is:

(6.1)


where the subindex 0 denotes some reference conditions (e.g. initial conditions) and γ is the ratio of specifics heats of the gas. The pressure at any time is therefore obtained from

(6.2)


It is thus possible to calculate the pressure using the initial conditions and the change in volume of the element. This information is available from (4.56). The speed of sound in the medium is given by

(6.3)


An equivalent bulk stiffness for the air can be obtained from (6.3) by defining

(6.4)


The parameter Keq is an estimate of the volumetric stiffness of the air. A gas has no shear stiffness so excessive mesh distortions could appear if only the pressure term (6.2) were included into the material response for those elements modelling air. To counter this problem some level of numerical shear stiffness is added to the formulation in order to control mesh distortion while not affecting the overall properties of the solution. To this effect this stabilizing term is defined as:

(6.5)


The parameter δ must be kept small in order to prevent excessive accumulation of energy in the form of shear deformation. The complete material response (including the shear stabilization term) is then given by

(6.6)


The stability limit for the gas elements is calculated in the usual way (2.30) using (6.3) as the characteristic wave sped. As the speed of sound in air is much smaller that the wave speeds in solids, the air elements are not usually a limiting factor (except in cases of severe element distortion).

The example presented corresponds to a conceptual design for a blast containment device. The overall dimensions of the structure are 16x11x4,5m. Due to the double symmetry only a quarter of the geometry has been modelled. The mesh contains 2376000 tetrahedral elements and 79440 triangular membrane elements. The volume elements are located inside the cells of the structure and in the surrounding atmosphere. The volume of atmosphere meshed extends 9m outside the structure (see Fig. 19).


Draft Samper 793606474-image148.png
Fig. 19 – Computational domain geometry. Structure shown in dark grey and surrounding atmosphere in light gray


The pressure field corresponding to the explosion of a charge of 10kg of TNT has been computed with an Euler flow solver and used as prescribed load history on the inner wall of the structure. In a regular desktop computer the code is able to advance 10 time steps approximately every 9s. Given to short time scales involved (the time it takes for the shockwave to leave the domain is on the order of 10ms) the CPU time for a complete simulation is in the neighbourhood of 10 minutes (the exact value depends on the particular conditions of each simulation, as the stability limit changes as the mesh deforms). The explicit algorithm proves itself extremely efficient when dealing with fast transient events. Fig. 20 shows four snapshots of the temporal evolution of the structural deformations.

Draft Samper 793606474-image149.png
Fig. 20 - Inflatable structure subject to blast loading. Time between frames: 2ms

7 Conclusions

The theoretical background as well as details of implementation of an explicit dynamic structural solver (PUMI_MEM) have been presented. The software was developed as part of a broader effort to build a coupled fluid-structural analysis package for parachute simulations. The code was designed to obtain robust solutions of the highly nonlinear behaviour of structural membranes. The severe convergence problems due to the statically indeterminate behaviour of the structure where overcome by performing a dynamic simulation (even when only the static solution is sought). To counter the limitations imposed by the large changes in geometry expected an explicit time integration scheme was chosen. While this limits the allowable time step, issues related to the limited convergence radius of implicit schemes are completely eliminated. Even if the time step limitation might seem problematic at first, the very lost cost per iteration more than overcomes this issue. Another important characteristic of thin membranes is their virtually zero compression strength due to wrinkling. This has to be accounted for in order to obtain realistic solutions. As there is no global stiffness matrix to assemble in the explicit method, implementation of a wrinkling model is straightforward. Only the constitutive law has to be changed to include no-compression behaviour. Several benchmarks have been presented showing the accuracy of the results in situations where the geometrical nonlinearities and the asymmetry of the material response are determinant. The choice of a dynamic solver also enables study of the system’s transient response with no changes to the code. Examples of application to parachute deployment and manoeuvres have been presented. While initial focus was on parachute simulation, applications to other fields of technological interest have been tested. In all cases the code has shown an excellent performance in terms of CPU time.

Acknowledgements

The authors wish to thank the support from CIMSA Ingeniería y Sistemas [15] for providing sample parachute geometries as well as experimental measurements used during the development of the code.

References

[1] E. Ortega, R. Flores and E. Oñate. Innovative numerical tools for the simulation of parachutes. CIMNE publication, PI341, 2010.

[2] E. Ortega, R. Flores and E. Oñate. A 3D low-order panel method for unsteady aerodynamic problems. CIMNE publication, PI343, 2010.

[3] R. Rossi. Light weight structures: Structural analysis and coupling issues. PhD thesis, University of Bologna, 2005.

[4] J. Drukker and. D.G. Roddeman. The wrinkling of thin membranes: Part 1 -theory. Journal of Applied Mechanics, 54:884–887, 1987.

[5] J. Drukker and. D.G. Roddeman. The wrinkling of thin membranes: Part 2 - numerical analysis. Journal of Applied Mechanics, 54:888–892, 1987.

[6] R. Rossi, R. Vitaliani. Numerical coupled analysis of flexible structures subjected to the fluid action. In 5th PhD symposium, Delft, 2004.

[7] T. Belytschko, W.K. Liu, and B. Moran. Nonlinear finite elements for continua and structures. John Wiley & Sons, 2000.

[8] O.C. Zienkiewicz and R.L Taylor. The finite element method, Volume I. Butterworth-Heinemann, 2000.

[9] R.L. Taylor. Finite element analysis of membrane structures. Technical report, CIMNE, 2001

[10] R. Rossi. A finite element formulation for 3D membrane structures including a wrinkling modified material model. Technical Report 226, CIMNE, 2003.

[11] R.M. Pauletti, D.M. Guirardi and T.E. Deifeld. Argyri’s natural membrane finite element revisited. Proceedings of the International Conference on Textile composites and Inflatable Structures, Barcelona, 2005.

[12] P. Contri and B.A. Schrefler. A geometrically nonlinear finite element analysis of wrinkled membrane surfaces by a no-compression material model. Communications in applied numerical methods, 4:5–15, 1988.

[13] R. Ziegler, W. Wagner and K. Bletzinger. A multisurface concept for the finite element analysis of wrinkled membranes. Proceedings of the 4th International colloquium on computation of shell & spatial structures, IASS – IACM, 2000.

[14] J. Hornig. Analyse der Faltenbildung in Membranen aus unterschiedlichen Material. PhD thesis, Technischen Universität Berlin, 2004.

[15] CIMSA Ingeniería y Sistemas. Web page: http://www.cimsa.com/ (checked February 8th 2011).

Back to Top

Document information

Published on 01/01/2011

Licence: CC BY-NC-SA license

Document Score

0

Views 108
Recommendations 0

Share this document

claim authorship

Are you one of the authors of this document?