development and implementation of a new user defined ... · program, abaqus. this program allows...
TRANSCRIPT
Development and implementation of a new user definedelement in Abaqus for analysis of composite plates using a
high-order theory
Filipe Curado Teixeira
Thesis to obtain the Master of Science Degree in
Aerospace Engineering
Supervisors: Prof. Filipa Andreia de Matos MoleiroProf. Aurélio Lima Araújo
Examination Committee
Chairperson: Prof. Filipe Szolnoky Ramos Pinto CunhaSupervisor: Prof. Filipa Andreia de Matos Moleiro
Member of the Committee: Prof. José Arnaldo Pereira Leite Miranda Guedes
December 2018
ii
Resumo
No presente trabalho, procedeu-se ao desenvolvimento e implementação de um novo elemento finito para
a análise de placas em compósito laminado, utilizando uma teoria de lâmina única equivalente. Este
desenvolvimento é motivado pela crescente utilização de materiais compósitos na indústria aeronáutica,
tornando necessário que estudos sejam feitos utilizando modelos que descrevam melhor o comportamento
destes materiais, no sentido de melhorar continuamente as análises e projetos envolvendo os mesmos.
Com isto em mente, apoiado no método dos elementos finitos, desenvolveu-se em primeiro lugar um
modelo para uma placa isotrópica, utilizando desde logo a teoria de terceira ordem pretendida, partindo-
se de seguida para o desenvolvimento do modelo para uma placa de compósito laminada, com lâminas
ortotrópicas.
A implementação computacional do modelo foi conseguida através do programa comercial de elementos
finitos, Abaqus. Este programa permite o desenvolvimento de Elemento definido pelo utilizador (UEL),
através de uma sub-rotina programada em FORTRAN, onde é possível ao utilizador definir um novo
elemento finito que melhor se adequa à análise pretendida.
Para além disto, procedeu-se à validação do modelo através da comparação de resultados obtidos com
soluções de referência. Nomeadamente, foi utilizado como referência, um elemento existente na biblioteca
do Abaqus, que se considerou suficientemente semelhante para uma comparação fidedigna dos resultados,
e ainda, uma solução analítica disponível na literatura.
Por último, foi possível chegar-se a conclusões acerca do modelo implementado e dos resultados
obtidos, bem como indicar algumas propostas para melhorar ainda mais o elemento desenvolvido, no
futuro.
Palavras-chave: Material Compósito Laminado, Teoria de Lâmina Única Equivalente, Teoria
de Deformação de Terceira Ordem, Sub-rotina UEL, Método dos Elementos Finitos
iii
iv
Abstract
In the present work, a new finite element was developed and implemented for the analysis of laminated
composite plates, using an equivalent single-layer theory. This development is motivated by the increasing
use of composite materials in the aeronautical industry, making it necessary to study models that better
describe the behavior of these materials, in the sense of continuously improving the analyses and designs
involving them.
With this in mind, based on the finite element method, a model for an isotropic plate was first
developed, using the desired third-order shear deformation theory, followed by the development of the
model for laminated with orthotropic laminae.
The computational implementation of the model was achieved through the finite element commercial
program, Abaqus. This program allows the development of user-defined elements (UEL) subroutines,
programmed in FORTRAN, where it is possible for the user to define a new finite element that better
fits the intended analysis.
In addition, the model was validated by comparing the results obtained with reference solutions.
Specifically, it was used as reference an existing element in the Abaqus library, which was considered
sufficiently similar for a reliable comparison of the results, and also an analytical solution available in the
literature.
Finally, it was possible to draw conclusions about the implemented model and the results obtained,
as well as point out some proposals to further improve the developed element in the future.
Keywords: Laminated Composite Material, Equivalent Single-Layer Theory, Third-order Shear
Deformation Theory, UEL Subroutine, Finite Element Method
v
vi
Contents
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
1 Introduction 1
1.1 Motivation and Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Theoretical Overview 5
3 Development of the Model 9
3.1 Single-layer Plate Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Displacement field and generalized strain vector . . . . . . . . . . . . . . . . . . . . 9
3.1.2 Stress-strain relationship and generalized constitutive matrix . . . . . . . . . . . . 11
3.2 Laminated Composite Plate Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1 Constitutive relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.2 Transformation of constitutive relations . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Finite element formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.1 Principle of virtual work and stiffness matrix . . . . . . . . . . . . . . . . . . . . . 17
3.3.2 Shape functions and numerical integration . . . . . . . . . . . . . . . . . . . . . . . 18
4 Implementation of the Model 23
4.1 UEL subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1 Stiffness matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 State variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Force vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Input file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Abaqus interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
vii
5 Validation 29
5.1 Single-layer Plate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.1 Vertical displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1.2 Vertical force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2 Laminated Composite Plate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.1 Comparison with Abaqus element . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.2 Comparison with the analytical solution . . . . . . . . . . . . . . . . . . . . . . . . 35
6 Conclusions 41
6.1 Achievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Bibliography 45
A Single Element Mesh Input File Example 49
B FORTRAN Code Example 51
viii
List of Tables
3.1 Gauss weights. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1 Strain results for Abaqus and TSDT element: comparison for imposed vertical displacement. 31
5.2 Stress results for Abaqus and TSDT element: comparison for imposed vertical displacement. 31
5.3 Strain results for Abaqus and TSDT element: comparison for applied vertical force. . . . 33
5.4 Stress results for Abaqus and TSDT element: comparison for applied vertical force. . . . . 33
5.5 Strain results for Abaqus and TSDT element: comparison for applied vertical force. . . . 35
5.6 Stress results for Abaqus and TSDT element: comparison for applied vertical force. . . . . 35
5.7 Maximum transverse deflection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.8 Adimensionalized maximum deflection for TSDT element and analytical solution. . . . . . 37
5.9 (0/90/0) laminate - Adimensionalized results for stresses from TSDT element and analyt-
ical solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.10 (0/90/90/0) plate - Adimensionalized results for stresses from TSDT element and analytical
solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
ix
x
List of Figures
1.1 Evolution composite application at Airbus. . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Comparison of a deformed transversal normal in CLPT, FSDT and TSDT [20]. . . . . . . 7
2.2 Division of a domain into finite elements [38]. . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Lamina and problem coordinate system [20]. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Eight-node quadratic Serendipity rectangular element [20]. . . . . . . . . . . . . . . . . . . 18
3.3 3x3 quadratic element - integration points coordinates [20]. . . . . . . . . . . . . . . . . . 21
3.4 2x2 linear element - integration points coordinates [20]. . . . . . . . . . . . . . . . . . . . 21
4.1 UEL subroutine default header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Input and output variables interacting with UEL block [8]. . . . . . . . . . . . . . . . . . 23
4.3 Command line for compiling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.1 Vertical reaction force for the single element mesh: TSDT element (left); Abaqus element
(right)). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2 Vertical reaction force for the 20×20 element mesh: Abaqus element (right); TSDT element
(left). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3 Vertical displacement for the single element mesh: TSDT element (left); Abaqus element
(right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4 Vertical displacement for the 20×20 element mesh: TSDT element (left); Abaqus element
(right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5 Vertical displacement for the single element mesh: Abaqus element (right); TSDT element
(left). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.6 Vertical displacement for the 20×20 element mesh: Abaqus element (right); TSDT element
(left). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.7 Boundary conditions: simply supported plate [20]. . . . . . . . . . . . . . . . . . . . . . . 35
5.8 Transverse deflection distribution for a/h = 10: (0/90/90/0) laminate (left); (0/90/0)
laminate (right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.9 Transverse deflection distribution for a/h = 20: (0/90/90/0) laminate (left); (0/90/0)
laminate (right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
xi
5.10 Transverse deflection distribution for a/h = 100: (0/90/90/0) laminate (left); (0/90/0)
laminate (right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
xii
Nomenclature
Greek symbols
γxy shear strain for the xy− plane
γxz shear strain for the xz− plane
γyz shear strain for the yz− plane
γ12 shear strain for the x1x2− plane
γ13 shear strain for the x1x3− plane
γ23 shear strain for the x2x3− plane
εxx normal strain in x direction
εyy normal strain in y direction
εzz normal strain in y direction
ε11 normal strain in x1 direction
ε22 normal strain in x2 direction
ε actual strains vector
ε̂ generalized strains vector
θ angle between the lamina and problem coordinate system
θ1x degree of freedom: angle of rotation about y
θ1y degree of freedom: angle of rotation about x
θ2x degree of freedom: second order term in x direction
θ2y degree of freedom: second order term in y direction
θ3x degree of freedom: third order term in x direction
θ3y degree of freedom: third order term in y direction
xiii
σ̂b bending moments vector
σ̂m membrane forces vector
σ̂s transverse sgear forces vector
σxx normal stress in x direction
σyy normal stress in y direction
σxy shear stress in the xy− plane
σxz shear stress in the xz− plane
σyz shear stress in the yz− plane
σ11 normal stress in x1 direction
σ22 normal stress in x2 direction
σ12 shear stress in the x1x2− plane
σ13 shear stress in the x1x3− plane
σ23 shear stress in the x2x3− plane
σ actual stresses vector
σ̂ generalized stresses vector
ν Poisson’s ratio
(ξ, η) isoparametric coordinates
Roman symbols
B generalized strain matrix
D constitutive matrix
D̂ generalized constitutive matrix
D̄ transformed material stiffness matrix
E Young’s modulus
Exx nonlinear strain in x direction
Eyy nonlinear strain in y direction
Ezz nonlinear strain in z direction
Exy nonlinear strain in the xy− plane
xiv
Exz nonlinear strain in the xz− plane
Eyz nonlinear strain in the yz− plane
f force vector
G shear modulus
jacobian
J jacobian matrix of the transformation
K global stiffness matrix
N shape function
S strain transformation matrix
u displacement in x direction
u0 degree of freedom: displacement in x direction
u displacement vector
δu virtual displacement vector
v displacement in y direction
v0 degree of freedom: displacement in y direction
w displacement in z direction
w0 degree of freedom: displacement in z direction
W weights for the Gauss-Legendre quadrature rule
(x, y, z) problem Cartesian coordinate system
(x1, x2, x3) lamina Cartesian coordinate system
Subscripts
b bending effect
i ith node
j jth node
l lamina
m membrane effect
mb coupling between membrane and bending effect
xv
p problem
s shear effect
Superscripts
(e) generic element
T transpose
xvi
Glossary
CLPT Classical Laminated Plate Theory
CUF Carrera Unified Theory
ESL Equivalent Single-Layer Theory
FEM Finite Element Method
FSDT First-order Shear Deformation Theory
GUF Generalized Unified Theory
HSDT High-order Shear Deformation Theory
TSDT Third-order Shear Deformation Theory
UEL User Defined-Element
xvii
xviii
Chapter 1
Introduction
1.1 Motivation and Objectives
The purpose of composite materials, by combining two or more materials, is to obtain a set of properties
that would not be possible to achieve with a single material. The materials choice and the way they are
combined depends on the intended function of the final composite material [1].
Composite materials are usually divided into three categories: fibrous composites, particulate com-
posites and laminated composites. The latter, which is the one in the scope of this work, consists of
several layers (laminae) stacked together.
Composite materials are used in a wide range of industries. The automotive, construction, energy,
sports, aerospace and aeronautics industries are just a few examples that take advantage of the versatile
characteristics of composite materials to improve their products.
A composite material is composed by a matrix and a reinforcement: the reinforcement provides the
stiffness and strength of the material, while the matrix keeps the reinforcement and overall structure
in place. Its use is almost as old as mankind, when man began to mix straw (reinforcement) and mud
(matrix) to form stronger bricks for buildings.
The advantages of composite material are vast and they will be briefly presented in the aerospace and
aeronautics context:
• strength-to-weight ratio - composite materials are well known for their high strength-to-weight ratio,
being stronger and stiffer than most woods and metals and, at the same time, lighter. The appli-
cations are obvious: if a manufacture is capable of replacing a material for another that is lighter
and does not compromise functionality and safety requirements, it will enhance the maneuverability
and general performance of the aircraft, saving fuel and resources;
• high impact strength - composite materials can be designed to tolerate a great impact, being suitable
for safety features in crashing scenarios or when designing a landing gear system;
• corrosion resistance and durability - the materials mixture can provide great corrosion resistance and
composite materials have high durability. Since aircrafts and aerospace instruments are required
1
to perform well in harsh environments, with wide ranges of temperatures and severe atmospheric
conditions, this feature is of great importance;
• design flexibility - composite materials can be shaped in a variety of ways. This feature can be useful
for aerodynamic purposes, since designers often find their options limited by the difficulty of man-
ufacturing the optimal aerodynamic shapes. Moreover,the aircrafts dimensional design is limited
so, being able to design complicated shapes may be interesting to fit all the needed components.
Figure 1.1 demonstrates the growing awareness from the aeronautical industry to the importance of
composite materials. Airbus has been increasing the use of composite material in their aircrafts: from the
1970 decade, when composites were barely used in radomes and fairings, to the A380 that, despite being
built mainly from metal, has 20% of composite material in its composition. A major breakthrough was
accomplished with the A350 and its direct competitor, the Boeing B787. Both these aircrafts are built
with 50% of composite material, with All Nippon Airways claiming that the B787 has a fuel consumption,
when compared to the previously used plain, the Boeing B767s, 21% lower and 17% on long-haul and
short-haul routes, respectively.
Figure 1.1: Evolution composite application at Airbus.
The high number of orders of these airplanes confirms their economic viability, and the trend is a
continuous growth, since these airplanes are even substituting airplanes whose fuel consumption and
general performance is poorer. Thus, it is of great importance to continuously deepen the knowledge
about composite materials, understanding its behavior under different conditions, in order to answer the
demands of this competitive market [2–6].
With that in mind, the objective of the present work is to implement a new finite element, that
describes more accurately the behavior of composite laminated plates. Despite the fact that the con-
cerned element is not available in the libraries of finite element commercial software, Abaqus permits the
implementation of user-defined elements (UEL). That is, by means of a UEL subroutine programmed
in FORTRAN [7], user-defined elements enable users to define the element that better suits the type of
analysis intended and still take advantage of the analysis tools that Abaqus offers [8–10].
In fact, once the UEL subroutine is programmed and the finite element model is defined, the element
can be used like the ones that exist in Abaqus library, being possible to visualize some of the results,
which makes its interpretation easier and user friendly.
2
1.2 Organization
This work is divided in six chapters. In chapter 1, the introduction and motivation of the work are
presented as well as the work organization.
In chapter 2, a theoretical overview of the existing theories for composite laminated is made, along
with a brief review of the finite element method and its fundamentals.
Chapter 3 covers the development of the model: from the displacement field and constitutive relations,
to the derivation of the finite element model in the end.
Chapter 4 contains the description of the interaction between Abaqus and the subroutine developed,
explaining how the model was implemented.
In chapter 5, a critical analysis of the results is made, using referenced examples for comparison of
results, in order to validate the implemented model.
In chapter 6 conclusions are made regarding the work done and what can still be done to further
improve the achievements accomplished herein.
3
4
Chapter 2
Theoretical Overview
Composite laminates have been object of study for many years and several theories on how to model them
exist, depending on the type of analysis [11]. Additional information about these theories can be found
in the articles by Carrera [12–14] and Demasi [15–17]. Both these authors proposed unified formulations
which can work with a variety of existing theories, namely Carrera Unified Formulation (CUF) [18] and
Generalized Unified Formulation (GUF) [19].
Typically, composite laminates have their planar dimensions much greater than their thickness, thus
are treated as a plate, and the theories to model composite laminated plates are generically divided
into three categories: equivalent single-layer theories (2-D), three-dimensional elasticity theories (3-D),
whether traditional 3-D or layer-wise theories, and the multiple model theories (2-D and 3-D). The latter
is a combination of the previous two and will not be covered in this work [20].
The three-dimensional elasticity theories, first recommended by Noor [21, 22], are the most accurate
ones and are often used when one wishes to compute the stress and strain distribution near material or
geometric discontinuities and near areas of intense loading or when great accuracy is needed. Since the
associated costs are high and computational implementation is heavy, there is still the need to determine
simpler theories, that model the generality of engineering problems without the complexity of three-
dimensional elasticity theories. Exact solutions were presented by Pagano [23, 24] and are still very
useful in present days.
For the reasons presented above, the equivalent single-layer theories (ESL) were developed.By making
assumptions regarding the kinematics of deformation or the stress state along the thickness, ESL theo-
ries treat a multiple layer heterogeneous laminate as an equivalent single-layer with overall constitutive
behavior, thus reducing a 3-D to a 2-D problem.
The simplest ESL theory is the classical laminated plate theory (CLPT) [25–27], derived from the
Kirchoff plate theory. The definition of the displacement field implies that straight lines normal to the
x− y plane before the deformation remain straight and normal to the mid-surface after the deformation.
Furthermore, the Kirchoff plate theory assumes both transverse shear and transverse normal effects
to be negligible. Since transverse effects are important when analyzing a composite laminate, due to the
interaction between the layers, given the necessary conditions of compatibility and equilibrium between
5
them, this theory is not appropriate to model the intended problem.
A more appropriate theory would be the first-order shear deformation theory (FSDT). Based on
Reissner [28] and Mindlin [29], FSDT accounts for transverse shear deformation, by assuming that the
transverse shear strain is constant through the thickness. This allows that straight lines normal to
the x − y plane before the deformation no longer need to remain normal to the mid-surface after the
deformation.
The introduction of constant transverse shear strain implies constant transverse shear stress, arising
the need to introduce a shear correction factor, in order to compensate the unrealistic stress distribution,
which should be parabolic through the thickness. The shear correction factor is difficult to compute and
has a considerable associated error.
This disadvantage can be overcome by using high-order shear deformation theories (HSDT). HSDT
are widely used, existing many articles in the literature; some remarkable contributions are those made
by Reddy [30], Matsunaga [31], Kant and Swaminathan [32] and Liu et al [33].
HSDT involve higher-order terms in the Taylor’s expansion of the displacements in the thickness
coordinate. For each additional term, a dependent unknown is introduced in the theory, increasing the
problem’s complexity and, consequently, the computational effort. Hence, a third-order shear deformation
theory (TSDT) will be used, for the satisfactory accuracy, without being overly demanding complex
[32, 34].
Since the displacement field has third order terms, straight lines normal to the x− y plane before the
deformation no longer need to remain neither straight nor normal to the mid-surface after the deformation,
having instead a quadratic variation of strains and stress through the thickness.
It can be seen in figure 2.1, the undeformed transverse straight line normal to the mid-surface; the
CLPT case, where the deformed line is straight and normal; the FSDT case, where the straight line is
no longer normal after the deformation; and finally the TSDT case, where the line is no longer straight,
being of a quadratic form.
Due to the complexity of most engineering problems regarding composite materials, the exact solution
for most of these problems is impossible to find. Therefore, if one wishes to study the behavior of a certain
material or component, the need to employ a numerical method arises.
Engineering problems are modeled by a set of differential or integral equations, for which analytical
methods are not capable of finding solutions. Numerical methods, on the other hand, are able to find
these solutions, by approaching the problem differently and making use of the computational performance
of today.
A very popular numerical method among engineers, that will be used in this work, is the finite element
method (FEM). The FEM is derived from the variational methods developed by Ritz and Galerkin. The
method was first developed in Boeing, with the purpose of studying aircraft structures and, although the
method had been presented several years earlier, the first article that refers to the FEM is from 1956.
The basic principles of the FEM were stated in 1954, prior to the publication of the article, and the name
was only given in 1960 [35]. Ever since, articles and books about this subject have been increasing, with
a considerable number of referenced authors studying it. Remarkable books that were used in this work
6
Figure 2.1: Comparison of a deformed transversal normal in CLPT, FSDT and TSDT [20].
are those by Zienkiewicz [36], Reddy [37], Oñate [38, 39], Ferreira [40] and Bathe [41].
The approach of the FEM is to turn a complex domain into a set of simpler geometric shapes (triangu-
lar and quadrilateral shapes are the ones mostly used), called finite elements. The solution is computed
for each of these elements and assembled for the domain, in order to obtain an approximated global
solution of the problem.
The idea of dividing a domain into a finite number of sub domains as in figure 2.2 is not new: an
illustrative example is that of ancient mathematicians that computed the value of π by noting that a
circle could be approximated by a polygon of n sides. As the value of n increases (domain discretization
refinement), the polygon shape becomes more similar to that of the circle and more accurate the value
obtained for π becomes.
Following the domain discretization, the governing equations of the problem are transformed into
a set of algebraic equations, by linearly combining the unknown nodal parameters with approximation
functions, commonly called shape functions, obtaining, thus, the finite element model for the element.
Finally, the assembly of the elements is made, taking into account the connectivities between them,
that is, the way the elements must be combined, so that the final domain is equal to the initial one.
Hence, obtaining a system of algebraic equations that depend on a set of unknown parameters, to be
determined by the system’s solution. Obviously, when the problem’s complexity increases, the variables
to be determined also increase, thus being required greater computational capacity to solve the finite
element analysis. Once the main system of equations is solved, it is possible to compute other quantities
of interest.
7
Figure 2.2: Division of a domain into finite elements [38].
8
Chapter 3
Development of the Model
The development of the element based on a third-order shear deformation theory was divided in two
stages. In fact, it was thought that it would be easier to implement this model in two separate steps for
verification purposes and to correct in each step any existing errors.
Therefore, the first stage covered the implementation of an element using the TSDT, but considering
in fact a single-layer plate of simply isotropic material.
In the second stage, the laminated composite plate was considered, including laminae of orthotropic
material.
The following subsections cover in detail the assumptions made and the steps taken in each stage.
3.1 Single-layer Plate Model
3.1.1 Displacement field and generalized strain vector
It was used for this element a high-order theory, with the third-order displacement field of the form
u(x, y, z, t) = u0(x, y, t) + zθ1x(x, y, t) + z2θ2x(x, y, t) + z3θ3x(x, y, t)
v(x, y, z, t) = v0(x, y, t) + zθ1y(x, y, t) + z2θ2y(x, y, t) + z3θ3y(x, y, t)
w(x, y, z, t) = w0(x, y, t) (3.1.1)
where {u0, v0, w0, θ1x, θ1y, θ2x, θ2y, θ3x, θ3y} are the degrees of freedom of the element, thus being
unknown functions to be determined.
The complete definition of the nonlinear strains are given by
9
Exx = ∂u
∂x+ 1
2
[(∂u∂x
)2+(∂v∂x
)2+(∂w∂x
)2]
Eyy = ∂v
∂y+ 1
2
[(∂u∂y
)2+(∂v∂y
)2+(∂w∂y
)2]
Ezz = ∂w
∂z+ 1
2
[(∂u∂z
)2+(∂v∂z
)2+(∂w∂z
)2]
Exy = 12
(∂u
∂y+ ∂v
∂x+ ∂u
∂x
∂u
∂y+ ∂v
∂x
∂v
∂y+ ∂w
∂x
∂w
∂y
)Exz = 1
2
(∂u
∂z+ ∂w
∂x+ ∂u
∂x
∂u
∂z+ ∂v
∂x
∂v
∂z+ ∂w
∂x
∂w
∂z
)Eyz = 1
2
(∂v
∂z+ ∂w
∂y+ ∂u
∂y
∂u
∂z+ ∂v
∂y
∂v
∂z+ ∂w
∂y
∂w
∂z
)(3.1.2)
In the framework of linear static analysis, the small strains may be assumed for simplification. Using
the notation εij instead of Eij , the strain-displacement relations are given by
εxx = ∂u
∂x
εyy = ∂v
∂y
εzz = ∂w
∂z
γxy = ∂u
∂y+ ∂v
∂x
γxz = ∂u
∂z+ ∂w
∂x
γyz = ∂v
∂z+ ∂w
∂y(3.1.3)
where
γxy = 2εxy, γxz = 2εxz, γyz = 2εyz
Substituting 3.1.1 into 3.1.3
εxx = ∂u0
∂x+ z
∂θ1x
∂x+ z2 ∂θ2x
∂x+ z3 ∂θ3x
∂x
εyy = ∂v0
∂y+ z
∂θ1y
∂y+ z2 ∂θ2y
∂y+ z3 ∂θ3y
∂y
εzz = 0
γxy = ∂u0
∂y+ z
∂θ1x
∂y+ z2 ∂θ2x
∂y+ z3 ∂θ3x
∂y+ ∂v0
∂x+ z
∂θ1y
∂x+ z2 ∂θ2y
∂x+ z3 ∂θ3y
∂x
γxz = θ1x + 2zθ2x + 3z2θ3x + ∂w0
∂x
γyz = θ1y + 2zθ2y + 3z2θ3x + ∂w0
∂y(3.1.4)
10
Re-writing 3.1.4 gives
ε =
εxx
εyy
γxy
...
γxz
γyz
=
∂u0∂x + z2 ∂θ2x
∂x
∂v0∂y + z2 ∂θ2y
∂y
∂u0∂y + ∂v0
∂x + z2 ∂θ2x
∂y + z2 ∂θ2y
∂x
..................
0
0
+
z ∂θ1x
∂x + z3 ∂θ3x
∂x
z∂θ1y
∂y + z3 ∂θ3y
∂y
z ∂θ1x
∂y + z∂θ1y
∂x + z3 ∂θ3x
∂y + z3 ∂θ3y
∂x
............................
θ1x + 2zθ2x + 3z2θ3x + ∂w0∂x
θ1y + 2zθ2y + 3z2θ3x + ∂w0∂y
=
εm0+
εbεs = Sε̂ (3.1.5)
where ε̂ ={ε̂m, ε̂b, ε̂s
}T, corresponding to membrane, bending and shear strains, such that:
ε̂m ={∂u0∂x ,
∂v0∂y ,
∂u0∂y + ∂v0
∂x ,∂θ2x
∂x ,∂θ2y
∂y ,∂θ2x
∂y + ∂θ2y
∂x
}Tε̂b =
{∂θ1x
∂x ,∂θ1y
∂y ,∂θ1x
∂y + ∂θ1y
∂x ,∂θ3x
∂x ,∂θ3y
∂y ,∂θ3x
∂y + ∂θ3y
∂x
}Tε̂s =
{2θ2x, 2θ2y,
∂w0∂x + θ1x,
∂w0∂y + θ1y, 3θ3x, 3θ3x
}T(3.1.6)
and S, the strain transformation matrix,
S =
1 0 0 z2 0 0 z 0 0 z3 0 0 0 0 0 0 0 0
0 1 0 0 z2 0 0 z 0 0 z3 0 0 0 0 0 0 0
0 0 1 0 0 z2 0 0 z 0 0 z3 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 2z 0 1 0 3z2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 2z 0 1 0 3z2
3.1.2 Stress-strain relationship and generalized constitutive matrix
The stress-strain relationship for the case of isotropic material is as follows:
σxx
σyy
σxy
σxz
σyz
=
E1−ν2
E1−ν2 ν 0 0 0
E1−ν2 ν
E1−ν2 0 0 0
0 0 E2(1+ν) 0 0
0 0 0 E2(1+ν) 0
0 0 0 0 E2(1+ν)
εxx
εyy
γxy
γxz
γyz
which can be written in a compact form as
σ = Dε (3.1.7)
In order to get the generalized constitutive matrix, one starts by defining the vector of resultant
11
stresses at a point of the plate mid-surface as
σ̂ =
σ̂m
.....
0
+
σ̂b
.....
σ̂s
=∫ t/2
−t/2STσdz (3.1.8)
where t is the plate thickness and
σ̂m =
Nx
Ny
Nxy
(3.1.9)
σ̂b =
Mx
My
Mxy
σ̂s =
QxQy
are the membrane forces, bending moments and transverse shear forces, respectively.
Substituting equations 3.1.5 and 3.1.7 into 3.1.8, it can be written
σ̂ =∫ t/2
−t/2STDεdz =
∫ t/2
−t/2STDSε̂dz (3.1.10)
thus, defining the generalized constitutive matrix as
D̂ =∫ t/2
−t/2STDSdz (3.1.11)
which is of the form
D̂ =
D̂m D̂mb 0
D̂mb D̂b 0
0 0 D̂s
(3.1.12)
As it can be seen in 3.1.12, there are four different constitutive matrices, D̂m, D̂mb, D̂b, D̂s, that
correspond to membrane, coupling between membrane and bending, bending and shear effects, respec-
tively. Furthermore, for a symmetric plate as the one in study in the present stage, the membrane and
bending effects are uncoupled, thus D̂mb = 0.
12
3.2 Laminated Composite Plate Model
3.2.1 Constitutive relation
Composite materials combine two or more materials to improve the properties of the final composite
material. The scope of this work are the composite laminates, which are made of several layers. Consid-
ering each layer as unidirectional fiber reinforced composite laminae, that can be disposed in a specific
direction, one can further improve the desired properties.
For the case in study, it was assumed that each layer is thin and as such is under a plane state of stress.
Because composite laminates are weak in transverse direction, σ13 and σ23 can not be neglected, despite
their values being small when compared to those of σ11, σ22 and σ12. Furthermore, as it is considered an
equivalent-single layer theory, the transverse normal stress σ33 may be considered negligible.
Thus, the constitutive relation for an orthotropic lamina, in the lamina coordinate system, is given
by
σ11
σ22
σ12
σ13
σ23
=
Q11 Q12 0 0 0
Q12 Q22 0 0 0
0 0 Q33 0 0
0 0 0 Q44 0
0 0 0 0 Q55
ε11
ε22
γ12
γ13
γ23
(3.2.1)
or in a compact form,
σl = Dεl (3.2.2)
with,
Q11 = E1
1− ν12ν21, Q12 = ν12E2
1− ν12ν21, Q22 = E2
1− ν12ν21,
Q33 =G12 , Q33 = G13 , Q33 = G23. (3.2.3)
and
ν21 = E2
E1ν12
3.2.2 Transformation of constitutive relations
As mentioned in previously, each layer is disposed in a specific direction, rotated an angle, θ, from the
problem coordinate system in the x − y plane, as it can be seen in figure 3.1. Hence, there is the need
to compute all the constitutive relations in the problem coordinate system (x, y, z), from the lamina
coordinate system (x1, x2, x3).
13
Figure 3.1: Lamina and problem coordinate system [20].
The stress components from the lamina (l) to the problem (p) coordinate system are related as follows:
σxx
σyy
σxy
σxz
σyz
=
cos2 θ sin2 θ − sin 2θ 0 0
sin2 θ cos2 θ sin 2θ 0 0
sin θ cos θ − sin θ cos θ cos2 θ − sin2 θ 0 0
0 0 0 cos θ − sin θ
0 0 0 sin θ cos θ
σ11
σ22
σ12
σ13
σ23
(3.2.4)
which can be written in a compact form as
σp = Tσl (3.2.5)
and the strain components are related by
ε11
ε22
γ12
γ13
γ23
=
cos2 θ sin2 θ sin θ cos θ 0 0
sin2 θ cos2 θ − sin θ cos θ 0 0
− sin 2θ sin 2θ cos2 θ − sin2 θ 0 0
0 0 0 cos θ sin θ
0 0 0 − sin θ cos θ
εxx
εyy
γxy
γxz
γyz
(3.2.6)
which can be written in a compact form as
εl = T Tεp (3.2.7)
Ultimately, for the transformed material stiffness matrix, taking 3.2.5 and combining with 3.2.2 and
3.2.7,
σp = Tσl = TDεl = TDT Tεp (3.2.8)
thus, defining the transformed material stiffness matrix, D̄, as
14
D̄ = TDT T (3.2.9)
Since both the displacement field and the strain-displacement relations are the same from the previous
stage, the strain transformation matrix, S, is also the same.
However, the definition of the generalized constitutive matrix, D̂, has to be re-written, taking into
account that the problem does not involve a single-layer but several ones. Thus, the integration limits
have to be redefined,
D̂ =∫ z2
z1
ST D̄Sdz (3.2.10)
with z1 and z2 corresponding, respectively, to the lower and upper surface of each layer, in the problem
coordinate z.
3.3 Finite element formulation
Considering a plate discretized into n-noded finite elements of quadrilateral shape, the degrees of freedom
solution is approximated, within each element as
u =
u0
v0
w0
θ1x
θ1y
θ2x
θ2x
θ3x
θ3y
=n∑i=1
N ia(e)i (3.3.1)
with
N i =
Ni 0 0 0 0 0 0 0 0
0 Ni 0 0 0 0 0 0 0
0 0 Ni 0 0 0 0 0 0
0 0 0 Ni 0 0 0 0 0
0 0 0 0 Ni 0 0 0 0
0 0 0 0 0 Ni 0 0 0
0 0 0 0 0 0 Ni 0 0
0 0 0 0 0 0 0 Ni 0
0 0 0 0 0 0 0 0 Ni
and
a(e)i =
{u0i , v0i , w0i , θ1xi , θ1yi , θ2xi , θ2xi , θ3xi , θ3yi
}T15
where Ni(ξ, η) is the continuous shape function of node i, which are detailed hereafter in a specific
subsection.
Substituting 3.3.1 into the expression for ε̂ of 3.1.6, it can be written
ε̂m =n∑i=1
{∂Ni
∂x u0i ,∂Ni
∂y v0i ,∂Ni
∂y u0i + ∂Ni
∂x v0i ,∂Ni
∂x θ2xi ,∂Ni
∂y θ2yi ,∂Ni
∂y θ2xi + ∂Ni
∂x θ2yi
}Tε̂b =
n∑i=1
{∂Ni
∂x θ1xi ,∂Ni
∂y θ1yi ,∂Ni
∂y θ1xi + ∂Ni
∂x θ1yi ,∂Ni
∂x θ3xi ,∂Ni
∂y θ3yi ,∂Ni
∂y θ3xi + ∂Ni
∂x θ3yi
}Tε̂s =
n∑i=1
{2Niθ2xi , 2Niθ2yi ,
∂Ni
∂x w0i +Niθ1xi ,∂Ni
∂y w0i +Niθ1yi , 3Niθ3xi , 3Niθ3xi
}T(3.3.2)
thus, concluding that
ε̂m =n∑i=1
Bmia(e)i
ε̂b =n∑i=1
Bmba
(e)i
ε̂s =n∑i=1
Bmsa
(e)i (3.3.3)
where
Bmi =
∂Ni
∂x 0 0 0 0 0 0 0 0
0 ∂Ni
∂y 0 0 0 0 0 0 0∂Ni
∂y∂Ni
∂x 0 0 0 0 0 0 0
0 0 0 0 0 ∂Ni
∂x 0 0 0
0 0 0 0 0 0 ∂Ni
∂y 0 0
0 0 0 0 0 ∂Ni
∂y∂Ni
∂x 0 0
Bbi=
0 0 0 ∂Ni
∂x 0 0 0 0 0
0 0 0 0 ∂Ni
∂y 0 0 0 0
0 0 0 ∂Ni
∂y∂Ni
∂x 0 0 0 0
0 0 0 0 0 0 0 ∂Ni
∂x 0
0 0 0 0 0 0 0 0 ∂Ni
∂y
0 0 0 0 0 0 0 ∂Ni
∂y∂Ni
∂x
Bsi =
0 0 0 0 0 2Ni 0 0 0
0 0 0 0 0 0 2Ni 0 0
0 0 ∂Ni
∂x 0 0 0 0 0 0
0 0 ∂Ni
∂y 0 0 0 0 0 0
0 0 0 0 0 0 0 3Ni 0
0 0 0 0 0 0 0 0 3Ni
(3.3.4)
16
are the contribution of the membrane, bending and shear effects, respectively, for the generalized strain
matrix, Bi for the ith node.
Matrices Bm, Bb and Bs, of the element (e) of n nodes, are computed by merging Bmi, Bbi
and
Bsi, of each node i = 1, 2...n. An example can be seen below,
Bs =
0 0 0 0 0 2N1 0 0 0 . 0 0 0 0 0 2Nn 0 0 0
0 0 0 0 0 0 2N1 0 0 . 0 0 0 0 0 0 2Nn 0 0
0 0 ∂N1∂x 0 0 0 0 0 0 . 0 0 ∂Nn
∂x 0 0 0 0 0 0
0 0 ∂N1∂y 0 0 0 0 0 0 . 0 0 ∂Nn
∂y 0 0 0 0 0 0
0 0 0 0 0 0 0 3N1 0 . 0 0 0 0 0 0 0 3Nn 0
0 0 0 0 0 0 0 0 3N1 . 0 0 0 0 0 0 0 0 3Nn
3.3.1 Principle of virtual work and stiffness matrix
Considering an element which has undergone a certain level of membrane (ε̂m), bending (ε̂b) and shear
(ε̂s) deformation, the associated stress vectors are denoted by (σ̂m), (σ̂b) and (σ̂s), respectively, and,
at the ith node, the displacement vector is represented by u and the external nodal force by f . By the
principle of virtual work, considering a virtual displacement, δu, then
fT δu =∫V
σ̂Tmδε̂mjdv +∫V
σ̂Tb δε̂bjdv +∫V
σ̂Ts δε̂sjdv (3.3.5)
Using equations 3.3.3, it can be written that
δε̂mj= Bmj
δu
δε̂bj = Bbjδu
δε̂sj= Bsj
δu (3.3.6)
and, from 3.1.12, σ̂m = D̂mε̂m = D̂mBmiu, σ̂b = D̂bε̂b = D̂bBbi
u and σ̂s = D̂sε̂s = D̂sBsiu.
Replacing in 3.3.5, yields
fT δu =∫A(e)
uTBTmiD̂T
mBmjδudA+
∫A(e)
uTBTbiD̂T
b BbjδudA+
∫A(e)
uTBTsiD̂T
sBsjδudA (3.3.7)
Since the above equation is valid for any δu, then
fT =∫A(e)
uTBTmiD̂T
mBmjdA+∫A(e)
uTBTbiD̂T
b BbjdA+∫A(e)
uTBTsiD̂T
sBsjdA (3.3.8)
By taking transpose of both sides, using f = Kmu +Kbu +Ksu and knowing that matrices D̂m,
17
D̂b and D̂s are symmetric, yields
K(e)mij
=∫A(e)
BTmiD̂mBmjdA (3.3.9)
K(e)bij
=∫A(e)
BTbiD̂bBbj
dA (3.3.10)
K(e)sij
=∫A(e)
BTsiD̂sBsj
dA (3.3.11)
The contribution of the coupling between membrane and bending effect to the global stiffness matrix
is given by
K(e)mbij
=∫A(e)
BTmiD̂mbBbjdA+
∫A(e)
BTbiD̂mbBmjdA (3.3.12)
The global stiffness matrix for the element can then be obtained by adding the contributions from the
stiffness matrices of membrane, bending shear and coupling between membrane and bending, arriving to
a matrix of the form:
K =
Km Kmb 0
Kmb Kb 0
0 0 Ks
(3.3.13)
3.3.2 Shape functions and numerical integration
For the finite element discretization, it was chosen the eight-node quadratic Serendipity rectangular
element. The element used can be seen in Figure 3.2, as well as the numeration given to the nodes.
Figure 3.2: Eight-node quadratic Serendipity rectangular element [20].
The shape functions in natural coordinates (ξ, η), which are defined in −1 6 (ξ, η) 6 1 are given by
18
N1
N2
N3
N4
N5
N6
N7
N8
= 14
(1− ξ)(1− η)(−ξ − η − 1)
(1 + ξ)(1− η)(ξ − η − 1)
(1 + ξ)(1 + η)(ξ + η − 1)
(1− ξ)(1 + η)(−ξ + η − 1)
2(1− ξ2)(1− η)
2(1 + ξ)(1− η2)
2(1− ξ2)(1 + η)
2(1− ξ)(1− η2)
(3.3.14)
and its derivatives by
∂N1∂ξ
∂N1∂η
∂N2∂ξ
∂N2∂η
∂N3∂ξ
∂N3∂η
∂N4∂ξ
∂N4∂η
∂N5∂ξ
∂N5∂η
∂N6∂ξ
∂N6∂η
∂N7∂ξ
∂N7∂η
∂N8∂ξ
∂N8∂η
= 14
(2ξ + η)(1− η) (2η + ξ)(1− ξ)
(2ξ − η)(1− η) (2η − ξ)(1 + ξ)
(2ξ + η)(1 + η) (2η + ξ)(1 + ξ)
(2ξ − η)(1 + η) (2η − ξ)(1− ξ)
4ξ(η − 1) 2(ξ2 − 1)
2(1− η2) −4η(ξ + 1)
−4ξ(η + 1) 2(1− ξ2)
2(η2 − 1) 4η(ξ − 1)
(3.3.15)
The transformation from the local coordinate system, (ξ, η), to the global coordinate system, (x, y) is
given by
x =n∑i=1
Nixi , y =n∑i=1
Niyi. (3.3.16)
where Ni are the shape functions for the Serendipity element.
Analyzing B matrices, present in 3.3.4, one can conclude that the derivatives of the shape functions
with respect to the global coordinate system, ∂Ni
∂x and ∂Ni
∂y need to be determined. By the chain rule of
partial differentiation
∂Ni
∂ξ
∂Ni
∂η
=
∂x∂ξ ∂y∂η
∂x∂ξ
∂y∂η
∂Ni
∂x
∂Ni
∂y
(3.3.17)
where
J =
∂x∂ξ ∂y∂η
∂x∂ξ
∂y∂η
(3.3.18)
is the Jacobian matrix of the transformation 3.3.16 and its determinant, is called the Jacobian.
Inverting 3.3.17 yields
19
∂Ni
∂x
∂Ni
∂y
= J−1
∂Ni
∂ξ
∂Ni
∂η
(3.3.19)
with ∂Ni
∂x
∂Ni
∂y
=
∂N1∂x
∂N2∂x
∂N3∂x
∂N4∂x
∂N5∂x
∂N6∂x
∂N7∂x
∂N8∂x
∂N1∂y
∂N2∂y
∂N3∂y
∂N4∂y
∂N5∂y
∂N6∂y
∂N7∂y
∂N8∂y
∂Ni
∂ξ
∂Ni
∂η
=
∂N1∂ξ
∂N2∂ξ
∂N3∂ξ
∂N4∂ξ
∂N5∂ξ
∂N6∂ξ
∂N7∂ξ
∂N8∂ξ
∂N1∂η
∂N2∂η
∂N3∂η
∂N4∂η
∂N5∂η
∂N6∂η
∂N7∂η
∂N8∂η
It is only missing the definition of the Jacobian matrix. From 3.3.16, it can be written
∂x
∂ξ=
n∑i=1
∂Ni∂ξ
xi
∂x
∂η=
n∑i=1
∂Ni∂η
xi
∂y
∂ξ=
n∑i=1
∂Ni∂ξ
yi
∂y
∂η=
n∑i=1
∂Ni∂η
yi (3.3.20)
which, combining with 3.3.18, can be written in a matrix form as
J =
∂N1∂ξ
∂N2∂ξ
∂N3∂ξ
∂N4∂ξ
∂N5∂ξ
∂N6∂ξ
∂N7∂ξ
∂N8∂ξ
∂N1∂η
∂N2∂η
∂N3∂η
∂N4∂η
∂N5∂η
∂N6∂η
∂N7∂η
∂N8∂η
x1 y1
x2 y2
x3 y3
x4 y4
x5 y5
x6 y6
x7 y7
x8 y8
(3.3.21)
The integrals present from 3.3.9 to 3.3.11 are evaluated using the Gauss-Legendre quadrature rule,
Ka =m∑i=1
m∑j=1
Ba(ξi, ηj)T D̂aBa(ξi, ηj)(ξi, ηj)WiWj (3.3.22)
where a = m, b, s,mb and Wi and Wj are the Gauss weights corresponding to the coordinate ξi and ηj ,
respectively.
From 3.3.14, the maximum order of the shape functions in each direction is two. So, the maximum
order of the polynomial present in the integral in that direction is doubled, thus p = 2 × 2 = 4. Hence,
20
knowing that a polynomial is integrated exactly by employing N Gauss points, with N = int[ 12 (p+ 1)],
then the minimum number of Gauss points used in each direction will be three for bending, membrane
and coupling effects. For the shear effect, it will be used reduced integration, to avoid shear locking, thus
two Gauss points, in each direction, are intentionally used.
In figures 3.3 and 3.4 are presented the coordinates of the integration points for three and two inte-
gration points in each direction, respectively.
Figure 3.3: 3x3 quadratic element - integration points coordinates [20].
Figure 3.4: 2x2 linear element - integration points coordinates [20].
The Gauss weights depend on the number of integration points used, m. Weights for two and three
integration points are presented in table 3.1
m Points ξi or ηj , Weights Wi or Wj
2 ±√
1/3 1
3 0 8/9±√
3/5 5/9
Table 3.1: Gauss weights.
21
22
Chapter 4
Implementation of the Model
Abaqus, together with the UEL subroutine and the input file, works as a finite element solver. In this
chapter it will be covered in detail, how these three parts interact and how each one must be defined, in
order to correctly implement the model developed in the previous chapter.
4.1 UEL subroutine
The UEL subroutine was programmed in FORTRAN 90, which is a free format code. The FORTRAN
code has to start with the default header provided by Abaqus, present in figure 4.1.
Figure 4.1: UEL subroutine default header.
One can think of the UEL subroutine as a block that receives input data, treats that data accordingly
to what the user programs and then delivers the output data to Abaqus, as shown in figure 4.2. This
UEL subroutine is called consecutively a number of times, and actually in an iterative process controlled
by Abaqus. The header states the input and output data and the respective dimensions.
Figure 4.2: Input and output variables interacting with UEL block [8].
23
Regarding the input:
• COORDS - is a matrix containing the coordinates of the element that is being calculated. Thus,
the matrix dimensions are 2×N : 2 because it is a two dimensional plate and N is the number of
nodes of the element that is being used;
• U - is not defined in the subroutine. In fact, it is calculated by Abaqus, once the stiffness matrix
is defined, and it is used to compute the force vector inside the subroutine;
• dU - is not defined in the subroutine. Like in the previous item, Abaqus calculates it and the
subroutine uses it to compute the strains.
As for the output:
• RHS - corresponds to the internal force vector of the element, for each node and each degree of
freedom. Thus, the vector dimension is equal to the number of nodes times the number of degrees
of freedom per node;
• AMATRX - is the stiffness matrix of the element that will calculated by the subroutine. It has
dimensions N ×N , with N equal to the number of nodes times the number of degrees of freedom
per node, i.e. the total number of degrees of freedom of the element.
The state variables correspond to SVARS and are a vector that contains the state variables of the
element and is updated by the subroutine, in this case, updated with the strains and stresses at integration
points. Bending and membrane effects use nine integration points and account for three strains (εxx,
εxx, γxy) and three stresses (σxx, σxx, σxx). Hence having 6 × 9 = 54 entries for the state variables
vector. On the other hand, shear effect uses four integration points and accounts for two strains (γxz,
γyz) and two stresses (σxz, σyz) having thus 4 × 4 = 16 entries for the state variables vector. In total,
SVARS dimension is equal to 70. It is important to store the results for strains and stresses in a certain
predefined manner, when programming the subroutine, so that it is possible to confer the results later
on.
Based on what was presented so far, one can conclude that the subroutine is called at least two times,
for the simplest case of having a mesh with a single element. The first time all the input variables are zero
except for COORDS, and only the stiffness matrix is defined within the subroutine, thus being the only
output variable different from zero. The second time, Abaqus has computed both U and dU, making use
of the already calculated stiffness matrix, and gives these quantities as inputs to the subroutine, that is
now able to calculate the force vector and the strains components. If a more complex mesh is used, the
subroutine will be called two times for each element that constitutes the plate, performing the described
methodology for every element.
In the UEL subroutine, material properties must be defined for each lamina, as well as the number
of laminae, direction angle and thickness of each one. Besides, all the variables used in the subroutine
must be declared.
24
A brief explanation will be made regarding the calculations of the three output variables of the UEL
subroutine: stiffness matrix, state variables and force vector, so that it is clear how one can go from the
development to the computational implementation of the element.
4.1.1 Stiffness matrix
The stiffness matrix calculations can be viewed as a block that will be performed for each lamina individ-
ually, by using a DO loop, (the lamina loop); by the end of each iteration through this loop, the stiffness
matrix will be calculated for a specific lamina and, when the loop is performed for all the laminae, the
final stiffness matrix for the composite laminate is obtained.
In the first step inside the lamina loop, the constitutive matrices, D̂m, D̂b, D̂s, D̂mb, are defined from
equation 3.2.10, after defining the z coordinates for the lower and upper surface of the lamina (limits of
the integral) and using the properties previously defined for the lamina.
Next, the calculations are divided by bending, shear, membrane and coupling effects. Once again, a
DO loop is used for each effect (the effect loop) and all follow the same logic: for each iteration through
the loop, a pair of integration points and their respective weights, (ξi, ηj) and (Wi,Wj), as well as the
Jacobian, are used, performing the following steps:
• substitution of the set of integration points in 3.3.14 and 3.3.15;
• calculation of the Jacobian matrix, J , and its inverse, as stated in equation 3.3.21 (using the input
variable COORDS);
• calculation of the shape functions derivatives with respect to x and y, from 3.3.19;
• assemblage of the B matrix, according to equations 3.3.4
• calculation of the stiffness matrix, from equation 3.3.22.
It is important to note that the stiffness matrix obtained in each effect loop is the contribution of that
effect to the global stiffness matrix, as in equations 3.3.9, 3.3.10, 3.3.11 and 3.3.12. Hence, at the end of
each iteration through the effect loop, this "local" stiffness matrix is added to a global stiffness matrix,
that will ultimately correspond, after all the iterations through the lamina loop are made, to the final
stiffness matrix for the element that will be passed as output to Abaqus.
4.1.2 State variables
State variables are computed for a single location in the plate’s thickness, thus for a unique value of the
global coordinate z. This value is defined right at the beginning of the subroutine, depending on the
analysis that is being conducted.
Furthermore, the calculations for the state variables are performed along with those of the stiffness
matrix, more precisely in the bending, membrane and shear effect loops, since their definitions are mixed.
Analyzing the strains definition present in equation 3.1.4, one can conclude that membrane and
bending effects contribute to εxx, εyy and γxy, whereas shear effect contributes to γxz and γyz.
25
Following the same line of thought produced in sections 3.1.1 and 3.3, but considering the actual
strains, ε ={εm, εb, εs
}T, it can be written that,
εm =n∑i=1
Bzmia
(e)i
εb =n∑i=1
Bzmba
(e)i
εs =n∑i=1
Bzmsa
(e)i (4.1.1)
where
Bzmi
=
∂Ni
∂x 0 0 0 0 0 0 0 0
0 ∂Ni
∂y 0 0 0 0 0 0 0∂Ni
∂y∂Ni
∂x 0 0 0 0 0 0 0
0 0 0 0 0 ∂Ni
∂x z2 0 0 0
0 0 0 0 0 0 ∂Ni
∂y z2 0 0
0 0 0 0 0 ∂Ni
∂y z2 ∂Ni
∂x z2 0 0
Bzbi
=
0 0 0 ∂Ni
∂x z 0 0 0 0 0
0 0 0 0 ∂Ni
∂y z 0 0 0 0
0 0 0 ∂Ni
∂y z∂Ni
∂x z 0 0 0 0
0 0 0 0 0 0 0 ∂Ni
∂x z3 0
0 0 0 0 0 0 0 0 ∂Ni
∂y z3
0 0 0 0 0 0 0 ∂Ni
∂y z3 ∂Ni
∂x z3
Bzsi
=
0 0 0 0 0 2Niz 0 0 0
0 0 0 0 0 0 2Niz 0 0
0 0 ∂Ni
∂x 0 0 0 0 0 0
0 0 ∂Ni
∂y 0 0 0 0 0 0
0 0 0 0 0 0 0 3Niz2 0
0 0 0 0 0 0 0 0 3Niz2
(4.1.2)
These matrices are equal to Bi matrices only with the variable z present. In order to compute
these matrices, the same procedure presented for the stiffness matrix calculations is followed, adding the
corresponding terms z to the correct places in the matrices and substituting them for the coordinate
defined as the location for the computation of strains and stresses. Hence, the strains and stresses
calculations are performed by the following steps:
• in the membrane effect loop:
– calculation and assemblage of the matrix Bzbi;
– calculation of the membrane contribution to the strains, from equation 3.3.6, that is multiplying
26
Bzbi
by dU;
– addition of this contribution to the positions of the state variables vector reserved for the
strains.
• in the bending effect loop:
– calculation and assemblage of the matrix Bzmi
;
– calculation of the contribution of the bending effect to the strains, from equation 3.3.6, that
is multiplying Bzmi
by dU;
– addition of this contribution to the positions of the state variables vector reserved for the
strains, which already includes the membrane effect loop, thus obtaining the final values for
εxx, εyy and γxy;
– from 3.2.8, calculation of the stresses, σxx, σyy and σxy, and addition of this values to the
reserved positions in the sate variables vector.
• in the shear effect loop:
– calculation and assemblage of the matrix Bzsi;
– calculation of γxz and γyz, from equation 3.3.6, that is multiplying Bzsi
by dU;
– addition of this values to the positions of the state variables vector reserved for these strains;
– from 3.2.8, calculation of the stresses, σxz, σyz and addition of this values to the reserved
positions in the sate variables vector.
4.1.3 Force vector
According to equation 3.3.8, once the global stiffness matrix is calculated, the force vector is computed
by multiplying the stiffness matrix by U.
In appendix B an example from a FORTRAN code is presented, making it possible to see the procedure
previously described actually programmed.
4.2 Input file
The input file has a .inp extension and can be edited in notepad. Its function is to provide information
and define some quantities needed for the subroutine.
Appendix A provides an example of a input file, used in this work. It is the simplest one, since it only
has one element. For presentation purposes, several sections were numbered, marked with ’##’ before
the number. Their functions are:
• ##1 - the coordinates of the nodes that define the several elements of the mesh;
• ##2 - information on the element used (type of element, number of nodes per element, maximum
number of coordinates at nodes, number of state variables per element and number of integration
points used);
27
• ##3 - definition of elements by defining the nodes that constitute each element (a single element
in this case);
• ##4 - assembly of all elements;
• ##5 - boundary conditions and loads;
• ##6 - output requests.
4.3 Abaqus interaction
The interaction between Abaqus, the input file and the UEL subroutine is done through a command
window. Considering an input file named input.inp and a subroutine named uel.for (the default extension
is .f90 but for a correct compilation it must be changed to .for), the command line for compiling is as
presented in figure 4.3.
Figure 4.3: Command line for compiling.
If the compiler does not encounter any error, then Abaqus performs all the needed calculations and
generates several files, from which two are important for getting the results: the .odb and the .log files.
The .odb file is the one that can be opened with Abaqus CAE, where results for forces, moments,
displacements among others can be found. The .log file contains values of results that are considered of
interest.
Specifically, when programming the FORTRAN code, one can use the function print, in order to print
any information present in the code, such as the value of a certain variable, which will be printed in the
.log file. Since Abaqus can not interpret the state variables that are defined within the subroutine, it is
not possible to obtain results for strains and stresses in Abaqus CAE. Hence, the values for strains and
stresses must be programmed to be printed in the UEL subroutine and viewed later in the .log file.
28
Chapter 5
Validation
To facilitate the validation of the model’s implementation, several steps of results analysis are considered,
in order to ensure that the procedure used and the UEL subroutine are correct. The validation was
first performed by comparing results obtained by the developed TSDT element and an Abaqus element,
the S8r. This Abaqus element is based on FSDT with eight nodes and the r indicates that it performs
reduced integration, to overcome shear locking.
Although this element is similar to the one developed and implemented, the fact that it is not based
on a high-order theory will have an impact on the results. Hence, with this validation it is not expected
a 100% match but a proximity between the results.
For the majority of the analysis performed, results for the displacements, reaction forces, strains and
stresses are covered. It is important to note that, the displacement field on which this theory is based,
imposes non-zero values for the shear strains, γxz and γyz, on the top and bottom surfaces of the plate.
Thus, the distribution of these quantities, and consequently σxz and σyz along the plate’s thickness is not
correct, although the shear strain energy density is the same as for the exact 3-D model. Therefore these
results will not be covered, as they are not meaningful. For a correct post-computation of these values
one has to make use of the equilibrium equations, even though this comes out of the scope of this work.
Results for displacements and reaction forces will be obtained from Abaqus CAE, whereas the strains
and stresses will be printed in the .log file, as discussed previously and presented in this work in tables.
Furthermore, for the model developed for the laminated composite plate, a comparison with an
analytical solution, available in the literature is also presented, to confirm in this case as well the validity
of the final model obtained.
5.1 Single-layer Plate
In this stage, a plate with dimensions 2 × 2m and 0.1m of thickness was used. The isotropic material
properties considered were E = 2× 108 Pa for the Young’s modulus and ν = 0.3 for the Poisson’s ratio.
The plate is fixed on two sides (x = 0 and y = 0) and two sets of conditions were used: a vertical
force of 50 kN in the node with the coordinates (2,2), or instead, a vertical displacement of 0, 1m in the
29
node with the coordinates (2,2).
For the case of imposed displacement, results will be checked for the vertical reaction force, whereas
for the imposed force, it will be checked the results for the vertical displacement. For both cases, strains
(εxx, εyy, γxy) and stresses (σxx, σyy, σxy) will be also presented.
Since results for strains and stresses are only available at integration points, results were computed
using a single element mesh, since it is much simpler to compare four sets of values (one per integration
point) than four sets times the number of elements used. Obviously, a single element will have a significant
error associated. However, for this first step, it was thought that the results would be close enough, so
that a meaningful confirmation of the procedure used could be made.
In the following step, a 20 × 20 element mesh was used to obtain the values of displacements and
reaction forces. Since these values are obtained in Abaqus CAE, its visualization is simpler and a multiple
element mesh can be used, to obtain greater accuracy in results.
5.1.1 Vertical displacement
It can be seen in figures 5.1 and 5.2 the distribution of the vertical reaction force for both elements tested.
Figure 5.1: Vertical reaction force for the single element mesh: TSDT element (left); Abaqus element(right)).
Regarding the single element mesh, present in figure 5.1, the distribution of the reaction force is
consistent for both elements used , having its maximum in the opposite fixed node to that where the
displacement is applied: 1.844× 104 N and 1.600× 104 N , for TSDT and Abaqus element, respectively.
The fact that the plate is relatively thick (a/h = 20) contributes to the difference between the results,
since TSDT describes better the behavior for thick plates when compared to an element based on CLPT
or FSDT, as discussed previously. It is important to note the "black void" present in the middle of the
plate; this occurs when Abaqus can not interpret the data that is given or this data does not exist. Since
this happens for both TSDT element as for the Abaqus element, it was interpreted as an Abaqus CAE
limitation, rather than a programming error.
For the multiple element mesh, the maximum values 1.497× 103 N and 1.480× 103 N were obtained
for Abaqus and TSDT element, respectively. Once more, there were some representation difficulties:
30
Figure 5.2: Vertical reaction force for the 20× 20 element mesh: Abaqus element (right); TSDT element(left).
Abaqus CAE illustrates the same color value of reaction force to the whole plate, which is not correct.
Since this happens for both Abaqus and TSDT element, it was not seen as an error.
The results for the strains and stresses, presented in tables 5.1 and 5.2 respectively, were computed
for the top surface of the plate (z = 0.05). Since Abaqus element performs reduced integration, strains
and stresses are only available in four integration points, hence the values are compared for those same
four integration points.
IP εxx εxx εyy εyy γxy γxyAbaqus TSDT Abaqus TSDT Abaqus TSDT
1 −5.245× 10−4 −5.396× 10−4 −5.245× 10−4 −5.396× 10−4 −1.392× 10−3 −1.429× 10−3
2 2.095× 10−4 2.285× 10−4 −2.334× 10−3 −2.365× 10−3 −2.125× 10−3 −2.136× 10−3
3 4.053× 10−4 5.021× 10−4 4.053× 10−4 5.021× 10−4 −3.960× 10−3 −3.870× 10−3
4 −2.334× 10−3 −2.365× 10−3 2.095× 10−4 2.285× 10−4 −2.125× 10−3 −2.136× 10−3
Table 5.1: Strain results for Abaqus and TSDT element: comparison for imposed vertical displacement.
IP σxx σxx σyy σyy σxy σxyAbaqus TSDT Abaqus TSDT Abaqus TSDT
1 −1.499× 105 −1.542× 105 −1.499× 105 −1.542× 105 −1.070× 105 −1.099× 105
2 −1.079× 105 −1.057× 105 −4.992× 105 −5.046× 105 −1.634× 105 −1.643× 105
3 1.158× 105 1.434× 105 1.158× 105 1.434× 105 −3.047× 105 −2.977× 105
4 −4.992× 105 −5.046× 105 −1.079× 105 −1.057× 105 −1.634× 105 −1.643× 105
Table 5.2: Stress results for Abaqus and TSDT element: comparison for imposed vertical displacement.
Despite the difficulties encountered with the representation in Abaqus CAE, the comparison of values
for strains and stresses is very satisfactory. In fact, the results obtained are consistent, even more knowing
that a single element is being used, which has always a considerable error associated.
31
5.1.2 Vertical force
It can be seen in figures 5.3 and 5.4 the distribution of the vertical displacement when the 50 kN force is
applied.
Figure 5.3: Vertical displacement for the single element mesh: TSDT element (left); Abaqus element(right).
Figure 5.4: Vertical displacement for the 20 × 20 element mesh: TSDT element (left); Abaqus element(right).
The vertical displacement distribution representation is consistent to what is expected: 0 for the fixed
sides and a maximum on the node where the vertical force is applied. For the single element mesh,
this maximum value is −2.337m and −2.450m for the TSDT and Abaqus element respectively. For
the multiple element mesh, this maximum value converges to −3.378m and −3.340m for the TSDT
and Abaqus element respectively. The values are consistent both between elements as between the two
discretization used, since the multiple element mesh presents a greater value for the maximum vertical
displacement, which is to be expected because of the greater accuracy that this mesh provides.
The results for the strains and stresses were computed for the top surface of the plate (z = 0.05) and
are presented in tables 5.3 and 5.4, respectively. For the reasons presented in the previous section, results
for four integration points are evaluated.
These results are consistent and it was considered, together with the case of an imposed vertical
displacement, that the model was implemented correctly, both in terms of the stiffness matrix computation
32
IP εxx εxx εyy εyy γxy γxyAbaqus TSDT Abaqus TSDT Abaqus TSDT
1 1.285× 10−2 1.261× 10−2 1.285× 10−2 1.261× 10−2 3.409× 10−2 3.339× 10−2
2 −5.132× 10−3 −5.340× 10−3 5.718× 10−2 5.525× 10−2 5.204× 10−2 4.991× 10−2
3 −9.927× 10−3 −1.173× 10−2 −9.927× 10−3 −1.173× 10−2 9.701× 10−2 9.043× 10−2
4 5.718× 10−2 5.525× 10−2 −5.132× 10−3 −5.340× 10−3 5.204× 10−2 4.991× 10−2
Table 5.3: Strain results for Abaqus and TSDT element: comparison for applied vertical force.
IP σxx σxx σyy σyy σxy σxyAbaqus TSDT Abaqus TSDT Abaqus TSDT
1 3.671× 106 3.602× 106 3.671× 106 3.602× 106 2.622× 106 2.569× 106
2 2.642× 106 2.469× 106 1.223× 107 1.179× 107 4.003× 106 3.839× 106
3 −2.836× 106 −3.352× 106 −2.836× 106 −3.352× 106 7.463× 106 6.956× 106
4 1.223× 107 1.179× 107 2.642× 106 2.469× 106 4.003× 106 3.839× 106
Table 5.4: Stress results for Abaqus and TSDT element: comparison for applied vertical force.
as well as for the strains and stresses post-computation.
5.2 Laminated Composite Plate
After a successful validation of the preliminary model, it was considered that a step further could be
given into the implementation of the model for a laminated composite plate.
At this point, two sets of tests were performed: one by comparing with Abaqus element S8r and
another by comparing with the analytical solution provided in [20].
5.2.1 Comparison with Abaqus element
For this test was used a plate with dimensions 2× 2m and three laminae, each with 0.3m of thickness.
The values for the orthotropic material properties of each lamina considered were E1 = 138GPa, E2 =
9500MPa, E3 = 9500MPa for the Young’s moduli, ν12 = 0.28, ν13 = 0.28, ν23 = 0.4 for the Poisson’s
ratios and G12 = 5200MPa, G13 = 5200MPa, G23 = 1450MPa for the shear modulus. The angles for
the laminae are 0◦ , 45◦ and −45◦ for the first, second and third ply, respectively.
The boundary conditions are the same as in the previous section: the plate is fixed on two sides
(x = 0 and y = 0) and two sets of conditions were used: a vertical force of 50 kN in the node with the
coordinates (2,2) or instead a vertical displacement of 0, 1m in the node with the coordinates (2,2).
Likewise, for the case of imposed displacement, it will be checked the results for the vertical reaction
force, whereas for the imposed force, it will be checked the results for the vertical displacement. For both
cases, strains (εxx, εyy, γxy) and stresses (σxx, σyy, σxy) will be presented, using a single element mesh,
for the reasons already mentioned.
It can be seen in figures 5.5 and 5.6 the distribution of the vertical displacement when the 50 kN force
is applied.
For the single element mesh, a satisfactory consistency between the results was obtained, with a
33
Figure 5.5: Vertical displacement for the single element mesh: Abaqus element (right); TSDT element(left).
Figure 5.6: Vertical displacement for the 20× 20 element mesh: Abaqus element (right); TSDT element(left).
maximum vertical displacement of −1.267×10−3 m and −1.068×10−3 m for Abaqus and TSDT element,
respectively. For a thiner plate, it was expected a greater proximity in results, although these results are
acceptable for validation purposes.
For the multiple element mesh, a representation problem occurred regarding Abaqus element: as it
can be seen, the vicinity of the node with the maximum vertical displacement "slides", which produces
a value of this displacement that is overestimated (−2.156× 10−3 m). This result is not consistent with
the others, including the one from the multiple element mesh with TSDT element. In fact, this element
presents a value of −1.501× 10−3 m for the maximum vertical displacement, that, being greater than the
results obtained with the single element mesh, is consistent since greater accuracy is expected.
Values for strains and stresses are presented in tables 5.5 and 5.6, respectively, for ply 1, or in terms
of the global z coordinate, for z = −0.4161897.
After carefully analyzing the results for strains and stresses, one can conclude that a part of the results
are slightly discrepant. Regarding εxx, εyy and σxx, σyy, the results are acceptable. It is concerning γxyand σxy that results differ the most. Values for TSDT element seem to be overestimated when compared to
those of Abaqus element. The fact that a single element is used contributes to this difference, as well as the
34
IP εxx εxx εyy εyy γxy γxyAbaqus TSDT Abaqus TSDT Abaqus TSDT
1 −1.018× 10−5 −1.359× 10−5 −4.984× 10−5 −5.252× 10−5 −5.898× 10−5 −1.343× 10−4
2 −1.081× 10−6 −3.893× 10−6 −1.152× 10−4 −1.514× 10−4 −3.976× 10−5 −1.314× 10−4
3 −1.644× 10−5 −9.112× 10−6 −5.362× 10−5 −6.622× 10−5 −5.561× 10−5 −1.800× 10−4
4 −5.038× 10−5 −4.531× 10−5 −3.333× 10−5 −2.968× 10−5 −1.603× 10−4 −3.292× 10−4
Table 5.5: Strain results for Abaqus and TSDT element: comparison for applied vertical force.
IP σxx σxx σyy σyy σxy σxyAbaqus TSDT Abaqus TSDT Abaqus TSDT
1 −1.545× 106 −2.026× 106 −5.032× 105 −5.380× 105 −3.067× 105 −6.985× 105
2 −4.582× 105 −9.452× 105 −1.104× 106 −1.457× 106 −2.067× 105 −6.835× 105
3 −2.424× 106 −1.441× 106 −5.561× 105 −6.568× 105 −2.892× 105 −9.361× 105
4 −7.079× 106 −6.365× 106 −4.531× 105 −4.047× 105 −8.334× 105 −1.712× 106
Table 5.6: Stress results for Abaqus and TSDT element: comparison for applied vertical force.
different elements used. For these reasons, it was not considered that the results were discrepant enough
not to validate the model. Further validation that will be performed, will allow to better understand
these differences and infer if this is a isolated problem or a model implementation error.
5.2.2 Comparison with the analytical solution
In [20] are presented analytical solutions for a rectangular laminated plate, using FSDT. Being based
on FSDT, the results from this analytical solution will not be equal to the ones provided by the TSDT
element. However, a proximity between the results is expected and, as discussed previously in chapter 2,
for thin plates (side-to-thickness ratio over 50) the results are expected to converge.
The plate is simply supported on four sides, as it can be seen in figure ??, and is under an uniformly
distributed load, q0.
Figure 5.7: Boundary conditions: simply supported plate [20].
Two different laminates will be used: (0/90/0) and (0/90/90/0), with each ply having the same
thickness. Results for the maximum transverse deflection, wmax, and bending components of stresses,
σxx, σyy, σxy, will be obtained from the TSDT element and compared to the analytical solution. TSDT
results will be obtained using a 25× 25 element mesh.
35
Regarding the problem data used, it was considered a plate of dimensions 1.2 × 1.2m with the load
qo = 10000Pa. For the material properties of each lamina it was assumed E2 = 7GPa, and the remaining
properties as follows:
E1 = 25E2, G12 = G13 = 0.5E2, G23 = 0.2E2, ν12 = 0.25
Maximum transverse deflection
Results for maximum transverse deflection were obtained through Abaqus CAE. In figures 5.8, 5.9 and
5.10 it can be seen the transverse deflection distribution for a/h = 10, a/h = 20 and a/h = 100 respec-
tively for the two laminate used.
The possibility of seeing the distribution of displacements or reaction forces is one of the many
advantages of Abaqus: in this figures it can be seen the element programmed being treated as a regular
Abaqus element, where it is possible to visualize the plate under the distributed load and empirically
understand how the plate is behaving and even predict some of the outcome of the analysis.
Figure 5.8: Transverse deflection distribution for a/h = 10: (0/90/90/0) laminate (left); (0/90/0) lami-nate (right).
Figure 5.9: Transverse deflection distribution for a/h = 20: (0/90/90/0) laminate (left); (0/90/0) lami-nate (right).
As expected, the maximum transverse deflection occurs for the middle of the plate (a/2, b/2) and the
four fixed sides have zero vertical displacement as imposed. Values of the maximum transverse deflection
are presented in table 5.7.
36
Figure 5.10: Transverse deflection distribution for a/h = 100: (0/90/90/0) laminate (left); (0/90/0)laminate (right).
a/h 0/90/0 0/90/90/010 −2.313× 10−5 −2.331× 10−5
20 −1.160× 10−4 −1.188× 10−4
100 −1.153× 10−2 −1.177× 10−2
Table 5.7: Maximum transverse deflection.
Results of the analytical solution are presented in an adimensionalized form. For comparison purposes,
results from the TSDT element were also adimensionalized, as shown:
w̄max = wmaxE2h
3
b4q0× 102 (5.2.1)
Results for the adimensionalized maximum transverse deflection are presented in table 5.8, as well as
the respective analytical solution.
a/h (0/90/0) (0/90/0) (0/90/90/0) (0/90/90/0)TSDT Analytical Solution TSDT Analytical Solution
10 1.3493 1.0219 1.3598 1.025020 0.8458 0.7572 0.8663 0.7694100 0.6726 0.6697 0.6866 0.6833
Table 5.8: Adimensionalized maximum deflection for TSDT element and analytical solution.
As it can be seen, the results from the TSDT element converge to the analytical solution as a/h
increases, that is as the plates gets thinner, as theoretically expected. In fact, the TSDT theory describes
better the behavior of thick plates, for which values of the maximum transverse deflection will deviate
from the analytical solution, as it can be demonstrated for a/h = 10. This ultimately proves the validity
of the model implemented, so far for the displacements only.
Bending components of stresses
From an engineering point of view, when considering a certain load and boundary conditions, it can be
somewhat anticipated where the maximum values for stresses will occur in the plate. These locations are
of the most importance when failure tests are performed, since it is where breaking, weakening or plastic
37
deformation first occurs.
For this reason, if one wishes to compute the values of stresses, it should have first a clear under-
standing of how these stresses will be distributed in the plate, both in-plane and through-thickness, in
order to determine significant values to the study of the plate’s behavior.
In this case, both σxx and σyy will have their maximum values in the same location of the maximum
transverse deflection (a/2, b/2). Furthermore, regarding the location through-thickness, σxx will have its
maximum value in the top surface of the plate (h/2). As for σyy, and given the specific laminates under,
its maximum value occurs in between the laminae, i.e. h/6 for (0/90/0) and h/4 for (0/90/90/0). It
is important to note that these z-locations represent points of discontinuity regarding the stresses: each
lamina will have its own value of stress for that same location. In this case, the greatest of the two values
is the one that will be presented.
Finally, σxy will be computed at the corner (a, b) and for −h/2, where it is expected to reach its
maximum value.
Similar to the maximum transverse deflection, values for the stresses are adimensionalized by,
σ̄xx = σxxh2
b2q0, σ̄yy = σyy
h2
b2q0, σ̄xy = σxy
h2
b2q0(5.2.2)
Values for the (0/90/0) laminate are presented in 5.9, with values evaluated at,
σ̄xx(a/2, b/2, h/2), σ̄yy(a/2, b/2, h/6), σ̄xy(a, b,−h/2).
a/h σ̄xx σ̄xx σ̄yy σ̄yy σ̄xy σ̄xyAnalytical Solution TSDT Analytical Solution TSDT Analytical Solution TSDT
10 0.7719 0.7953 0.3072 0.4225 0.0514 0.031420 0.7983 0.8051 0.2227 0.2566 0.0453 0.0032100 0.8072 0.8057 0.1925 0.1946 0.0426 0.0179
Table 5.9: (0/90/0) laminate - Adimensionalized results for stresses from TSDT element and analyticalsolution.
Values for the (0/90/90/0) laminate are presented in 5.10, with values evaluated at,
σ̄xx(a/2, b/2, h/2), σ̄yy(a/2, b/2, h/4), σ̄xy(a, b,−h/2).
a/h σ̄xx σ̄xx σ̄yy σ̄yy σ̄xy σ̄xyAnalytical Solution TSDT Analytical Solution TSDT Analytical Solution TSDT
10 0.7577 0.7407 0.5006 0.6625 0.0470 0.028120 0.8045 0, 7971 0.3968 0.4514 0.0420 0.0012100 0.8420 0.8208 0.3558 0.3590 0.0396 0.0229
Table 5.10: (0/90/90/0) plate - Adimensionalized results for stresses from TSDT element and analyticalsolution.
Regarding σ̄xx and σ̄yy, results are converging as the plate gets thinner. This fact is consistent with
the theoretical expectation and, even for thicker plates, the difference between the results is not that
38
significant.
Regarding σ̄xy, there is an inconsistency in the results for a/h = 20, even when compared to the
results for other side-to-thickness ratios for the TSDT itself. In fact, if the result for a/h = 20 is ignored,
it seems that a slight convergence exists, taking into consideration that the values are small, despite the
fact that a greater proximity and convergence was expected.
Taking into account the results presented, it can be stated that the model was successfully imple-
mented, for both the single-layer plate with isotropic material and the laminated composite plate with
the orthotropic laminae.
39
40
Chapter 6
Conclusions
Overall, based on the assessment of the model results, it can be stated that the model development and
implementation was successfully achieved. However, some difficulties were encountered, as well as a few
inconsistency in the results. In the next section, the main achievements and a few troublesome issues will
be discussed. Furthermore, a brief discussion of what can be done in the future to further improve this
work will be outlined.
6.1 Achievements
As it was already stated, the implementation of this element had to do with the computation of three
major variables: stiffness matrix, force vector and both strains and stresses.
For a complete validation, all these three quantities must be correctly computed. Taking into account
the model’s development, it is easy to understand that the calculation of the stiffness matrix and the
force vector are related and do not interfere directly with the calculation of both strains and stresses:
it is actually possible to correctly compute the stiffness matrix, without calculating strains and stresses,
despite the opposite not being true. Moreover, the correct or incorrect computation of strains and
stresses will have nothing to do with the computation of reaction forces, displacements, among others,
since Abaqus only needs the correct definition of the stiffness matrix and force vector to compute them.
Having said that, when one compares results for the displacement or reaction force distribution along
the plate, one is in fact demonstrating the correct computation of the stiffness matrix and force vector
by the UEL subroutine. On the other hand, once the validity of the stiffness matrix and force vector
computation is made, if an inconsistency would exist regarding the strains and stresses, then it would be
due to their incorrect computation alone.
First of all, the development and implementation of the isotropic single-layer plate was correctly
achieved, given the results shown for the TSDT element and the Abaqus element. In fact, when the
vertical applied force test was performed, a satisfactory consistency between the results was obtained, for
both the displacement distribution as well as strains and stresses.
Regarding the imposed vertical displacement test, in spite of helping in the model validation, a few
41
difficulties arose, concerning the results representation from Abaqus CAE. In fact, the black voids in
the middle of the plate and constant reaction force for the whole plate, constitute some flaws or bugs of
Abaqus CAE, which is, so far, incapable of correctly computing the results for those locations. What is
even more interesting, at least for the set of tests performed, is that this only occurs for this particular
test. It is the author’s opinion that this has to do with the method that Abaqus uses to solve the system
of equations, which is incapable of solving or representing the correct values for specific locations. A
more thorough investigation is required to give a better explanation to why this occurs.
Regarding the development and implementation of the laminated composite plate model, it was under-
stood that a more thorough validation of results had to be made, so that there were no doubts regarding
the consistency of the model.
The comparison with the Abaqus element allowed to conclude that the stiffness matrix and force
vector were correctly computed, since a consistency in results was obtained regarding the distribution of
vertical displacement. However, concerning strains and stresses, a few inconsistencies appeared, although
not great enough to be significant, as already discussed.
The ultimate validation, performed through a comparison with an analytical solution, allowed to
confirm that the model is valid and was correctly achieved. In fact, the results obtained for the maximum
transverse deflection mean that the stiffness matrix and force vector are well calculated, even more noticing
that the results converge, accordingly to the theoretical expectation. Likewise regarding strains εxx and
εyy and stresses, σxx and σyy.
However, the shear in-plane strain γxy shows some inconsistencies in the results. These inconsistencies
may be due to an error in the model, although the values are very small, which makes it more difficult
to infer if this is due to a numerical error or a systematic error in development or implementation of the
model, which is localized, i.e. only affecting this computation.
All in all, it is the author’s belief that the objective of the present work was successfully achieved,
and the model was correctly implemented. Although some future work can be done, this element now
"exists" for Abaqus and it is possible to use it when analyzing composite plates with this software, which
is definitely a contribute to the study of composite materials.
6.2 Future Work
Despite the fact that the main objective of the present work was successfully achieved, some improvements
can be made: first, a better interaction between the UEL subroutine and the input file can be developed;
second, some exploratory work could be performed regarding the representation flaws or bugs from
Abaqus CAE, trying to mitigate them and get more reliable representations of the results.
In fact, and since this problem occurs even when the analysis is performed using Abaqus elements, it
would be advantageous to understand the reasons for this to happen, so that the analysis performance
could be enhanced.
About the interaction between the UEL subroutine and the input file, two issues remain unresolved.
One is the properties definition in the input file, rather than inside the subroutine. Information was
42
found in Abaqus manual related to the definition of properties in the input file; the problem was how to
get them correctly in the subroutine, specially when dealing with a composite material, having to define
angles and thickness of each ply.
Furthermore, state variables were not interpreted by Abaqus CAE, making it impossible to obtain
results directly from Abaqus, in a similar manner as for an element from Abaqus library. Information
regarding this subject was difficult to find in manuals, so the results for the state variables had to be
printed directly from the UEL subroutine.
Since the ultimate purpose of this work was to implement a new user-defined element that could be
treated as any other element within Abaqus library, improving the interaction between Abaqus and the
UEL subroutine, would mean a step further to work with any new user-defined element as any of the
existing ones, potentiating the types of analysis that could be performed. This would greatly increase
the Abaqus potential in the finite element analysis that could be performed, by the use of more advanced
models with a more accurate description of the response behaviors.
43
44
Bibliography
[1] F. Matthews and R. Rawlings. Composite materials: engineering and science. Woodhead Publishing,
1999.
[2] G. Marsh. Boeing’s 787: trials, tribulations, and restoring the dream. Reinforced Plastics, 53(8):
16–21, 2009.
[3] G. Marsh. Airbus A350 XWB update. Reinforced Plastics, 54(6):20–24, 2010.
[4] G. Marsh. Composites consolidate in commercial aviation. Reinforced Plastics, 60(5):302–305, 2016.
[5] G. Marsh. Composites flying high. Reinforced Plastics, 58(3):14–18, 2014.
[6] G. Marsh. Composites poised to transform airline economics. Reinforced Plastics, 57(3):18–24, 2013.
[7] L. Nyhoff and S. Leestma. FORTRAN 90 for engineers and scientists. Pearson, 1996.
[8] N. Padhye and S. Kalia. Mindlin Plate Theory and Abaqus UEL Implementation. Technical report.
[9] T. Nestorovic, D. Marinkovic, G. Chandrashekar, M. Zoran, and M. Trajkov. Finite Elements in
Analysis and Design. Elsevier, (52):11–22, 2011.
[10] Abaqus 6.12 Online Documentation. 2012.
[11] M. F. Caliri, A. J. Ferreira, and V. Tita. A review on plate and shell theories for laminated and
sandwich structures highlighting the Finite Element Method. Composite Structures, 156:63–77, 2016.
[12] E. Carrera. An assessment of mixed and classical theories on global and local response of multilayered
orthotropic plates. Composite Structures, 50:183–98, 2000.
[13] E. Carrera. Developments, ideas, and evaluations based upon Reissner’s mixed variational theorem
in the modeling of multilayered plates and shells. Applied Mechanical Review, 54:301–29, 2001.
[14] E. Carrera. Theories and finite elements for multilayered, anisotropic, composite plates and shells,
volume 9. 2002.
[15] L. Demasi. Treatment of stress variables in advanced multilayered plate elements based upon Reiss-
ner’s mixed variational theorem. Composite Structures, 84:1215–21, 2008.
[16] L. Demasi. Mixed plate theories based on the generalized unified formulation. Part I: governing
equations. Composite Structures, 87:1–11, 2009.
45
[17] L. Demasi. Mixed plate theories based on the generalized unified formulation. Part II: Layerwise
theories. Composite Structures, 87:12–22, 2009.
[18] E. Carrera. Theories and Finite Elements for Multilayered Plates and Shells: A Unified Compact
Formulation with Numerical Assessment and Benchmarking. Archives of Computational Methods in
Engineering, 10(3):215–296, 2003.
[19] L. Demasi. Hierarchy plate theories for thick and thin composite plates: the generalized unified
formulation. Composite Structures, 84:256–70, 2008.
[20] J. N. Reddy. Mechanics of Laminated Composite Plates - Theory and Analysis. CRC Press, New
York, 1997.
[21] A. Noor. Free vibration of multilayered composite plates. AIAA J., 11:1030–39, 1973.
[22] A. Noor. Stability of multilayered composite plates. Fibre Science and Technology, 8:81–89, 1975.
[23] N. J. Pagano. Exact solutions for composite laminates in cylindrical bending. Composite Materials,
(3):398–411, 1969.
[24] N. J. Pagano. Exact solutions for rectangular bidirectional composites. Composite Materials, (4):
20–34, 1970.
[25] S. Timoshenko and S. Woinowsky-Krieger. Theory of plates and shells. New York: Mc-Graw Hill,
1959.
[26] E. Reissner and Y. Stavsky. Bending and stretching of certain types of heterogeneous aelotropic
elastic plates. Journal of Applied Mechanics, 28:402–8, 1961.
[27] R. Szilard. Theory and analysis of plates (Classical and numerical methods). New Jersey: Prentice-
Hall, 1974.
[28] E. Reissner. The effect of transverse shear deformation on the bending of elastic plates. Journal of
Applied Mechanics, 12(2):69–77, 1945.
[29] R. Mindlin. Influence of rotary inertia and shear on flexural motions of isotropic, elastic plates.
Journal of Applied Mechanics, 18:31–38, 1951.
[30] J. N. Reddy. A simple higher-order theory for laminated composite plates. Journal of Applied
Mechanics, 51:745–52, 1984.
[31] H. Matsunaga. Vibration and stability of cross-ply laminated composite plates according to a global
higher-order plate theory. Composite Structures, 48:231–44, 2000.
[32] T. Kant and K. Swaminathan. Analytical solutions for free vibration of laminated composite and
sandwich plates based on a higher order refined theory. Composite Structures, 53:73–85, 2001.
[33] L. Liu, L. Chua, and D. Ghista. Mesh-free radial basis function method for static, free vibration and
buckling analysis of shear deformable composite laminates. Composite Structures, 78:58–69, 2007.
46
[34] T. Kant, R. Ravichandran, and B. Pandya. Finite element transient dynamic alanysis of isotropic
and fibre reinforced composite plates using a higher-order theory. Composite Structures, 9:319–42,
1988.
[35] R. Clough. Thoughts about the origin of the finite element method. Computers & Structures, 79:
2029–30, 2001.
[36] O. Zienkiewicz. The Finite Element Method. McGraw-Hill, 3rd editio edition, 1977.
[37] J. N. Reddy. An Introduction to the Finite Element Method. McGraw-Hill, 3rd editio edition, 2006.
[38] E. Oñate. Structural Analysis with the Finite Element Method - Linear Statics, volume 1. 1989.
[39] E. Oñate. Structural Analysis with the Finite Element Method, volume 1. 2009.
[40] A. J. Ferreira. Problemas de elementos finitos em Matlab. Gulbenkian, 2010.
[41] K. Bathe. Finite Element Procedures. 2nd editio edition, 2014.
47
48
Appendix A
Single Element Mesh Input File
Example
*Heading** Job name: abaqus_4_elements_lift_up Model name: Model-1*Preprint, echo=NO, model=NO, history=NO, contact=NO*Part, name=Plate**##1–––––––––––––––––––––––––-*Node1, 0., 0., 0.2, 1., 0., 0.3, 2., 0., 0.4, 0., 1., 0.5, 0., 2., 0.6, 1., 2., 0.7, 2., 2., 0.8, 2., 1., 0.**##2–––––––––––––––––––––––––-*USER ELEMENT, TYPE=U1, NODES=8, COORDINATES=3, VAR=90,INTEGRATION=91,2,3,4,5,6,7,8,9##3*ELEMENT,TYPE=U1,ELSET=SOLID1, 1,3,7,5,2,8,6,4*UEL PROPERTY, ELSET=SOLID*Element, type=S8r, ELSET=E02, 1,3,7,5,2,8,6,4***Dummy section*Shell General Section, elset=E0, material=mat11.0e-10,*End Part***Dummy material*Material, name=mat1*Elastic1e-16, 0.3##4–––––––––––––––––––––––––––––** ASSEMBLY*Assembly, name=Assembly***Instance, name=Plate-1, part=Plate
49
*End Instance***Nset, nset=all_elements, instance=Plate-1, generate1, 8, 1*Elset, elset=all_elements, instance=Plate-11,*Nset, nset=_PickedSet13, internal, instance=Plate-17,*Nset, nset=_PickedSet14, internal, instance=Plate-1, generate1, 5, 1*End Assembly##5–––––––––––––––––––––––––––––-** BOUNDARY CONDITIONS** Name: fix_nodes Type: Symmetry/Antisymmetry/Encastre*Boundary_PickedSet14, 1, 1_PickedSet14, 2, 2_PickedSet14, 3, 3_PickedSet14, 4, 4_PickedSet14, 5, 5_PickedSet14, 6, 6_PickedSet14, 7, 7_PickedSet14, 8, 8_PickedSet14, 9, 9##5–––––––––––––––––––––––––––––-** LOADS**** Name: Load-1 Type: Concentrated force*Cload_PickedSet13, 3, -50000**–––––––––––––––––––––––––––––-** STEP: loading*Step, name=loading, nlgeom=NO, inc=100000*Static, direct1., 1.,##6–––––––––––––––––––––––––––––-** OUTPUT REQUESTS*Restart, write, frequency=0** FIELD OUTPUT: F-Output-2*Output, field*Node OutputCF, RF, RM, RT, TF, VF*Element Output, directions=YESBF, CENTMAG, CENTRIFMAG, CORIOMAG, ESF1 , GRAV, HP, NFORC, P, ROTAMAG, SF, TRNOR, TRSHR** FIELD OUTPUT: F-Output-1*Output, field, variable=PRESELECT** HISTORY OUTPUT: H-Output-2*Output, history*Element OutputIRF1 , IRF2 , IRF3 , IRM1 , IRM2 , IRM3** HISTORY OUTPUT: H-Output-1*Output, history, variable=PRESELECT*End Step
50
Appendix B
FORTRAN Code Example
In this appendix, an example from a FORTRAN code is presented. This was the code used for comparison
with the analytical solution, specifically for the (0/90/0) laminate, with a/h = 100, thus 0.004m for the
thickness of each lamina, since the total thickness of the laminate is h = 0.012m and the side of the
plate, a = 1.2m. The properties considered are E2 = 7× 109 Pa and:
E1 = 25E2, G12 = G13 = 0.5E2, G23 = 0.2E2, ν12 = 0.25
SUBROUTINE UEL(RHS ,AMATRX ,SVARS ,ENERGY ,NDOFEL ,NRHS ,NSVARS ,PROPS ,NPROPS ,COORDS ,
MCRD ,NNODE ,U,DU ,V,A,JTYPE ,TIME ,DTIME ,KSTEP ,KINC ,JELEM ,PARAMS ,NDLOAD ,JDLTYP ,ADLMAG ,
PREDEF ,NPREDF ,LFLAGS ,MLVARX ,DDLMAG ,MDLOAD ,PNEWDT ,JPROPS ,NJPROP ,PERIOD)
INCLUDE ’aba_param_dp.inc’
DIMENSION RHS(MLVARX ,*), AMATRX(NDOFEL ,NDOFEL),PROPS (*),SVARS (*), ENERGY (8),
COORDS(MCRD ,NNODE),U(NDOFEL),DU(MLVARX ,*),V(NDOFEL),A(NDOFEL),TIME(2),
PARAMS (*), JDLTYP(MDLOAD ,*), ADLMAG(MDLOAD ,*), DDLMAG(MDLOAD ,*),
PREDEF(2,NPREDF ,NNODE),LFLAGS (*), JPROPS (*)
Double precision , Dimension (72, 1) :: FORCE , V_TEMP
Double precision , Dimension (72, 1) :: U_CONV , DU_CONV
Double precision , Dimension(2, 8) :: DN_8_TRANSPOSE , XY_DERIVATIVES_T
Double precision , Dimension(8, 1) :: N_8
Double precision , Dimension(4, 2) :: IP_COORDS_4
Double precision , Dimension(8, 2) :: DN_8 , COORDS_T , XY_DERIVATIVES
Double precision , Dimension(9, 2) :: IP_COORDS_9 , WEIGHTS
Double precision , Dimension(2, 4) :: DN_S_TRANSPOSE
Double precision , Dimension(2, 2) :: J, INV_J
51
Double precision , Dimension(6, 72) :: M_TEMP
Double precision , Dimension (72, 72) :: M_STIFFNESS , M_TEMP_STIFF
Double precision , Dimension (72, 72) :: M_STIFF
Double precision , Dimension(6, 1) :: V_STRAIN_INCREMENT_BENDING
Double precision , Dimension(6, 1) :: V_STRAIN_INCREMENT_SHEAR
Double precision , Dimension(6, 1) :: V_STRAIN_INCREMENT_MEMBRANE
Double precision , Dimension(6, 72) :: M_B_MAT_SHEAR , M_B_MAT_BENDING ,
M_B_MAT_MEMBRANE , M_B_MAT_MEMBRANE_BENDING
Double precision , Dimension (72, 6) :: M_B_MAT_SHEAR_TRANSPOSE ,
M_B_MAT_BENDING_TRANSPOSE , M_B_MAT_MEMBRANE_TRANSPOSE ,
M_B_MAT_MEMBRANE_BENDING_TRANSPOSE
Double precision , Dimension (6,6) :: M_D_MEMBRANE , M_D_BENDING , M_D_SHEAR
, M_D_MEMBRANE_BENDING
Double precision , Dimension (5,5) :: MAT_CONST
Double precision , Dimension (3,3) :: MAT_CONST_BENDING
Double precision , Dimension (3,1) :: STRAIN_BENDING_VECTOR , STRESS_BENDING_VECTOR
Double precision , Dimension (2,2) :: MAT_CONST_SHEAR
Double precision , Dimension (2,1) :: STRAIN_SHEAR_VECTOR , STRESS_SHEAR_VECTOR
!!!! Define number of laminas !!!!!!!!!!!!!!!!!!!!!
Double precision , Dimension (3) :: LAMINA_THICKNESS , LAMINA_ANGLE , LAMINA_S_E1 ,
LAMINA_S_E2 , LAMINA_S_E3
Double precision , Dimension (3) :: LAMINA_G12 , LAMINA_G13 , LAMINA_G23 ,
LAMINA_S_NU12 , LAMINA_S_NU13 , LAMINA_S_NU23
Double precision :: CHI , ETA , S_E , S_NU , S_INERTIA , S_THICKNESS , ANGLE_DG , PI
Double precision :: S_J_DETERMINANT , H_SUP , H_INF , S_THICKNESS_TEMP , Z_COORD ,
Sigma_xy , Sigma_xy_updated , Sigma_xy_corner
INTEGER :: NDOFEL , NSVARS , NPROPS , MCRD , NNODE , K1 , K2, K3, NUM_IP ,
COMPOSITE_LOOP
INTEGER :: NDOF , NUM_SVAR_PER_IP , POSITION_POINTER , POSITION_POINTER_1 ,
NUM_LAMINAS
!!! Interface needed for including subroutines defined by user !!!
interface [...]
!!Variables initialization !!
52
NUM_IP_9 =9
NUM_IP_4 =4
NUM_SVAR_PER_IP_6 =6
NUM_SVAR_PER_IP_4 =4
PI=4.D0*DATAN (1.D0)
TOTAL_THICKNESS = 0.D0
Sigma_xy_corner =0.D0
COORDS_T=transpose(COORDS)
DO K1 = 1, 72
U_CONV(K1 , 1) = U(K1)
DU_CONV(K1 , 1) = DU(K1 ,1)
END DO
IF (LFLAGS (3).EQ.4) THEN
DO K1=1,72
DO K2=1,72
AMATRX(K1 , K2) = 0.D0
END DO
AMATRX(K1 , K1) = 1.D0
END DO
GOTO 999
END IF
DO K1 = 1,72
DO K2 = 1,72
M_STIFFNESS(K1, K2) = 0.D0
M_STIFF(K1 , K2) = 0.D0
M_TEMP(K1 , K2) = 0.D0
M_TEMP_STIFF(K1 , K2) = 0.D0
END DO
END DO
DO K1 = 1,72
FORCE(K1, 1) = 0.D0
53
V_TEMP(K1 , 1) = 0.D0
END DO
NUM_LAMINAS =3 !Number of laminas
!*************** Property defenition ***********************
!************* Lamina 1*********************************
LAMINA_S_E1 (1) = 175.D9 !Young ’s Modulus
LAMINA_S_E2 (1) = 7.D9
LAMINA_S_E3 (1) = 0.D0
LAMINA_S_NU12 (1) =0.25 D0 !Poisson ’s ratio
LAMINA_S_NU13 (1) =0.D0
LAMINA_S_NU23 (1) =0.D0
LAMINA_G12 (1) = 3.5D9 !Shear Modulus
LAMINA_G13 (1) = 3.5D9
LAMINA_G23 (1) = 1.4D9
ANGLE_DG = 0.D0 !Angle
LAMINA_ANGLE (1) = ANGLE_DG *(PI /180.D0)
LAMINA_THICKNESS (1) = 0.004D0 !Thickness
!************* Lamina 2*********************************
LAMINA_S_E1 (2) = 175.D9 !Young ’s Modulus
LAMINA_S_E2 (2) = 7.D9
LAMINA_S_E3 (2) = 0.D0
LAMINA_S_NU12 (2) =0.25 D0 !Poisson ’s ratio
LAMINA_S_NU13 (2) =0.D0
LAMINA_S_NU23 (2) =0.D0
54
LAMINA_G12 (2) = 3.5D9 !Shear Modulus
LAMINA_G13 (2) = 3.5D9
LAMINA_G23 (2) = 1.4D9
ANGLE_DG = 90.D0 !Angle
LAMINA_ANGLE (2) = ANGLE_DG *(PI /180.D0)
LAMINA_THICKNESS (2) = 0.004D0 !Thickness
!************* Lamina 3*********************************
LAMINA_S_E1 (3) = 175.D9 !Young ’s Modulus
LAMINA_S_E2 (3) = 7.D9
LAMINA_S_E3 (3) = 0.D0
LAMINA_S_NU12 (3) =0.25 D0 !Poisson ’s ratio
LAMINA_S_NU13 (3) =0.D0
LAMINA_S_NU23 (3) =0.D0
LAMINA_G12 (3) = 3.5D9 !Shear Modulus
LAMINA_G13 (3) = 3.5D9
LAMINA_G23 (3) = 1.4D9
ANGLE_DG = 0.D0 !Angle
LAMINA_ANGLE (3) = ANGLE_DG *(PI /180.D0)
LAMINA_THICKNESS (3) = 0.004D0 !Thickness
DO K1=1, NUM_LAMINAS
TOTAL_THICKNESS = TOTAL_THICKNESS+LAMINA_THICKNESS(K1)
END DO
!!!!z coordinate for strains and stresses post -computation !!!!
Z_COORD=-TOTAL_THICKNESS /6.D0
H_SUP = -(TOTAL_THICKNESS /2.D0)
55
!!************** begin of lamina loop ************************!!
DO COMPOSITE_LOOP = 1,NUM_LAMINAS
H_SUP = H_SUP+LAMINA_THICKNESS(COMPOSITE_LOOP)
H_INF = H_SUP -LAMINA_THICKNESS(COMPOSITE_LOOP)
call constituitive_matrix_initialization(LAMINA_ANGLE(COMPOSITE_LOOP),MAT_CONST ,
LAMINA_G12(COMPOSITE_LOOP),LAMINA_G13(COMPOSITE_LOOP),LAMINA_G23(COMPOSITE_LOOP),
LAMINA_S_NU12(COMPOSITE_LOOP),LAMINA_S_NU13(COMPOSITE_LOOP),
LAMINA_S_NU23(COMPOSITE_LOOP),LAMINA_S_E1(COMPOSITE_LOOP),
LAMINA_S_E2(COMPOSITE_LOOP),LAMINA_S_E3(COMPOSITE_LOOP ))
!!IN: properties of the lamina ; OUT: transformed material stiffness matrix !!
call B_matrix_initialization(M_D_MEMBRANE , M_D_BENDING ,
M_D_SHEAR , M_D_MEMBRANE_BENDING , MAT_CONST ,H_SUP ,H_INF)
!!IN: transformed material stiffness matrix , lower and upper surface coordinate;
!!OUT: generalized constitutive matrices !!
call three_by_three_integration_point_coordinates(IP_COORDS_9 ,WEIGHTS ,NUM_IP_9)
!!IN: number of integration points ; OUT: coordinates of integration points
!!and respective weights !!
call two_by_two_integration_point_coordinates(IP_COORDS_4 ,NUM_IP_4)
!!IN: number of integration points ; OUT: coordinates of integration points !!
!!**************** begin of bending effect loop ***********************!!
DO K1 = 1,NUM_IP_9
CHI = IP_COORDS_9(K1 , 1)
ETA = IP_COORDS_9(K1 , 2)
!!coordinates of the integration point currently in use in the effect loop!!
call serendipity_8_node_shape_functions(CHI ,ETA ,N_8 ,DN_8)
!!IN: coordinates of the integration point ;
!!OUT: shape functions and respective derivatives !!
56
DN_8_TRANSPOSE=transpose(DN_8)
J = MATMUL(DN_8_TRANSPOSE ,COORDS_T)
!!Jacobian matrix calculation !!
call matinv2(J,INV_J ,S_J_DETERMINANT)
!!IN: jacobian matrix ; OUT: jacobian matrix inverse ,
!!determinant of jacobian matrix !!
XY_DERIVATIVES_T = MATMUL(INV_J ,DN_8_TRANSPOSE)
!!computation of the derivatives of the shape functions with respect to x,y!!
XY_DERIVATIVES=transpose(XY_DERIVATIVES_T)
DO K2 = 1,6
DO K3 = 1,72
M_B_MAT_BENDING(K2, K3) = 0.D0
END DO
END DO
!!computation of the contribution of bending effect to strains !!
IF(H_INF <= Z_COORD.and.Z_COORD <= H_SUP)THEN
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_BENDING (1, POSITION_POINTER_1 +4)= XY_DERIVATIVES(K2, 1)* Z_COORD
M_B_MAT_BENDING (2, POSITION_POINTER_1 +5)= XY_DERIVATIVES(K2, 2)* Z_COORD
M_B_MAT_BENDING (3, POSITION_POINTER_1 +4)= XY_DERIVATIVES(K2, 2)* Z_COORD
M_B_MAT_BENDING (3, POSITION_POINTER_1 +5)= XY_DERIVATIVES(K2, 1)* Z_COORD
M_B_MAT_BENDING (4, POSITION_POINTER_1 +8)= XY_DERIVATIVES(K2, 1)*( Z_COORD **3)
M_B_MAT_BENDING (5, POSITION_POINTER_1 +9)= XY_DERIVATIVES(K2, 2)*( Z_COORD **3)
57
M_B_MAT_BENDING (6, POSITION_POINTER_1 +8)= XY_DERIVATIVES(K2, 2)*( Z_COORD **3)
M_B_MAT_BENDING (6, POSITION_POINTER_1 +9)= XY_DERIVATIVES(K2, 1)*( Z_COORD **3)
END DO
!!Assembling of B_b matrix with z terms !!
V_STRAIN_INCREMENT_BENDING = MATMUL(M_B_MAT_BENDING ,DU_CONV)
POSITION_POINTER = (K1 - 1)* NUM_SVAR_PER_IP_6 + 1
SVARS(POSITION_POINTER +3) = SVARS(POSITION_POINTER +3)+
V_STRAIN_INCREMENT_BENDING (1,1)+ V_STRAIN_INCREMENT_BENDING (4,1)
SVARS(POSITION_POINTER +4) = SVARS(POSITION_POINTER +4)+
V_STRAIN_INCREMENT_BENDING (2,1)+ V_STRAIN_INCREMENT_BENDING (5,1)
SVARS(POSITION_POINTER +5) = SVARS(POSITION_POINTER +5)+
V_STRAIN_INCREMENT_BENDING (3,1)+ V_STRAIN_INCREMENT_BENDING (6,1)
!!addition of the contribution of bending effect to the strains
!!to the respective positions of the state variables vector !!
END IF
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_BENDING (1, POSITION_POINTER_1 +4) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_BENDING (2, POSITION_POINTER_1 +5) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (3, POSITION_POINTER_1 +4) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (3, POSITION_POINTER_1 +5) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_BENDING (4, POSITION_POINTER_1 +8) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_BENDING (5, POSITION_POINTER_1 +9) = XY_DERIVATIVES(K2 , 2)
58
M_B_MAT_BENDING (6, POSITION_POINTER_1 +8) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (6, POSITION_POINTER_1 +9) = XY_DERIVATIVES(K2 , 1)
END DO
!!assembling of B_b matrix for stiffness matrix computation !!
M_B_MAT_BENDING_TRANSPOSE=transpose(M_B_MAT_BENDING)
M_TEMP= MATMUL(S_J_DETERMINANT*M_D_BENDING ,M_B_MAT_BENDING)
M_TEMP_STIFF = MATMUL(M_B_MAT_BENDING_TRANSPOSE ,M_TEMP)
M_TEMP_STIFF = M_TEMP_STIFF*WEIGHTS(K1 ,1)* WEIGHTS(K1 ,2)
!!computation of the integral B*D*B^T*|J|* WEIGHTS !!
M_STIFFNESS=M_STIFFNESS+M_TEMP_STIFF
!!addition of the local stiffness matrix to the global stiffness matrix !!
END DO
!!****************** end of bending effect loop *********************!!
!!*************** begin of shear effect loop ******************!!
DO K1=1,NUM_IP_4
CHI = IP_COORDS_4(K1 ,1)
ETA = IP_COORDS_4(K1 ,2)
!!coordinates of the integration point currently in use in the effect loop!!
call serendipity_8_node_shape_functions(CHI ,ETA ,N_8 ,DN_8)
!!IN: coordinates of the integration point ;
!!OUT: shape functions and respective derivatives !!
DN_8_TRANSPOSE=transpose(DN_8)
J = MATMUL(DN_8_TRANSPOSE ,COORDS_T)
!!Jacobian matrix calculation !!
call matinv2(J,INV_J ,S_J_DETERMINANT)
!!IN: jacobian matrix ; OUT: jacobian matrix inverse ,
!!determinant of jacobian matrix !!
59
XY_DERIVATIVES_T = MATMUL(INV_J ,DN_8_TRANSPOSE)
!!computation of the derivatives of the shape functions with respect to x,y!!
XY_DERIVATIVES=transpose(XY_DERIVATIVES_T)
DO K2 = 1,6
DO K3 = 1,72
M_B_MAT_SHEAR(K2, K3) = 0.D0
END DO
END DO
IF(H_INF <= Z_COORD.and.Z_COORD <= H_SUP)THEN
MAT_CONST_SHEAR (1,1) = MAT_CONST (4,4)
MAT_CONST_SHEAR (1,2) = MAT_CONST (4,5)
MAT_CONST_SHEAR (2,1) = MAT_CONST (5,4)
MAT_CONST_SHEAR (2,2) = MAT_CONST (5,5)
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_SHEAR (1, POSITION_POINTER_1 +6) = 2.D0*N_8(K2 ,1)* Z_COORD
M_B_MAT_SHEAR (2, POSITION_POINTER_1 +7) = 2.D0*N_8(K2 ,1)* Z_COORD
M_B_MAT_SHEAR (3, POSITION_POINTER_1 +3) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_SHEAR (3, POSITION_POINTER_1 +4) = N_8(K2 ,1)
M_B_MAT_SHEAR (4, POSITION_POINTER_1 +3) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_SHEAR (4, POSITION_POINTER_1 +5) = N_8(K2 ,1)
M_B_MAT_SHEAR (5, POSITION_POINTER_1 +8) = 3.D0*N_8(K2 ,1)*( Z_COORD **2)
M_B_MAT_SHEAR (6, POSITION_POINTER_1 +9) = 3.D0*N_8(K2 ,1)*( Z_COORD **2)
END DO
!!Assembling of B_s matrix with z terms !!
60
V_STRAIN_INCREMENT_SHEAR=MATMUL(M_B_MAT_SHEAR ,DU_CONV)
POSITION_POINTER = (K1 - 1)* NUM_SVAR_PER_IP_4 + 55
SVARS(POSITION_POINTER) = SVARS(POSITION_POINTER )+
V_STRAIN_INCREMENT_SHEAR (1,1)+ V_STRAIN_INCREMENT_SHEAR (3 ,1)+
V_STRAIN_INCREMENT_SHEAR (5,1)
SVARS(POSITION_POINTER +1) = SVARS(POSITION_POINTER +1)+
V_STRAIN_INCREMENT_SHEAR (2,1)+ V_STRAIN_INCREMENT_SHEAR (4 ,1)+
V_STRAIN_INCREMENT_SHEAR (6,1)
!!addition of the shear effect strains to the respective positions
!!of the state variables vector !!
STRAIN_SHEAR_VECTOR (1,1) = SVARS(POSITION_POINTER)
STRAIN_SHEAR_VECTOR (2,1) = SVARS(POSITION_POINTER +1)
STRESS_SHEAR_VECTOR=MATMUL(MAT_CONST_SHEAR ,STRAIN_SHEAR_VECTOR)
SVARS(POSITION_POINTER +2) = STRESS_SHEAR_VECTOR (1,1)
SVARS(POSITION_POINTER +3) = STRESS_SHEAR_VECTOR (2,1)
!!addition of the shear effect stresses to the
!!respective positions of the state variables vector !!
END IF
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_SHEAR (1, POSITION_POINTER_1 +6) = 2.D0*N_8(K2 ,1)
M_B_MAT_SHEAR (2, POSITION_POINTER_1 +7) = 2.D0*N_8(K2 ,1)
M_B_MAT_SHEAR (3, POSITION_POINTER_1 +3) = XY_DERIVATIVES(K2, 1)
M_B_MAT_SHEAR (3, POSITION_POINTER_1 +4) = N_8(K2 ,1)
M_B_MAT_SHEAR (4, POSITION_POINTER_1 +3) = XY_DERIVATIVES(K2, 2)
61
M_B_MAT_SHEAR (4, POSITION_POINTER_1 +5) = N_8(K2 ,1)
M_B_MAT_SHEAR (5, POSITION_POINTER_1 +8) = 3.D0*N_8(K2 ,1)
M_B_MAT_SHEAR (6, POSITION_POINTER_1 +9) = 3.D0*N_8(K2 ,1)
END DO
!!Assembling of B_s matrix for stiffness matrix computation !!
M_B_MAT_SHEAR_TRANSPOSE=transpose(M_B_MAT_SHEAR)
M_TEMP=MATMUL(S_J_DETERMINANT*M_D_SHEAR ,M_B_MAT_SHEAR)
M_TEMP_STIFF=MATMUL(M_B_MAT_SHEAR_TRANSPOSE ,M_TEMP)
!Calculation of the integral B*D*B^T*|J|* WEIGHTS
M_STIFF=M_STIFFNESS+M_TEMP_STIFF
M_STIFFNESS = M_STIFF
!!addition of the local stiffness matrix to the global stiffness matrix !!
END DO
!!************* end of shear effect loop *****************!!
!!*************** begin of membrane effect loop *********************!!
DO K1= 1,NUM_IP_9
CHI = IP_COORDS_9(K1 , 1)
ETA = IP_COORDS_9(K1 , 2)
!!coordinates of the integration point currently in use in the effect loop!!
call serendipity_8_node_shape_functions(CHI ,ETA ,N_8 ,DN_8)
!!IN: coordinates of the integration point ;
!!OUT: shape functions and respective derivatives !!
DN_8_TRANSPOSE=transpose(DN_8)
J = MATMUL(DN_8_TRANSPOSE ,COORDS_T)
62
!!Jacobian matrix calculation !!
call matinv2(J,INV_J ,S_J_DETERMINANT)
!!IN: jacobian matrix ; OUT: jacobian matrix inverse ,
!!determinant of jacobian matrix !!
XY_DERIVATIVES_T = MATMUL(INV_J ,DN_8_TRANSPOSE)
!!computation of the derivatives of the shape functions with respect to x,y!!
XY_DERIVATIVES=transpose(XY_DERIVATIVES_T)
DO K2 = 1,6
DO K3 = 1,72
M_B_MAT_MEMBRANE(K2 , K3) = 0.D0
END DO
END DO
!!computation of the contribution of membrane effect to strains
!!and final computation of strains and stresses !!
IF(H_INF <= Z_COORD.and.Z_COORD <= H_SUP)THEN
MAT_CONST_BENDING (1,1) = MAT_CONST (1,1)
MAT_CONST_BENDING (1,2) = MAT_CONST (1,2)
MAT_CONST_BENDING (1,3) = MAT_CONST (1,3)
MAT_CONST_BENDING (2,1) = MAT_CONST (2,1)
MAT_CONST_BENDING (2,2) = MAT_CONST (2,2)
MAT_CONST_BENDING (2,3) = MAT_CONST (2,3)
MAT_CONST_BENDING (3,1) = MAT_CONST (3,1)
MAT_CONST_BENDING (3,2) = MAT_CONST (3,2)
MAT_CONST_BENDING (3,3) = MAT_CONST (3,3)
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_MEMBRANE (1, POSITION_POINTER_1 +1)= XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (2, POSITION_POINTER_1 +2)= XY_DERIVATIVES(K2, 2)
63
M_B_MAT_MEMBRANE (3, POSITION_POINTER_1 +1)= XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (3, POSITION_POINTER_1 +2)= XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (4, POSITION_POINTER_1 +6)= XY_DERIVATIVES(K2, 1)*( Z_COORD **2)
M_B_MAT_MEMBRANE (5, POSITION_POINTER_1 +7)= XY_DERIVATIVES(K2, 2)*( Z_COORD **2)
M_B_MAT_MEMBRANE (6, POSITION_POINTER_1 +6)= XY_DERIVATIVES(K2, 2)*( Z_COORD **2)
M_B_MAT_MEMBRANE (6, POSITION_POINTER_1 +7)= XY_DERIVATIVES(K2, 1)*( Z_COORD **2)
END DO
!!Assembling of B_m matrix with z terms !!
V_STRAIN_INCREMENT_MEMBRANE = MATMUL(M_B_MAT_MEMBRANE ,DU_CONV)
POSITION_POINTER = (K1 - 1)* NUM_SVAR_PER_IP_6 + 1
SVARS(POSITION_POINTER +3) = SVARS(POSITION_POINTER +3)+
V_STRAIN_INCREMENT_MEMBRANE (1 ,1)+ V_STRAIN_INCREMENT_MEMBRANE (4,1)
SVARS(POSITION_POINTER +4) = SVARS(POSITION_POINTER +4)+
V_STRAIN_INCREMENT_MEMBRANE (2 ,1)+ V_STRAIN_INCREMENT_MEMBRANE (5,1)
SVARS(POSITION_POINTER +5) = SVARS(POSITION_POINTER +5)+
V_STRAIN_INCREMENT_MEMBRANE (3 ,1)+ V_STRAIN_INCREMENT_MEMBRANE (6,1)
!!Addition of the final strains to the respective
!!positions in the state variables vector !!
STRAIN_BENDING_VECTOR (1,1) = SVARS(POSITION_POINTER +3)
STRAIN_BENDING_VECTOR (2,1) = SVARS(POSITION_POINTER +4)
STRAIN_BENDING_VECTOR (3,1) = SVARS(POSITION_POINTER +5)
STRESS_BENDING_VECTOR = matmul(MAT_CONST_BENDING ,STRAIN_BENDING_VECTOR)
SVARS(POSITION_POINTER) = STRESS_BENDING_VECTOR (1,1)
SVARS(POSITION_POINTER +1) = STRESS_BENDING_VECTOR (2,1)
SVARS(POSITION_POINTER +2) = STRESS_BENDING_VECTOR (3,1)
!!Addition of the final stresses to the respective
!!positions in the state variables vector !!
64
IF(CHI ==0.D0.and.ETA ==0.D0)THEN
if(COORDS_T (1 ,1)==0.575999975 D0.and.COORDS_T (1 ,2)==0.575999975 D0
.and.COORDS_T (3 ,1)==0.624000013 D0.and.COORDS_T (3 ,2)==0.624000013 D0)then
print *,’Lamina␣number␣-->’ , COMPOSITE_LOOP
print *,’Sigma␣x’ , SVARS(POSITION_POINTER)
print *,’Sigma␣y’ , SVARS(POSITION_POINTER +1)
print*,’____________________________________ ’
end if
END IF
!!printing of stresses in the locations of interest
IF(COORDS_T (1 ,1)==0.D0.and.COORDS_T (1 ,2)==0.D0)THEN
IF(CHI==-dsqrt (3.d0/5.d0).and.ETA==-dsqrt (3.d0/5.d0))THEN
Sigma_xy=STRESS_BENDING_VECTOR (3,1)
call coordinates_for_sigmaxy_calculation(K1 ,Sigma_xy ,Sigma_xy_updated)
Sigma_xy_corner=Sigma_xy_corner+Sigma_xy_updated
print*, ’Lamina␣number␣-->’,COMPOSITE_LOOP
print *, Sigma_xy_corner
END IF
END IF
!!printing of stresses in the locations of interest
END IF
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_MEMBRANE (1, POSITION_POINTER_1 +1) = XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (2, POSITION_POINTER_1 +2) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (3, POSITION_POINTER_1 +1) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (3, POSITION_POINTER_1 +2) = XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (4, POSITION_POINTER_1 +6) = XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (5, POSITION_POINTER_1 +7) = XY_DERIVATIVES(K2, 2)
65
M_B_MAT_MEMBRANE (6, POSITION_POINTER_1 +6) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (6, POSITION_POINTER_1 +7) = XY_DERIVATIVES(K2, 1)
END DO
!!Assembling of B_m matrix for stiffness matrix computation !!
M_B_MAT_MEMBRANE_TRANSPOSE=transpose(M_B_MAT_MEMBRANE)
M_TEMP= MATMUL(S_J_DETERMINANT*M_D_MEMBRANE ,M_B_MAT_MEMBRANE)
M_TEMP_STIFF = MATMUL(M_B_MAT_MEMBRANE_TRANSPOSE ,M_TEMP)
M_TEMP_STIFF = M_TEMP_STIFF*WEIGHTS(K1 ,1)* WEIGHTS(K1 ,2)
!Calculation of the integral B*D*B^T*|J|* WEIGHTS
M_STIFF=M_STIFFNESS+M_TEMP_STIFF
M_STIFFNESS = M_STIFF
!!addition of the local stiffness matrix to the global stiffness matrix !!
END DO
!!**************** end of membrane effect loop *******************!!
!!****** begin of coupling between membrane and bending effect loop **********!!
DO K1= 1,NUM_IP_9
CHI = IP_COORDS_9(K1 , 1)
ETA = IP_COORDS_9(K1 , 2)
!!coordinates of the integration point currently in use in the effect loop!!
call serendipity_8_node_shape_functions(CHI ,ETA ,N_8 ,DN_8)
!!IN: coordinates of the integration point ;
!!OUT: shape functions and respective derivatives !!
DN_8_TRANSPOSE=transpose(DN_8)
J = MATMUL(DN_8_TRANSPOSE ,COORDS_T)
!!Jacobian matrix calculation !!
66
call matinv2(J,INV_J ,S_J_DETERMINANT)
!!IN: jacobian matrix ; OUT: jacobian matrix inverse ,
!!determinant of jacobian matrix !!
XY_DERIVATIVES_T = MATMUL(INV_J ,DN_8_TRANSPOSE)
!!computation of the derivatives of the shape functions with respect to x,y!!
XY_DERIVATIVES=transpose(XY_DERIVATIVES_T)
DO K2 = 1,6
DO K3 = 1,72
M_B_MAT_MEMBRANE(K2 , K3) = 0.D0
M_B_MAT_BENDING(K2, K3) = 0.D0
END DO
END DO
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_MEMBRANE (1, POSITION_POINTER_1 +1) = XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (2, POSITION_POINTER_1 +2) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (3, POSITION_POINTER_1 +1) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (3, POSITION_POINTER_1 +2) = XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (4, POSITION_POINTER_1 +6) = XY_DERIVATIVES(K2, 1)
M_B_MAT_MEMBRANE (5, POSITION_POINTER_1 +7) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (6, POSITION_POINTER_1 +6) = XY_DERIVATIVES(K2, 2)
M_B_MAT_MEMBRANE (6, POSITION_POINTER_1 +7) = XY_DERIVATIVES(K2, 1)
END DO
!!Assembling of B_m matrix for stiffness matrix computation !!
M_B_MAT_MEMBRANE_TRANSPOSE=transpose(M_B_MAT_MEMBRANE)
67
DO K2=1,8
POSITION_POINTER_1 =(K2 -1)*9
M_B_MAT_BENDING (1, POSITION_POINTER_1 +4) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_BENDING (2, POSITION_POINTER_1 +5) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (3, POSITION_POINTER_1 +4) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (3, POSITION_POINTER_1 +5) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_BENDING (4, POSITION_POINTER_1 +8) = XY_DERIVATIVES(K2 , 1)
M_B_MAT_BENDING (5, POSITION_POINTER_1 +9) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (6, POSITION_POINTER_1 +8) = XY_DERIVATIVES(K2 , 2)
M_B_MAT_BENDING (6, POSITION_POINTER_1 +9) = XY_DERIVATIVES(K2 , 1)
END DO
!!Assembling of B_s matrix for stiffness matrix computation !!
M_B_MAT_BENDING_TRANSPOSE=transpose(M_B_MAT_BENDING)
!********* section Bb^T x Dmb x Bm from the integral ***************
M_TEMP = MATMUL(S_J_DETERMINANT*M_D_MEMBRANE_BENDING ,M_B_MAT_MEMBRANE)
M_TEMP_STIFF = MATMUL(M_B_MAT_BENDING_TRANSPOSE ,M_TEMP)
M_TEMP_STIFF = M_TEMP_STIFF*WEIGHTS(K1 ,1)* WEIGHTS(K1 ,2)
!Calculation of the integral B*D*B^T*|J|* WEIGHTS
M_STIFF=M_STIFFNESS+M_TEMP_STIFF
M_STIFFNESS = M_STIFF
!!addition of the local stiffness matrix to the global stiffness matrix !!
!*********************************************************
!********** section from the integral Bm^T x Dmb x Bb ******************
M_TEMP = MATMUL(S_J_DETERMINANT*M_D_MEMBRANE_BENDING ,M_B_MAT_BENDING)
M_TEMP_STIFF = MATMUL(M_B_MAT_MEMBRANE_TRANSPOSE ,M_TEMP)
68
M_TEMP_STIFF = M_TEMP_STIFF*WEIGHTS(K1 ,1)* WEIGHTS(K1 ,2)
!Calculation of the integral B*D*B^T*|J|* WEIGHTS
M_STIFF=M_STIFFNESS+M_TEMP_STIFF
M_STIFFNESS = M_STIFF
!!addition of the local stiffness matrix to the global stiffness matrix !!
!*****************************************************************
END DO
!!******** end of coupling between membrane and bending effect loop *************!!
END DO
!!******************* end of lamina loop *********************!!
FORCE=MATMUL(M_STIFFNESS ,U_CONV)
!!force vector computation !!
DO K1 = 1,72
RHS(K1 , 1) = -FORCE(K1 , 1)
END DO
!!transferring the values of the force vector to the output variable RHS!!
DO K1 = 1,72
DO K2 = 1,72
AMATRX(K1 , K2) = M_STIFFNESS(K1 , K2)
END DO
END DO
!!transferring the values of the stiffness matrix to the output variable AMATRX !!
999 CONTINUE
RETURN
END
69