Académique Documents
Professionnel Documents
Culture Documents
https://doi.org/10.1007/s11075-018-0516-0
ORIGINAL PAPER
V. Dhanush1 · S. Natarajan1
Abstract In this paper, we employ the virtual element method for the numerical
solution of linear thermo-elastic problems in two dimensions. The framework is
implemented within the commercial software Abaqus using its user element feature.
The implementation details of the virtual element method in Abaqus-Matlab soft-
ware framework are described. The corresponding details on the input data format,
which forms the core of the analysis, are given. Both linear and quadratic elements
are used within the virtual element framework. A few benchmark problems from
linear thermo-elasticity are solved to validate the implementation.
1 Introduction
The introduction of finite elements with arbitrary edges/faces in two and three dimen-
sions has relaxed the topology constraint imposed by the conventional finite element
method (FEM). Based on the pioneering work of Wachspress [1], the elements with
arbitrary sides have led to the development of the polygonal finite element method
(PFEM) [2–5]. The relaxation in the mesh topology reduces the meshing burden
especially when modeling polycrystalline materials [6–8], material with complex
interfaces [9], in large deformation problems [10], to name a few. The PFEM has
also found its application in computer graphics, in gaming industry [11], and in
S. Natarajan
snatarajan@cardiffalumni.org.uk; snatarajan@iitm.ac.in
∇ · q = 0 in , (1a)
∇ · σ = 0 in , (1b)
supplemented with the following boundary conditions:
θ = θ̂ onθ ,
q · n = q̂ on q ,
σ · n = t̂ on t ,
u = û on u , (2)
where θ(x) = T (x) − T0 (x) be the relative increase in the temperature with respect
to the strain-free reference configuration, u is the displacement field, σ is the Cauchy
stress tensor, û, θ̂ are the prescribed displacement and thermal boundary conditions,
n is outward unit vector normal to the boundary, and q is the heat flux. The heat flux
and the Cauchy stress tensor are related to the temperature and the displacement by:
q = −κLθ θ
σ = D · ε − εth (3)
T
where Lθ = ∂x ∂ ∂
∂y , εth = αθ [1 1 0]T is the thermal strain, κ is the thermal
conductivity, α is the coefficient of thermal expansion, D is the material constitutive
matrix, and ε is the linearized small strain, related to the displacements by:
ε = Lu u,
where ⎡ ⎤
∂
⎢ 0 ⎥
⎢ ∂x⎥
⎢ ⎥
⎢
Lu = ⎢ 0 ∂ ⎥. (4)
⎥
⎢ ∂y ⎥
⎣ ⎦
∂ ∂
∂y ∂x
Within the Bubnov-Galerkin framework, we introduce space of scalar valued func-
tion (for heat conduction equation, (1a)) and vector value function (for elasticity
equation, (1b)), as
Vθ = θ ∈ H 1 ()|θ = θ̂ on θ ,
Vu = u ∈ (H 1 ())2 |u = û on u . (5)
Using the divergence theorem and the fact that the test functions vanish on the Dirich-
let boundary θ and u , we obtain the following weak form: find u ∈ Vu and θ ∈ Vθ
such that:
Aθ (ϕ, θ) = Fθ (ϕ)∀ϕ ∈ Wθ ,
Au (u, v) = Fu (v)∀v ∈ Wu , (6)
Numer Algor
where Wu and Wθ are the space of admissible displacement and temperature field,
respectively. The bilinear and the linear forms are given by:
Aθ (ϕ, θ) = ∇ϕ · κ∇θ d, (7a)
Fθ (ϕ) = ϕ q̂d, (7b)
q
Au (u, v) = ε(u)T · D · ε(v)d, (7c)
Fu (v) = v · tdt + tr(ε(v))αθd. (7d)
t
The shape functions over arbitrary polygons are classified as barycentric coordinates
[36] and there are different ways to represent them. For example, the shape func-
tions could be computed by Wachspress interpolants, Laplace interpolants, maximum
entropy shape functions, mean value coordinates, and harmonic coordinates, to name
a few. A detailed overview on the construction of shape functions can be found in
[2]. The shape functions and its derivatives are substituted into (7a) and the resulting
system is solved for the unknown field. One of the difficulty is that the shape func-
tions are rational polynomials, which requires a lot of integration points to integrate
the terms. Moreover, in case of harmonic coordinates, there is no explicit form of
the shape functions, which increases the computational cost. In the next section, the
virtual element method is introduced for the thermo-elastic problem. The unique fea-
ture of the approach is that it does not require an explicit form for the basis functions
to compute the terms in (7a). Moreover, it also alleviates the numerical integration
difficulty encountered in the conventional polygonal FEM.
Evolved from the mimetic difference methods, the virtual element method was
recently developed in [15–17]. It is a Galerkin approach, which can be employed over
Numer Algor
arbitrary polygons. For the development of the matrix formation of VEM, we need to
introduce some notations and matrices which will help us in the easy implementation
of the VEM. Let the domain ⊂ R2 be decomposed into finite set of open, simply
connected polygons, E (see Fig. 1a for a representative decomposition) [16, 17, 29].
In a representative element, E (see Fig. 1b), let xc = (xc , yc ), hE and |E| denote
the centroid, the diameter and the measure of E, respectively. Let ei represent the
edge of the polygon connecting vertices vi and vi+1 and n the unit normal vector to
edge ei .
Fig. 1 a Representative polygonal discretization of the region around the airfoil and b a generic polygonal
element where “open” circles denote the vertex nodes, “filled” squares are the edge nodes, and “open”
square represents the centroid of the element. ni is the unit outward normal to the edge ei connecting the
vertex nodes vi and vi+2
Numer Algor
For each polygon E, a local virtual element space Vk (E) ⊂ Vθ for heat conduction
and Vk (E) ⊂ Vu for elasticity is defined that contains all polynomials of degree k
augmented with some functions whose restriction on an edge is still polynomial of
degree k. A function vh ∈ Vk (E) and vh ∈ Vk (E) has the following properties:
– vh and vh is a polynomial of degree k on each edge e.
– vh and vh on ∂E is globally continuous.
– vh ∈ Pk−2 (E) and ∇ · σ (vh ) ∈ (Pk−2 (E))2 .
Based on the definition of the functions vh ∈ Vk (E), the degrees of freedom in a
generic polygon E are the following:
– the value of vh at the vertices of E
– on each edge e, the value of vh at k − 1 points
– the internal moments of vh in E up to oder k − 2
1
p vh dE, for pα ∈ Pk−2 (E) α = 1, · · · , nk−2 , nk−2 = dim(Pk−2 (E)).
|E| E α
For heat conduction and for vh ∈ Vk (E), the degrees of freedom in a polygon E for
elasticity are the following:
– the value of vh at the vertices of E
– on each edge e, the value of vh at k − 1 internal points
– the internal moments of vh in E up to order k − 2
1
p · vh dE, forpα ∈ Pk−2 (E)2 α = 1, 2...2nk−2 ,
|E| E α
where Pk (E) is the space of polynomials of degree less than or equal to k. A operator
dofi is defined from Vk (E) to R and Vk (E) to R as:
dof
dofi (vh ) := i th degree of freedom of vh , h = 1, · · · , Nθ
dof
dofi (vh ) := i th degree of freedom of vh , h = 1, · · · , Nu ,
dof dof
where Nθ = dim(Vk (E)) and Nu = dim(Vk (E)) are the total degrees of freedom
for an element for heat conduction and elasticity problem, respectively. The basis
functions ψi ∈ Vk (E) and φi ∈ Vk (E) satisfies Lagrange-type interpolation identity
and the Kronecker delta property.
With the local virtual element space defined over each polygon for the heat con-
duction and the elasticity equation, the local bilinear form (see (7a) and (7c)) is
computed next. Consider (7a), to compute the bilinear form, a projection operator
k : Vk (E) → Pk (E) is defined. For every ψi ∈ Vk (E), we can find
k (ψi ) ∈
Pk (E) by minimizing the error with respect to the bilinear norm (see (7a)) as:
j j
Aθ (Hθ , (
k (ψi ) − ψi )) = 0, ∀Hθ ∈ Pk (E). (9)
Numer Algor
where (·)j corresponds to the j th column of (·). Since
k (ψi ) ∈ Pk (E), we can write
k (ψi ) = Hθ S i , then,
j j
Aθ (Hθ , Hθ S ) =
i
(Bθ )T · κ(Bθ )dES i ,
E
j j
Aθ (Hθ , ψi ) = ∇(Hθ )T · κ∇(ψi )dE,
E
j
= ((κBθ ) ) · nψi d − ((κBθ )∇ )T ψi dE,
j T
(10)
E E
x − x
C
where Bθ = Lθ Hθ , (κBθ )∇ = Lθ Bθ , Hθ = 1 x̂ ŷ x̂ 2 x̂ ŷ ŷ 2 and x̂ =
y − y h E
C
and ŷ = . For evaluating the boundary integral in (10) over an element
hE
E, we make use of the Kronecker delta property of the basis functions ψi and Gauss
Lobatto three-point integration rule, to get (c.f. Figure 1b),
i i+2
((κBθ )j )T · n · ψi d = ((κBθ )j )T · ni−1 ) · ψi d + ((κBθ )j )T · ni ) · ψi d.
E i−2 i
The domain integral of (10) is evaluated using the internal DOF of the ψi as:
j j dof
− ((κBθ )∇ )T ·
k−2 (ψi )dE = −|E| ((κBθ )∇ )T · dofβ (ψi ).β = Nθ . (11)
E β
It is observed that for j = 1, (9) results in the identify 0 ≡ 0. To avoid the rank
deficiency, the following projection operators are introduced:
j
Pj (Hθ , Hθ S i − ψi ) = 0,
j 1 j
Pj (Hθ , ψi ) = (H )T · ψi dE, forj = 1, 2 (12)
|E| E θ
dof
For each ψi , (i = 1, 2, 3...Nθ ) the projection
k (ψi ) is computable from (12).
The linear system thus obtained can be written in a compact way as [16, 17]:
i
Gθ S i = B̃θ , (13)
where
i T
B̃θ = P1 (H1θ , ψi ), Aθ (H2θ , ψi ) · · · A(Hnθ k , ψi ) . (14)
Similarly, we can define a projection operator for the elasticity
k : Vk (E) →
(Pk (E))2 . For every φi ∈ Vk (E), there is a
k (φi ) ∈ Pk (E))2 , such that
j j
Au (Hu , (
k (φi ) − φi )) = 0, ∀Hu ∈ (Pk (E))2 . (15)
j
where {Hu }2n k
j =1 is the basis for the polynomial space (Pk (E))2 , given by:
1 0 −ŷ x̂ ŷ x̂ x̂ ŷ 0 x̂ 2 0 ŷ 2 0
Hu = . (16)
0 1 x̂ −ŷ x̂ ŷ 0 x̂ ŷ 0 x̂ 2 0 ŷ 2
Numer Algor
where
⎡ ⎤
0 0 0 1
hE 0 1
hE ( y−y2 C ) 0 ( 2(x−x
2
C)
) 0 0 0
hE hE
⎢ ⎥
Bu = ⎢ − h1E ( (x−x2 C ) ) ( 2(y−y C) ⎥
1
0 0 0 0 0 0 0 0 ) .
⎣ hE hE h2E ⎦
0 0 0 0 2
hE 0 ( (x−x2 C ) ) ( (y−y2 C ) ) 0 ( 2(x−x
2
C)
) ( 2(y−y
2
C)
) 0
hE hE hE hE
and (DBu )∇ = Lu (DBu ). As before, the boundary integral of (18) over an element
E is computed by employing the Kronecker delta property of the basis φi and Gauss
Lobatto three-point integration rule (c.f. Figure 1b):
i i+2
((DBu )j )T · n · φi d = ((DBu )j )T · ni−1 ) · φi d + ((DBu )j )T · ni ) · φi d.
E i−2 i
And the domain integral of the (18) is evaluated using the internal DOF of the φ i ,
j j dof dof
− ((DBu )∇ )T ·
k−2 (φi )dE = −|E| ((DBu )∇ )T ·dofβ (φi ).β = Nu −1, Nu .
E β
(19)
As in the heat conduction equation, the above equation is supplemented with the
following operators to alleviate rank deficiency:
j
Pj (Hu , Hu Ai − φi ) = 0,
j 1 j
Pj (Hu , φi ) = (Hu )T · φi , forj = 1, 2,
|E| E
1
nv
j j
Pj (Hu , φi ) = (dofβ Hu )T · dofβ (φi ), forj = 3. (20)
nv
β=1
dof
For each φi , (i = 1, 2, 3...Nu ) the projection
k (φi ) is computable from (20). The
resultant linear system of equations is written in a compact form as:
i
Gu Ai = B̃u , (21)
Numer Algor
where
i
T
B̃u = P1 (H1u , φi ) P2 (H2u , φi ) P3 (H3u , φi ) A(H4u , φi ) · · · A(H2nk
u , φi ) . (22)
Since we do not have the explicit form of the φi , we need to project φi on to the
(Pk (E))2 space. By using the projection operator
k , we can write the function φi as:
φi =
k (φi ) + (1 −
k )φi . (23)
From the bilinear nature of the operator Au (·, ·), we can write
Au (φi , φj ) = Au (
k φi ,
k φj ) + Au ((1 −
k )φi , (1 −
k )φj ). (24)
The first term ensures consistency and the second term ensures stability. The
consistency part is computed by
Au (
k (φi ),
k (φj )) = (A )
i T
BTu DBu dEAj , (25)
E
= (AT G̃A)i,j . (26)
where G̃u = E BTu DBu dE. The stability part can be evaluated as
dof
Nu
Au ((1 −
k )φi , (1 −
k )φj ) ≈ dofr ((1 −
k )φi )dofr ((1 −
k )φj ).φi (27)
r=1
j
where (Du )i,j = dofi (Hu ) and Gu = B̃u Du . Similarly, we can get the local stiffness
matrix for the heat conduction as:
Aθ = φ̂ T (Lθ ψ)T κ(Lθ ψ)dE θ̂. (29)
E
j
where (Dθ )i,j = dofi (Hθ ) and Gθ = B̃θ Dθ . The linear form in (7d) over each
element E is computed by approximating the load tr(ε(δu)) onto the space of poly-
nomials of degree k, where k := max{k − 2, 0}. The associated loading term is
computed by
tr(ε(v)) · DαθdE ≈ vT AT (Lu Hu )T aDα(Hθ )SdE θ̂ (31)
E
where a = (1, 1, 0)T . The other boundary terms in the linear form in (2) are computed
by using the Kronecker delta property of the basis functions ψ and φi .
Numer Algor
Fig. 2 Schematic of virtual element method and post-processing with UEL framework interfaced with
MATLAB scripts
4 Abaqus implementation
In this section, we describe the major steps in the implementation of UEL for the
VEM in Abaqus. We focus on the subroutines along with the input file. The system
of equations resulting from the above formulations is implemented in the Abaqus
UEL. The overall process is depicted in Fig. 2. A stand-alone MATLAB script is
written to generate an input file in Abaqus readable format. For post-processing and
for visualization, Abaqus2Matlab [37] is employed.
The UEL subroutine performs necessary element computations, such as the calcu-
lation of the element stiffness matrix AMATRX and the right-hand side vector RHS by
accessing the geometrical and material data form the input file through Abaqus vari-
ables COORDS and PROPS. Through the UEL, it is essential to provide the stiffness
and the residual contributions of an element to the system as stated in the Abaqus
manual [35]. The Abaqus solver can be invoked by the command:
abaqus job=<inp file name >user=<fortran file name>
The user element subroutine implementation and the corresponding input file are
discussed with an example of a simple elastic problem shown in the Fig. 3. Listing 4
shows the basic format of the UEL subroutine with the argument list used by Abaqus
to compute the element stiffness matrix, AMATRX, and the residual vector, RHS.
The Abaqus input file contains the geometrical information such as nodal coordi-
nates, the element connectivity, and the information about the boundary. Also, the
input file can include multiple groups of elements and prescribed sets of nodes for
specific input/output purposes such as applying boundary conditions or for post-
processing the results. The Abaqus keywords, *user element and *uel property are
used to invoke user-defined elements and user-defined properties. The first one
describes the nodes, variables, and the coordinates, while the second one describes
the material property associated with a particular element.
Let us consider a simple elastic problem shown in Fig. 3. For illustration, let us
assume that the domain is discretized with three elements with two quadrilateral and
one pentagonal element. The shape functions on the boundary of the element are
assumed to vary quadratically. Listing 1 describes the procedure to define the various
element types. As mentioned before, elements with similar attributes, such as number
of nodes and material properties, are grouped together. The pentagonal element is
listed under the user element with a tag U5, that has 10 nodes, numbered 1 to 10.
The two quadrilateral elements are grouped with a tag *U4 and the corresponding
element connectivity is provided under the keyword *Element.
The details of the other variables are the following:
1. Type=U ∗ : “U ∗ ” is the user-defined tag to identify the element type. Here, “∗ ” is
replaced with a number for identification.
2. Nodes: defines the number of nodes the element has. For example, for the pen-
tagonal element, the number of nodes is 10. This is used by Abaqus to initialize
appropriate size of the global element or local matrices.
3. Properties: takes a numerical value that specifies the total number of properties
needed to define this user element. In the current implementation of the UEL,
two properties, viz., Young’s modulus and Poisson’s ratio in case of elasticity,
and one property, namely, thermal conductivity in case of heat conduction.
4. Coordinates: Takes a numerical value that specifies the spatial dimension of the
problem.
Next in the input file is the specification of the boundary conditions, viz., Neumann
and Dirichlet type boundary conditions (Listings 2 and 3). The keyword *boundary
is used to specify the Dirichlet boundary conditions and the keyword *cload for
the Neumann type boundary conditions. For specifying the boundary conditions, the
node number is specified first, followed by the degree of freedom to constrain and the
last index is for the value to be specified. In this example, the displacements in the
x− direction for the node numbers 1, 5, and 10 are restrained and the displacement
in the y− direction for node number 1 is restrained. A similar procedure is followed
to specify the concentrated load.
The following options are used to provide tabular printed output of element in the
data file.
The UEL for implementing the VEM is written in FORTRAN. The UEL starts by
the name of the subroutine with list of arguments in the parentheses (see Listing
4). For the current implementation, which focuses on linear problems, the two most
important variables to be provided through the UEL are the RHS and AMATRX. The
local stiffness matrices for the heat conduction and the elasticity are computed using
(24) and (29). The RHS is computed from (31). The Abaqus solver constructs the
global stiffness matrix by calling the UEL for each element based on the connectivity
information provided in the input file.
5 Numerical examples
In this section, few benchmark problems in linear elastostatics are solved to val-
idate the Abaqus implementation of the VEM. To demonstrate and to study the
convergence properties, four problems are considered. The first two problems are
subjected to pure mechanical load and the last two examples are subjected to com-
bined thermo-mechanical loads. The problems considered are (a) two-dimensional
cantilever beam with parabolic edge shear traction, (b) Cook’s membrane, (c) con-
centric disk subjected to thermo-mechanical load, and (d) square plate subjected to
thermo-mechanical load. The accuracy and the convergence rates are analyzed for
different methods using relative error in the displacement given by:
(u − uh ), (u − uh )
||u − uh || = , u, uh ∈ (Rd , || · ||), (32)
u, u
where ·, · denotes the usual inner product and d represents the global degrees of
freedom, u is the nodal values of the analytical or reference solution, and uh is the
corresponding numerical solution. In all the numerical examples, consistent units are
employed unless mentioned otherwise.
Consider a cantilever beam with rectangular cross section subjected to point load
P at the free end. The region away from the fixed support and point load can be
Numer Algor
Fig. 4 Thick cantilever beam. a Geometry and boundary conditions and b a representative polygonal
mesh
Numer Algor
Fig. 5 Cantilever beam subjected to shear load. Convergence of the relative error in the a displacement
and b energy
In this example, consider a cantilever beam with varying flexural rigidity as shown
in Fig. 6a. The varying flexural rigidity leads to large moment on the cross section
which was taken by the shear developed, which makes the domain a shear dominant.
Fig. 6 Cook’s membrane. a Geometry and boundary conditions and b representative polygonal
discretization
Numer Algor
The domain is modeled as linear elastic homogeneous material with the following
material properties: Young’s modulus, E = 1, and Poisson’s ratio, ν = 0.25. The
displacements on the left end is restrained in all the directions and a uniform shear
force P = 1 is applied at the right end. As this problem does not have an analytical
Fig. 7 Cook’s membrane subjected to uniform load. a Convergence of the tip displacement (point A) for
linear and quadratic VEM with mesh refinement, h denotes the element size, and b convergence of the
relative error in energy for linear and quadratic VEM
Numer Algor
Fig. 8 Concentric disk:.a Geometry and boundary conditions and b representative polygonal mesh
solution, the reference solution is computed by using a very refined finite element
mesh. The convergence of the tip (point A, see Fig. 6a) is monitored with mesh refine-
ment. The relative error in the tip displacement is shown in Fig. 7 for k = 1 and k =
2. It is opined that the method yields accurate results and converges asymptotically.
Fig. 9 Variation of displacement along the edge AB for a concentric disk subjected to thermo-mechanical load
Numer Algor
Fig. 10 Concentric disk. Relative error in the displacement and the temperature for:a linear elements, k =
1, and b quadratic elements, k = 2
Numer Algor
Fig. 12 Square plate subjected to thermo-mechanical loading. Displacement along the edge AB
6 Concluding remarks
In this work, the virtual element method is implemented within the commercial finite
element software Abaqus for a linear thermo-elastic problem. The implementation
was based on the user element subroutine feature of the Abaqus. The polygonal mesh
generation and the input file generation are done using a stand-alone Matlab script.
The work focused on the main procedures to interact with Abaqus, the structure of the
input file and the user element subroutine to compute the stiffness matrices and the
force vector within the framework of the VEM. Both linear and quadratic VEM are
implemented. The implementation is validated by solving a few benchmark problems
in linear thermo-elasticity. Another interesting aspect would be to investigate if the
edges of the polygon could have different order within the VEM framework. This
Numer Algor
could be a topic of future investigation. The developed routines are in the open-source
and a soft copy of the code can be obtained by contacting the corresponding author.
The UELs could be helpful to practicing engineers and academic researchers.
Acknowledgments The second author would like to thank Prof. Lourenco Beirão da Veiga for the
discussions on the VEM.
Appendix
The developed routines are in the open-source and can be downloaded from
https://github.com/nsundar/VEM in Abaqus
along with the user element subroutines, Matlab-Abaqus interface to generate
Abaqus input file.
References
26. Beirão da Veiga, L., Chernov, A., Mascotto, L., Russo, A.: Numerische Mathematik, pp. 581–613
(2018)
27. Beirão da Veiga, L., Brezzi, F., Marini, L., Russo, A.: Math. Models Methods Appl. Sci. 26(4), 729
(2016)
28. Andersen, O., Nilsen, H.M., Raynaud, X.: arXiv:1606.09508 (2016)
29. Brezzi, F., Marini, L.D.: Comput. Methods Appl. Mech. Eng. 253, 455 (2013)
30. Wriggers, P., Reddy, B.D., Rust, W., Hudobivnik, B.: J. Comput. Mech. 60(2), 253–268 (2017)
31. Berrone, S., Benedetto, M.F., Borio, A., Pieraccini, S., Scialò, S.: PAMM 15(1), 19 (2015)
32. Antonietti, P.F., Bruggi, M., Scacchi, S., Verani, M.: Comput. Math. Appl. 200, 1729 (2011)
33. Ortiz-Bernardin, A., Alvarez, C., Hitschfeld-Kahler, N., Russo, A., Silva-Valenzuela, R., Olate-
Sanzana, E.: arXiv:1708.03438 (2017)
34. Sutton, O.J.: Numer. Algorithm. 75(4), 1141 (2017). https://doi.org/10.1007/s11075-016-0235-3
35. Abaqus, Dassault Systèmes Simulia Corp, Providence (2012)
36. Floater, M.S.: Acta Numerica 24, 161 (2015)
37. Papazafeiropoulos, G., niz Calvente, M.M., neda, E.M.P.: Adv. Eng. Softw. 105, 9 (2017)