On this Mathematica.SE form, there exists information on how to use Mathematica to demonstrate the vibration of a circular membrane and the deflection of an orifice plate (the latter I had raised several weeks ago).
I am attempting to numerically, using NDSolve solve the deflection of the orifice plate problem as an evolution equation wherein I add a time dependence of the thickness of the orifice plate to the biharmonic equation. Clearly, because of the nature of the boundary conditions (fixed ends), this is a stiff problem. I have had a success with NDSolve for fourth order non linear PDEs that are stiff. However, the boundary conditions in those cases were periodic in nature - so the "magnitude" of stiffness is reduced.
I would like to attempt to solve this "stiff circular plate" equation using NDSolve and I haven't been able to find the right combination of NDSolve Method parameters. I bring this problem here to this forum in the hope that someone has a better idea on how to tweak these parameters (if at all possible).
The plate equation (Biharmonic equation) is a particularly interesting equation in both solid mechanics and fluid mechanics. Particularly in fluid mechanics, the plate equation represents a layer of liquid (liquid film) that is on a hot substrate. Temperature/heat "force" of the substrate wrinkles the surface of the film.
To solve the biharmonic equation I am trying to use the LSODA method since this is particularly well suited for stiff partial differential equations.
My Mathematica program:
a = 10*10^-3;
b = 5*10^-3;
ν = 1/3;
p0 = 0.1*10^6;
Ey = 200*10^9;
h = 1*10^-5;
De = (Ey h^3)/(12 (1 - ν^2));
TMax = 10^-6;
sol = NDSolve[{D[w[r, t], r, r, r, r] + (2/r) D[ w[r, t], r, r, r] -
(1/(r^2)) D[w[r, t], r, r] + (1/(r^3)) D[w[r, t], r] ==
-p0/De + (1/De) D[w[r, t], t, t],
w[a, t] == 0,
Derivative[1, 0][w][a, t] == 0,
-(Derivative[1, 0][w][b, t]/b^2) +
Derivative[2, 0][w][b, t]/b + Derivative[3, 0][w][b, t] == 0,
(ν Derivative[1, 0][w][b, t])/b + Derivative[2, 0][w][b, t] == 0,
w[r, 0] == 0,
Derivative[0, 1][w][r, 0] == 0},
w, {r, b, a}, {t, 0, TMax},
MaxSteps -> 5000,
Method -> {"MethodOfLines", "Method" -> "LSODA",
"TemporalVariable" -> t,
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 800,
"MaxPoints" -> 800(*"DifferenceOrder"\[Rule]5*)}}
]
Warning message:
NDSolve::eerr: Warning: scaled local spatial error estimate of 454.79352037177574
at t = 1.
*^-6 in the direction of independent variable r is much greater than the prescribed error tolerance. Grid spacing with 800 points may be too large to achieve the desired accuracy or precision. A singularity may have formed or a smaller grid spacing can be specified using the MaxStepSize or MinPoints method options. >>
Is there a combination of parameters that would help resolve the stiffness of this problem? What needs to be considered to come up with a list of such parameters?
Without Method
TMax = 30*10^-6;
sol = NDSolve[{D[w[r, t], r, r, r,
r] + (2/r) D[w[r, t], r, r, r] - (1/(r^2)) D[w[r, t], r,
r] + (1/(r^3)) D[w[r, t], r] == -p0/
De + (1/De) D[w[r, t], t, t], w[a, t] == 0,
Derivative[1, 0][w][a, t] ==
0, -(Derivative[1, 0][w][b, t]/b^2) +
Derivative[2, 0][w][b, t]/b + Derivative[3, 0][w][b, t] ==
0, (ν Derivative[1, 0][w][b, t])/b +
Derivative[2, 0][w][b, t] == 0, w[r, 0] == 0,
Derivative[0, 1][w][r, 0] == 0}, w, {r, b, a}, {t, 0, TMax},
MaxSteps -> 5000];
Plot[Evaluate[w[r, TMax] /. sol], {r, b, a}, PlotRange -> {All, All}]
Error
NDSolve::eerr: "Warning: scaled local spatial error estimate of 257.6583484027891
at t = 0.00003
in the direction of independent variable r is much greater than the prescribed error tolerance. Grid spacing with 25 points may be too large to achieve the desired accuracy or precision. A singularity may have formed or a smaller grid spacing can be specified using the MaxStepSize or MinPoints method options.
The deflection doesn't match what was accurately calculated in this question that I refer to. This is likely because the TMax
value hasn't approached steady state - stiffness overwhelms the problem before.
Method
option is taken away,NDSolve
will give a solution without warning.) $\endgroup$