Reactive Wetting Equations in Cylindrical Coordinates
Note
We need to remove the radial distance and embed it in the term's coefficient. For a general equation in cylindrical coordinates that are axisymmetric the general equation can be written,
Multiply through by to get,
which is,
Thus, in general, it is very easy to recast equations in cylindrical axi-symmetric coordinates with fipy. The fourth order term in the concentration equations may be an issue and the correction equation also has a fourth order term.
Fourth Order Term
This can be rewritten as
There is an awkward that is not next to a and thus can not just multiply a regular coefficient. The outer gets dealt with because we multiply all the terms in the equation by . The above can be rewritten as,
Unfortunately, The last term needs to be added as a source term. If we had a third order convection term then it could be added implicitly.
Continuity
Velocity
Concentration Equation
The last term can remain in its original form as it is a convection term.
Alternate Method
The formulation above could lead to some coding issues and maybe other difficulties concerning the fourth order source terms. A more expedient and relatively trivial method that is probably no less accurate is to define a CylindricalGrid2D object that has its mesh volumes and face areas modified accordingly. I just realized that the discretiztion is exactly equivalent in the finite volume method when using a cylindrically modified grid and rewriting the equations.
Reactive Wetting Paper
Outline
- Introduction
- Boiler plate - motivation
- Summary of physical parameters coinciding with typical applications (water-ice-salt, solder alloys)
- Thermodynamics
- Model
- Transport
- Thermodynamics
- Surface Tensions
- Parameters Choices - Numerics
- Governing equations summary.
- Numerical Approach
- Solution algorithm
- Parasitic Currents
- One dimensional liquid vapor analysis
- Dimensionless form of the pure-liquid vapor
- Convergence of a one-dimensional pure liquid-vapor system
- ,
- ,
- liquid
- Convergence of a one-dimensional binary liquid vapor system
- , , What is the meaning?
- issues.
- Two dimensional Binary Solid-Liquid-Vapor
- Obtaining Plausible contact angles
- solid
- Approximation of a solid with , density trapping.
- Comparison with analytical solution in equilibrium
- Results
- Extracting interface locations and junctions with phase field methods
- Ridge detection
- Wheeler method
- Villanueva method
- versus .
- Cox comparisons - look at later cox work with surfactants.
- for different initial conditions.
- Pure Hydrodynamics with and without reactive wetting ( vs. )
- Pretty pictures
- Compare with Gustav
- Steady state versus transient
- Compare streamlines
- versus diffusion
- versus
- Compare with S. Troian
- Spherical cap deviation
- Best measures of angle and shape
- Compare with Jim and Bill's right angle assumption
- Extracting interface locations and junctions with phase field methods
Copies of notes
openmp/weave timings.
A matrix multiplication in weave really scales well with openmp. The code is here. The observed speedup is almost perfect with two threads.
This code, involving large array multiplications of size N, has the following speedups with two threads.
N | Speedup |
1E7 | 1.51 |
1E6 | 1.37 |
1E5 | 1.39 |
1E4 | 1.0 |
It should be noted that the number of loops in python increased inversely with the size of the array.
The question remains whether we can get speed ups for smaller arrays typically used in FiPy.
Streamlines
How to make a contour plot of the streamlines for a flow field in 2D?
Given a velocity field we need a field that is constant in directions that are tangent to the velocity field. This leads to the equation,
The relationships and satisfy the equation. From the above equations we can say, Solving this gives the stream-function. If we have no inflow conditions on regular domain walls, then we can choose on these walls. Since these walls have no circulation, we have made the choice that represents no circulation, which is sensible. The circulation orientation is given by the sign of .2D simulations integrated with subversion
ID | status | condor ID | Jim's movie | Bill's movie | |||||||
1 | unstable | movie | movie | ||||||||
2 | running | 12095.0 | movie | movie | |||||||
3 | stopped | movie | movie | ||||||||
4 | running | 12096.0 | movie | movie | |||||||
5 | unstable | movie | movie | ||||||||
6 | running | 12097.0 | movie | movie | |||||||
7 | stopped | movie | movie | ||||||||
8 | running | 12100.0 | movie | movie | |||||||
9 | unstable | movie | movie | ||||||||
10 | running | poole 5545 | movie | movie | |||||||
11 | running | poole 9411 | movie | movie | |||||||
12 | stopped | movie | movie | ||||||||
13 | stopped | movie | movie |
2D simulations
Table of simulations
ID | status | condor ID | Initial | T | data directory | movie link | source files | |||||||
H2D-restart | H2D | 550 | movie | |||||||||||
I2D-restart | I2D | 550 | movie | |||||||||||
J2D-restart | running | 9099.0 | J2D | 600 | dataFri-Feb-29-12:25:35-2008 | movie | files | |||||||
K2D-restart | running | 9098.0 | K2D | 600 | dataFri-Feb-29-12:25:35-2008 | movie | files | |||||||
L2D | unstable | 9077.0 | 650 | dataWed-Feb-27-16:59:24-2008 | movie | files | ||||||||
L2D1 | unstable | 9087.0 | 650 | dataThu-Feb-28-11:27:18-2008 | movie | files | ||||||||
M2D | running | 9088.0 | 650 | dataThu-Feb-28-11:28:02-2008 | movie | files | ||||||||
N2D | swapping | 9089.0 | 650 | dataThu-Feb-28-11:31:03-2008 | movie | files | ||||||||
O2D | unstable | 9090.0 | 650 | dataFri-Feb-29-01:27:24-2008 | movie | files | ||||||||
O2D1 | running | 9108.0 | 650 | dataFri-Feb-29-14:35:04-2008 | movie | files | ||||||||
P2D | running | 9111.0 | 650 | dataSat-Mar--1-07:01:06-2008 | movie | files | ||||||||
Q2D | swapping | 9112.0 | 650 | dataSun-Mar--2-22:30:18-2008 | movie | files | ||||||||
R2D | unstable | 9083.0 | 650 | dataThu-Feb-28-07:43:56-2008 | movie | files | ||||||||
R2D1 | running | 9093.0 | 650 | dataThu-Feb-28-11:37:49-2008 | movie | files | ||||||||
S2D | running | 9094.0 | 650 | dataThu-Feb-28-11:38:37-2008 | movie | files | ||||||||
T2D | swapping | 9095.0 | 650 | dataThu-Feb-28-11:41:06-2008 | movie | files |
Upper bound on CFL condition
The simulations below do not seem to have a bounded . They do, however, have an upper bound for that decreases dramatically as is reduced. Of course, at lower the upper bound for is probably due to some other numerical factor unrelated to .
Matrix of simulations
ID | status | data directory | movie link | ||||||||||
N | finished | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-14:55:59-2008 | movie | ||||||
N3 | unstable | None | 1/4 | 1/2 | 1/4 | dataWed-Feb-27-12:27:04-2008 | movie | ||||||
O | finished | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-17:58:15-2008 | movie | ||||||
P | unstable | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-18:30:26-2008 | movie | ||||||
Q | finished | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-18:57:53-2008 | movie | ||||||
Q1 | finished | None | 1/4 | 1/2 | 1/4 | dataWed-Feb-27-14:51:24-2008 | movie | ||||||
R | unstable | None | 1/4 | 1/2 | 1/4 | dataTue-Feb-26-10:13:19-2008 | movie | ||||||
S | unstable | None | 1/4 | 1/2 | 1/4 | dataTue-Feb-26-11:45:36-2008 | movie |
2D simulations with reduced temperature
Matrix of 2D simulations with reduced temperature
ID | status | condor ID | Initial | T | data directory | movie link | |||||||
A2D | finished | 6952.0 | 650 | dataWed-Jan-16-00:48:07-2008 | movie | ||||||||
B2D | unstable | 7672.0 | A2D | 550 | dataFri-Jan-25-18:17:34-2008 | movie | |||||||
C2D | finished | 7828.0 | 650 | dataWed-Jan-30-11:53:40-2008 | movie | ||||||||
D2D | finished | 7836.0 | 650 | dataWed-Jan-30-12:19:30-2008 | movie | ||||||||
E2D | finished | 7848.0 | 650 | dataWed-Jan-30-13:52:02-2008 | movie | ||||||||
F2D | finished | 7859.0 | 650 | dataWed-Jan-30-14:09:54-2008 | movie | ||||||||
G2D | finished | 7869.0 | 650 | dataWed-Jan-30-14:15:37-2008 | movie | ||||||||
H2D | finished | 8541.0 | F2D | 550 | dataThu-Feb-14-12:09:33-2008 | movie | |||||||
I2D | finished | 8582.0 | F2D | 550 | dataFri-Feb-15-14:55:08-2008 | movie | |||||||
J2D | finished | 8803.0 | F2D | 600 | dataTue-Feb-19-10:20:01-2008 | movie | |||||||
K2D | finished | 8805.0 | F2D | 600 | dataTue-Feb-19-10:20:56-2008 | movie |
Most of these jobs ran for a good period of time, but were brought down with server problems on 02/14/08 and 02/22/08. When they restarted the condor system began them from scratch, I killed them and will restart any useful ones from the latest point in the data directory above. However, it is probably best to keep processors for the new set of 2D jobs as these will probably have unbounded time steps.
Efficiency
It is interesting to compare time versus time steps for some of the 2D jobs and the new 1D jobs. represents number of time steps.
Simulations E2D, F2D and G2D all lie on the same curve as expected. Elapsed time in simulations N and O is orders of magnitude greater than in the 2D simulations for an equivalent number of time steps. This is not the case in simulation O as it has a more restrictive CFL condition (see Table).
1D simulation with vapor
Previously, we've managed to get the 1D liquid-solid system working with all the desired numbers (apart from the liquid viscosity) with only a CFL time step stability criterion. We now need to include the vapor and see how the time step is affected. I'm assuming from previous experience and intuition that adding the vapor will require a far stricter stability limit.
Simulation With Vapor
As per usual my intuition proves to be false. The time step size is completely unrestricted. I'm extremely excited. We may be able to do the 2D simulations in orders of magnitude less real time. There are also some extra simulations to look at initial liquid fraction and domain size. It is clear from simulation N that diffusion based interface motion is occurring at these parameter values.
Diffusion Driven Interface Motion
Examining simulations N, O, Q, it is evident that interface motion is driven by diffusion. Notice also that the pressure equilibrates sooner as the viscosity is reduced and it seems that the concentration gradients are more pronounced. In simulation Q, the pressure is equilibrated much earlier, before significant interface motion occurs and concentration gradients form.
Stability
To maintain stability for lower , is being reduced. Simulations P, R, S were all unstable. The lowest value of that was successfully computed is , simulation Q. The following figure shows simulation time against number of required steps (). It is clear that as the run times are significantly increased.
Interface Motion
Interface motion plot for simulation N, O and Q. At least between and the solid liquid interface motion is mostly unaffected by .
Matrix of simulations
ID | status | data directory | movie link | ||||||||||
H | finished | None | 0 | 1/2 | 1/2 | dataThu-Feb-21-17:46:23-2008 | movie | ||||||
L | finished | None | 1/3 | 1/3 | 1/3 | dataMon-Feb-25-11:44:28-2008 | movie | ||||||
M | finished | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-12:08:13-2008 | movie | ||||||
N | finished | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-14:55:59-2008 | movie | ||||||
O | finished | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-17:58:15-2008 | movie | ||||||
P | unstable | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-18:30:26-2008 | movie | ||||||
Q | running | None | 1/4 | 1/2 | 1/4 | dataMon-Feb-25-18:57:53-2008 | movie | ||||||
R | unstable | None | 1/4 | 1/2 | 1/4 | dataTue-Feb-26-10:13:19-2008 | movie | ||||||
S | unstable | None | 1/4 | 1/2 | 1/4 | dataTue-Feb-26-11:45:36-2008 | movie |
Realistic Solid Behavior
The following plot includes the curves for each of the 1D simulations (see Table).
It is clear that has more influence on the interface motion than during melting.
The next step is to try simulation H with the vapor added in 1D to figure out a satisfactory time step.
Also, it would be interesting to know how influences the interface motion.
Finite Size Effects
Having examined simulations I and K and compared them with B and D (see Table), it seems that there may be finite size effects in these simulations. The interface motions are way off. For example simulation B and I use the same parameter set yet the interface motion is over two orders of magnitude slower for case I. Some simulations need to be performed to ascertain whether there is an eventual convergence of the interface motion as the domain is expanded.
Table of Simulations
ID | status | data directory | movie link | |||||||
B | finished | None | 0.1 | dataWed-Feb-20-14:09:53-2008 | movie | |||||
I | finished | None | 0.1 | dataThu-Feb-21-18:08:24-2008 | movie | |||||
J | finished | None | 0.1 | dataFri-Feb-22-15:14:20-2008 | movie |
Chat with Jim
After a chat with Jim we both came to the realization that curves on a liquid fraction against time plot for varying domain sizes do not have to correspond at all. That raises the question about how to determine whether we have finite size effects. There does not seem to be an easy way to do this. Certainly plotting interface position as a function of time may be more enlightening. The velocity of the interface at early times should be independent, but at long times I don't think that is true.
Absolute Interface Position
It is clear from the figure that all our fears are unfounded and this whole episode was a waste of time. Anyhow, it is interesting to notice that there is more "ringing" in the larger domain.
High solid viscosity
Jim wants to understand why we cannot model a rigid solid interface with a high viscosity. He needs the story for his talk. Suggestion is to run a simulation with a very high viscosity in the solid and a liquid that is not at equilibrium to induce melting of the solid
Initial Condition
The initial condition is a phase fraction of 1/2 liquid and 1/2 solid. The solid is at the three phase equilibrium values, and . The initial densities in the liquid region are given by,
In this case . This induces melting of the solid. For the numbers that we use in the example the final liquid fraction is given by 0.55. Using this approach there is a lower bound for and thus an upper bound on the final liquid fraction.
Regular solid viscosity
When the solid behaves much like a liquid. The movie is given here for (dir: dataWed-Feb-20-10:37:23-2008). In this simulation there is no clear distinction between interface motion due to pressure equilibration and motion due to the concentration gradient. In simulations where the temperature is reduced there is a clear distinction between these regimes of interface motion. One issue is that the total interface motion is equivalent to the interface width. It is definitely a good idea to run simulations with a small interface width compared with the total interface motion.
Interestingly enough, we can run this simulation with no upper bound on time step other than CFL. The parasitic velocities eventually give an upper bound less than 1. Here is the movie (dir: dataWed-Feb-20-14:09:53-2008)
High solid viscosity
When the simulation shows similar interface motion. Here is the movie (dir: dataWed-Feb-20-14:36:18-2008). A simulation has also been run with a bounded (dir: dataWed-Feb-20-10:47:36-2008)
Liquid Fraction plot
The following plot is the liquid fraction against time for the whole matrix of simulations. The simulation with , and shows rather strange long time behavior. at long times, which could be too large.
Low diffusion in the solid
To get closer to real solid behavior, the value of can be reduced. In this movie, (dir: dataWed-Feb-20-18:22:20-2008).
Matrix of simulations
ID | status | data directory | movie link | |||||||
A | finished | 0.1 | dataWed-Feb-20-10:37:23-2008 | movie | ||||||
B | finished | None | 0.1 | dataWed-Feb-20-14:09:53-2008 | movie | |||||
C | finished | 0.1 | dataWed-Feb-20-10:47:36-2008 | movie | ||||||
D | finished | None | 0.1 | dataWed-Feb-20-14:36:18-2008 | movie | |||||
E | finished | 0.1 | dataWed-Feb-20-18:22:20-2008 | movie | ||||||
F | finished | None | 0.1 | dataThu-Feb-21-17:16:51-2008 | long short | |||||
G | finished | 0.1 | dataThu-Feb-21-17:40:48-2008 | movie | ||||||
H | finished | None | 0.1 | dataThu-Feb-21-17:46:23-2008 | movie | |||||
I | finished | None | 0.1 | dataThu-Feb-21-18:08:24-2008 | movie | |||||
K | finished | None | 0.1 | dataThu-Feb-21-18:11:13-2008 | movie |