Droplet Profile in Matlab- ODE stability

  • Context: MATLAB 
  • Thread starter Thread starter Kudaros
  • Start date Start date
  • Tags Tags
    Matlab Ode Stability
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 3K views
Kudaros
Messages
18
Reaction score
0
Hello,

I'm currently modeling the profile of a droplet (sessile drop, axisymmetric) in matlab. I've coded differential equations, applied the solver, and I get a reasonable result, except that it spirals continuously.

The ODE's in question are:
[tex] \frac{dx}{ds}=cos(\theta)[/tex]
[tex] \frac{dz}{ds}=sin(\theta)[/tex]
[tex] \frac{d\theta}{ds}=2b+cz-\frac{sin(\theta)}{x}.[/tex]

ode23/45, etc produce similar results. I could limit my tspan so that the spiral doesn't continue, but I would like it to hit on a stable solution. I have yet to try a boundary value approach, but, while I am familiar with MATLAB in other areas, I have never used it to solve ODEs, so I would like to try this initial value approach first.

For solutions I use:
[s,x]=ode23(@(s,x)drpivp(s,x,p),sspan,x0);

where p contains two parameters and x0 contains initial angle theta, x, z values.
droplet ODE function:
function drpivp = drpivp(s,x,p);
%x(1)=theta
%x(2)=x
%x(3)=z
%r0 is curvature at apex
%c is capillarity constant
r0=p(1);
c=p(2);
drpivp=[2/p(1)+p(2)*x(3)-sin(x(1))/x(2); cos(x(1)); sin(x(1))];
%if you put an 'end' it reduces the required number of arguments - why?

Thanks!
 

Attachments

  • spiral.jpg
    spiral.jpg
    32.3 KB · Views: 595
Last edited:
Physics news on Phys.org
Thinking about this further, I realized I initialized with [itex][\theta x z]=[1 1 1][/itex] just to avoid the NaN issue that rises when using the proper initialization of [0 0 0]. The set of equations is parametrized with respect to the arc length. At [itex]s=0 ,x=z=\theta=0.[/itex]

To avoid this NaN issue, I need to change [itex]\frac{d\theta}{ds}=b,[/itex] as this is the condition at [itex]s=0[/itex]. It isn't clear to me how to have the first ODE be something different for a particular value of s, though.