MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

NDSolve Problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg79360] NDSolve Problem
  • From: Lyle Gordon <lgordon at gmail.com>
  • Date: Wed, 25 Jul 2007 02:15:27 -0400 (EDT)

I have been trying to solve a non-linear PDE using mathematica and I
have got it to work with some parameters but not others, I have tried
changing the MinSteps, the StartingStepSize, the MaxStepSize and other
things but nothing seems to work.

My code is appended at the end, hopefully it is clear. Basically the
first line defines some constants, the next few lines define some
expressions and then the boundary condition is defined, essentially a
staircase type thing. Then the NDSolve. The plots show the solution,
then the partialderivative of the solution du/dz at z=h plugged into
s. The command solves but the solution is not correct, I thought that
reducing the step size would solve the problem or increase the
accuracygoal or precisiongoal but I get the following error. Any help
would be great

NDSolve::ndtol: Tolerances requested by the AccuracyGoal and \
PrecisionGoal options could not be achieved at t == \
0.001641483081875457`

I have also tried using Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid", "MinPoints" -> 750}}

If any one is interested this is related to the mechanical testing of
a biphasic hydrogel biomaterial for possible use in repairing
intervertebral discs. We are trying to characterize the mechanical
properties. The first line represents the properties of the sample the
solution should work even if those parameters vary somewhat (order of
magnitude +/-).

Thanks in advance. If I need to clear anything up don't hesitate to
ask. Also if anyone wishes to learn more the paper that describes the
theory I am using is Ateshian GA, et al. Finite deformation biphasic
material properties of bovine articular cartilage from confined
compression experiments. J Biomech. 1997 Nov-Dec;30(11-12):1157-64.

Thanks,
Lyle Gordon

Orthopaedic Biomechanics Lab
Sunnybrook Health Sciences Centre
University of Toronto

--------------------------------------


H = 1/100; k0 = 1/1000; b = 1/100; M = 15/100; h = 5; p = 206/1000;
s = 1/2 H ((l^2 - 1)/(l^(2 b + 1))) Exp[b (l^2 - 1)];
k = k0 ((l - p)/(1 - p)) Exp[(M (l^2 - 1))/2];
Clear[l]; q = D[s, l];
l = 1 + D[ u[z, t], z];
array = {{0,
    0}, {500, -1/4}, {2500, -1/4}, {3000, -1/2}, {6000, -1/
     2}, {6500, -3/4}, {10500, -3/
     4}, {11000, -1}, {16000, -1}, {16500, -5/4}, {22500, -5/4}};
topboundary = Interpolation[array, InterpolationOrder -> 1];
tend = First[Last[array]];


soln = NDSolve[{q*D[u[z, t], {z, 2}] == (l/k) (D[u[z, t], t]),
   u[z, 0] == 0, u[0, t] == 0, u[h, t] == topboundary[t]},
  u, {z, 0, h}, {t, 0, tend}]


Plot3D[First[u /. soln][z, t], {z, 0, h}, {t, 0, tend}]
Plot[topboundary[t], {t, 0, tend}, PlotRange -> All]
Plot[s /. D[u[z, t], z] -> (D[First[u /. soln][z, t], z]) /.
  z -> h, {t, 0, tend}]



  • Prev by Date: Re: truncated File -> Save As -> HTML conversion problem
  • Next by Date: Re: Mathematica 6 Cell Grouping
  • Previous by thread: Re: Slow Import of CSV files
  • Next by thread: Volterra Equation?