1 Introduction

The Kirchhoff plate model is a fourth order partial differential equation which requires \(C^1\)-continuous elements for constructing conforming finite element methods. To avoid this requirement, nonconforming finite elements can be used; one classical example being the Morley triangle [13] which has displacement degrees of freedom in the corner nodes and rotation degrees of freedom at the midpoint of the edges. If we want to solve also for the membrane displacements, it is more straightforward to be able to use only displacement degrees of freedom for both the normal (plate) and tangential (membrane) displacements. To reach this goal, one can instead use the discontinuous Galerkin (dG) method [7], more efficiently implemented as a \(C^0\)-continuous Galerkin method allowing for discontinuous approximation of derivatives, referred to as the continuous/discontinuous Galerkin, or c/dG, method, first suggested by Engel et al. [4], and further developed for plate models by Hansbo et al. [5, 6, 8, 9] and by Wells and Dung [14]. See also Larsson and Larson [12] for error estimates in the case of the biharmonic problem on a surface. To obtain a continuous model, we combine the plate equation for the normal displacements with the tangential differential equation for the membrane from Hansbo and Larson [10] to obtain a structure with both bending resistance and membrane action. This model is then discretised using continuous finite elements for the membrane and c/dG for the plate, using the same order polynomial in both cases.

The standard engineering approach to constructing plate elements arbitrarily oriented in \({\mathbb {R}}^3\) is to use rotation matrices to transform the displacements from a planar element to the actual, common, coordinates, thus transforming the stiffness matrices. In this paper we instead extend the c/dG method to the case of arbitrarily oriented plates, allowing for membrane deformations, directly using Cartesian coordinates in \({\mathbb {R}}^3\). We argue that this makes it simpler to implement discrete schemes in general, and in particular the discontinuous Galerkin terms on the element borders. It also gives an analytical model directly expressed in equilibrium equations in physical coordinates.

A particular feature of our method is the handling of the trace terms in the c/dG method. In the recent paper on dG for elliptic problems on smooth surfaces by Dedner, Madhavan, and Stinner [1] the definition of the normal to the element faces (tangential to the surface), the conormal, was discussed and different variants tested numerically. In our case, where the surface is piecewise smooth (planar), the definition of the conormal at plate junctures is crucial to the equilibrium. It turns out the proper way to define the jumps and averages of trace quantities that are d-linear in the conormal is to compute the trace on the left and right side with the respective unit conormals and adjust the sign on one of the sides with \((-1)^d\). This leads to a generalization of the standard jump and averages in the flat case where a fixed conormal is used for both the left and right side in the definition of the jump. Furthermore, the standard formula, where the jump in a product of two functions is represented as the sum of the two products of the averages and jumps of the two functions, also generalizes to this situation. With these tools at hand we may directly use standard discontinuous Galerkin techniques to derive a finite element method for a plate structure. The resulting method takes the same form as a standard c/dG method for a plate. The only difference is the proper definition of jumps and averages. See also [11], where a similar approach was used for the Laplace-Beltrami operator on a surface with sharp edges.

The outline of the paper is as follows: In Sect. 2 we derive a variational formulation for a plate with arbitrary orientation in \(\mathbb {R}^3\), in Sect. 3 we define the relevant traces, including forces and moments, define the averages and jumps of d-linear forms, and formulate the interface conditions for a plate structure, in Sect. 4 we formulate the finite element method, in Sect. 5 we present numerical examples, and finally we conclude with some remarks in Sect. 6.

2 Single plate

2.1 Tangential differential calculus

Let \(\varGamma \) be a piecewise planar two-dimensional surface imbedded in \({{\mathbb {R}}}^3\), with piecewise constant unit normal \(\varvec{n}\) and boundary \(\partial \varGamma \), split into a Neumann part \(\partial \varGamma _\text {N}\) where forces and moments are known, and a Dirichlet part \(\partial \varGamma _\text {D}\) where rotations and displacements are known. For ease of presentation we shall assume that \(\partial \varGamma _\text {N}=\emptyset \) and that we have zero displacements and rotations on the boundary. The case of \(\partial \varGamma _\text {N}\ne \emptyset \) is straightforward to implement and will be used in the numerical examples. Mixed boundary conditions are handled equally straightforward.

If we denote the (piecewise) signed distance function relative to \(\varGamma \) by \(\zeta (\varvec{x})\), for \(\varvec{x}\in {\mathbb {R}}^3\), fulfilling \(\nabla \zeta = \varvec{n}\), we can define the domain occupied by the shell by

$$\begin{aligned} \varOmega _t = \{\varvec{x}\in {\mathbb {R}}^3: \vert \zeta (\varvec{x}) \vert < t/2\} \end{aligned}$$
(2.1)

where t is the thickness of the shell, which for simplicity will be assumed constant. The closest point projection \(\varvec{p}:\varOmega _t \rightarrow \varGamma \) is given by

$$\begin{aligned} \varvec{p}(\varvec{x}) = \varvec{x}-\zeta (\varvec{x})\varvec{n}(\varvec{x}) \end{aligned}$$
(2.2)

the Jacobian matrix of which is

$$\begin{aligned} \nabla \varvec{p}= \varvec{I}-\zeta \nabla \otimes \varvec{n}-\varvec{n}\otimes \varvec{n}\end{aligned}$$
(2.3)

where \(\varvec{I}\) is the identity and \(\otimes \) denotes exterior product. The corresponding linear projector \(\varvec{P}_\varGamma = \varvec{P}_\varGamma (\varvec{x})\), onto the tangent plane of \(\varGamma \) at \(\varvec{x}\in \varGamma \), is given by

$$\begin{aligned} \varvec{P}_\varGamma := \varvec{I}-\varvec{n}\otimes \varvec{n}\end{aligned}$$
(2.4)

and we can then define the surface gradient \(\nabla _\varGamma \) as

$$\begin{aligned} \nabla _\varGamma := \varvec{P}_\varGamma \nabla \end{aligned}$$
(2.5)

The surface gradient thus has three components, which we shall denote by

(2.6)

For a vector valued function \(\varvec{v}(\varvec{x})\), we define the tangential Jacobian matrix as

(2.7)

and the surface divergence \(\nabla _{\varGamma }\cdot \varvec{v}:= \text {tr}\,\varvec{v}\otimes \nabla _\varGamma \).

2.2 Displacement and strain

Upon loading, each point \(\varvec{x}\in \varOmega _t\), in the plate undergoes a displacement

$$\begin{aligned} \varvec{u}(\varvec{x}) = \varvec{u}_0 (\varvec{p}(\varvec{x}))-\zeta (\varvec{x})\varvec{w}(\varvec{p}(\varvec{x})) \end{aligned}$$
(2.8)

where \(\varvec{u}_0\) and \(\varvec{w}\) are vector fields defined on \(\varGamma \), \(\varvec{u}_0\) arbitrary and \(\varvec{w}\) a tangential vector, \(\varvec{w}\cdot \varvec{n}=0\) on \(\varGamma \), or \(\varvec{w}= \varvec{P}_\varGamma \varvec{\theta }\) with \(\varvec{\theta }\) arbitrary. Thus, neglecting in-plane extensions for the moment, we can write

$$\begin{aligned} \varvec{u}= u_n \varvec{n}-\zeta \varvec{P}_\varGamma \varvec{\theta }\end{aligned}$$
(2.9)

in \(\varOmega _t\). Here \(u_n = \varvec{u}\cdot \varvec{n}\).

We introduce the strain tensor \(\varvec{\varepsilon }\) as

$$\begin{aligned} \varvec{\varepsilon }(\varvec{\theta }) :=\frac{1}{2}\left( \varvec{\theta }\otimes \nabla + (\varvec{\theta }\otimes \nabla )^\mathrm{T}\right) \end{aligned}$$
(2.10)

and define the symmetric part of the tangential Jacobian as

$$\begin{aligned} \varvec{e}_{\varGamma }(\varvec{\theta }) := \frac{1}{2}\left( \varvec{\theta }\otimes \nabla _\varGamma + (\varvec{\theta }\otimes \nabla _\varGamma )^\mathrm{T}\right) \end{aligned}$$
(2.11)

The in-plane strain tensor \(\varvec{\varepsilon }_\varGamma \) is implemented using the following identity

$$\begin{aligned} \varvec{\varepsilon }_\varGamma (\varvec{\theta })&=\varvec{P}_\varGamma \varvec{e}(\varvec{\theta })\varvec{P}_\varGamma \end{aligned}$$
(2.12)
$$\begin{aligned}&=\varvec{e}_{\varGamma }(\varvec{\theta }) - (\varvec{e}_{\varGamma }(\varvec{\theta })\cdot \varvec{n})\otimes \varvec{n}- \varvec{n}\otimes (\varvec{e}_{\varGamma }(\varvec{\theta })\cdot \varvec{n}) \end{aligned}$$
(2.13)

If we write

$$\begin{aligned} \varvec{\theta }= \varvec{P}_\varGamma \varvec{\theta }+ (\varvec{\theta }\cdot \varvec{n})\varvec{n}\end{aligned}$$
(2.14)

then

$$\begin{aligned} \varvec{\varepsilon }_{\varGamma }(\varvec{\theta }) = \varvec{\varepsilon }_{\varGamma }( \varvec{P}_\varGamma \varvec{\theta }) +(\varvec{\theta }\cdot \varvec{n})\varvec{\kappa }\end{aligned}$$
(2.15)

where

$$\begin{aligned} \varvec{\kappa }:= \nabla \otimes \varvec{n}\end{aligned}$$
(2.16)

is the curvature tensor, cf. [2, 3]. For planar \(\varGamma \), \(\varvec{n}\) is constant, and this simplifies to

$$\begin{aligned} \varvec{\varepsilon }_{\varGamma }(\varvec{\theta }) = \varvec{\varepsilon }_{\varGamma }( \varvec{P}_\varGamma \varvec{\theta }) \end{aligned}$$
(2.17)

The total in-plane strain tensor is thus given by

$$\begin{aligned} \varvec{\varepsilon }_{\varGamma }(\varvec{u}) = \varvec{\varepsilon }_{\varGamma }(u_n \varvec{n})-\zeta \varvec{\varepsilon }_{\varGamma }(\varvec{P}_\varGamma \varvec{\theta }) \end{aligned}$$
(2.18)

In [2, 3] it is also shown that the mid-plane rotation in the absence of shear deformation is given by \(2\varvec{e}_{\varGamma }(u_n \varvec{n})\cdot \varvec{n}\), and for shear deformable inextensible shells we thus have the shear deformation vector

$$\begin{aligned} \varvec{\gamma }= \frac{1}{2} \left( 2\varvec{e}_{\varGamma }(u_n\varvec{n})\cdot \varvec{n}- \varvec{P}_\varGamma \varvec{\theta }\right) \end{aligned}$$
(2.19)

It is is also easy to verify that

$$\begin{aligned} \varvec{e}_{\varGamma }(u_n\varvec{n}) = u_n\,\varvec{e}_\varGamma (\varvec{n})+\frac{1}{2}\left( \varvec{n}\otimes \nabla _\varGamma u_n+ (\varvec{n}\otimes \nabla _\varGamma u_n)^\mathrm{T}\right) \end{aligned}$$
(2.20)

so that, since \(\varvec{n}\cdot \nabla _\varGamma u_n = 0\),

$$\begin{aligned} 2\varvec{e}_{\varGamma }(u_n \varvec{n})\cdot \varvec{n}= \nabla _\varGamma u_n +2 \varvec{e}_\varGamma (\varvec{n}) \cdot \varvec{n}\, u_n = \nabla _\varGamma u_n \end{aligned}$$
(2.21)

since \(\varvec{n}\) is constant; thus

$$\begin{aligned} \varvec{\gamma }= \frac{1}{2} \left( \nabla _\varGamma u_n - \varvec{P}_\varGamma \varvec{\theta }\right) \end{aligned}$$
(2.22)

In the tangential setting, the Kirchhoff assumption of zero shear deformations can therefore be written

$$\begin{aligned} \varvec{u}:= u_n\varvec{n}- \zeta \nabla _\varGamma u_n \end{aligned}$$
(2.23)

Furthermore, we find that

$$\begin{aligned} \varvec{\varepsilon }_\varGamma (u_n \varvec{n})&= \varvec{P}_\varGamma \varvec{e}_\varGamma (u_n \varvec{n}) \varvec{P}_\varGamma \end{aligned}$$
(2.24)
$$\begin{aligned}&= \frac{1}{2} \varvec{P}_\varGamma \Big ( ( \nabla _\varGamma u_n) \otimes \varvec{n}+ \varvec{n}\otimes (\nabla _\varGamma u_n) \Big ) \varvec{P}_\varGamma \end{aligned}$$
(2.25)
$$\begin{aligned}&= 0 \end{aligned}$$
(2.26)

and for inextensible plates we get

$$\begin{aligned} \varvec{\varepsilon }_\varGamma (\varvec{u}) = - \zeta \varvec{\varepsilon }_\varGamma (\nabla _\varGamma u_n ) \end{aligned}$$
(2.27)

and in this case we thus only obtain contributions to the strain energy from the displacement field

$$\begin{aligned} \varvec{u}= -\zeta \nabla _\varGamma u_n \end{aligned}$$
(2.28)

2.3 Variational formulations

We shall assume isotropic stress–strain relations,

$$\begin{aligned} \varvec{\sigma }= 2\mu \varvec{\varepsilon }+ \lambda \text {tr}\,\varvec{\varepsilon }\, \varvec{I}\end{aligned}$$
(2.29)

where \(\varvec{\sigma }\) is the stress tensor, and plane stress conditions, for which the Lamé parameters \(\lambda \) and \(\mu \) are related to Young’s modulus E and Poisson’s ratio \(\nu \) via

$$\begin{aligned} \mu = \frac{E}{2(1+\nu )},\quad \lambda =\frac{E\nu }{1-\nu ^2} \end{aligned}$$
(2.30)

For the in-plane stress tensor we find, by projecting (2.29) from left and right,

$$\begin{aligned} \varvec{\sigma }_\varGamma := 2\mu \varvec{\varepsilon }_\varGamma + {\lambda } \text {tr}\varvec{\varepsilon }_\varGamma \, \varvec{P}_\varGamma = 2\mu \varvec{\varepsilon }_\varGamma + {\lambda } \nabla _\varGamma \cdot \varvec{u}\, \varvec{P}_\varGamma \end{aligned}$$
(2.31)

The potential energy of the plate is postulated as

$$\begin{aligned} {{\mathcal {E}}}_\text {P}&:= \frac{1}{2}\int _{-t/2}^{t/2}\int _\varGamma \varvec{\sigma }_\varGamma (\zeta \nabla _\varGamma u) : \varvec{\varepsilon }_\varGamma (\zeta \nabla _\varGamma u)\, d\varGamma d\zeta \nonumber \\&\quad -\int _{-t/2}^{t/2}\int _\varGamma \varvec{f}\cdot \varvec{u}\, d\varGamma d\zeta \end{aligned}$$
(2.32)

where \(\varvec{\sigma }:\varvec{\varepsilon }= \sum _{ij}\sigma _{ij}\varepsilon _{ij}\) for second order Cartesian tensors \(\varvec{\sigma }\) and \(\varvec{\varepsilon }\). Integrating in \(\zeta \), we obtain

$$\begin{aligned} {{\mathcal {E}}}_\text {P} :=&{} \frac{t^3}{24}\int _\varGamma {\varvec{\sigma }}_\varGamma (\nabla _\varGamma u) : {\varvec{\varepsilon }}_\varGamma (\nabla _\varGamma u)\, d\varGamma -t\int _\varGamma \varvec{f}\cdot \varvec{n}\, u\, d\varGamma \end{aligned}$$
(2.33)

Under the assumption of clamped boundary conditions, the corresponding variational problem is to find \(u_n \in H_0^2(\varGamma ) = \{v \in H^2(\varGamma )\) : \(v = \varvec{\nu }\cdot \nabla _\varGamma v = 0\) on \(\partial \varGamma \}\) such that

$$\begin{aligned} \frac{t^3}{12}\int _\varGamma {\varvec{\sigma }}_\varGamma (\nabla _\varGamma u) : {\varvec{\varepsilon }}_\varGamma (\nabla _\varGamma v)\, d\varGamma =t\int _\varGamma \varvec{f}\cdot \varvec{n}v\, d\varGamma \end{aligned}$$
(2.34)

for all \(v\in H^2_0(\varGamma )\).

Introducing also membrane deformations, the total potential energy \({{\mathcal {E}}}_\text {tot}\) of the plate must take into account both the bending energy \({{\mathcal {E}}}_\text {P}\) and the membrane energy \({{\mathcal {E}}}_\text {M}\), so that \({{\mathcal {E}}}_\text {tot}={{\mathcal {E}}}_\text {P}+{{\mathcal {E}}}_\text {M}\), where

$$\begin{aligned} {{\mathcal {E}}}_\text {M}&:= t\int _\varGamma {\varvec{\sigma }}_\varGamma ( \varvec{P}_\varGamma \varvec{u}_0) : {\varvec{\varepsilon }}_\varGamma ( \varvec{P}_\varGamma \varvec{u}_0)\, d\varGamma \nonumber \\&\quad -t \int _\varGamma \varvec{f}\cdot \varvec{P}_\varGamma \varvec{u}_0\, d\varGamma \end{aligned}$$
(2.35)

Since we wish to use a 3D Cartesian vector field we redefine \(\varvec{u}:=\varvec{u}_0\) and \(u_n:=\varvec{n}\cdot \varvec{u}\), make use of (2.17), and introduce the function space

$$\begin{aligned} V=\{\varvec{v}: \;\varvec{P}_\varGamma \varvec{v}\in [H_0^1(\varGamma )]^3, \; v_n = \varvec{v}\cdot \varvec{n}\in H^2_0(\varGamma )\} .\nonumber \\ \end{aligned}$$
(2.36)

We are then led to the variational problem of finding \(\varvec{u}\in V\) such that

$$\begin{aligned}&\frac{t^2}{12} \int _\varGamma {\varvec{\sigma }}_\varGamma (\nabla _\varGamma u_n) : {\varvec{\varepsilon }}_\varGamma (\nabla _\varGamma v_n)\, d\varGamma \nonumber \\&\quad + \int _\varGamma {\varvec{\sigma }}_\varGamma (\varvec{u}) : {\varvec{\varepsilon }}_\varGamma (\varvec{v})\, d\varGamma = \int _\varGamma \varvec{f}\cdot \varvec{v}\, d\varGamma \end{aligned}$$
(2.37)

for all \(\varvec{v}\in V\). Introducing the notation

$$\begin{aligned} \tilde{t} = \frac{t}{\sqrt{12}} \end{aligned}$$
(2.38)

we may write (2.37) in the more compact form

$$\begin{aligned}&\tilde{t}^2\int _\varGamma {\varvec{\sigma }}_\varGamma (\nabla _\varGamma u_n) : {\varvec{\varepsilon }}_\varGamma (\nabla _\varGamma v_n)\, d\varGamma \nonumber \\&\quad + \int _\varGamma {\varvec{\sigma }}_\varGamma (\varvec{u}) : {\varvec{\varepsilon }}_\varGamma (\varvec{v})\, d\varGamma = \int _\varGamma \varvec{f}\cdot \varvec{v}\, d\varGamma \end{aligned}$$
(2.39)

For implementation purposes we note that for \(\varvec{n}\) constant

$$\begin{aligned} \nabla _\varGamma u_n = (\varvec{u}\otimes \nabla _\varGamma )\cdot \varvec{n}\end{aligned}$$
(2.40)

and

(2.41)

2.4 Strong form

The corresponding strong form of the problem is to find \(\varvec{u}= u_n\varvec{n}+ \varvec{P}_\varGamma \varvec{u}\) such that

$$\begin{aligned} \tilde{t}^2\left( \nabla _\varGamma \cdot {\varvec{\sigma }}_\varGamma (\nabla _\varGamma u_n)\right) \cdot \nabla _\varGamma =\varvec{f}\cdot \varvec{n}\end{aligned}$$
(2.42)

and

$$\begin{aligned} -{\varvec{\sigma }}_\varGamma (\varvec{P}_\varGamma \varvec{u})\cdot \nabla _\varGamma =\varvec{P}_\varGamma \varvec{f}\end{aligned}$$
(2.43)

3 Plate structures

3.1 Forces and moments

Consider first a subdomain polygonal subdomain \(\omega \subset \varGamma \) of the plate \(\varGamma \) with boundary \(\partial \omega \) consisting of line segments \(\gamma _i\). Using Greens formula on \(\omega \) we obtain

$$\begin{aligned}&\tilde{t}^2(\nabla _\varGamma \cdot ( \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \nabla _\varGamma ), v_n )_\omega - (\varvec{\sigma }_\varGamma (\varvec{u}_t) \cdot \nabla _\varGamma ,\varvec{v}_t )_\omega \nonumber \\&\quad = -\tilde{t}^2( \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n )\cdot \nabla _\varGamma , \nabla _\varGamma v_n )_\omega + (\varvec{\sigma }_\varGamma (\varvec{u}_t),\nabla _\varGamma \varvec{v}_t )_\omega \nonumber \\&\qquad + \tilde{t}^2(\varvec{\nu }\cdot (\varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \nabla _\varGamma ) , v_n )_{\partial \omega } - ( \varvec{\sigma }_\varGamma (\varvec{u}_t) \cdot \varvec{\nu }, \varvec{v}_t )_{\partial \omega } \end{aligned}$$
(3.1)
$$\begin{aligned}&\quad = \tilde{t}^2(\varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) , \varvec{\varepsilon }_\varGamma (\nabla _\varGamma v_n) )_\omega + (\varvec{\sigma }_\varGamma (\varvec{u}_t),\varvec{\varepsilon }_\varGamma ( \varvec{v}_t ) )_\omega \nonumber \\&\qquad + \tilde{t}^2(\varvec{\nu }\cdot (\varvec{\sigma }_\varGamma (\nabla _\varGamma u_n )\cdot \nabla _\varGamma )\varvec{n}- \varvec{\sigma }_\varGamma (\varvec{u}_t)\cdot \varvec{\nu }, \varvec{v})_{\partial \omega }\nonumber \\&\qquad - \tilde{t}^2(\varvec{\nu }\cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n )\cdot \varvec{\nu }, \nabla _\varGamma v_n)_{\partial \omega } \end{aligned}$$
(3.2)

where we used the identity \(v_n = \varvec{v}\cdot \varvec{n}\) and moved the normal to the first slot in the bilinear form. Letting \(\varvec{\tau }\) be a unit tangent vector to \(\partial \omega \), we may split the last term on the right hand side of (3.2) in normal and tangent contributions as follows

$$\begin{aligned}&( \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }, \nabla _\varGamma v_n)_{\partial \omega } \nonumber \\&\quad =( \varvec{\nu }\cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }, \varvec{\nu }\cdot \nabla _\varGamma v_n)_{\partial \omega } \nonumber \\&\qquad + (\varvec{\tau }\cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }, \varvec{\tau }\cdot \nabla _\varGamma v_n)_{\partial \omega } \end{aligned}$$
(3.3)

where the first term is the bending moment. For the second term on the right hand side (3.3), integrating by parts along one of the line segments \(\gamma _i\), with unit tangent and normal \(\varvec{\tau }_i = \varvec{\tau }|_{\gamma _i}\) and \(\varvec{n}_i = \varvec{n}|_{\gamma _i}\), we obtain

$$\begin{aligned}&(\varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i , \varvec{\tau }_i \cdot \nabla _\varGamma v_n)_{\gamma _i}\nonumber \\&\quad = -( \varvec{\tau }_i \cdot \nabla _\varGamma (\varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i), v_n)_{\gamma _i} \nonumber \\&\qquad + (\varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i , v_n)_{\partial \gamma _i} \end{aligned}$$
(3.4)
$$\begin{aligned}&\quad = -( \varvec{\tau }_i \cdot \nabla _\varGamma ( \varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i)\varvec{n}, \varvec{v})_{\gamma _i} \nonumber \\&\qquad + (\varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i \varvec{n},\varvec{v})_{\partial \gamma _i} \end{aligned}$$
(3.5)

where \(\partial \gamma _i\) consists of the two end points of the line segment \(\gamma _i\). We introduce the following notation

$$\begin{aligned} \varvec{F}&= \varvec{F}_n + \varvec{F}_t \end{aligned}$$
(3.6)
$$\begin{aligned} \varvec{F}_n&= \tilde{t}^2\varvec{\nu }\cdot (\nabla _\varGamma \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ))\varvec{n}\nonumber \\&\quad - \tilde{t}^2\varvec{\tau }_i \cdot \nabla _\varGamma ( \varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i)\varvec{n}\end{aligned}$$
(3.7)
$$\begin{aligned} \varvec{F}_t&= - \varvec{\sigma }_\varGamma (\varvec{u}_t)\cdot \varvec{\nu }\end{aligned}$$
(3.8)
$$\begin{aligned} M&= \tilde{t}^2\varvec{\nu }\cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }\end{aligned}$$
(3.9)

for the normal and tangent components of the force and the moment at each of the line segments \(\gamma \) on \(\partial \omega \). Furthermore, we introduce the corner, or Kirchhoff, forces

$$\begin{aligned} \varvec{F}_{\varvec{x},i}&= \varvec{\tau }_i \cdot \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \varvec{\nu }_i \varvec{n}|_{\varvec{x}} \end{aligned}$$
(3.10)

at a corner \(\varvec{x}\) associated with a line segment \(\gamma _i\), which has \(\varvec{x}\) as one of its endpoints and \(\varvec{\tau }_i\) is the unit tangent vector to \(\gamma _i\) directed into \(\varvec{x}\). We then have the identity

$$\begin{aligned}&\tilde{t}^2(\nabla _\varGamma \cdot ( \varvec{\sigma }_\varGamma (\nabla _\varGamma u_n ) \cdot \nabla _\varGamma ), v_n )_\omega - (\varvec{\sigma }_\varGamma (\varvec{u}_t) \cdot \nabla _\varGamma ,\varvec{v}_t )_\omega \nonumber \\&\quad = \tilde{t}^2(\varvec{\sigma }_\varGamma (\nabla _\varGamma u_n), \varvec{\varepsilon }_\varGamma (\nabla _\varGamma v_n)_\omega + (\varvec{\sigma }(\varvec{u}_t),\varvec{\varepsilon }(\varvec{v}_t))_\omega \nonumber \\&\qquad +(\varvec{F},\varvec{v})_{\partial \omega } - (M,\varvec{\nu }\cdot \nabla _\varGamma v_n )_{\partial \omega } + \sum _{\varvec{x}\in {\mathcal {X}}(\partial \omega )} \sum _{i \in {\mathcal {I}}(x)} \varvec{F}_{\varvec{x},i} \end{aligned}$$
(3.11)

where \({\mathcal {X}}(\partial \omega )\) is the set of corners on the polygonal boundary \(\partial \omega \) and \({\mathcal {I}}(\varvec{x})\) is an enumeration of the two linesegments that has \(\varvec{x}\) as one of its endpoints.

3.2 Jumps and averages

Consider a line segment \(\gamma \) shared by two plates \(\varGamma ^+\) and \(\varGamma ^-\). We note that the force \(\varvec{F}^{\pm }\) is an \(\mathbb {R}^3\) valued 1-form in \(\varvec{\nu }^{\pm }\) and the moment \(M^\pm \) is an \(\mathbb {R}\) valued 2-form in \(\varvec{\nu }^\pm \). More generally let \(w^\pm = w^\pm (\varvec{\nu }^\pm ,\dots \varvec{\nu }^\pm )\) be an \(\mathbb {R}^n\) valued d-linear form in \(\varvec{\nu }^\pm \). Then we define the jump and average at \(\gamma \) by

$$\begin{aligned}{}[w] = w^+ - (-1)^d w^-,\quad \langle w \rangle = \frac{1}{2} ( w^+ + (-1)^d w^- ) \end{aligned}$$
(3.12)

Note that when both plates \(\varGamma ^+\) and \(\varGamma ^-\) reside in the same plane \(\varvec{\nu }^- = -\varvec{\nu }^+\) and we recover, using linearity and the simplified notation \(w^\pm (\varvec{\nu }^\pm ,\dots ,\varvec{\nu }^\pm ) = w(\varvec{\nu }^\pm )\), the standard jump

$$\begin{aligned}{}[w(\varvec{\nu })]&= w^+(\varvec{\nu }^+) - (-1)^d w^-(\varvec{\nu }^-) \end{aligned}$$
(3.13)
$$\begin{aligned}&= w^+(\varvec{\nu }^+) - (-1)^{2d} w^-(\varvec{\nu }^+) \end{aligned}$$
(3.14)
$$\begin{aligned}&= w^+(\varvec{\nu }^+) - w^-(\varvec{\nu }^+) \end{aligned}$$
(3.15)

and similarly for the average. Finally, let \(w^\pm _i\) be an \(\mathbb {R}^n\) valued \(d_i\)-linear form in \(\varvec{\nu }^\pm \), then we note that \((w_1 \cdot w_2)^\pm = w_1^\pm \cdot w_2^\pm \) is an \(\mathbb {R}\) valued \((d_1 + d_2)\)-linear form in \(\varvec{\nu }^\pm \) and we have the identity

$$\begin{aligned}{}[w_1 \cdot w_2 ] = [w_1] \cdot \langle w_2 \rangle + \langle w_1 \rangle \cdot [w_2 ] \end{aligned}$$
(3.16)

where for \(n=1\) the scalar product is just usual multiplication of scalars. We may verify (3.16) by

$$\begin{aligned}{}[w_1 \cdot w_2 ]&= w^+_1 \cdot w^+_2 - (-1)^{(d_1+d_2)} w^-_1 \cdot w^-_2 \end{aligned}$$
(3.17)
$$\begin{aligned}&= w^+_1 \cdot w^+_2 - (-1)^{d_1} w^-_1 \cdot (-1)^{d_2} w^-_2 \end{aligned}$$
(3.18)
$$\begin{aligned}&= w^+_1 \cdot w^+_2 - \widetilde{w}^-_1\cdot \widetilde{w}^-_2 \end{aligned}$$
(3.19)
$$\begin{aligned}&= (w^+_1 - \widetilde{w}^-_1 ) \cdot \frac{w^+_2 + \widetilde{w}^-_2}{2}\nonumber \\&\quad + \frac{w^+_1 + \widetilde{w}^-_1}{2} \cdot (w^+_2 - \widetilde{w}^-_2) \end{aligned}$$
(3.20)
$$\begin{aligned}&=[w_1] \cdot \langle w_2 \rangle + \langle w_1 \rangle \cdot [ w_2 ] \end{aligned}$$
(3.21)

3.3 Interface conditions

Consider now a plate structure consisting of a finite number of plates such that at most two plates intersect in a common line segment. For simplicity we consider clamped boundary conditions on the boundary of the structure and focus our attention on the interface conditions at the intersections between the plates. For each line segment \(\gamma \) where two plates \(\varGamma ^+\) and \(\varGamma ^-\) intersect we have the interface conditions

$$\begin{aligned} 0&=[ \varvec{u}] \end{aligned}$$
(3.22)
$$\begin{aligned} 0&=[\varvec{\nu }\cdot \nabla _\varGamma u_n ] \end{aligned}$$
(3.23)
$$\begin{aligned} 0&=[\varvec{F}] \end{aligned}$$
(3.24)
$$\begin{aligned} 0&=[M] \end{aligned}$$
(3.25)

corresponding to continuity of displacements, continuity of the rotation angle, equilibrium of forces, and equilibrium of moments.

Furthermore, at each corner \(\varvec{x}\), not residing on the boundary of the structure, we require equilibrium of the Kirchhoff forces

$$\begin{aligned} 0 = \sum _{i \in {\mathcal {I}}(\varvec{x})} \varvec{F}^+_{\varvec{x},i} + \varvec{F}^-_{\varvec{x},i} \end{aligned}$$
(3.26)

where \({\mathcal {I}}(\varvec{x})\) is an enumeration of the line segments that meet in the corner \(\varvec{x}\) and \(\varvec{F}^\pm _{\varvec{x},i}\) is the Kirchhoff force emanating from plate \(\varGamma _i^\pm \), the two plates that meet in line segment i. In other words, there are two contributions associated with each line segment, one for each of the two plates that share the line segment.

4 Finite element formulation

4.1 The mesh and finite element space

Let \(\widehat{K}\subset \mathbb {R}^2\) be a reference triangle and let \(P_{2}(\widehat{K})\) be the space of polynomials of order less or equal to 2 defined on \(\widehat{K}\). Let \(\varGamma \) be triangulated with quasi uniform triangulation \({\mathcal {K}}_{h}\) and mesh parameter \(h\in (0,h_0]\) such that each triangle \(K=F_{K}(\widehat{K})\) is planar (a subparametric formulation). We let \({\mathcal {E}}_{h}\) denote the set of edges in the triangulation.

We here extend the discontinuous Galerkin method of Dedner et al. [1] for the Laplace–Beltrami operator to the case of the plate. We recall that \(\varGamma \) is piecewise planar and thus \(\varvec{n}\) is a piecewise constant exterior unit normal to \(\varGamma \).

For the parametrization of \(\varGamma \) we wish to define a map from a reference triangle \(\widehat{K}\) defined in a local coordinate system \((\xi , \eta )\) to any given triangle K on \(\varGamma \). Thus the coordinates of the discrete surface are functions of the reference coordinates inside each element, \(\varvec{x}_{\varGamma } = \varvec{x}_{\varGamma }(\xi , \eta )\). For any given parametrization, we can extend it to \(\varOmega _t\) by defining

$$\begin{aligned} \varvec{x}(\xi ,\eta ,\zeta ) := \varvec{x}_{\varGamma }(\xi , \eta )+\zeta \,\varvec{n}(\xi ,\eta ) \end{aligned}$$
(4.1)

where \(-t/2 \le \zeta \le t/2\) and \(\varvec{n}\) is the normal to \(\varGamma \).

We consider in particular a finite element parametrization of \(\varGamma \) as

$$\begin{aligned} \varvec{x}_{\varGamma }(\xi ,\eta )= \sum _i\varvec{x}_i\psi _i(\xi ,\eta ) \end{aligned}$$
(4.2)

where \(\varvec{x}_i\) are the physical location of the (geometry representing) nodes on the initial midsurface and \(\psi _i(\xi ,\eta )\) are affine finite element shape functions on the reference element. (This parametrization is of course exact in the case of a piecewise planar \(\varGamma \).)

For the approximation of the displacement, we use a constant extension,

$$\begin{aligned} \varvec{u}\approx \varvec{u}^h = \sum _i\varvec{u}_i\varphi _i(\xi ,\eta ) \end{aligned}$$
(4.3)

where \(\varvec{u}_i\) are the nodal displacements, and \(\varphi _i\) are piecewise quadratic shape functions. We employ the usual finite element approximation of the physical derivatives of the chosen basis \(\{\varphi _i\}\) on the surface, at \((\xi ,\eta )\), in matrix representation, as

(4.4)

where \({\varvec{J}}(\xi ,\eta ,\zeta ) := \nabla _{\varvec{\xi }}\otimes \varvec{x}\). This gives, at \(\zeta =0\),

(4.5)

By (4.1) we explicitly obtain

$$\begin{aligned} \left. \frac{\partial \varvec{x}}{\partial \zeta }\right| _{\zeta =0}=\varvec{n}\end{aligned}$$
(4.6)

so

(4.7)

We can now introduce finite element spaces constructed from the basis previously discussed by defining

$$\begin{aligned} W^h := {}&\{ v: {v\vert _T \circ F_K\in P^2(\widehat{K}),\; \forall K\in \mathcal {K}_h};\nonumber \\ {}&v\; \in C^0(\varGamma ),\; v=0\,\text {on } \partial \varGamma _{\text {D}}\} \end{aligned}$$
(4.8)

We also need the set of interior edges defined by

$$\begin{aligned} {\mathcal {E}}_h^\text {I}&:=\{E = K^+ \cap K^-: K^+, K^- \in {\mathcal {K}}_h \} \end{aligned}$$
(4.9)

and the set of boundary edges on the Dirichlet part of the boundary

$$\begin{aligned} {\mathcal {E}}_h^\text {D}&:= \{ E = K \cap \partial \varGamma _\text {D}: \; K \in {\mathcal {K}}_{h} \} \end{aligned}$$
(4.10)

To each interior edge E we associate the conormals \(\varvec{\nu }^{\pm }_E\) given by the unique unit vector which is tangent to the surface element \(K^{\pm }\), perpendicular to E and points outwards with respect to \(K^{\pm }\). Note that the conormals \(\varvec{\nu }_E^{\pm }\) may lie in different planes at junctions between different plates. The jump and average of multilinear forms for edges \(E \in {\mathcal {E}}_h^I\) are defined by (3.12). For edges \(E \in {\mathcal {E}}_h^D\) it is convenient to use the notation

$$\begin{aligned} \langle w \rangle = [w] = w \end{aligned}$$
(4.11)

4.2 The method

Our finite element method takes the form: find \({\varvec{U}}\in \varvec{V}_h := [W_h]^3\) such that

$$\begin{aligned} A_h({\varvec{U}},\varvec{v}) = l_h(\varvec{v}) \quad \forall \varvec{v}\in \varvec{V}_h \end{aligned}$$
(4.12)

Here the bilinear form \(A_h(\cdot , \cdot )\) is defined by

$$\begin{aligned} A_h(\varvec{v},\varvec{w})&:= a_h^\text {P}(\nabla _{\varGamma } v_n,\nabla _{\varGamma } w_n ) + a_h(\varvec{v}_t,\varvec{w}_t) \end{aligned}$$
(4.13)

with \(\varvec{v}= v_n \varvec{n}+ \varvec{v}_t\) and

$$\begin{aligned} a_h(\varvec{v}_t,\varvec{w}_t) := \sum _{K\in {\mathcal {K}}_h}( {\varvec{\sigma }}_{\varGamma }({\varvec{v}}_t),{\varvec{\varepsilon }}_{\varGamma }({\varvec{w}}_t))_{K} \end{aligned}$$
(4.14)

where \((\cdot ,\cdot )_\omega \) denotes the \(L_2(\omega )\) scalar product, and

$$\begin{aligned} a_h^\text {P}(\varvec{v},\varvec{w}) := {}&\tilde{t}^2a_h(\varvec{v}_t,\varvec{w}_t) \nonumber \\&{} -\sum _{E \in {\mathcal {E}}_h^\text {I}\cup {\mathcal {E}}_h^\text {D}}(\langle {M(\varvec{v})} \rangle ,[\varvec{\nu }_E\cdot \varvec{w}])_E \nonumber \\&{} -\sum _{E \in {\mathcal {E}}_h^\text {I}\cup {\mathcal {E}}_h^\text {D}}(\langle {M(\varvec{w})} \rangle ,[\varvec{\nu }_E\cdot \varvec{v}])_E \nonumber \\&{} +\frac{\beta \tilde{t}^2}{h}\sum _{E \in {\mathcal {E}}_h^\text {I}\cup {\mathcal {E}}_h^\text {D}}([\varvec{\nu }_E\cdot \varvec{v}],[\varvec{\nu }_E\cdot \varvec{w}])_E \end{aligned}$$
(4.15)

Here \(\beta =\beta _0(2\mu +2\lambda )\) where \(\beta _0\) is an O(1) constant, cf. [9], and we also recall that the factor \(\tilde{t}^2\) is included in the definition (3.9) of the moment M. The right hand side is given by

$$\begin{aligned} l_h(\varvec{v}) := ( \varvec{f}, \varvec{v})_{\varGamma } \end{aligned}$$
(4.16)

This is a c/dG method closely related to the one studied in [9], with the difference of being formulated in an arbitrary orientation in \({\mathbb {R}}^3\), including membrane deformations, and extended to structures of plates.

We note that:

  • The continuity of displacement (3.22) is strongly enforced since \(\varvec{V}_h\) consists of continuous functions.

  • The continuity of the rotation angle (3.23) is weakly enforced by the discontinuous Galerkin method.

  • The force equilibrium conditions (3.24) and (3.26) are weakly enforced but does not give rise to any additional terms in the formulation since \(\varvec{V}_h\) consists of continuous functions.

  • The moment equilibrium condition (3.25) is weakly enforced by the discontinuous Galerkin method.

More precisely, consider an edge \(E \in {\mathcal {E}}^I_h\) shared by two elements \(K^+\) and \(K^-\). Multiplying the exact equation by a test function \(\varvec{v}\in \varvec{V}_h\) and using Green’s formula element wise generates the following contribution at the edge E,

$$\begin{aligned}&(\varvec{F}^+,\varvec{v}^+)_\gamma + (\varvec{F}^-,\varvec{v}^-)_E \end{aligned}$$
(4.17)
$$\begin{aligned}&- (M^+, \varvec{\nu }^+_E \cdot v_n^+)_E + (M^+, \varvec{\nu }^+ \cdot v_n^+)_E \end{aligned}$$
(4.18)

where \(\varvec{F}^\pm = \varvec{F}^\pm (\varvec{u})\) and \(M^\pm = M^\pm (\varvec{u})\). For the first term we have using the continuity of \(\varvec{v}\) and (3.6),

$$\begin{aligned} (\varvec{F}^+,\varvec{v}^+)_E + (\varvec{F}^-,\varvec{v}^-)_E=([\varvec{F}],\varvec{v})_E=0 \end{aligned}$$
(4.19)

For the second term we note that the integrand may be written

$$\begin{aligned} M^+ \varvec{\nu }^+_E \cdot v_n^+ + M^+ \varvec{\nu }^+ \cdot v_n^+ = [ M \varvec{\nu }\cdot v_n ] \end{aligned}$$
(4.20)

where we used the fact that \(M^\pm \) is 2-linear in \(\varvec{\nu }^\pm \), see (3.9), and \(\varvec{\nu }^\pm \cdot \nabla _\varGamma v^\pm _n\) is 1-linear in \(\varvec{\nu }\), and thus \(M^\pm \varvec{\nu }^\pm \cdot \nabla _\varGamma v^\pm _n\) is 3-linear in \(\varvec{\nu }^\pm \), together with the definition (3.12) of the jump to write the sum as a jump. Next using (3.16) we get

$$\begin{aligned}{}[M \varvec{\nu }\cdot \nabla _\varGamma v_n ]&=[M] \langle \varvec{\nu }\cdot \nabla _\varGamma v_n \rangle +\langle M \rangle [ \varvec{\nu }\cdot \nabla _\varGamma v_n ] \end{aligned}$$
(4.21)
$$\begin{aligned}&= \langle M \rangle [ \varvec{\nu }\cdot \nabla _\varGamma v_n ] \end{aligned}$$
(4.22)

since \([M] = 0\) according to (3.25). Thus the second term takes the form

$$\begin{aligned}&- (M^+(\varvec{u}), \varvec{\nu }^+_E \cdot \nabla _\varGamma v_n^+)_E - (M^+(\varvec{u}), \varvec{\nu }^+ \cdot \nabla _\varGamma v_n^+)_E \end{aligned}$$
(4.23)
$$\begin{aligned}&\quad = - ( \langle M(\varvec{u}) \rangle , [ \varvec{\nu }\cdot \nabla _\varGamma v_n ] )_E \end{aligned}$$
(4.24)
$$\begin{aligned}&\quad = -( \langle M(\varvec{u}) \rangle , [ \varvec{\nu }\cdot \nabla _\varGamma v_n ] )_E \nonumber \\&\qquad - ( \langle M(\varvec{v}) \rangle , [ \varvec{\nu }\cdot \nabla _\varGamma u_n ])_E \end{aligned}$$
(4.25)

where at last we symmetrized using the fact that the added term is zero by (3.23) and we included the dependency \(M = M(\varvec{u})\) for clarity. We finally note that we have the following identities

$$\begin{aligned} \langle M \rangle = \frac{1}{2} (M^+ + M^-) \end{aligned}$$
(4.26)

and

$$\begin{aligned}{}[ \varvec{\nu }\cdot \nabla _\varGamma v_n ] = \varvec{\nu }^+ \cdot \nabla _\varGamma v^+_n + \varvec{\nu }^- \cdot \nabla _\varGamma v^-_n \end{aligned}$$
(4.27)
Fig. 1
figure 1

Different views of the deformed box with \(t=10^{-3}\)

Fig. 2
figure 2

Different views of the deformed box with \(t=10^{-2}\)

Fig. 3
figure 3

Different views of the deformed box with \(t=10^{-1}\)

Remark 4.1

We note that the method for a plate structure has the same form as for a single plate since we use the proper definitions of jumps and averages encoded by the conormal.

Remark 4.2

We note that with this formulation, we have Galerkin orthogonality

$$\begin{aligned} A_h(\varvec{u}-{\varvec{U}},\varvec{v}) = 0 \quad \forall \varvec{v}\in \varvec{V}_h \end{aligned}$$
(4.28)

which enables us to prove an a priori error estimate of optimal order provided the solution is regular enough using the same techniques as in [7].

Remark 4.3

For shell modelling, the plate approach can still be used by viewing the shell as an assembly of facet elements. Then we have an elementwise planar approximation \(\varGamma _h\) of \(\varGamma \) and we use elementwise projections \(\varvec{P}_h =\varvec{I}-\varvec{n}_h\otimes \varvec{n}_h\), where \(\varvec{n}_h\) is the elementwise constant approximation of \(\varvec{n}\). The differential operators are then defined on the discrete surface, e.g, \(\nabla _{\varGamma _h}v := \varvec{P}_h\nabla v\), etc., and replacing the exact differential operators and exact surface by their discrete approximations in (4.12) we obtain a simple shell model.

5 Numerical examples

We consider the surface of the box \([0,1]\times [0,1] \times [0,1]\), fixed to the floor and with one wall missing. The material data are: Poisson’s ratio \(\nu = 0.5\) and Young’s modulus \(E = 10^9\). The stabilization parameter was set to \(\beta _0 = 10\). An ad hoc residual-based adaptive scheme was used to generate locally refined meshes. The load was given as

$$\begin{aligned} \varvec{f}=t^2\left[ \begin{array}{c} 4\times 10^7\\ 0\\ 0\end{array}\right] \end{aligned}$$

at \(x=0\), \(\varvec{f}=\varvec{0}\) elsewhere. The point of the scaling with thickness is that after division by \(t^2\) the membrane stiffness will scale with \(t^{-2}\) so that the limit of \(t\rightarrow 0\) corresponds to the inextensible plate solution. With increasing t the membrane effect will become more and more visible. The numerical results using three different thicknesses, \(t = 10^{-k}\), \(k=3,2,1\), are given in Figs. 1, 2, 3. Note the marked membrane deformations at \(k=1\).

6 Concluding remarks

In this paper we have introduced a c/dG method for arbitrarily oriented plate structures. Our method is expressed directly in the spatial coordinates, unlike traditional schemes that typically are based on coordinate transformations from planar elements. This leads to a remarkably simple and easy to implement discrete scheme. The c/dG approach also allows for avoiding the use of \(C^1\)-continuity, otherwise required by the plate model, by allowing for discontinuous rotations between elements, and the same function space can then be used to model both plate and membrane deformations. We also introduced the proper conormals, mean values, and jumps necessary for handling the discontinuities on the element borders.