Approximate Methods: Point Collocation Method
The statement of the equilibrium equations applied to a set is as follows. Assuming that at equilibrium is the symmetric Cauchy stress distribution on and that is the displacement vector distribution and knowing the relationship , then the equilibrium equation seeks to find such that the associated \sigma satisfies the equation:
where is the body forces vector distribution on , is the mass density, and is the space of all possible displacement functions applied to , i.e., . The term “Kinematically admissible” in indicates that the space of possible solutions must satisfy the boundary conditions imposed on (as stated below) and any differentiability constraints.
The boundary conditions for the equations of equilibrium are usually given on two parts of the boundary of denoted . On the first part, , the external traction vectors are known so we have the boundary conditions for since ( is the normal vector to the boundary). On the second part, , the displacement is given.
The point collocation method seeks an approximate solution to the above problem by assuming that the solution has a particular form with a finite number of unknowns, i.e., by looking for in a subset that is finite dimensional but still able to approximate functions in . The finite number of unknowns can be found by satisfying the differential equation of equilibrium at a number of chosen points equal to the number of unknowns.
Example
Using a polynomial function of the third degree, find the displacement function of the shown bar by satisfying the essential boundary conditions, the differential equation of equilibrium at and at ., and the nonessential boundary condition at . Assume that the bar is linear elastic with Young’s modulus and cross-sectional area and that the small strain tensor is the appropriate measure of strain. Ignore the effect of Poisson’s ratio.
Solution
Exact Solution
The exact solution can be obtained by directly solving the differential equation of equilibrium utilizing :
with the boundary conditions: . Therefore:
View Mathematica Code
DSolve[{u''[X1] == -c*X1/EA, u'[L] == 0, u[0] == 0}, u[X1], X1]
View Python Code
from sympy import * import sympy as sp sp.init_printing(use_latex = "mathjax") u, c, EA, x, L = symbols("u c EA x L") u = Function("u") u1 = u(x).subs(x,0) u2 = u(x).diff(x).subs(x,L) sol = dsolve(u(x).diff(x,2)+c*x/EA, u(x), ics = {u1:0, u2:0}) display(sol)
Approximate Solution
A polynomial of the third degree approximate solution has the form:
with
The following four equations will be utilized to find the four unknowns:
The approximate solution that satisfies the above four unknowns has the form:
Notice that since the exact solution is contained in the space of approximate functions which were chosen to satisfy both the essential and nonessential boundary conditions, the solution obtained is indeed the exact solution!
View Mathematica Code
ux = D[u, x1]
uxx = D[ux, x1]
Eq1 = (uxx + c*x1/EA) /. x1 -> L/2;
Eq2 = (uxx + c*x1/EA) /. x1 -> L;
Eq3 = (ux) /. x1 -> L;
Eq4 = u /. x1 -> 0;
s = Solve[{Eq1 == 0, Eq2 == 0, Eq3 == 0, Eq4 == 0}, {a1, a2, a3, a0}]
u /. s[[1]]
View Python Code
from sympy import * import sympy as sp sp.init_printing(use_latex = "mathjax") u, c, EA, x, L, a0, a1, a2, a3 = symbols("u c EA x L a_0 a_1 a_2 a_3") u = a0+a1*x+a2*x**2+a3*x**3 ux = u.diff(x) uxx = ux.diff(x) Eq1 = (uxx+c*x/EA).subs(x,L/2) Eq2 = (uxx+c*x/EA).subs(x,L) Eq3 = ux.subs(x,L) Eq4 = u.subs(x,0) s = solve((Eq1,Eq2,Eq3,Eq4), (a0,a1,a2,a3)) u = u.subs({a0:s[a0],a1:s[a1],a2:s[a2],a3:s[a3]}) display(u)