1
$\begingroup$

I want an element as the one shown following.

enter image description here enter image description here

Nodes 6 and 8 are in the quarter position.

Whether eight node quadrilateral element or six node triangle function can be used directly?

If not, how to build a new shape function?

$\endgroup$
2
$\begingroup$

You could find the shape functions proposing a quadratic function of the form

$$N_i = a_0 + a_1 r + a_2 s + a_3 rs + a_4 r^2 + a_5 s^2\, ,$$

and enforcing the following condition

$$N_i(r_j, s_j) = \delta_{ij}\, ,$$

that is, 1 for each node and 0 for the others.

I am using as reference element a triangle with vertices $(0, 0), (0, 1), (1, 0)$, and assuming that the quarter-position nodes are on the vertical and horizontal edges. Thus, you end up with the following list of points (in "order")

$$(0, 0), (1, 0), (0, 1), (1/4, 0), (1/2, 1/2), (0, 1/4)\, .$$

You then solve the 6 systems of equations to find the coefficients and get the following

\begin{align} &N_{0}{\left(r,s \right)} = 4 r^{2} + 8 r s - 5 r + 4 s^{2} - 5 s + 1\, ,\\ &N_{1}{\left(r,s \right)} = \frac{4 r^{2}}{3} - \frac{2 r s}{3} - \frac{r}{3}\, ,\\ &N_{2}{\left(r,s \right)} = - \frac{2 r s}{3} + \frac{4 s^{2}}{3} - \frac{s}{3}\, ,\\ &N_{3}{\left(r,s \right)} = - \frac{16 r^{2}}{3} - \frac{16 r s}{3} + \frac{16 r}{3}\, ,\\ &N_{4}{\left(r,s \right)} = 4 r s\, ,\\ &N_{5}{\left(r,s \right)} = - \frac{16 r s}{3} - \frac{16 s^{2}}{3} + \frac{16 s}{3}\, . \end{align}

All these calculations are easier done with a CAS. In my case, I used Sympy. The following code solves the problem

import sympy as sym

# sym.init_printing()

a0, a1, a2, a3, a4, a5 = sym.symbols("a0:6")
r, s = sym.symbols("r s")


N = a0 + a1*r + a2*s + a3*r*s + a4*r**2 + a5*s**2

pts = [[0, 0], [1, 0] , [0, 1], [sym.S(1)/4, 0],
     [sym.S(1)/2, sym.S(1)/2], [0, sym.S(1)/4]]

shape_funs = []
for j in range(6):
    eqs = []
    for k in range(6):
        if j == k:
            rhs = 1
        else:
            rhs = 0 
        eq = N.subs({r: pts[k][0], s: pts[k][1]})
        eqs.append(sym.Eq(eq, rhs))
    sol = sym.solve(eqs, [a0, a1, a2, a3, a4, a5])
    shape_funs.append(N.subs(sol))
```
$\endgroup$
2
  • $\begingroup$ I use this shape function in Mathematica to compare with the result in ABAQUS and find it is not accurate $\endgroup$
    – sgzslg
    Apr 11 at 2:19
  • $\begingroup$ @sgzslg, that's not the question that you asked. $\endgroup$
    – nicoguaro
    Apr 11 at 2:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.