Meeting With Frank
Why has the reactive wetting problem taken so damn long?
It's really difficult. No one has modeled multicomponent van der Waals liquid-vapor (and we have a solid too).
- source:trunk/reactiveWetting/paper/sandia1.png
- source:trunk/reactiveWetting/paper/sandia2.png
- flow with difficult source terms in the Navier-Stokes, standard codes don't deal with this
- parasitic currents
- pressure-correction algorithm needed to be invented
- compressible due to nature of pressure density coupling (most work has perfect gas relationship for pressure based approach)
- low Mach number compressible density coupled (rather than pressure) flow
- multicomponent decoupling
- didn't have parallel capability
- thermo
- difficulty understanding the wetting issues (the surface tensions are not input parameters)
- optimal choice of primitive variables (, , , )
- choice of diffusion coefficient
- code complexity and difficult to organize, it has to solve a variety of different problems
- did not have state of the art preconditioners and solvers
- viscosity and diffusion ratios (interpolation schemes) (requires good preconditioners and solvers)
- density trapping
Some of these issues are avoided with the three phase field approach, density is defined by the phase field variable
but the van der Waals model () has fundamental advantages
- a more fundamental physical description
- handles the critical temperature
- compression waves, which are interesting
- no arbitrary phase field equations
What is the current situation?
- movies
- improved the Schimidt number to physical (viscosity) by many orders of magnitude blog:UnsegregatedSolver#comment-1
- almost complete physical model of the system
- unphysical vapor, not a major issue (concentration, density and viscosity)
- solid viscosity
- triple point location results source:trunk/reactiveWetting/paper/position.png source:trunk/reactiveWetting/paper/interface0010840tp3.png source:trunk/reactiveWetting/paper/interface0010840tp2.png
- source:trunk/reactiveWetting/paper/interface0010840.png
What did we do to fix it?
- full matrix method
- Trilinos preconditioners and solvers
- Exponential interpolation scheme
- Full implementation of Trilinos as the "backend" for fipy, state of the art preconditioners, solvers and parallel capability
- Using the full matrix method
- allows us to leverage full capability of Trilinos preconditioners
- Parallel version
- reason to use FiPy? is to have easy ways to add new terms and components
- Talking to Aaron Lott (preconditioner expert in maths and computer div.)
Will I write a paper soon?
Yes. Here is the current draft source:trunk/reactiveWetting/paper/paper.pdf
What did we do wrong?
- in essence, this is a very deep and difficult mathematical model
- ignore pressure for "real" physical model and write intermediate papers
- two computer guys should be working together on each problem, never alone as we currently do
- better code organization
Will all this work carry over into other problems?
Yes. Certainly the parallel, full matrix and Trilinos capabilities are immediately applicable to
- Photo-Voltaics
- Superconformal Ni Deposition
Other problems that we could possibly tackle include
- Zeta-potential
- VLS nano-wire growth
- Vehicle Light-weighting
- Ink Jet Process
- mem-resistive technologies
- VLS nano-wire growth
- Crystal Plasticity with Lyle
- Martensites
What other techniques do we still need to implement?
- get all stuff back into fipy that I have developed for the Reactive Wetting code.
- second order accurate unstructured capability
- adapativity
- Newton iterations
- block preconditioners (working with Aaron Lott)
Testing Advection Schemes
As a start to getting a higher order advection scheme in FiPy I've been looking at what we already have. The following test is for the advection at 45 degrees to a Cartesian grid. The analytical solution is this on a 110 x 60 grid:
The Van Leer scheme solotion on a 110 x 60 grid:
The power law scheme on a 110 x 60 grid:
The actual convergence rates based on the L1 norm (on 5 grids with 11 * N x 6 * N cells with N=(1,2,4,8,16)):
I implemented the QUICK scheme without limiting, is essentially the Van Leer scheme without the limiting.
Timings on Luggage
- Luggage had one additional job running.
900 x 900
sweep | 1 | 2 | 4 | 8 | 16 | 32 | 60 | 62 |
1 | 677.69 | 382.98 | 230.94 | 107.78 | 56.23 | 30.74 | 16.25 | 16.53 |
2 | x | 303.69 | 192.95 | 90.93 | 51.63 | 28.6 | 14.85 | 14.43 |
1800 x 1800
sweep | 16 | 32 | 62 | 63 |
1 | 231.93 | 141.68 | 93.18 | 87.18 |
2 | 187.85 | 111.25 | 69.97 | 63.80 |
Chat with Jim --- Reactive Wetting Direction
Three main directions
- compare with Cox theory
- compare with Warren, Boettin, Roosen for spreading
- compare with Pismen & Pomeau
Full Parallel Implementation of the Reactive Wetting
- The numbers are wall clock times in seconds, cpu clock time is hard to get with mpi jobs
- The number in parentheses is the matrix solution time.
- Luggage was heavily loaded when these calculations were done
- Poole has two additional processes running.
900 x 900
sweep | 1 (poole) | 2 (poole) | 4 (poole) | 8 (luggage) | 16 (luggage) | 32 (luggage) | 64 (luggage) |
1 | x | x | x | 189.89 (1.53) | 90.41 (1.71) | 46.48 (0.43) | 34.40 (0.94) |
2 | x | x | x | 210.94 (5.00) | 75.16 (5.29) | 43.60 (2.55) | 34.48 (4.67) |
450 x 450
sweep | 1 (poole) | 2 (poole) | 4 (poole) | 8 (poole) | 8 (luggage) | 16 (luggage) | 32 (luggage) | 64 (luggage) |
1 | 73.86 (0.64) | 39.23 (0.332) | 20.62 (0.189) | 11.18 (0.102) | 26.59 (0.220) | 32.05 (0.264) | 29.24 (1.08) | 13.37 (0.24) |
2 | 61.97 (3.13) | 30.82 (1.198) | 16.07 (0.742) | 8.62 (0.461) | 23.74 (0.535) | 19.855 (0.640) | 10.22 (0.596) | 7.51 (0.795) |
225 x 225
sweep | 1 (poole) | 2 (poole) | 4 (poole) | 8 (poole) | 8 (luggage) | 16 (luggage) | 32 (luggage) | 64 (luggage) |
1 | 19.16 (0.16) | 10.16 (0.086) | 5.57 (0.04) | 3.44 (0.026) | 6.01 (0.076) | 13.82 (0.12) | 9.66 (0.14) | 16.87 (0.12) |
2 | 14.51 (0.55) | 7.56 (0.31) | 3.92 (0.18) | 2.03 (0.13) | 5.01 (0.19) | 8.36 (0.14) | 5.91 (0.22) | x |
900 x 900
sweep | 1 (poole) | 2 (poole) | 4 (poole) | 8 (luggage) | 16 (luggage) | 32 (luggage) | 64 (luggage) |
1 | x | x | x | 136.75 (1.80) | 130.58 (1.69) | 47.51 (1.87) | 36.69 (0.976) |
2 | x | x | x | 253.05 (133.37) | 194.08 (74.12) | 142.07 (84.92) | 72.17 (47.37) |
450 x 450
sweep | 1 (poole) | 2 (poole) | 4 (poole) | 8 (poole) | 8 (luggage) | 16 (luggage) | 32 (luggage) | 64 (luggage) |
1 | 81.49 (1.07) | 40.69 (0.51) | 21.46 (0.30) | 11.19 (0.16) | 55.53 (1.82) | 14.31 (0.39) | 16.32 (0.24) | 19.46 (0.52) |
2 | 158.42 (97.25) | 80.21 (49.89) | 41.32 (25.99) | 23.89 (15.94) | 83.85 (20.27) | 32.60 (20.04) | 18.87 (11.13) | 35.52 (28.13) |
225 x 225
sweep | 1 (poole) | 2 (poole) | 4 (poole) | 8 (poole |
1 | 20.03 (0.27) | 10.21 (0.12) | 5.57 (0.075) | 3.95 (0.041) |
2 | 38.44 (23.78 ) | 19.25 (11.97) | 10.08 (6.39) | 6.10 (4.16) |