1 Introduction

Development of reliable models generally plays a very important role in the overall design of engineering structures. Particularly with regard to smart structures and systems with integrated multi-functional materials, like piezoelectric materials, reliable models enable optimization in early development phases, as well as simulation of the structural behavior and prediction in different what-if scenario cases. Improvement of available tools and fulfillment of special user requirements with regard to modeling of smart piezoelectric thin-walled structures are main motivation for this work. This is also the underlying idea behind the user element implementation carried out in [14], which motivated the authors to contribute to the field of modeling of piezoelectric structures and systems. For this purpose a new shell type finite element (FE) is proposed by one of the authors [10].

Piezoelectric materials gain more and more attention in implementation of smart composite structures (e.g. in some recently published papers [2, 9, 19] static and dynamic analysis of piezoelectric functionally graded beam and plate-like composite structures has been conducted). In order to improve performance of piezoelectric composite structures, e.g. through optimization procedures [16], which play an important role in design process and modeling, a FE based approach has been considered. It is also necessary to model these kinds of structures with appropriate finite elements which promise low computational effort along with accurate numerical prediction of the behavior of the structure [17]. Although some commercial FE software include FEs which could be used for modeling of piezoelectric properties, an appropriate solution for thin-walled shell structures has not been completely developed yet. Piezoelectric finite elements available in commercial FE software packages like ANSYS and ABAQUS are solid elements and application of these elements usually requires a large computational effort, especially with complex geometries [4, 5]. Besides, coupling solid piezoelectric FEs with shell-type basic structures can cause meshing and numeric problems. In an effort to try to overcome these drawbacks numerous researchers have worked on developing 2D FEs which would offer satisfactory accuracy and would be less computationally demanding.

In this regard an active nine-node biquadratic piezoelectric composite shell element was developed by one of the authors of this paper in [10] and named ACShell9. The lack of commercially available piezoelectric shell elements and the drawbacks of combining commercial solid piezoelectric elements with the shell-type structures were our motivation to implement the ACShell9 element within the commercial FE software in order to perform the behavior analysis of thin-walled piezoelectric composite structures under different loading and boundary conditions. Since the ABAQUS software provides an interface for implementation of user defined FEs, it has been considered for the user implementation of ACShell9 in [14]. In the present work, the application has been extended to perform the meshing using the new ACShell9 element [10] and the post-processing of the user defined element for visualization purposes. Comparison between the performance of the degenerated shell element ACShell9 and of the ABAQUS standard piezoelectric solid element has also been carried out.

2 Piezoelectric shell element

The nine-node piezoelectric shell element ACShell9 and its main properties are summarized in this section. Details can be found in [10, 1215]. The element belongs to degenerated shell element family, which was first developed by Ahmad et al. [1] and it is based on the Reissner-Mindlin theory. Ahmad et al. actually developed the eight-node element. As Prathap [17] has concluded, the eight-node degenerate shell element is prone to notable locking effects (even the convergence to a stiffer solution is possible) even with the reduced integration technique applied. On the other hand, the inclusion of the 9th node (i.e. implementation of the full biquadratic shape functions) resolves the issue. The fully integrated element may suffer a suboptimal convergence, while the uniformly reduced integration technique improves the convergence rate significantly [12].

The ACShell9 includes 54 mechanical degrees of freedom (three displacements and three rotations at each of the nine nodes) and additionally \(N_{pe}\) electrical degrees of freedom (see Fig. 1), where \(N_{pe}\) is the number of piezoelectric layers. Each piezoelectric layer is assigned one electrical degree of freedom, which is the difference of electric potentials between the upper and the lower electrode of the piezoelectric layer. Electric potential is assumed to be constant over the surface of the element. This element requires less computational effort than in case of three dimensional solid element and it can be used to model shells of various thickness. Element formulation includes three coordinate systems, as shown in Fig. 1: global cartesian coordinate system \((x, y, z)\), natural coordinate system—an orthonormal system \((r, s, t)\) with \((-1<r\), \(s\), \(t<1)\) and local-running cartesian system \(({x}',{y}',{z}')\).

Fig. 1
figure 1

Nine-node shell element with coordinate systems and equivalent layer-based approach for modeling multi-layered materials

Standard FE procedure is applied [8, 18], where coupled electromechanical behavior for piezoelectric materials is represented in terms of constitutive equations:

$$\begin{aligned} \left\{ \sigma \right\} =\left[ {{C}^{E}} \right] \left\{ \varepsilon \right\} -{{\left[ e \right] }^{T}}\left\{ E \right\} \end{aligned}$$
(1a)
$$\begin{aligned} \left\{ D \right\} =\left[ e \right] \left\{ \varepsilon \right\} +\left[ {{d}^{\varepsilon }} \right] \left\{ E \right\} \end{aligned}$$
(1b)

with following notation: \(\left\{ \sigma \right\} \), \(\left\{ \varepsilon \right\} \) – mechanical stress and strain in vector notation, respectively; \(\left[ {{C}^{E}} \right] \) – matrix of elastic coefficients at constant electric field; \(\left\{ D \right\} \) – the vector of displacements related to electric field; \(\left\{ E \right\} \) – the electric field vector; \({\left[ e \right] }\) – matrix of piezoelectric coupling constants and \({\left[ {d}^{\varepsilon } \right] }\)—matrix of dielectric constants at constant strain. After introducing shape functions and appropriate transformations, the system of equations for linear static analysis can be represented in the following form:

$$\begin{aligned} \left[ {{K}_{uu}} \right] \left\{ {{u}_{e}} \right\} +\left[ {{K}_{u\phi }} \right] \left\{ {{\phi }_{e}} \right\} =\left\{ {{f}} \right\} \end{aligned}$$
(2a)
$$\begin{aligned} \left[ {{K}_{\phi u}} \right] \left\{ {{u}_{e}} \right\} +\left[ {{K}_{\phi \phi }} \right] \left\{ {{\phi }_{e}} \right\} =\left\{ {{q}} \right\} \end{aligned}$$
(2b)

where \(\left[ {{K}_{uu}} \right] \) is the mechanical stiffness matrix, \(\left[ {{K}_{u\phi }} \right] \) the direct piezoelectric coupling matrix, \(\left[ {{K}_{\phi \phi }} \right] \) the dielectric stiffness matrix, \(\left[ {{K}_{\phi u}} \right] \) the inverse piezoelectric coupling matrix, \(\left\{ {{u}_{e}} \right\} \) the element nodal displacement vector, \(\left\{ {{\phi }_{e}} \right\} \) the electric potential vector, \(\left\{ {{f}} \right\} \) the external force vector and \(\left\{ {{q}} \right\} \) the external electric charge vector.

Regarding a more general dynamic case, the inertial and damping terms are included in the element equations. General element formulation, involving the dynamic effects, is discussed in detail in [10]. Accordingly, the linearized semi-discrete form of the governing equations of motion on the element level can be represented as:

$$\begin{aligned}&\left[ M \right] \left\{ {{{\ddot{u}}}_{e}} \right\} +\left[ C \right] \left\{ {{{\dot{u}}}_{e}} \right\}\nonumber \\ &+ \left[ {{K}_{uu}} \right] \left\{ {{u}_{e}} \right\} +\left[ {{K}_{u\phi }} \right] \left\{ {{\phi }_{e}} \right\} =\left\{ f \right\} \end{aligned}$$
(3a)
$$\begin{aligned} \left[ {{K}_{\phi u}} \right] \left\{ {{u}_{e}} \right\} +\left[ {{K}_{\phi \phi }} \right] \left\{ {{\phi }_{e}} \right\} = \left\{ {{q}} \right\} \end{aligned}$$
(3b)

with the mass matrix \(\left[ {{M}} \right] \) and the damping matrix \(\left[ {{C}} \right] \). Details about dynamic formulation as well as the specific stiffness matrix in the static formulation for this element can be found in [10, 14].

The element formulation utilizes the equivalent layer approach as shown in Fig. 1, where some of the layers are piezoelectric layers embedded between the passive layers. The layer-wise analytical integration was applied in the thickness direction while the numerical integration was performed in in-plane directions. The element supports modeling of layers made of orthotropic materials (such as fiber-reinforced composites), thus the need for a local coordinate system becomes prominent. One of the basic requirements for the local coordinate system is that one of its axes (z-axis) should be perpendicular to the reference surface of the structure. Numerical integration and its order play an important role in handling the shear and membrane locking among the shell elements. The ACShell9 element is based on the first-order shear deformation theory, which makes it prone to shear locking effects. However, both the shear and membrane locking are handled in the present formulation by means of uniformly reduced integration technique [10]. The formulation of the stiffness involves 5th order polynomials. Thus, the exact evaluation can be achieved by applying at least three Guass integration points in each direction. Prathap [17] has argued that reduced integration technique is numerically very efficient solution. Ziekiewicz et al. in [20] have found that the \(2\times 2\) rule is the optimal one for general double-curved geometry of the element but it would also cause hour-glass modes although it is not so critical in practical applications. We propose that both the Guassian \(3\times 3\) or the reduced \(2\times 2\) technique should be given as a choice to the user [1012, 16].

The rising need for modeling the piezoelectric structures with FE procedure imposed the implementation in commercial FE software. It has been demonstrated in [16] that the ACShell9 element can be used for modeling of flexible structures when incorporated within the FE software ABAQUS as a user element subroutine. Since the ACShell9 is developed for analysis of any arbitrary shaped shell structures, it becomes necessary to extend the functionality of the application for meshing arbitrary shaped thin structures with nine-node quadrilateral element. For this purpose the Python-based mesh extension by the 9th node has been developed.

3 Implementation of the Python-based mesh upgrade

The ABAQUS scripting interface, which is an extension of the Python object-oriented scripting language, provides a good platform for automation of part generation, material assignment, meshing, applying boundary conditions and submission of analysis jobs. The motivation behind the development of the Python-based mesh upgrade is that the mesh module of the ABAQUS graphical user interface does not support the ABAQUS standard shell element S9R5. Elements S4R5 and S8R5 are the only two quadrilateral elements which are supported by the ABAQUS mesh module [4]. Therefore, the structure is modeled and meshed with S8R5 from ABAQUS/CAE. After the application of appropriate boundary conditions, the temporary input file is exported. Figure 2 illustrates that the Python Generator takes temporary input file generated from ABAQUS/CAE as its input. Python script determines the 9th node locations by interpolation based on the four mid-nodes on the edges of the S8R quadrilateral element from the temporary input file and writes them in CSV (comma separated values) format in the respective files. The Python script also extracts nodes, elements and boundary conditions from the temporary input file and stores them into respective comma separated files. These are included in the user element input file for further analysis. Details of the extracted portion of the Python-based mesh upgrade from Fig. 2 are represented in the flow-chart in Fig. 3.

Fig. 2
figure 2

Flow-chart of the integrated nine-node Python-based mesh upgrade

Fig. 3
figure 3

Detailed portion of the Python-based mesh upgrade

4 Implementation of the user element: numerical examples

Using several numerical examples, in this section we demonstrate the feasibility of the user defined piezoelectric element for modeling of thin-walled structures with plane and curved surfaces. The element implementation enables not only numerical analysis, but also post-processing of the results and their visual representation. In our previous work [14] the accuracy of the ACShell9 element was demonstrated in various cases of inverse (actuator case) and direct (sensor case) piezoelectric effect in analysis using the example of a bimorph piezoelectric beam. In the present work, the numerical examples are carefully chosen with two main aspects: (1) to demonstrate the accuracy of the implemented ACShell9 user defined element in the case of static analysis of thin-walled structures with more than two layers in ABAQUS and (2) to demonstrate the effectiveness of the developed nine-node Python-based mesh upgrade and also to show the post-processing results of the user defined element.

4.1 Clamped beam with active piezoelectric layers

The clamped beam structure is represented in Fig. 4. It consists of the aluminium beam with a pair of piezoceramic patches bonded to the upper and lower surface of the beam as collocated layers. This example was originally considered in [10]. The geometry and dimensions of the beam are represented in Fig. 4 (upper sketch). The thickness of the aluminium beam is 0.5 mm, material properties: Young’s modulus \(\text {7}.0\text {3}\times {{10}^{4}}\,{N}/{\text{m}{{{\text{m}}}^{2}}}\;\) and density \(2.69\times{\text{g/c{{m}}}^{3}}.\ \) Piezoceramic patches have the thickness of 0.2 mm and they are made of PIC151 material with following properties:

$$\begin{aligned}&\text {Hook's matrix}\, [{N}/{\text{m}{\text {m}}}^{2}]\\&\left[\begin{array}{llllll} 1.15\times {{10}^{5}}&7.06\times {{10}^{4}}&7.23\times {{10}^{4}}&&\\&1.15\times {{10}^{5}}&7.23\times {{10}^{4}}&&\\&&1.09\times {{10}^{5}}&&\\&&&1.29\times {{10}^{4}}&\\&Symmetric&&&1.29\times {{10}^{4}}&\\&&&&&2.22\times {{10}^{4}} \end{array} \right]\end{aligned}$$

Piezoelectric constants \({{e}_{31}}={{e}_{32}}=9.6\times {{10}^{-6}}\,[{{C}}/{\text{m}}{{{\text{m}}}^{2}]}\); Dielectric constant \({{d}_{33}}=1.71\times {{10}^{-8}}\,[F/{\text{m}}]\); Density \(\rho =7.80\times {{10}^{-8}}\,[{\text{g}}/{\text{c}}{{{{\text{m}}}}^{3}]}\).

The voltage of 100 V is applied over the electrodes of the patches. The patches are oppositely polarized. Hence their activation produces bending moments uniformly distributed over the edges of the patches.

One of the objectives of the present example is to prove that implemented user defined subroutine is suitable for the linear static analysis of the cantilever beam where part of the surface is covered by a piezoelectric patch. Figure 4 (lower sketch) shows that the user defined active element UEL 1 consists of three layers and the UEL2 consists of a single passive layer. For all user defined active elements, the material properties, thickness of both passive and active layers are passed to the subroutine through UEL1 properties and similarly for the UEL2 passive element, the properties only of the passive layer are passed to subroutine in the input file. Our goal here is to compare through the static analysis the deflections obtained with the ACShell9 user element and with the ABAQUS standard piezoelectric element C3D20E.

Fig. 4
figure 4

Geometry of the beam and modeling by layered elements

Validation of the implemented subroutine is shown in Fig. 5, which represents comparison of the results obtained through three procedures: (1) implementing the ABAQUS user element subroutine for the ACShell9 element, (2) with the ABAQUS standard piezoelectric element C3D20E and (3) by implementing the ACShell9 element within the Finite Element System COSAR [3, 6], as reported in [10]. The results represent direct outputs of the corresponding FE solvers. In order to visualize the deflection of the beam, the post-processing of the results was performed. The lack of the nine-noded shell element in ABAQUS which supports meshing was overcome by Python-based meshing procedure and the visualization was supported by using the ABAQUS standard nine-node element (S9R5) as a “dummy element” having the same nodes and same degrees of freedom as the user element ACShell9. Obtained results are visualized in Fig. 6 (left) and compared with the post-processing results obtained with the ABAQUS standard piezoelectric element C3D20E (right). The transverse displacement in the cantilever beam is provided by the bending moments generated along the edges due to the oppositely polarized piezoelectric patches.

Fig. 5
figure 5

Deflection of the beam due to electric voltage of 100 V applied to the piezo patches

Fig. 6
figure 6

Deflection of the beam: comparison of the post-processing results with the user defined ACShell9 element (left) and with the standard ABAQUS piezoelectric element C3D20E (right)

4.2 Active plate structure

In this example the implemented UEL subroutine was validated by a static analysis of the active plate structure with four piezoelectric patches. The plate is made of steel (Young modulus \(2.07 \times 10^5 \,N/{\text{mm}}^2\), Poisson’s ratio 0.28) and it is clamped over all four edges. Geometry of the structure is represented in Fig. 7, [7, 10]. Four pairs of PIC151 patches are attached to the lower and upper surface of the plate. The symmetry of the model allows the consideration of only one quarter of the plate for the simulation. Similarly to the previous example, the patches of each pair are oppositely polarized, whereby all the patches on one side of the plate have the same polarization. The actuation of the patches is achieved by simultaneously applying the same voltage of 100 V to each of them.

The diagram in Fig. 8 shows the deflection of the plate at the center, for x=0, through comparison of the results obtained using the UEL subroutine with the results obtained using ABAQUS standard piezoelectric hexahedral element C3D20E. Post-processing procedure is validated by implementing the nine-node mesh generator, to show the deflection of the plate. The results for a quarter of the plate are represented in Fig. 9. Deflection of the whole plate is represented in Fig. 10.

Fig. 7
figure 7

Model of active plate clamped at all edges

Fig. 8
figure 8

Deflections for one quarter of the plate, diagram for x=0

Fig. 9
figure 9

Post-processing result—deflection of a quarter of the plate

Fig. 10
figure 10

Post-processing result—deflection of the whole plate

4.3 Cantilevered cylindrical shell with active layers

The example of the cylindrical composite shell clamped on one of its curved edges (Fig. 11) demonstrates the implementation results of the UEL shell element compared with the standard ABAQUS element and the effectiveness of the Python-based mesh upgrade. The basic structure is made of aluminium (\(a\times b=254\times 254\) mm, thickness 0.5 mm) and it is covered by piezoelectric layers made of PIC151 material on the top and bottom surface. The thickness of the piezoelectric layers is 0.2 mm and the material properties are the same as in Sect. 4.1. The actuation is achieved by applying 100 V to each of the piezoelectric layers. To verify results for curved structures, comparison with GiD pre-processor has been performed.

Fig. 11
figure 11

Cantilevered composite shell

Figure 12 represents the results obtained using meshing with the Python nine-node mesh generator, with the GiD pre-processor and with ABAQUS standard element C3D20E. This shows that the nine-node mesh generator can provide good results even a for coarse mesh, too. There would be some small discrepancy when compared to the mesh generated using standard mesh generating software like GiD since they use much more sophisticated algorithms where generated 9th node is exactly inside the domain of the geometry. But in the implemented Python-based mesh upgrade, the interpolated 9th node may not lie on the surface of the geometry, especially when the surface has a sharp curvature. In such cases, the element size should be made smaller. In the following example, it is shown that this drawback can be overcome by using finer mesh for arbitrarily shaped structures with sharp curvatures. It can also be deduced from the graph that the deflections obtained from the user defined subroutine are comparable and approximately equal to the deflections obtained using the ABAQUS standard elements C3D20E. This actually proves that the ACShell9 element implemented in ABAQUS can be used for performing static analysis on arbitrary shaped multi-layered active structures. It also shows that for more accurate results a finer mesh is needed. Figure 13 represents post-processing results for the cylindrical composite shell.

Fig. 12
figure 12

Transverse deflection of the points on free edge of beam

Fig. 13
figure 13

Post-processing: deflection of the cantilevered composite shell

4.4 Active funnel-shaped structure

This particular numerical example demonstrates the effectiveness of the ABAQUS Python-based nine-node mesh upgrade implemented for an arbitrarily shaped curved structure. In this example, the funnel-shaped structure is made of aluminium and it has the thickness of 0.5 mm. It is covered on the top and bottom surface by piezoelectric layers made of PIC151 material. The thickness of the piezoelectric layers is 0.2 mm and the material properties are the same as in Sect. 4.1. The geometry of the funnel is represented in Fig. 14. The lower base of the funnel is clamped. The voltage of 100 V is applied to each of the top and bottom piezoelectric layers.

Fig. 14
figure 14

Geometry of the funnel-shaped structure

Figure 15 shows a good agreement of the results obtained with the Python nine-node mesh upgrade and with the mesh generated using the GiD pre-processor, even for the structures with sharp curvatures. This validates the usability of the Python-based mesh extension for thin-walled shell structures. Post-processing results, displacements using Python mesh generator and GiD meshing, are represented in Fig. 16. Some important properties of the Python nine-node mesh generator are summarized in the following paragraphs.

Fig. 15
figure 15

Displacement along true path of section

Fig. 16
figure 16

Displacement magnitude plot of the funnel-shaped structure: a meshed using GiD pre-processor, b meshed using Python mesh generator

Limitations of the Python nine-node mesh generator

  1. 1.

    The nine-node mesh generator does not directly mesh the model. It has to be first meshed using ABAQUS standard eight-node shell element (S8R). Then the 9th node is calculated by Python-based mesh upgrade. This makes the procedure more demanding and slower in comparison with meshing performed by commercially available meshers and using available standard elements.

  2. 2.

    The position of the 9th node might be of inacceptable accuracy for geometries with pronounced curvatures, if the initial mesh is rather coarse. The analysis results would be influenced in that case by the mesh quality.

Advantages of the Python nine-node mesh generator

  1. 1.

    The proposed Python nine-node mesh upgrade represents a very effective tool, which enables meshing using the ACShell9 element. Despite the fact that the mesh upgrade by the proposed Python code invokes additional meshing costs, it is still an efficient way of adding nodes to elements, when the standard FE library does not provide elements with the adequate number of nodes. Additionally, with a sufficiently fine initial mesh, the position of the added node is determined with a satisfying accuracy.

  2. 2.

    This nine-node Python mesh generator along with ABA-QUS macros to generate model could be used for automation and optimization by remodeling and remeshing by checking some of the parameters after analysis.

  3. 3.

    There is no third party software dependency to mesh the structure with nine-node shell element.

5 Conclusions and outlook

The active beam structure and active plate structure examples highlight the feasibility of the user-defined active elements in conjunction with user-defined passive elements in ABAQUS. The obtained results from the ACShell9 are validated by meshing the equivalent model with ABAQUS standard piezoelectric element C3D20E. The cantilevered cylindrical shell example and the funnel structure example highlight the usability of the Python mesh generator for the arbitrarily shaped curved structures. The nine-node Python mesh generator has been validated using the GiD pre-processor. Finally it can be concluded that the present work can be used to perform static analysis on the arbitrary shaped thin-walled composite structures. Further, the Python generator can be used to upgrade an eight-node element mesh to a nine-node element mesh of any arbitrary thin-walled structures. The general formulation of the ACShell9 element enables dynamic analysis as well. This has been demonstrated in [10], where results for both the modal and transient analyses have been presented. Different methods have been used to resolve transient problems, including implicit and explicit time integration schemes and modal superposition technique. Our motivation for this work was mainly focused on demonstrating the applicability of the element for more complex structures and material systems as well as post-processing. Visualization of the results of dynamic or transient analysis, and especially of interest for vibrating structures – the modal analysis, requires implementation of the element’s mass matrix and further investigation on the solver / post-processor interface. This together with the implementation of the element for geometrically nonlinear analysis are the outlook and the major directions of our ongoing investigations.