<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Archiving and Interchange DTD v2.3 20070202//EN" "archivearticle.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="methods-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Phys.</journal-id>
<journal-title>Frontiers in Physics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Phys.</abbrev-journal-title>
<issn pub-type="epub">2296-424X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fphy.2019.00021</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Physics</subject>
<subj-group>
<subject>Methods</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Bernaise: A Flexible Framework for Simulating Two-Phase Electrohydrodynamic Flows in Complex Domains</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Linga</surname> <given-names>Gaute</given-names></name>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/265671/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Bolet</surname> <given-names>Asger</given-names></name>
<uri xlink:href="http://loop.frontiersin.org/people/634893/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Mathiesen</surname> <given-names>Joachim</given-names></name
><uri xlink:href="http://loop.frontiersin.org/people/252563/overview"/>
</contrib>
</contrib-group>
<aff><institution>Niels Bohr Institute, University of Copenhagen</institution>, <addr-line>Copenhagen</addr-line>, <country>Denmark</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Alex Hansen, Norwegian University of Science and Technology, Norway</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Iver Hakon Brevik, Norwegian University of Science and Technology, Norway; Christian F. Klingenberg, Universit&#x000E4;t W&#x000FC;rzburg, Germany</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Gaute Linga <email>linga&#x00040;nbi.dk</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Interdisciplinary Physics, a section of the journal Frontiers in Physics</p></fn></author-notes>
<pub-date pub-type="epub">
<day>04</day>
<month>03</month>
<year>2019</year>
</pub-date>
<pub-date pub-type="collection">
<year>2019</year>
</pub-date>
<volume>7</volume>
<elocation-id>21</elocation-id>
<history>
<date date-type="received">
<day>26</day>
<month>10</month>
<year>2018</year>
</date>
<date date-type="accepted">
<day>04</day>
<month>02</month>
<year>2019</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2019 Linga, Bolet and Mathiesen.</copyright-statement>
<copyright-year>2019</copyright-year>
<copyright-holder>Linga, Bolet and Mathiesen</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p><italic>Bernaise</italic> (<sc>B</sc>inary <sc>E</sc>lect<sc>r</sc>ohydrody<sc>na</sc>m<sc>i</sc>c Solv<sc>e</sc>r) is a flexible high-level finite element solver of two-phase electrohydrodynamic flow in complex geometries. Two-phase flow with electrolytes is relevant across a broad range of systems and scales, from &#x0201C;lab-on-a-chip&#x0201D; devices for medical diagnostics to enhanced oil recovery at the reservoir scale. For the strongly coupled multi-physics problem, we employ a recently developed thermodynamically consistent model which combines a generalized Nernst&#x02013;Planck equation for ion transport, the Poisson equation for electrostatics, the Cahn&#x02013;Hilliard equation for the phase field (describing the interface separating the phases), and the Navier&#x02013;Stokes equations for fluid flow. We present an efficient linear, decoupled numerical scheme which sequentially solves the three sets of equations. The scheme is validated by comparison to cases where analytical solutions are available, benchmark cases, and by the method of manufactured solution. The solver operates on unstructured meshes and is therefore well suited to handle arbitrarily shaped domains and problem set-ups where, e.g., very different resolutions are required in different parts of the domain. <italic>Bernaise</italic> is implemented in Python via the FEniCS framework, which effectively utilizes MPI and domain decomposition. Further, new solvers and problem set-ups can be specified and added with ease to the <italic>Bernaise</italic> framework by experienced Python users.</p></abstract>
<kwd-group>
<kwd>electrokinectic</kwd>
<kwd>electrohydrodynamics (EHD)</kwd>
<kwd>porous flow</kwd>
<kwd>phase field method</kwd>
<kwd>capillarity</kwd>
<kwd>numerical simulation</kwd>
<kwd>finite element method (FEM)</kwd>
</kwd-group>
<contract-sponsor id="cn001">H2020 Marie Sklodowska-Curie Actions<named-content content-type="fundref-id">10.13039/100010665</named-content></contract-sponsor>
<contract-sponsor id="cn002">Villum Fonden<named-content content-type="fundref-id">10.13039/100008398</named-content></contract-sponsor>
<counts>
<fig-count count="13"/>
<table-count count="10"/>
<equation-count count="95"/>
<ref-count count="88"/>
<page-count count="25"/>
<word-count count="15619"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Two-phase flow with electrolytes is encountered in many natural and industrial settings. Although Lippmann already in the nineteenth century [<xref ref-type="bibr" rid="B1">1</xref>, <xref ref-type="bibr" rid="B2">2</xref>] made the observation that an applied electric field changes the wetting behavior of electrolyte solutions, the phenomenon of electrowetting has remained elusive. Recent decades have seen an increased theoretical and experimental interest in understanding the basic mechanisms of electrokinetic or electrohydrodynamic flow [<xref ref-type="bibr" rid="B3">3</xref>, <xref ref-type="bibr" rid="B4">4</xref>]. Progress in micro- and nanofluidics [<xref ref-type="bibr" rid="B5">5</xref>, <xref ref-type="bibr" rid="B6">6</xref>] has enabled the use of electrowetting to control small amounts of fluid with very high precision (see e.g., the comprehensive reviews by [<xref ref-type="bibr" rid="B2">2</xref>, <xref ref-type="bibr" rid="B7">7</xref>, <xref ref-type="bibr" rid="B8">8</xref>] and references therein). This yields potential applications in, e.g., &#x0201C;lab-on-chip&#x0201D; biomedical devices or microelectromechanical systems [<xref ref-type="bibr" rid="B9">9</xref>&#x02013;<xref ref-type="bibr" rid="B11">11</xref>], membranes for harnessing blue energy [<xref ref-type="bibr" rid="B12">12</xref>], energy storage in fluid capacitors, and electronic displays [<xref ref-type="bibr" rid="B13">13</xref>&#x02013;<xref ref-type="bibr" rid="B16">16</xref>].</p>
<p>It is known that electrohydrodynamic phenomena affects transport properties and energy dissipation in geological systems, as a fluid moving in a fluid-saturated porous medium sets up an electric field that counteracts the fluid motion [<xref ref-type="bibr" rid="B17">17</xref>&#x02013;<xref ref-type="bibr" rid="B19">19</xref>]. Electrowetting may also be an important factor in enhanced oil recovery [<xref ref-type="bibr" rid="B20">20</xref>, <xref ref-type="bibr" rid="B21">21</xref>]. Here, the injection of water of a particular salinity, or &#x0201C;smart water&#x0201D; [<xref ref-type="bibr" rid="B22">22</xref>], is known to increase the recovery of oil from reservoirs as compared to brine [<xref ref-type="bibr" rid="B23">23</xref>]. Further, transport in sub-micrometer scale pores in low-permeability rocks in the Earth&#x00027;s crust may be driven by gradients in the electrochemical potential [<xref ref-type="bibr" rid="B24">24</xref>], which may have consequences for, e.g., transport of methane-water mixtures in dense rocks.</p>
<p>Hence, a deepened understanding of electrowetting and two-phase electrohydrodynamics would be of both geological and technological importance. While wetting phenomena (or more generally, two-phase flow) on one hand, and electrohydrodynamics on the other, remain in themselves two mature and active areas of research which both encompass a remarkably rich set of phenomena, this article is concerned with the interface between these fields. For interested readers, there are several reviews available regarding wetting phenomena [<xref ref-type="bibr" rid="B25">25</xref>&#x02013;<xref ref-type="bibr" rid="B27">27</xref>] and electrohydrodynamics [<xref ref-type="bibr" rid="B28">28</xref>&#x02013;<xref ref-type="bibr" rid="B30">30</xref>]. Notably, the &#x0201C;leaky dielectric&#x0201D; model originally proposed by Taylor [<xref ref-type="bibr" rid="B31">31</xref>] (and revisited by [<xref ref-type="bibr" rid="B28">28</xref>]) to describe drop deformation, is arguably the most popular description of electrohydrodynamics, but it does not describe ionic transport and considers all dielectrics to be weak conductors. In this work, we shall employ a model that does not make such simplifications. Recently, Schnitzer and Yariv [<xref ref-type="bibr" rid="B32">32</xref>] showed rigorously that models of the latter type reduce to the Taylor&#x02013;Melcher model in the double limit of small Debye length and strong electric fields. The simplified model may therefore have advantages in settings where those assumptions are justified, e.g., in simulations on larger scales; while the class of models considered here are more general and expected to be valid down to the smallest scale where the continuum hypothesis still holds.</p>
<p>Experimental and theoretical approaches [<xref ref-type="bibr" rid="B33">33</xref>&#x02013;<xref ref-type="bibr" rid="B35">35</xref>] in two-phase electrohydrodynamic flows need to be supplemented with good numerical simulation tools. This is a challenging task, however: the two phases have different densities, viscosities and permittivities, the ions have different diffusivities and solubilites in the two phases, and moreover, the interface between the phases must be described in a consistent manner. Hence, much due to the complex physics involved, simulation of two-phase electrohydrodynamic phenomena with ionic transport is still in its infancy. It has been carried out with success e.g., in order to understand deformation of droplets due to electric fields [<xref ref-type="bibr" rid="B36">36</xref>&#x02013;<xref ref-type="bibr" rid="B38">38</xref>], or for the purpose of controlling microfluidic devices (see e.g., [<xref ref-type="bibr" rid="B39">39</xref>]). Lu et al. [<xref ref-type="bibr" rid="B40">40</xref>] simulated and performed experiments on droplet dynamics in a Hele-Shaw cell. Notably, Walker et al. [<xref ref-type="bibr" rid="B41">41</xref>] simulated electrowetting with contact line pinning, and compared to experiments. In practical applications, such as in environmental remediation or oil recovery, the complex pore geometry is essential and it is therefore of interest to simulate and study electrowetting in such configurations. However, to our knowledge, there have been few numerical studies of these phenomena in the context of more complex geometries.</p>
<p>In this article, we introduce and describe <italic>Bernaise</italic> (<sc>B</sc>inary <sc>E</sc>lect<sc>r</sc>ohydrody<sc>na</sc>m<sc>i</sc>c Solv<sc>e</sc>r), which is an open-source software/framework for simulating two-phase electrohydrodynamics. It is suitable for use in complex domains, operating on arbitrary unstructured meshes. The finite-element solver is written entirely in Python and built on top of the FEniCS framework [<xref ref-type="bibr" rid="B42">42</xref>], which (among other things) effectively uses the PETSc backend for scalability. FEniCS has in recent years found success in related applications, such as in high-performance simulation of turbulent flow [<xref ref-type="bibr" rid="B43">43</xref>], and for single-phase, steady-state electrohydrodynamic flow simulation in nanopores [<xref ref-type="bibr" rid="B44">44</xref>] and model fractures [<xref ref-type="bibr" rid="B45">45</xref>]. Since <italic>Bernaise</italic> was inspired by the <italic>Oasis</italic> solver for fluid flow [<xref ref-type="bibr" rid="B43">43</xref>], it is similar to the latter in both implementation and use.</p>
<p>In this work, we employ a phase-field model to propagate the interface between the two phases. Such <italic>diffuse interface</italic> models, as opposed to e.g., sharp interface models (see for instance [<xref ref-type="bibr" rid="B46">46</xref>]), assume that the fluid-fluid interface has a finite size, and have the advantage that no explicit tracking of the interface is necessary. Hence, using a phase-field model has several advantages in our setting: it takes on a natural formulation using the finite element method; in sub-micrometer scale applications, the diffuse interface and finite interface thickness present in these models might correspond to the physical interface thickness (typically nanometer scale [<xref ref-type="bibr" rid="B47">47</xref>]); and the diffuse interface may resolve the moving contact line conundrum [<xref ref-type="bibr" rid="B27">27</xref>, <xref ref-type="bibr" rid="B48">48</xref>]. Note that although <italic>ab initio</italic> and molecular dynamics simulation methods are in rapid growth due to the increase in computational power, and do not require explicit tracking of the interface or phenomenological boundary conditions, such methods are restricted to significantly smaller scales than continuum models are. Nevertheless, they serve as valuable tools for calibration of the continuum methods [<xref ref-type="bibr" rid="B48">48</xref>&#x02013;<xref ref-type="bibr" rid="B51">51</xref>]. We note also that sharp-interface methods such as level-set [<xref ref-type="bibr" rid="B52">52</xref>, <xref ref-type="bibr" rid="B53">53</xref>] and volume-of-fluid methods [<xref ref-type="bibr" rid="B38">38</xref>, <xref ref-type="bibr" rid="B54">54</xref>, <xref ref-type="bibr" rid="B55">55</xref>] are viable options for simulating electrohydrodynamics, but such methods shall not be considered here.</p>
<p>The use of phase field models to describe multiphase flow has a long history in fluid mechanics [<xref ref-type="bibr" rid="B56">56</xref>]. Notably, the &#x0201C;Model H&#x0201D; of Hohenberg and Halperin [<xref ref-type="bibr" rid="B57">57</xref>], for two incompressible fluids with matched densities and viscosities, is based on the coupled Navier&#x02013;Stokes&#x02013;Cahn&#x02013;Hilliard system, and was introduced to describe phase transitions of binary fluids or single-phase fluid near the critical point. Lowengrub and Truskinovsky [<xref ref-type="bibr" rid="B58">58</xref>] later derived a thermodynamically consistent generalization of Model H where densities and viscosities were different in the two phases, however with the numerical difficulty that the velocity field was not divergence free. To circumvent this issue, Abels et al. [<xref ref-type="bibr" rid="B59">59</xref>] developed a thermodynamically consistent and frame invariant phase-field model for two-phase flow, where the velocity field was divergence free, allowing for the use of more efficient numerical methods. Lu et al. [<xref ref-type="bibr" rid="B40">40</xref>] proposed a phase-field model to describe electrohydrodynamics, but was restricted to flow in Hele-Shaw cells, using a Darcy equation to describe the flow between the parallel plates<xref ref-type="fn" rid="fn0001"><sup>1</sup></xref>. A phase-field approach to the leaky-dielectric model was presented by Lin et al. [<xref ref-type="bibr" rid="B60">60</xref>]. Using the Onsager variational principle, Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>] augmented the model of Abels et al. [<xref ref-type="bibr" rid="B59">59</xref>] with electrodynamics, i.e., inclusion of ions, electric fields and forces. This can be seen as a more physically sound version of the model proposed by Eck et al. [<xref ref-type="bibr" rid="B62">62</xref>], which only contained a single &#x0201C;net charge&#x0201D; electrolyte species. A model for two-phase electrohydrodynamics was derived, with emphasis on contact line pinning, by Nochetto et al. [<xref ref-type="bibr" rid="B63">63</xref>], but this does not appear to be frame-invariant, as the chemical potential depends quadratically on velocity [<xref ref-type="bibr" rid="B61">61</xref>]. In this work, we will therefore focus on the model by Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>].</p>
<p>There is a vast literature on the discretization and simulations of immiscible two-phase flows including phase-field models (see e.g., [<xref ref-type="bibr" rid="B46">46</xref>, <xref ref-type="bibr" rid="B56">56</xref>]), but here we focus on research which is immediately relevant concerning the discretization and implementation of the model by Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>]. Gr&#x000FC;n and Klingbeil [<xref ref-type="bibr" rid="B64">64</xref>] discretized the model in Abels et al. [<xref ref-type="bibr" rid="B59">59</xref>] (without electrohydrodynamics) with a dual mesh formulation, using a finite volume method on the dual mesh for advection terms, and a finite element method for the rest. Based on the sharp-interface model benchmarks of Hysing et al. [<xref ref-type="bibr" rid="B65">65</xref>], Aland and Voigt [<xref ref-type="bibr" rid="B66">66</xref>] provided benchmarks of bubble dynamics comparing several formulations of phase-field models (without electrodynamics). Energy-stable numerical schemes for the same case were presented and analyzed in Guill&#x000E9;n-Gonz&#x000E1;lez and Tierra [<xref ref-type="bibr" rid="B67">67</xref>] and Gr&#x000FC;n et al. [<xref ref-type="bibr" rid="B68">68</xref>]. Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>] provided preliminary simulations of the two-phase electrohydrodynamics model in their paper, however with a simplified formulation of the chemical potential of the solutes. A scheme for the model in Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>] which decouples the Navier&#x02013;Stokes equations from the Cahn&#x02013;Hilliard&#x02013;Poisson&#x02013;Nernst&#x02013;Planck problem, was presented and demonstrated by Metzger [<xref ref-type="bibr" rid="B69">69</xref>, <xref ref-type="bibr" rid="B70">70</xref>]. In the particular case of equal phasic permittivities, the Cahn&#x02013;Hilliard problem could be decoupled from the Poisson&#x02013;Nernst&#x02013;Planck problem. Recently, a stable finite element approximation of two-phase EHD, with the simplifying assumptions of Stokes flow and no electrolytes, was proposed by Nurnberg and Tucker [<xref ref-type="bibr" rid="B71">71</xref>].</p>
<p>The main contributions of this article is to give a straightforward description of <italic>Bernaise</italic>, including the necessary background theory, an overview of the implementation, and a demonstration of its ease of use. Solving the coupled set of equations in a monolithic manner (as is done in [<xref ref-type="bibr" rid="B61">61</xref>] using their in-house <sc>EconDrop</sc> software) is a computationally expensive task, and we therefore propose a new linear splitting scheme which sequentially solves the phase-field, chemical transport and the fluid flow <italic>subproblems</italic> at each time step. A major point of this article is to demonstrate the validity of the approach and numerical convergence of the proposed scheme. We do this through comparing our numerical solutions to limiting cases where analytical solutions are available, benchmark solutions, and using the method of manufactured solution. We also demonstrate how the framework can be extended by supplying user-specified problems and solvers. We believe that due to its flexibility, scalability and open-source licensing, this framework has advantages over software which to our knowledge may have <italic>some</italic> of the same functionality, such as E<sc>con</sc>D<sc>rop</sc> (in-house code of Gr&#x000FC;n and co-workers) and C<sc>omsol</sc> (proprietary). Compared to sharp-interface methods, the method employed in the current framework is automatically capable of handling topological changes and contact line motion, and the full three-dimensional (3D) capabilities allows to study more general phenomena than what can be achieved by axisymmetric formulations [<xref ref-type="bibr" rid="B38">38</xref>]. We expect <italic>Bernaise</italic> to be a valuable tool that may facilitate the development of microfluidic devices, as well as a deepened understanding of electrohydrodynamic phenomena in many natural or industrial settings.</p>
<p>The outline of this paper is as follows. In section 2, we introduce the sharp-interface equations describing two-phase electrohydrodynamics; then we present the thermodynamically consistent model of electrohydrodynamics by Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>]. In section 3, we write down the variational form of the model, present the monolithic scheme, and present a linear splitting scheme for solving the full-fledged two-phase electrohydrodynamics. section 4 gives a brief presentation of <italic>Bernaise</italic>, and demonstrates its ease use through a minimal example. Further, we describe how <italic>Bernaise</italic> can be extended with user-specified problems and solvers. In section 5, we validate the approach as described in the preceding paragraph. In section 6, we apply the framework to a geologically relevant setting where dynamic electrowetting effects enter, and present full 3D simulations of droplet coalescence and breakup. Finally, in section 7 we draw conclusions and point to future work.</p>
<p>We expect the reader to have a basic familiarity with the finite element method, the Python language, and the FEniCS package. Otherwise, we refer to the tutorial by Langtangen and Logg [<xref ref-type="bibr" rid="B72">72</xref>].</p>
</sec>
<sec id="s2">
<title>2. Model</title>
<p>The governing equations of two-phase electrohydrodynamics can be summarized as the coupled system of two-phase flow, chemical transport (diffusion and migration), and electrostatics [<xref ref-type="bibr" rid="B61">61</xref>]. We will now describe the sharp-interface equations that the phase-field model should reproduce, and subsequently the phase-field model for electrohydrodynamics. For the purpose of keeping the notation short, we consider a general electrokinetic scaling of the equations. The relations between the dimensionless quantities and their physical quantities are elaborated in <xref ref-type="supplementary-material" rid="SM1">Appendix A</xref> in Supplementary Material.</p>
<sec>
<title>2.1. Sharp-Interface Equations</title>
<p>In the following, we present each equation of the physical (sharp-interface) model. With validity down to the nanometer scale, the fluid flow is described by the incompressible Navier&#x02013;Stokes equations, augmented by some additional force terms due to electrochemistry:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M122"><mml:mrow><mml:msub><mml:mi>&#x003C1;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:msub><mml:mo>&#x02202;</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>+</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x022C5;</mml:mo><mml:mo>&#x02207;</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mo>&#x02207;</mml:mo><mml:mn>2</mml:mn></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mo>&#x02207;</mml:mo><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mi>j</mml:mi></mml:munder><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mstyle><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mo>&#x02207;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E2"><label>(2)</label><mml:math id="M123"><mml:mrow><mml:mo>&#x02207;</mml:mo><mml:mo>&#x022C5;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>=</mml:mo><mml:mn>0.</mml:mn></mml:mrow></mml:math></disp-formula>
<p>Here, &#x003C1;<sub><italic>i</italic></sub> is the density of phase <italic>i</italic>, <bold>v</bold> is the velocity field, &#x003BC;<sub><italic>i</italic></sub> is the dynamic viscosity of phase <italic>i</italic>, <italic>p</italic>(<bold>x</bold>, <italic>t</italic>) is the pressure field<xref ref-type="fn" rid="fn0002"><sup>2</sup></xref>, <italic>c</italic><sub><italic>j</italic></sub>(<bold>x</bold>, <italic>t</italic>) is the concentration of solute species <italic>j</italic>, and <italic>g</italic><sub><italic>c</italic><sub><italic>j</italic></sub></sub> is the associated electrochemical potential. The form of the right hand side of Equation (1) is somewhat unconventional (and relies on a specific interpretation of the pressure), but has numerical advantages over other formulations as it avoids, e.g., pressure build-up in the electrical double layers [<xref ref-type="bibr" rid="B73">73</xref>].</p>
<p>The transport of the concentration field of species <italic>i</italic> is governed by the conservative (advection&#x02013;diffusion&#x02013;migration) equation:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M124"><mml:mrow><mml:msub><mml:mo>&#x02202;</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x022C5;</mml:mo><mml:mo>&#x02207;</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mo>&#x02207;</mml:mo><mml:mo>&#x022C5;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mo>&#x02207;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>K</italic><sub><italic>ij</italic></sub> is the diffusivity of species <italic>j</italic> in phase <italic>i</italic>. The electrochemical potential is in general given by</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M125"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mi>V</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B1;&#x02032;(<italic>c</italic>) &#x0003D; &#x02202;&#x003B1;/&#x02202;<italic>c</italic>(<italic>c</italic>), and &#x003B1;(<italic>c</italic>) is a convex function describing the chemical free energy, &#x003B2;<sub><italic>ij</italic></sub> is a parameter describing the solubility of species <italic>j</italic> in phase <italic>i</italic>, <italic>z</italic><sub><italic>j</italic></sub> is the charge if solute species <italic>j</italic>, and <italic>V</italic> is the electric potential. Equation (3) can be seen as a generalized Nernst&#x02013;Planck equation. With an appropriate choice of &#x003B1;(<italic>c</italic>), Equation (3) reduces to the phenomenological Nernst&#x02013;Planck equation, which has been established for the transport of charged species in dilute solutions under influence of an electric field. The latter amounts to a dilute solution, using the ideal gas approximation,</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M126"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#x0221D;</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo class='qopname'>ln</mml:mo><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>With this choice of &#x003B1;, the solubility parameter &#x003B2;<sub><italic>ij</italic></sub> can be interpreted as related to a reference concentration <inline-formula><mml:math id="M6"><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mtext>ref</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, through the relation</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M127"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mo class='qopname'>ln</mml:mo><mml:mstyle class="text"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>ref</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>This gives a chemical energy <inline-formula><mml:math id="M8"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext class="qopname">ln</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mtext>ref</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> which has a minimum at <inline-formula><mml:math id="M9"><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mtext>ref</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> (see also Linga et al. (Submitted)).</p>
<p>Since the dynamics of the electric field is much faster than that of charge transport, we can safely assume electrostatic conditions (i.e., neglect magnetic fields). This amounts to solving the Poisson problem (Gauss&#x00027; law):</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M128"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Here, &#x003B5;<sub><italic>i</italic></sub> is the electrical permittivity of phase <italic>i</italic>, and <inline-formula><mml:math id="M11"><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the total charge density.</p>
<p>In the absence of advection, for the case of two symmetric charges, and under certain boundary conditions, Equations (3&#x02013;7) lead to the simpler Poisson&#x02013;Boltzmann equation (see <xref ref-type="supplementary-material" rid="SM1">Appendix B</xref> in Supplementary Material).</p>
<sec>
<title>2.1.1. Fluid-Fluid Interface Conditions</title>
<p>It is necessary to define jump conditions over the interface between the two fluids. We denote the jump in a physical quantity &#x003C7; across the interface by <inline-formula><mml:math id="M12"><mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mi>&#x003C7;</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#x0002B;</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, and the unit vector <inline-formula><mml:math id="M13"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>int</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> normal to the interface.</p>
<p>Firstly, due to incompressibility, the velocity field must be continuous:</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M129"><mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>+</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0.</mml:mn></mml:mrow></mml:math></disp-formula>
<p>The electrochemical potential must be continuous across the interface,</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M130"><mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>+</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0.</mml:mn></mml:mrow></mml:math></disp-formula>
<p>Due to conservation of the electrolytes, the flux of ion species <italic>j</italic> <italic>into</italic> the interface must equal the flux <italic>out of</italic> the interface,</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M131"><mml:mrow><mml:msubsup><mml:mrow><mml:mo mathcolor="black" stretchy='false'>[</mml:mo><mml:msub><mml:mi mathcolor="black">K</mml:mi><mml:mrow><mml:mi mathcolor="black">i</mml:mi><mml:mi mathcolor="black">j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathcolor="black">c</mml:mi><mml:mi mathcolor="black">j</mml:mi></mml:msub><mml:mo mathcolor="black">&#x02207;</mml:mo><mml:msub><mml:mi mathcolor="black">g</mml:mi><mml:mrow><mml:msub><mml:mi mathcolor="black">c</mml:mi><mml:mi mathcolor="black">j</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo mathcolor="black" stretchy='false'>]</mml:mo></mml:mrow><mml:mo mathcolor="black">&#x02212;</mml:mo><mml:mo mathcolor="black">+</mml:mo></mml:msubsup><mml:mo mathcolor="black">&#x022C5;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mover accent='true'><mml:mi mathcolor="black">n</mml:mi><mml:mo mathcolor="black">&#x0005E;</mml:mo></mml:mover></mml:mstyle><mml:mrow><mml:mstyle class="text" mathcolor="black"><mml:mtext>int</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo mathcolor="black">=</mml:mo><mml:mn mathcolor="black">0</mml:mn><mml:mo mathcolor="black">,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>and the normal flux of the electric displacement field <bold>D</bold> &#x0003D; &#x02212;&#x003B5;<sub><italic>i</italic></sub><bold>&#x02207;</bold><italic>V</italic>, and the electric potential, should be continuous (since by assumption, no free charge is located <italic>between</italic> the fluids):</p>
<disp-formula id="E11"><label>(11)</label><mml:math id="M132"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#43;</mml:mo></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>int</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#43;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Finally, interfacial stress balance yields the condition</p>
<disp-formula id="E12"><label>(12)</label><mml:math id="M133"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#43;</mml:mo></mml:msubsup><mml:msub><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>int</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#43;</mml:mo></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>int</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>E</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x02297;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>E</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>E</mml:mtext></mml:mstyle></mml:mstyle><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>I</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#43;</mml:mo></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>int</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mi>&#x003BA;</mml:mi><mml:msub><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>int</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C3; is the surface tension, &#x003BA; is the curvature, and <bold>E</bold> &#x0003D; &#x02212;<bold>&#x02207;</bold><italic>V</italic> is the electric field. Moreover, we have defined the shorthand symmetric (vector) gradient,</p>
<disp-formula id="E13"><label>(13)</label><mml:math id="M134"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext>sym</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#43;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Further, all gradient terms have been absorbed into the pressure. Note that Equation (12) leads to a modified Young&#x02013;Laplace law in equilibrium, which include Maxwell stresses.</p>
</sec>
<sec>
<title>2.1.2. Boundary Conditions</title>
<p>There are a range of applicable boundary conditions for two-phase electrohydrodynamics. Here, we briefly discuss a few viable options. In the following, we let <inline-formula><mml:math id="M20"><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> be a unit normal vector pointing out of the domain, and <inline-formula><mml:math id="M21"><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>t</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> be a tangent vector to the boundary.</p>
<p>For the velocity, it is customary to use the no-slip condition <bold>u</bold> &#x0003D; <bold>0</bold> at the solid boundary. Alternatively, the Navier slip condition, which is useful for modeling moving contact lines [<xref ref-type="bibr" rid="B50">50</xref>], could be used:</p>
<disp-formula id="E14"><label>(14)</label><mml:math id="M135"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003B3;</mml:mi><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B3; is a slip parameter. The slip length &#x003BC;/&#x003B3; is typically of nanometer scale and dependent on the materials in question. However, since the implementation of such conditions may become slightly involved, we omit it in the following.</p>
<p>With regards to the electrolytes, it is natural to specify either a prescribed concentration at the boundary, <italic>c</italic><sub><italic>i</italic></sub> &#x0003D; <italic>c</italic><sub>0</sub>, or a no-flux condition out of the domain,</p>
<disp-formula id="E15"><label>(15)</label><mml:math id="M136"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For the electric potential, it is natural to prescribe either the Dirichlet condition <inline-formula><mml:math id="M24"><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula>, or a prescribed surface charge &#x003C3;<sub><italic>e</italic></sub>(<bold>x</bold>),</p>
<disp-formula id="E16"><label>(16)</label><mml:math id="M137"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
</sec>
<sec>
<title>2.2. Phase-Field Formulation</title>
<p>In order to track the interface between the phases, we introduce an order parameter field &#x003D5; which attains the values &#x000B1;1, respectively, in the two phases, and interpolates between the two across a diffuse interface of thickness &#x003F5;. In the sharp-interface limit &#x003F5; &#x02192; 0, the equations should reproduce the correct physics, and reduce to the model above, including the interface conditions. A thermodynamically consistent phase-field model which reduces to this formulation was proposed by Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>]:</p>
<disp-formula id="E17"><label>(17)</label><mml:math id="M138"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mo>&#x02202;</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x02207;</mml:mo><mml:mo>&#x022C5;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x02297;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#x02207;</mml:mo><mml:mo>&#x022C5;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003BC;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="text"><mml:mtext>&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;&#x02009;</mml:mtext></mml:mstyle><mml:mrow><mml:mrow><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x02297;</mml:mo><mml:msup><mml:mi>&#x003C1;</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mi>M</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02207;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mo>&#x02207;</mml:mo><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x02207;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mstyle><mml:mo>&#x02207;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E18"><label>(18)</label><mml:math id="M139"><mml:mo>&#x02207;</mml:mo><mml:mo>&#x022C5;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E19"><label>(19)</label><mml:math id="M140"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x02202;</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mi>&#x003D5;</mml:mi><mml:mo>&#43;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mo>-</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E20"><label>(20)</label><mml:math id="M141"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x02202;</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E21"><label>(21)</label><mml:math id="M142"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Here, &#x003D5; is the phase field, and it takes the value &#x003D5; &#x0003D; &#x02212;1 in phase <italic>i</italic> &#x0003D; 1, and the value &#x003D5; &#x0003D; 1 in phase <italic>i</italic> &#x0003D; 2. Equation (19) governs the conservative evolution of the phase field, wherein the diffusion term is controlled by the phase field mobility <italic>M</italic>(&#x003D5;). Here, &#x003C1;, &#x003BC;, &#x003B5;, <italic>K</italic><sub><italic>j</italic></sub> depend on which phase they are in, and are considered slave variables of the phase field &#x003D5;. Across the interface these quantities interpolate between the values in the two phases:</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M143"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mi>&#x003D5;</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E23"><label>(23)</label><mml:math id="M144"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mi>&#x003D5;</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E24"><label>(24)</label><mml:math id="M145"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mi>&#x003D5;</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E25"><label>(25)</label><mml:math id="M146"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mi>&#x003D5;</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>These averages are all weighted arithmetically, although other options are available. For example, Tomar et al. [<xref ref-type="bibr" rid="B54">54</xref>] found that, in the case of a level-set method with smoothly interpolated phase properties, using a weighted harmonic mean gave more accurate computation of the electric field. However, Lopez-Herrera et al. [<xref ref-type="bibr" rid="B55">55</xref>] found no indication that the harmonic mean was superior when free charges were present, and hence we adopt for simplicity and computational performance the arithmetic mean, although it remains unsettled which mean would yield the most accurate result.</p>
<p>Further, the chemical potential of species <italic>c</italic><sub><italic>j</italic></sub> is given by</p>
<disp-formula id="E26"><label>(26)</label><mml:math id="M147"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mi>V</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where we, for dilute solutions, may model &#x003B1;(<italic>c</italic>) &#x0003D; <italic>c</italic>(log <italic>c</italic> &#x02212; 1) to obtain consistency with the standard Nernst&#x02013;Planck equation. Further, we use a weighted arithmetic mean for the solubility parameters &#x003B2;<sub><italic>j</italic></sub>:</p>
<disp-formula id="E27"><label>(27)</label><mml:math id="M148"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mi>&#x003D5;</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>which, under the assumption of dilute solutions and with the interpretation (6), corresponds to a weighted geometric mean for the reference concentrations:</p>
<disp-formula id="E28"><label>(28)</label><mml:math id="M149"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>ref</mml:mtext></mml:mstyle></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>ref</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#43;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:mo>&#x000B7;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>ref</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In analogy with <italic>g</italic><sub><italic>c</italic><sub><italic>j</italic></sub></sub> being the chemical potential of species <italic>c</italic><sub><italic>j</italic></sub>, we denote <italic>g</italic><sub>&#x003D5;</sub> as the chemical potential of the phase field &#x003D5;. It is given by:</p>
<disp-formula id="E29"><label>(29)</label><mml:math id="M150"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:mfrac><mml:mo>-</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#43;</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi><mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The free energy functional <italic>f</italic> of the phase field is defined by</p>
<disp-formula id="E30"><label>(30)</label><mml:math id="M151"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>,</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>3</mml:mn><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:msqrt style="color:black"><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo stretchy='false'>|</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:msup><mml:mrow><mml:mo stretchy='false'>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#43;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>W</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo stretchy='false'>|</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:msup><mml:mrow><mml:mo stretchy='false'>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#43;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>W</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C3; is the surface tension, &#x003F5; is the interface thickness, and <italic>W</italic>(&#x003D5;) is a double well potential. Here, we use <italic>W</italic>(&#x003D5;) &#x0003D; (1 &#x02212; &#x003D5;<sup>2</sup>)<sup>2</sup>/4. We have also implicitly defined the scaled surface tension <inline-formula><mml:math id="M40"><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:math></inline-formula> for convenience of notation. With this free energy, we obtain</p>
<disp-formula id="E31"><label>(31)</label><mml:math id="M152"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mi>&#x003F5;</mml:mi><mml:msup><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mn>2</mml:mn></mml:msup><mml:mi>&#x003D5;</mml:mi><mml:mo>&#43;</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi><mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We will assume this form throughout.</p>
<p>After some rewriting, exploiting Equation (18) and the fact that &#x003C1;&#x02032;(&#x003D5;) is constant due to Equation (22), Equation (18) can be expressed as</p>
<disp-formula id="E32"><label>(32)</label><mml:math id="M153"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mtable style='text-align:axis;' equalrows='false' columnlines='none' equalcolumns='false' class='array'><mml:mtr><mml:mtd columnalign='left'><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:msub><mml:mi>&#x02202;</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>-</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>p</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign='left'><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<sec>
<title>2.2.1. Phase Field Mobility</title>
<p>Given a proper definition of the phase-field mobility <italic>M</italic>(&#x003D5;), the phase-field model should reduce to the sharp-interface model given in the previous section. As discussed at length in Campillo-Funollet et al. [<xref ref-type="bibr" rid="B61">61</xref>], the two following ways are viable options:</p>
<disp-formula id="E33"><label>(33a)</label><mml:math id="M154"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E34"><label>(33b)</label><mml:math id="M155"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#43;</mml:mo></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Here <italic>M</italic><sub>0</sub> is a constant, and (&#x000B7;)<sub>&#x0002B;</sub> &#x0003D; max(&#x000B7;, 0). Other formulations of <italic>M</italic> are possible; some of these will in the limit of vanishing interface width reduce to a sharp-interface model where the interface velocity does not equal the fluid velocity [<xref ref-type="bibr" rid="B59">59</xref>, <xref ref-type="bibr" rid="B61">61</xref>].</p>
</sec>
<sec>
<title>2.2.2. Boundary Conditions</title>
<p>Some of the interface conditions from the sharp-interface model carry over to the phase field model, but in addition, some new conditions must be specified for the phase field. Here we give a brief summary. We assume that the boundary of the domain &#x003A9;, &#x02202;&#x003A9;, can be divided into an inlet part &#x02202;&#x003A9;<sub>in</sub>, an outlet part &#x02202;&#x003A9;<sub>out</sub>, and a wall part &#x02202;&#x003A9;<sub>wall</sub>. We shall primarily discuss the latter here.</p>
<p>For the velocity field, we assume the no-slip condition</p>
<disp-formula id="E35"><label>(34)</label><mml:math id="M156"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mn>0</mml:mn></mml:mstyle><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for&#x02003;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:mi>&#x02202;</mml:mi><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>wall</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Alternatively, a no-flux condition and a slip law could have been used; in particular, a generalized Navier boundary condition (GNBC) has been shown to hold yield a consistent description of the contact line motion [<xref ref-type="bibr" rid="B48">48</xref>, <xref ref-type="bibr" rid="B49">49</xref>]. However, to limit the scope, the moving contact line paradox will in this work be overcome by interface diffusion.</p>
<p>With regards to the flow problem, the pressure gauge needs to be fixed. To this end, the pressure could be fixed somewhere on the boundary, or the pressure nullspace could be removed.</p>
<p>For the concentrations <italic>c</italic><sub><italic>j</italic></sub>, we may use a prescribed concentration, or the no-flux condition</p>
<disp-formula id="E36"><label>(35)</label><mml:math id="M157"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>on&#x02003;</mml:mtext><mml:mi>&#x02202;</mml:mi><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>wall</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For the electric potential, we use either the Dirichlet condition <inline-formula><mml:math id="M47"><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> (which is reasonable at either inlet or outlet), or in the presence of charged (or neutral) boundaries, the condition</p>
<disp-formula id="E37"><label>(36)</label><mml:math id="M158"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>on&#x02003;</mml:mtext><mml:mi>&#x02202;</mml:mi><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>wall</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>similar to the sharp-interface condition. Note that &#x003C3;<sub><italic>e</italic></sub>(<bold>x</bold>) is prescribed and can vary over the boundary.</p>
<p>We assume that the no-flux conditons hold on the phase field chemical potential,</p>
<disp-formula id="E38"><label>(37)</label><mml:math id="M159"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>on&#x02003;</mml:mtext><mml:mi>&#x02202;</mml:mi><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>wall</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For the phase field itself, a general dynamic wetting boundary condition can be expressed as [<xref ref-type="bibr" rid="B74">74</xref>]:</p>
<disp-formula id="E39"><label>(38)</label><mml:math id="M160"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:mi>&#x003F5;</mml:mi><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>&#x02202;</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mi>&#x003D5;</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mi>&#x003F5;</mml:mi><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo><mml:mtext class='textrm' mathvariant='normal'></mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mo>&#43;</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B8;<sub><italic>e</italic></sub> is the equilibrium contact angle, &#x003C4;<sub><italic>w</italic></sub> is a relaxation parameter, and <inline-formula><mml:math id="M51"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mn>3</mml:mn><mml:mi>&#x003D5;</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>4</mml:mn></mml:math></inline-formula> interpolates smoothly between 0 (at &#x003D5; &#x0003D; &#x02212;1) and 1 (at &#x003D5; &#x0003D; 1). In this work, we limit ourselves to studying fixed contact angles, i.e., considering Equation (38) with &#x003C4;<sub><italic>w</italic></sub> &#x0003D; 0. For a GNBC, the phase-field boundary condition (38) must be modeled consistently with the slip condition on the velocity [<xref ref-type="bibr" rid="B48">48</xref>].</p>
</sec>
</sec>
</sec>
<sec id="s3">
<title>3. Discretization</title>
<p>For solving the equations of two-phase EHD, i.e., the model consisting of Equations (18)&#x02013;(21), there are four operations that must be performed:
<list list-type="order">
<list-item><p>Propagate the phase field &#x003D5;.</p></list-item>
<list-item><p>Propagate the chemical species concentrations <italic>c</italic><sub><italic>i</italic></sub>.</p></list-item>
<list-item><p>Update the electric potential <italic>V</italic></p></list-item>
<list-item><p>Propagate the velocity <bold>v</bold> and pressure <italic>p</italic>.</p></list-item>
</list></p>
<p>The whole system of equations could in principle be solved simultaneously using implicit Euler discretization in time and e.g., Newton&#x00027;s method to solve the nonlinear system. However, in order to simulate larger systems faster, it is preferable to use a splitting scheme to solve for each field sequentially. One such splitting scheme was outlined in Metzger [<xref ref-type="bibr" rid="B69">69</xref>], based on the energy-stable scheme without electrochemistry as developed by Guillen-Gonzalez F and Tierra [<xref ref-type="bibr" rid="B67">67</xref>], Gr&#x000FC;n et al. [<xref ref-type="bibr" rid="B68">68</xref>]. However, that scheme did not take into account that the electric permittivities in the two fluids may differ, and when they do, the phase field and the electrochemistry computations become coupled through the electric field [<xref ref-type="bibr" rid="B70">70</xref>]. We will here discuss two strategies for solving the coupled problem of two-phase electrohydrodynamics. First, we present the fully monolithic, non-linear scheme, and secondly, we propose a new, fully practical linear operator splitting scheme. As we are not aware of any splitting schemes that are second-order accurate in time for the case of unmatched densities, we shall constrain our discussion to first-order in time schemes.</p>
<p>In the forthcoming, we will denote the inner product of any two scalar, vector, or tensor fields <inline-formula><mml:math id="M52"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">B</mml:mi></mml:mrow></mml:math></inline-formula> by <inline-formula><mml:math id="M53"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="-tex-caligraphic">A</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Further, we consider a discrete time step &#x003C4;, and denote the (first-order) discrete time derivative by</p>
<disp-formula id="E40"><label>(39)</label><mml:math id="M161"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msubsup><mml:mi>&#x02202;</mml:mi><mml:mo>&#x003C4;</mml:mo><mml:mo>&#x02212;</mml:mo></mml:msubsup><mml:mi></mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The equations are discretized on the domain &#x003A9; &#x02282; &#x0211D;<sup><italic>d</italic></sup>, <italic>d</italic> &#x0003D; 2, 3, with the no-slip boundary &#x00393;. Since we do not consider explicitly in- and outlet boundary conditions in this work, we will omit this possible part of the domain for the sake of brevity.</p>
<p>We define the following finite element subspaces:</p>
<disp-formula id="E41"><label>(40)</label><mml:math id="M162"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msup><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>where&#x02003;</mml:mtext><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>v</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for velocity</mml:mtext><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E42"><label>(41)</label><mml:math id="M163"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for pressure</mml:mtext><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E43"><label>(42)</label><mml:math id="M164"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mo>&#x003A6;</mml:mo></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for phase field</mml:mtext><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E44"><label>(43)</label><mml:math id="M165"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for phase field chemical potential</mml:mtext><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E45"><label>(44)</label><mml:math id="M166"><mml:mtable class='eqnarray' columnalign='right center left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext><mml:mtext class='textrm' mathvariant='normal'>for concentrations</mml:mtext></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E46"><label>(45)</label><mml:math id="M167"><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathcolor="black">U</mml:mi><mml:mi mathcolor="black">h</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo mathcolor="black">=</mml:mo><mml:mo mathcolor="black">&#x0007B;</mml:mo><mml:mi mathcolor="black">V</mml:mi><mml:mo mathcolor="black">&#x02208;</mml:mo><mml:msup><mml:mi mathcolor="black">H</mml:mi><mml:mn mathcolor="black">1</mml:mn></mml:msup><mml:mo mathcolor="black" stretchy='false'>(</mml:mo><mml:mo mathcolor="black">&#x003A9;</mml:mo><mml:mo mathcolor="black" stretchy='false'>)</mml:mo><mml:mo mathcolor="black">&#x0007D;</mml:mo><mml:mstyle class="text" mathcolor="black"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mstyle class="text" mathcolor="black"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mstyle class="text" mathcolor="black"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mstyle class="text" mathcolor="black"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mstyle class="text" mathcolor="black"><mml:mtext>&#x000A0;</mml:mtext></mml:mstyle><mml:mstyle class="text" mathcolor="black"><mml:mtext>for&#x000A0;the&#x000A0;electrostatic&#x000A0;potential</mml:mtext></mml:mstyle><mml:mo mathcolor="black">.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>
<sec>
<title>3.1. Monolithic Scheme</title>
<p>Here we give the fully implicit scheme that follows from a na&#x000EF;ve implicit Euler discretizion of the model (18)&#x02013;(21), and supplemented by Equation (31).</p>
<p>Assume that <inline-formula><mml:math id="M61"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is given. The scheme can then be summarized by the following. Find <inline-formula><mml:math id="M62"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">U</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that</p>
<disp-formula id="E47"><label>(46a)</label><mml:math id="M168"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E48"><label>(46b)</label><mml:math id="M169"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E49"><label>(46c)</label><mml:math id="M170"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E50"><label>(46d)</label><mml:math id="M171"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mstyle displaystyle='true'><mml:msub><mml:mrow><mml:mo class='qopname'>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msub></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mo>&#x00393;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mi>&#x003F5;</mml:mi><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>|</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E51"><label>(46e)</label><mml:math id="M172"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E52"><label>(46f)</label><mml:math id="M173"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>U</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi>U</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mstyle displaystyle='true'><mml:msub><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msub></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mi>U</mml:mi><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mo>&#x00393;</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>for all test functions <inline-formula><mml:math id="M69"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>u</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x003C8;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>U</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">U</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Here we have used</p>
<disp-formula id="E53"><label>(47)</label><mml:math id="M174"><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi mathcolor="black">m</mml:mi></mml:mstyle><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:mo mathcolor="black">=</mml:mo><mml:msup><mml:mi mathcolor="black">&#x003C1;</mml:mi><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi mathcolor="black">v</mml:mi></mml:mstyle><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:mo mathcolor="black">&#x02212;</mml:mo><mml:msup><mml:mi mathcolor="black">&#x003C1;</mml:mi><mml:mo mathcolor="black">&#x02032;</mml:mo></mml:msup><mml:msup><mml:mi mathcolor="black">M</mml:mi><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:mo mathcolor="black">&#x02207;</mml:mo><mml:msubsup><mml:mi mathcolor="black">g</mml:mi><mml:mi mathcolor="black">&#x003D5;</mml:mi><mml:mi mathcolor="black">k</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>
<p>and the shorthands</p>
<disp-formula id="E54"><mml:math id="M175"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign='left'><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>and&#x02003;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Note that Equations (46) constitute a fully coupled non-linear system and the equations must thus be solved simultaneously, preferably using a Newton method. This results in a large system matrix which must be assembled and solved iteratively, and for which there are in general no suitable preconditioners available. On the other hand, the scheme is fully implicit and hence expected to be fairly robust with regards to e.g., time step size. There are in general several options for constructing the linearized variational form to be used in a Newton scheme.</p>
</sec>
<sec>
<title>3.2. A Linear Splitting Scheme</title>
<p>Now, we introduce a linear operator splitting scheme. This scheme splits between the processes of phase-field transport, chemical transport under an electric field, and hydrodynamic flow, such that the equations governing each of these processes are solved separately.</p>
<sec>
<title>3.2.1. Phase Field Step</title>
<p>Find <inline-formula><mml:math id="M72"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that</p>
<disp-formula id="E55"><label>(48a)</label><mml:math id="M176"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E56"><label>(48b)</label><mml:math id="M177"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mover accent='false' class='mml-overline'><mml:mrow><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo accent='true'>&#x000AF;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>-</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mstyle displaystyle='true'><mml:msub><mml:mrow><mml:mo class='qopname'>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msub></mml:mstyle><mml:mover accent='false' class='mml-overline'><mml:mrow><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo accent='true'>&#x000AF;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mo>&#x00393;</mml:mo><mml:mo>&#43;</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>for all test functions (&#x003C8;, <italic>g</italic><sub>&#x003C8;</sub>) &#x02208; &#x003A6;<sub><italic>h</italic></sub> &#x000D7; <italic>G</italic><sub><italic>h</italic></sub>. Here, <inline-formula><mml:math id="M75"><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a linearization of <italic>W</italic>&#x02032;(&#x003D5;<sup><italic>k</italic></sup>) around &#x003D5;<sup><italic>k</italic>&#x02212;1</sup>:</p>
<disp-formula id="E57"><label>(49)</label><mml:math id="M178"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mover accent='false' class='mml-overline'><mml:mrow><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo accent='true'>&#x000AF;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:msup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x02033;</mml:mo></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We have also used the discretization of Equation (38)</p>
<disp-formula id="E58"><label>(50)</label><mml:math id="M179"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mi>&#x003F5;</mml:mi><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>n</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mover accent='false' class='mml-overline'><mml:mrow><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo accent='true'>&#x000AF;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where we have used the linearization</p>
<disp-formula id="E59"><label>(51)</label><mml:math id="M180"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mover accent='false' class='mml-overline'><mml:mrow><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo accent='true'>&#x000AF;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x02033;</mml:mo></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.2.2. Electrochemistry Step</title>
<p>Find <inline-formula><mml:math id="M79"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that</p>
<disp-formula id="E60"><label>(52a)</label><mml:math id="M181"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>J</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E61"><label>(52b)</label><mml:math id="M182"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>U</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mstyle displaystyle='true'><mml:msub><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msub></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mi>U</mml:mi><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mo>&#x00393;</mml:mo><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi>U</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>for all test functions <inline-formula><mml:math id="M82"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>U</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Here <inline-formula><mml:math id="M83"><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>J</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a linear approximation of the diffusive chemical flux <bold>J</bold><sub><italic>c</italic><sub><italic>j</italic></sub></sub> &#x0003D; <italic>K</italic><sub><italic>j</italic></sub>(&#x003D5;)<italic>c</italic><sub><italic>j</italic></sub><bold>&#x02207;</bold><italic>g</italic><sub><italic>c</italic><sub><italic>j</italic></sub></sub>. For conciseness, we here constrain our analysis to ideal chemical solutions, i.e., we assume a common chemical energy function on the form &#x003B1;(<italic>c</italic>) &#x0003D; <italic>c</italic>(ln <italic>c</italic> &#x02212; 1). To this end, we approximate the flux by:</p>
<disp-formula id="E62"><label>(53)</label><mml:math id="M183"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>J</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#43;</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.2.3. Fluid Flow Step</title>
<p>Find <inline-formula><mml:math id="M85"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that</p>
<disp-formula id="E63"><label>(54a)</label><mml:math id="M184"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E64"><label>(54b)</label><mml:math id="M185"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>for all test functions (<bold>u</bold>, <italic>q</italic>) &#x02208; <bold>V</bold><sub><italic>h</italic></sub> &#x000D7; <italic>P</italic><sub><italic>h</italic></sub>. Here, we have used the following approximation of the advective momentum:</p>
<disp-formula id="E65"><label>(55)</label><mml:math id="M186"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Note that the terms in (54a) involving <inline-formula><mml:math id="M89"><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mo>-</mml:mo></mml:msubsup><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal"></mml:mtext><mml:mstyle class="math"><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mtext class="textrm" mathvariant="normal"></mml:mtext></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, which is a discrete approximation of &#x02202;<italic>t&#x003C1;</italic> &#x0002B; <bold>&#x02207;</bold> &#x000B7; <bold>m</bold> &#x0003D; 0, is included to satisfy a discrete energy dissipation law [<xref ref-type="bibr" rid="B75">75</xref>] (i.e., to improve stability). This step requires solving for the velocity and pressure in a coupled manner. This has the advantage that it yields accurate computation of the pressure, but the drawback that it is computationally challenging to precondition and solve, related to the Babuska&#x02013;Brezzi (BB) condition (see e.g.,[<xref ref-type="bibr" rid="B76">76</xref>]). Alternatively, it might be worthwhile to further split the fluid flow step into the following three substeps, at the cost of some lost accuracy [<xref ref-type="bibr" rid="B77">77</xref>].</p>
<list list-type="bullet">
<list-item><p>Tentative velocity step: Find <inline-formula><mml:math id="M90"><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that for all <bold>u</bold> &#x02208; <bold>V</bold><sub><italic>h</italic></sub>,
<disp-formula id="E66"><label>(56a)</label><mml:math id="M187"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#43;</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>D</mml:mi></mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>m</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mstyle mathvariant='bold'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>with the Dirichlet boundary condition <inline-formula><mml:math id="M92"><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> on &#x00393;.</p></list-item>
<list-item><p>Pressure correction step: Find <inline-formula><mml:math id="M93"><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that for all <italic>q</italic> &#x02208; <italic>P</italic><sub><italic>h</italic></sub>, we have
<disp-formula id="E67"><label>(56b)</label><mml:math id="M188"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mstyle class='math'><mml:mo>&#x02207;</mml:mo></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:msup><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p></list-item>
<list-item><p>Velocity correction step: Then, find <inline-formula><mml:math id="M95"><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> such that for all <bold>u</bold> &#x02208; <bold>V</bold><sub><italic>h</italic></sub>,
<disp-formula id="E68"><label>(56c)</label><mml:math id="M189"><mml:mrow><mml:mrow><mml:mo mathcolor="black">(</mml:mo><mml:mrow><mml:msup><mml:mi mathcolor="black">&#x003C1;</mml:mi><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:mfrac><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi mathcolor="black">v</mml:mi></mml:mstyle><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:mo mathcolor="black">&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi mathcolor="black">v</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x002DC;</mml:mo></mml:mover></mml:mrow><mml:mi mathcolor="black">k</mml:mi></mml:msup></mml:mrow><mml:mi mathcolor="black">&#x003C4;</mml:mi></mml:mfrac><mml:mo mathcolor="black">,</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi mathcolor="black">u</mml:mi></mml:mstyle></mml:mrow><mml:mo mathcolor="black">)</mml:mo></mml:mrow><mml:mo mathcolor="black">=</mml:mo><mml:mo mathcolor="black" stretchy='false'>(</mml:mo><mml:msup><mml:mi mathcolor="black">p</mml:mi><mml:mi mathcolor="black">k</mml:mi></mml:msup><mml:mo mathcolor="black">&#x02212;</mml:mo><mml:msup><mml:mi mathcolor="black">p</mml:mi><mml:mrow><mml:mi mathcolor="black">k</mml:mi><mml:mo mathcolor="black">&#x02212;</mml:mo><mml:mn mathcolor="black">1</mml:mn></mml:mrow></mml:msup><mml:mo mathcolor="black">,</mml:mo><mml:mo mathcolor="black">&#x02207;</mml:mo><mml:mo mathcolor="black">&#x000B7;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi mathcolor="black">u</mml:mi></mml:mstyle><mml:mo mathcolor="black" stretchy='false'>)</mml:mo><mml:mo mathcolor="black">,</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>which we solve by explicitly imposing the Dirichlet boundary condition <bold>u</bold><sup><italic>k</italic></sup> &#x0003D; <bold>0</bold> on &#x00393;.</p></list-item>
</list>
<p>Equations (56a), (56b), and (56c) should be solved sequentially, and constitutes a variant of a projection scheme, i.e., a fractional-step approach to the fluid flow equations [<xref ref-type="bibr" rid="B75">75</xref>, <xref ref-type="bibr" rid="B77">77</xref>&#x02013;<xref ref-type="bibr" rid="B80">80</xref>]. We will in this paper refer to the coupled solution of the fluid flow equations, unless stated otherwise. Specifically, the fractional-step fluid flow scheme will only be demonstrated in the full 3D simulations in section 6.2.</p>
<p>The scheme presented above consists in sequentially solving three decoupled subproblems (or five decoupled subproblems for the fractional-step fluid flow alternative). The subproblems are all linear, and hence attainable for specialized linear solvers which could improve the efficiency. We note that the splitting introduces an error of order &#x003C4;, i.e., the same as the scheme itself. Moreover, our scheme does not preserve the same energy dissipation law on the discrete level, that the original model does on the continuous level. We are currently not aware of any scheme for two-phase electrohydrodynamics with this property, apart from the fully implicit scheme presented in the previous section.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4. Bernaise</title>
<p>We have now introduced the governing equations and two strategies for solving them. Now, we will introduce the Bernaise package, and describe an implementation of a generic simulation problem and a generic solver in this framework. For a complete description of the software, we refer to the online Git repository [<xref ref-type="bibr" rid="B81">81</xref>].</p>
<p>The work presented herein refers to version 1.0 of <italic>Bernaise</italic>. It is compatible with version 2017.2.0 of FEniCS [<xref ref-type="bibr" rid="B42">42</xref>] running in Python 2.7, and version 2018.1.0 of FEniCS, which is the latest stable version available for Python 3.6 at the time of writing. The simulations presented herein were carried out using the 2017.2.0 version of FEniCS (installed from the standard PPA) in combination with Python 2.7 on a Ubuntu 16.04 system. Future releases of Bernaise will (as FEniCS) primarily be compatible with Python 3.6 and follow the update cycle of FEniCS.</p>
<sec>
<title>4.1. Python Package</title>
<p><italic>Bernaise</italic> is designed as a Python package, and the main structure of the package is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The package contains two main submodules, <monospace>problems</monospace> and <monospace>solvers</monospace>. As suggested by the name, the <monospace>problems</monospace> submodule contains scripts where problem-specific geometries (or meshes), physical parameters, boundary conditions, initial states, etc., are specified. We will in section 4.2 dive into the constituents of a problem script. The <monospace>solvers</monospace> submodule, on the other hand, contains scripts that are implementations of the numerical schemes required to solve the governing equations. Two notable examples that are implemented in <italic>Bernaise</italic> are the monolithic scheme (implemented as <monospace>basicnewton</monospace>) and the linear splitting scheme (implemented as <monospace>basic</monospace>). We shall in section 4.3 describe the building blocks of such a solver. Further, a default solver compatible with a given problem is specified in the problem, but this setting can&#x02014;along with most other settings specified in a problem&#x02014;be overridden by providing an additional keyword to the main script call (see below). Note that <italic>not all</italic> solvers are compatible with <italic>all</italic> problems, and vice versa.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Part of the directory structure of Bernaise.</p></caption>
<graphic xlink:href="fphy-07-00021-g0001.tif"/>
</fig>
<p>A simulation is typically run from a terminal, pointing to the <italic>Bernaise</italic> directory, using the command</p>
<preformat>
&#x000BB; python sauce.py <inline-formula><mml:math id="M500"><mml:mstyle mathvariant="monospace" class="text" mathcolor="#5B3E9D"><mml:mtext>problem</mml:mtext></mml:mstyle></mml:math></inline-formula>=charged_droplet
</preformat>
<p>where <monospace>charged_droplet</monospace> may be exchanged with another problem script of choice; albeit we will use <monospace>charged_droplet</monospace> as a pedagogical example in the forthcoming. The main script <monospace>sauce.py</monospace> fetches a <monospace>problem</monospace> and connects it with the <monospace>solver</monospace>. It sets up the finite element problem with all the given parameters, initializes the finite element fields with the specified initial state, and solves it with the specified boundary condition at each time step, until the specified (physical) simulation time <monospace>T</monospace> is exceeded. Any parameter in the problem can be overridden by specifying an additional keyword from the command line; for example, the simulation time can be set to 1,000 by running the command:</p>
<p><monospace>&#x000BB; python sauce.py <inline-formula><mml:math id="M501"><mml:mstyle mathvariant="monospace" class="text" mathcolor="#5B3E9D"><mml:mtext>problem</mml:mtext></mml:mstyle></mml:math></inline-formula>=charged_droplet T=1000</monospace></p>
<p>After every given interval of steps, specified by the parameter <monospace>checkpoint_interval</monospace>, a checkpoint is stored, including all fields, and all problem parameters at the time of writing to file. The checkpoint can be loaded, and the simulation can be continued, by running the command:</p>
<preformat>
&#x000BB; python sauce.py <inline-formula><mml:math id="M502"><mml:mstyle mathvariant="monospace" class="text" mathcolor="#5B3E9D"><mml:mtext>problem</mml:mtext></mml:mstyle></mml:math></inline-formula>=charged_droplet
&#x000A0;&#x000A0;restart_folder=results_charged_droplet/1/
&#x000A0;&#x000A0;Checkpoint/
</preformat>
<p>where the <monospace>restart_folder</monospace> points to an appropriate checkpoint folder. Here, the problem parameters stored within the checkpoint have precedence over the default parameters given in the <monospace>problem</monospace> script. Further, any parameters specified by command line keywords have precedence over the checkpoint parameters.</p>
<p>The role of the main module <monospace>sauce.py</monospace> is to allocate the required variables to run a simulation, to import routines from the specified problem and solver, to iterate the solver in time, and to output and store data at appropriate times. Hence, the main module works as a general interface to problems and solvers. This is enabled by overloading a series of functions, such that problem- and solver-specific functions are defined within the problem and solver, respectively. The structure of <monospace>sauce.py</monospace> is by choice similar to the <monospace>NSfracStep.py</monospace> script in the <italic>Oasis</italic> solver [<xref ref-type="bibr" rid="B43">43</xref>]; both in order to appeal to overlapping user bases, and to keep the code readable and consistent with and similar to common FEniCS examples. However, an additional layer of abstraction in e.g., setting up functions and function spaces is necessary in order to handle a flexible number of subproblems and subspaces, depending on e.g., whether phase field, electrochemistry or flow is disabled, or whether we are running with a monolithic or operator splitting scheme. To keep the <italic>Bernaise</italic> code as readable and easily maintainable as possible, we have consciously avoided uneccessary abstraction. Only the boundary conditions (found in <monospace>common/bcs.py</monospace>) are implemented as classes.</p>
</sec>
<sec>
<title>4.2. The Problems Submodule</title>
<p>The basic user typically interacts with <italic>Bernaise</italic> by implementing a <italic>problem</italic> to be solved. This is accessible to <italic>Bernaise</italic> when put in the subfolder <monospace>problems</monospace>. The implementation consists in overloading a certain set of functions; all of which are listed in the <monospace>problems/__init__.py</monospace> file in the problems folder. The mandatory functions that must be overloaded for each problem are:
<list list-type="bullet">
<list-item><p><monospace>mesh</monospace>: defines the geometry. Equivalent to the <monospace>mesh</monospace> function in <italic>Oasis</italic> [<xref ref-type="bibr" rid="B43">43</xref>].</p></list-item>
<list-item><p><monospace>problem</monospace>: sets up all parameters to be overloaded, including defining solutes and types of finite elements. The default parameters are defined in the <monospace>problems/__init__.py</monospace> file.</p></list-item>
<list-item><p><monospace>initialize</monospace>: initializes all fields.</p></list-item>
<list-item><p><monospace>create_bcs</monospace>: sets all subdomains, and defines boundary conditions (including pointwise boundary condtions, such as pressure pinning). The boundary conditions are more thoroughly explained below.</p></list-item>
</list></p>
<p>Further, there are functions that <italic>may</italic> be overloaded.</p>
<list list-type="bullet">
<list-item><p><monospace>constrained_domain</monospace>: set if the boundary is to be considered periodic.</p></list-item>
<list-item><p><monospace>pf_mobility</monospace>: phase field mobility function; cf. (33a) and (33b).</p></list-item>
<list-item><p><monospace>start_hook</monospace>: hook called before the temporal loop.</p></list-item>
<list-item><p><monospace>tstep_hook</monospace>: hook called at each time step in the loop.</p></list-item>
<list-item><p><monospace>end_hook</monospace>: hook called at the end of the program.</p></list-item>
<list-item><p><monospace>rhs_source</monospace>: explicit source terms to be added to the right hand side of given fields; used e.g., in the method of manufactured solution.</p></list-item>
</list>
<p>Note here the use of three <italic>hooks</italic> that are called during the course of a simulation. These are useful for outputting certain quantities during a simulation, e.g., the flux through a cross section, or total charge in the domain. The <monospace>start_hook</monospace> could also be used to call a steady-state solver to initialize the system closer to equilibrium, e.g., a solver that solves only the electrochemistry subproblem such that we do not have to resolve the very fast time scale of the initial charge equilibration.</p>
<p>In Listing 1, we show an implementation of the <monospace>problems</monospace> function, which sets the necessary parameters that are required for the <monospace>charged_droplet</monospace> case to run. Here, the <monospace>solutes</monospace> array (which defines the solutes), contains only one species, but it can in principle contain arbitrarily many.</p>
<fig id="L1" position="float">
<label>Listing 1</label>
<caption><p>The problems function for the charged_droplet case.</p></caption>
<graphic xlink:href="fphy-07-00021-f0001.tif"/>
</fig>
<p>In Listing 2, we show the code for the initialization stage. Here, <monospace>initial_pf</monospace> and <monospace>initial_c</monospace> are functions defined locally inside the <monospace>charged_droplet.py</monospace> problem script, that set the initial distributions of the phase field and the concentration field, respectively. Here, it should be noted how the (boolean) parameters <monospace>enable_PF</monospace>, <monospace>enable_EC</monospace> and <monospace>enable_NS</monospace> allow to switch on or off either the phase field, the electrochemistry or the hydrodynamics, respectively.</p>
<fig id="L2" position="float">
<label>Listing 2</label>
<caption><p>The initialize function for the charged_droplet case.</p></caption>
<graphic xlink:href="fphy-07-00021-f0002.tif"/>
</fig>
</sec>
<sec>
<title>4.3. The Solvers Submodule</title>
<p>Advanced users may develop solvers that can be placed in the <monospace>solvers</monospace> subdirectory. In the same way as with the <monospace>problems</monospace> submodule, a solver implementation constists of overloading a range of functions which are defined in <monospace>solvers/__init__.py</monospace>.</p>
<list list-type="bullet">
<list-item><p><monospace>get_subproblems</monospace>: Returns a dictionary (<monospace>dict</monospace>) of the subproblems which the solver splits the problem into. This dictionary has points to the name of the fields and the elements (specified in problem) which the subspace is made up of.</p></list-item>
<list-item><p><monospace>setup</monospace>: Sets up the FEniCS solvers for each subproblem.</p></list-item>
<list-item><p><monospace>solve</monospace>: Defines the routines for solving the finite element problems, which are called at every time step.</p></list-item>
<list-item><p><monospace>update</monospace>: Defines the routines for assigning updated values to fields, which are called at the end of every time step.</p></list-item>
</list>
<p>The module <monospace>solvers/basicnewton.py</monospace> implements the monolithic scheme, while the module <monospace>solvers/basic.py</monospace> implements the segregated solver<xref ref-type="fn" rid="fn0003"><sup>3</sup></xref>. The problem is split up intothe subproblems corresponding to whether we have a monolothic or segragated solver in the function <monospace>get_subproblems</monospace>. Within the <monospace>setup</monospace> function, the variational forms are defined, and the solver routines are initialized. The latter are eventually called in the <monospace>solve</monospace> routine at every time step. Note that the element types are defined within the problem, and that the solvers in general can be applied for higher-order spatial accuracy without further ado. The task of <monospace>get_subproblems</monospace> is simply to link the subproblem to the element specification.</p>
<p>In Listing 3, we show how the <monospace>get_subproblems</monospace> function is implemented in the <monospace>basic</monospace> solver. As can be readily seen, the function formally splits the problem into the three subproblems <monospace>NS</monospace>, <monospace>PF</monospace>, and <monospace>EC</monospace>.</p>
<fig id="L3" position="float">
<label>Listing 3</label>
<caption><p>The get_subproblems subroutine of the basic solver.</p></caption>
<graphic xlink:href="fphy-07-00021-f0003.tif"/>
</fig>
<p>The other functions (such as <monospace>setup</monospace>) are somewhat more involved, but can be found at the Git repository [<xref ref-type="bibr" rid="B81">81</xref>].</p>
<p>Note that the implementations of the solvers presented above are sought to be short and humanly readable, and therefore quite straightforwardly implemented. There are several ways to improve the efficiency (and hence scalability) of a solver, at the cost of lost intuitiveness [<xref ref-type="bibr" rid="B43">43</xref>].</p>
</sec>
<sec>
<title>4.4. Boundary Conditions</title>
<p>Boundary conditions are among the few components of <italic>Bernaise</italic> which are implemented as classes. Physical boundary conditons may consist of a combination of Dirichlet and Neumann (or Robin) conditions, and the latter must be incorporated into the variational form. The boundary conditions are specified in the specific problem script, while the variational form is set up in the solver. To promote code reuse, keeping the physical boundary conditions accessible from the problems side, and simultaneously independent of the solver, the various boundary conditions are stored as classes in a separate module. The boundaries themselves should be set by the user within the <monospace>problem</monospace>. By importing various boundary condition classes from <monospace>common/bcs.py</monospace>, the boundary conditions can be inferred at user-specified boundaries.</p>
<p>Within the <monospace>bcs</monospace> module, the base class <monospace>GenericBC</monospace> is defined. The boolean member functions <monospace>is_dbc</monospace> and <monospace>is_nbc</monospace> specifies, respectively, whether the concrete boundary conditions impose a Dirichlet and Neumann condition, and both return false by default. The base class is inherited by various concrete boundary conditon classes, and by overloading these two member functions, the member functions <monospace>dbc</monospace> or <monospace>nbc</monospace> are, respectively called at appropriate times in the code. There is a hierarchy of boundary conditions which inherit from each other. Some of the boundary conditions currently implemented in <italic>Bernaise</italic> are:</p>
<list list-type="bullet">
<list-item><p><monospace>GenericBC</monospace>: Base class for all boundary conditions.
<list list-type="simple">
<list-item><p>&#x02013; <monospace>Fixed</monospace>: Dirichlet condition, applicable for all fields.
<list list-type="simple">
<list-item><p>&#x0002A; <monospace>NoSlip</monospace>: The no-slip condition&#x02014;a pure Dirichlet condition with the value <bold>0</bold>, applicable for velocity.</p></list-item>
<list-item><p>&#x0002A; <monospace>Pressure</monospace>: Constant pressure boundary condition&#x02014;adds a Neumann condition to the velocity, i.e., a boundary term in the variational form.</p></list-item>
</list></p></list-item>
<list-item><p>&#x02013; <monospace>Charged</monospace>: A charged boundary&#x02014;a Neumann conditon intended for use with the electric potential <italic>V</italic>.</p></list-item>
<list-item><p>&#x02013; <monospace>Open</monospace>: An open boundary&#x02014;a Neumann condition is applied.</p></list-item>
</list></p></list-item>
</list>
<p>We note that when a no-flux condition is to be applied, no specific boundary condition class needs to be supplied, since the boundary term in the variational form then disappears (in particular when considering conservative PDEs).</p>
<p>As an example, we show in Listing 4 the <monospace>create_bcs</monospace> function within the <monospace>charged_droplet</monospace> case. Here, the boundaries <monospace>Wall</monospace>, <monospace>Left</monospace>, etc., are defined in the standard FEniCS/DOLFIN way as instances of a <monospace>SubDomain</monospace> class.</p>
<fig id="L4" position="float">
<label>Listing 4</label>
<caption><p>The create_bcs function within the charged_droplet case.</p></caption>
<graphic xlink:href="fphy-07-00021-f0004.tif"/>
</fig>
</sec>
<sec>
<title>4.5. Post-processing</title>
<p>An additional module provided in <italic>Bernaise</italic> is the post-processing module. It operates with methods analogously to how the main <italic>Bernaise</italic> script operates with problems. The base script <monospace>postprocess.py</monospace> pulls in the required method and analyses or operates on a specified folder. The methods are located in the folder <monospace>analysis_scripts/</monospace> and new methods can be implemented by users by adding scripts to this folder.</p>
<p>To exemplify its usage, we consider a method to analyse the temporal development of the energy. This is done by navigating to the root folder and calling</p>
<preformat>
&#x000BB;&#x000A0;python postprocess.py method=energy_in_time
&#x000A0;&#x000A0;folder=results_charged_droplet/1/
</preformat>
<p>where we assume that the output of the simulation, we want to analyse, is found in the folder <monospace>results_charged_droplet/1/</monospace>. The analysis method <monospace>energy_in_time</monospace> above can, of course, be exchanged with another method of choice. A list of available methods can be produced by supplying the help argument from a terminal call:</p>
<p><monospace>&#x000BB; python postprocess.py -h</monospace></p>
<p>Similar to the <monospace>problems</monospace> submodule, the methods are implemented by overloading a set of routines, where default routines are found in <monospace>analysis_scripts/__init__.py</monospace>. The routines required to implement an analysis method are the following:</p>
<list list-type="bullet">
<list-item><p><monospace>description</monospace>: routine called when a question mark is added to the end of the method name during a call from the terminal, meant to obtain a description of the method without having to inspect the code.</p></list-item>
<list-item><p><monospace>method</monospace>: the routine that performs the desired analysis.</p></list-item>
</list>
<p>The implementation hinges on the <monospace>TimeSeries</monospace> class (located in <monospace>utilities/TimeSeries.py</monospace>), which efficiently imports the XDMF/HDF5 data files and the parameter files produced by a <italic>Bernaise</italic> simulation. Several plotting routines are implemented in <monospace>utilities/plot.py</monospace>, and these are extensively used in various analysis methods.</p>
</sec>
</sec>
<sec id="s5">
<title>5. Validation</title>
<p>With the aim of using <italic>Bernaise</italic> for quantitative purposes, it is essential to establish that the schemes presented in the above converges to the correct solution&#x02014;in two senses:
<list list-type="bullet">
<list-item><p>The numerical schemes should converge to the correct solution of the phase-field model.</p></list-item>
<list-item><p>The solution of the phase-field model should converge to the correct sharp-interface equations<xref ref-type="fn" rid="fn0004"><sup>4</sup></xref>.</p></list-item>
</list></p>
<p>Unless otherwise stated, we mean by convergence that the error in all fields &#x003C7; should behave like,</p>
<disp-formula id="E69"><label>(57)</label><mml:math id="M190"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mrow><mml:mi>&#x003C7;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003C7;</mml:mi><mml:mi>e</mml:mi></mml:msub></mml:mrow><mml:mo>&#x02016;</mml:mo></mml:mrow></mml:mrow><mml:mi>h</mml:mi></mml:msub><mml:mo>~</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:msup><mml:mi>h</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>&#x003C4;</mml:mi></mml:msub><mml:msup><mml:mi>&#x003C4;</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>&#x003C4;</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>
<p>where ||&#x000B7;||<sub><italic>h</italic></sub> is an <italic>L</italic><sup>2</sup> norm, &#x003C7; is the simulated field, &#x003C7;<sub><italic>e</italic></sub> is the exact solution, <italic>h</italic> is the mesh size, &#x003C4; is the time step, <italic>k</italic><sub><italic>h</italic></sub> is the order of spatial convergence, <italic>k</italic><sub>&#x003C4;</sub> is the order of temporal convergence (<italic>k</italic><sub>&#x003C4;</sub> &#x0003D; 1 in this work), and <italic>C</italic><sub><italic>h</italic></sub> and <italic>C</italic><sub>&#x003C4;</sub> are constants.</p>
<p>In the following, we present convergence test in three cases. Firstly, in the limiting case of a stable bulk intrusion without electrochemistry, an analytical solution is available to test against. Secondly, using the method of manufactured solution, convergence of the full two-phase EHD problem to an augmented Taylor&#x02013;Green vortex is shown. Thirdly, we show convergence toward a highly resolved reference solution for an electrically driven charged droplet.</p>
<p>We note that the aim of <italic>Bernaise</italic> is to solve coupled multi-physics problems, and while the solvers may contain subtle errors, they may be negligible for many applications, and dominant only in limiting cases. In addition to testing the whole, coupled multi-physics problem of two-phase EHD, a proper testing should also consider simplified settings where fewer physical mechanisms are involved simultaneously. A brief discussion of testing and such reduced models is given in <xref ref-type="supplementary-material" rid="SM1">Appendix C</xref> in Supplementary Material. In this section, we show the convergence of the schemes in a few relevant cases, which we believe represent the efficacy of our approach. Tests of simplified-physics problems are found in the Git repository [<xref ref-type="bibr" rid="B81">81</xref>].</p>
<sec>
<title>5.1. Stable Bulk Intrusion</title>
<p>A case where an analytic solution is available, is the stable intrusion of one fluid into another, in the absence of electrolytes and electric fields. A schematic view of the initial set-up is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. A constant velocity <inline-formula><mml:math id="M98"><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> (<inline-formula><mml:math id="M99"><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is the unit vector along the <italic>x</italic> axis) is applied at both the left and right sides of the reservoir, and periodic boundary conditions are imposed at the perpendicular direction. We shall here consider the convergence to the solution of the phase-field equation, i.e., retaining a finite interface thickness &#x003F5;. This effectively one-dimensional problem is implemented in <monospace>problems/intrusion_bulk.py</monospace>.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Schematic set-up of the stable bulk flow intrusion test case. Here, the &#x0201C;water&#x0201D; (subscript w) displaces the &#x0201C;oil&#x0201D; (subscript o). At the left and right boundaries, a constant velocity is prescribed.</p></caption>
<graphic xlink:href="fphy-07-00021-g0002.tif"/>
</fig>
<p>Due to the Galilean invariance, we expect the velocity field to be uniformly equal to the inlet and outlet velocities, i.e., <inline-formula><mml:math id="M100"><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>x</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>. The exact analytical solution for the phase field is given by</p>
<disp-formula id="E70"><label>(58)</label><mml:math id="M191"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo class='qopname'>tanh</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:msqrt style="color:black"><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msqrt><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>for which we shall consider the error norm. Note that the only parameters this analytical solution depends on are the initial position of the interface <italic>x</italic><sub>0</sub>, the injection velocity <italic>v</italic><sub>0</sub>, and the interface width &#x003F5;. We consider the parameters &#x003C1;<sub>1</sub> &#x0003D; &#x003C1;<sub>2</sub> &#x0003D; 1000, &#x003BC;<sub>1</sub> &#x0003D; 100, &#x003BC;<sub>2</sub> &#x0003D; 1, &#x003C3; &#x0003D; 2.45, &#x003F5; &#x0003D; 0.03, <inline-formula><mml:math id="M102"><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mo>&#x000B7;</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>5</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, <italic>x</italic><sub>0</sub> &#x0003D; 1, <italic>L</italic><sub><italic>x</italic></sub> &#x0003D; 5, <italic>L</italic><sub><italic>y</italic></sub> &#x0003D; 1 and <italic>v</italic><sub>0</sub> &#x0003D; 0.1.</p>
<p><xref ref-type="fig" rid="F3">Figure 3</xref> shows the convergence to the analytical solution with regards to temporal resolution. The order of convergence is consistent with the order of the scheme, indicating that the scheme is appreciable at least in the lack of electrostatic interactions.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Convergence in time for the case of stable intrusion. The mesh size is held fixed at <italic>h</italic> &#x0003D; 0.0039. <bold>(Left)</bold> We show the phase field interpolated at equidistant points along the centerline for increasing temporal resolution. The solid black line is the analytical solution. <bold>(Right)</bold> The integrated <italic>L</italic><sup>2</sup> norm of the phase field plotted against time step. The solid black line shows the theoretical convergence order of the scheme (&#x0007E;&#x003C4;). As can be seen from the figure, it displays close to ideal scaling.</p></caption>
<graphic xlink:href="fphy-07-00021-g0003.tif"/>
</fig>
<p><xref ref-type="fig" rid="F4">Figure 4</xref> shows the convergence of the phase field with regards to the spatial resolution. The scheme is seen to converge at the theoretical rate, &#x0007E;<italic>h</italic><sup>2</sup>.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Convergence in space for the case of stable intrusion. The time step is held fixed at &#x003C4; &#x0003D; 0.0025. <bold>(Left)</bold> Phase field interpolated at equidistant points along the centerline for increasing spatial resolution. <bold>(Right)</bold> The <italic>L</italic><sup>2</sup> norm of the phase field is plotted against mesh resolution. The solid black line shows the theoretical convergence order (&#x0007E;<italic>h</italic><sup>2</sup>).</p></caption>
<graphic xlink:href="fphy-07-00021-g0004.tif"/>
</fig>
</sec>
<sec>
<title>5.2. Method of Manufactured Solution: A Two-Phase Electrohydrodynamic Taylor&#x02013;Green Vortex</title>
<p>Having established convergence in the practically one-dimensional case, we now consider a slightly more involved setting where we use the method of manufactured solution to obtain a quasi-analytical test case.</p>
<p>The Taylor&#x02013;Green vortex is a standard benchmark problem in computational fluid dynamics because it stands out as one of the few cases where exact analytical solutions to the Navier&#x02013;Stokes equations are available. However, in the case of two-phase electrohydrodynamics, the Navier&#x02013;Stokes equations couple to both the electrochemical and the phase field subproblems. In Linga et al. (Submitted) the authors augmented the Taylor&#x02013;Green vortex with electrohydrodynamics, and in this work we supplement the latter with a phase field and non-matching densities of the two phases.</p>
<p>We consider the full set of equations on the domain &#x003A9; &#x0003D; [0, 2&#x003C0;] &#x000D7; [0, 2&#x003C0;], where all quantities may differ in the two phases. The two ionic species have opposite valency &#x000B1;<italic>z</italic>. The fields are given by</p>
<disp-formula id="E71"><label>(59a)</label><mml:math id="M192"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>=</mml:mo><mml:mi>U</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo class='qopname'>cos</mml:mo><mml:mi>x</mml:mi><mml:mo class='qopname'>sin</mml:mo><mml:mi>y</mml:mi><mml:mo>-</mml:mo><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>y</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo class='qopname'>^</mml:mo></mml:mover><mml:mo class='qopname'>sin</mml:mo><mml:mi>x</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E72"><label>(59b)</label><mml:math id="M193"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle='true'><mml:munder class='msub'><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo class='qopname'>cos</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>m</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo class='qopname'>cos</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E73"><label>(59c)</label><mml:math id="M194"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mi>&#x003D5;</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x003A6;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo class='qopname'>cos</mml:mo><mml:mi>x</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E74"><label>(59d)</label><mml:math id="M195"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x000B1;</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x000B1;</mml:mo><mml:mo class='qopname'>cos</mml:mo><mml:mi>x</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mi>y</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E75"><label>(59e)</label><mml:math id="M196"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>z</mml:mi><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow></mml:mfrac><mml:mo class='qopname'>cos</mml:mo><mml:mi>x</mml:mi><mml:mo class='qopname'>cos</mml:mo><mml:mi>y</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Here, the time-dependent coefficients are given by</p>
<disp-formula id="E76"><label>(60)</label><mml:math id="M197"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mi>U</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo class='qopname'>exp</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:mover accent='true'><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mo class='qopname'>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mo class='qopname'>&#x00304;</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E77"><label>(61)</label><mml:math id="M198"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo class='qopname'>exp</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mover accent='true'><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo class='qopname'>&#x00304;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#43;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mover accent='true'><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo class='qopname'>&#x00304;</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E78"><label>(62)</label><mml:math id="M199"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mo>&#x003A6;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A6;</mml:mo></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo class='qopname'>exp</mml:mo><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mi>M</mml:mi><mml:mover accent='true'><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo class='qopname'>&#x0007E;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003F5;</mml:mi><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>U</italic><sub>0</sub>, <italic>C</italic><sub>0</sub> and &#x003A6;<sub>0</sub> are scalars, and</p>
<disp-formula id="E79"><label>(63)</label><mml:math id="M200"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd columnalign='left'><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#43;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for&#x02003;</mml:mtext><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign='left'><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>for&#x02003;</mml:mtext><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign='left'><mml:mn>0</mml:mn><mml:mstyle class="text"><mml:mtext>&#x02003;</mml:mtext></mml:mstyle><mml:mtext class='textrm' mathvariant='normal'>otherwise.</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where</p>
<disp-formula id="E80"><label>(64)</label><mml:math id="M201"><mml:msub><mml:mi mathvariant='script'>Q</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>4</mml:mn></mml:mfrac><mml:mi>&#x003C1;</mml:mi><mml:msubsup><mml:mi>U</mml:mi><mml:mn>0</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo><mml:mstyle class="text"><mml:mtext>&#x02003;and&#x02003;</mml:mtext></mml:mstyle><mml:msub><mml:mi mathvariant='script'>Q</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:msup><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:math></disp-formula>
<p>Further, a bar indicates the arithmetic average over the value in the two phases, i.e., <inline-formula><mml:math id="M113"><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C7;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C7;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C7;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula> for any quantity &#x003C7;, and <inline-formula><mml:math id="M114"><mml:mover accent="true"><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>4</mml:mn></mml:math></inline-formula> is the arithmetic average over all diffusivities. The time-dependent boundary conditions are set by prescribing the reference solutions at the boundary of &#x003A9; for all fields given in (59a)&#x02013;(59e), except the pressure <italic>p</italic>, which is set (to the reference value) only at the corner point (<italic>x, y</italic>) &#x0003D; (0, 0). The method of manufactured solution now consists in augmenting the conservation Equations (18), (19), (20) and (21) by appropriate source terms, such that the reference solution (59a)&#x02013;(59e) solves the system exactly. These source terms were computed in Python using the <italic>Sympy</italic> package, and are rather involved algebraic expressions. The expressions are therefore omitted here, but can be found as a utility script in the <italic>Bernaise</italic> package. Note that in the special case of single-phase flow without electrodynamics, i.e., &#x003D5; &#x02261; 1 and <italic>z</italic> &#x0003D; 0, we retrieve the classic Taylor&#x02013;Green flow (with a passive tracer concentration field), where all artificial source terms vanish.</p>
<p>We consider now the convergence toward the manufactured solution. We let the grid size <italic>h</italic> &#x02208; [2&#x003C0;/256, 2&#x003C0;/16] and the time step &#x003C4; &#x02208; [0.0001, 0.01], and evaluate the solution at the final time <italic>T</italic> &#x0003D; 0.1. The parameters for two phases used the simulation are given in <xref ref-type="table" rid="T1">Table 1</xref>, while the non-phase specific parameters are given in <xref ref-type="table" rid="T2">Table 2</xref>. Note that in order to test all parts of the implementation, all parameters are kept roughly in the same order of magnitude. When all the physical processes are included, the manufactured solution becomes an increasingly bad approximation and thus the resulting source terms become large. Thus, in order to avoid numerical instabilities, it was necessary to evaluate the error at a relatively short final time <italic>T</italic>. However, it should be enough to locate errors in most parts of the code.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Phasic parameters used in the Taylor&#x02013;Green simulations.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value in phase 1</bold></th>
<th valign="top" align="center"><bold>Value in phase 2</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Density</td>
<td valign="top" align="left">&#x003C1;</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Viscosity</td>
<td valign="top" align="left">&#x003BC;</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
</tr>
<tr>
<td valign="top" align="left">Permittivity</td>
<td valign="top" align="left">&#x003B5;</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
</tr>
<tr>
<td valign="top" align="left">Cation diffusivity</td>
<td valign="top" align="left"><italic>D</italic><sub>&#x0002B;</sub></td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Anion diffusivity</td>
<td valign="top" align="left"><italic>D</italic><sub>&#x02212;</sub></td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">2</td>
</tr>
<tr>
<td valign="top" align="left">Cation solubility</td>
<td valign="top" align="left">&#x003B2;<sub>&#x0002B;</sub></td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">&#x02212;2</td>
</tr>
<tr>
<td valign="top" align="left">Anion solubility</td>
<td valign="top" align="left">&#x003B2;<sub>&#x02212;</sub></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">&#x02212;1</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Non-phase-specific parameters used in the Taylor&#x02013;Green simulations.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Surface tension</td>
<td valign="top" align="left">&#x003C3;</td>
<td valign="top" align="center">0.1</td>
</tr>
<tr>
<td valign="top" align="left">Interface thickness</td>
<td valign="top" align="left">&#x003F5;</td>
<td valign="top" align="center"><inline-formula><mml:math id="M115"><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msqrt></mml:math></inline-formula></td>
</tr>
<tr>
<td valign="top" align="left">Phase field mobility</td>
<td valign="top" align="left"><italic>M</italic></td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Initial velocity</td>
<td valign="top" align="left"><italic>U</italic><sub>0</sub></td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Initial concentration</td>
<td valign="top" align="left"><italic>c</italic><sub>0</sub></td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Initial phase field</td>
<td valign="top" align="left">&#x003A6;<sub>0</sub></td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Initial conc. deviation</td>
<td valign="top" align="left"><italic>C</italic><sub>0</sub></td>
<td valign="top" align="center">0.5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We plot the <italic>L</italic><sup>2</sup> errors of all the fields as a function of the grid size <italic>h</italic> in <xref ref-type="fig" rid="F5">Figure 5</xref>. In these simulations, we used a small time step &#x003C4; &#x0003D; 0.0001 to rule out the contribution of time discretization to the error, cf. Equation (57). It is clear that the spatial convergence is close to ideal for all fields, indicating that the scheme approaches the correct solution. The pressure <italic>p</italic> displays slightly worse convergence and higher error norm than the other fields, which may be due to the pointwise way of enforcing the pressure boundary condition (all other fields have Dirichlet conditions on the entire boundary).</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Convergence in space for the two-phase electrohydrodynamic Taylor&#x02013;Green manufactured solution. The solid black line shows the theoretical convergence rate based on the order of the finite elements chosen (&#x0007E;<italic>h</italic><sup>2</sup>). All fields display close to ideal convergence.</p></caption>
<graphic xlink:href="fphy-07-00021-g0005.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F6">Figure 6</xref>, we plot the <italic>L</italic><sup>2</sup> errors of the same fields as in <xref ref-type="fig" rid="F5">Figure 5</xref>, but as a function of the time step &#x003C4;. In the simulations plotted here, we used a fine grid resolution with <italic>h</italic> &#x0003D; 2&#x003C0;/256 to rule out the contribution of spatial discretization to the error, cf. Equation (57). Clearly, first order convergence is achieved for sufficient refinement, for all fields including the pressure.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Convergence in time for the two-phase electrohydrodynamic Taylor&#x02013;Green manufactured solution. The solid black line shows the theoretical convergence rate of the scheme (&#x0007E;&#x003C4;<sup>1</sup>). All fields display close to ideal convergence.</p></caption>
<graphic xlink:href="fphy-07-00021-g0006.tif"/>
</fig>
</sec>
<sec>
<title>5.3. Droplet Motion Driven by an Electric Field</title>
<p>We now consider a charged droplet moving due to an imposed electric field; a problem for which there is no analytical solution available. However, by comparing to a highly resolved numerical solution, convergence for the fully coupled two-phase electrohydrodynamic problem can be verified. This problem has already been partly presented in the above, and is implemented in <monospace>problems/charged_droplet.py</monospace>. A sketch showing the initial state is shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. We consider an initially circular droplet, where a positive charge concentration is initiated as a Gaussian distribution, with variance <inline-formula><mml:math id="M116"><mml:msubsup><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, in the middle of the droplet. In this set-up, we consider only a single, positive species. The total amount of solute, i.e., integrated concentration, is <inline-formula><mml:math id="M117"><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mi>&#x003A9;</mml:mi></mml:msub><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mtext>d</mml:mtext><mml:mi>A</mml:mi></mml:math></inline-formula>. The left wall of the reservoir is kept at a positive potential, <italic>V</italic> &#x0003D; &#x00394;<italic>V</italic>, while the right wall is grounded, <italic>V</italic> &#x0003D; 0. The top and bottom walls are assumed to be perfectly insulating, i.e., a no-flux condition is applied on concentration fields and electric fields, and a no-slip condition is applied on the velocity. The fluid surrounding the droplet is neutral, and its parameters are chosen such that the solute is only very weakly soluble in the surrounding fluid, and the diffusivity here is very low here to prevent leakage. The droplet is accelerated by the electric field toward the right, before it is slowed down due to viscous effects upon approaching the wall.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Schematic set-up of the test case of droplet motion driven by an electric field. The &#x0201C;water&#x0201D; droplet contains positive ions and is driven by the electric field set up between the high potential on the left wall and the grounded right wall.</p></caption>
<graphic xlink:href="fphy-07-00021-g0007.tif"/>
</fig>
<p>With regard to reproducing the sharp-interface equations, we consider now the case of reducing the interface thickness &#x003F5; &#x02192; 0. To this end, we keep the ratio <italic>h</italic>/&#x003C4; between mesh size and time step fixed, and further we keep the interface thickness &#x003F5; proportional to <italic>h</italic>. The latter spans roughly 3&#x02013;4 elements. Since the interface thickness &#x003F5; changes, an important parameter in the phase-field model changes, which couples back to the equations, and thus the L<sub>2</sub> norm does not necessarily constitute a proper convergence measure. We therefore resort to using the <italic>picture norm</italic> or contour of the droplet as a measure, i.e., the zero-level set of the phase field &#x003D5; &#x0003D; 0. In particular, we will consider two observables: circumference and the center of mass (along <italic>x</italic>) of the droplet, as a function of resolution. A similar approach was taken for the case of phase-field models without electrodynamics by Aland and Voigt [<xref ref-type="bibr" rid="B66">66</xref>] who compared their benchmarks to sharp interface results by Hysing et al. [<xref ref-type="bibr" rid="B65">65</xref>].</p>
<p>The resolutions used in our simulations are given in <xref ref-type="table" rid="T3">Table 3</xref>. In order not to have to adjust the phase field mobility when refining, whilst still expecting to retrieve the sharp-interface model in the limit &#x003F5; &#x02192; 0, we choose the phase field mobility given by (33b). All parameters for the phasic quantities are given in <xref ref-type="table" rid="T4">Table 4</xref>, while the remaining parameters are given in <xref ref-type="table" rid="T5">Table 5</xref>. From these parameters, using the unit scaling adopted in this paper, we find an approximate Debye length <inline-formula><mml:math id="M118"><mml:msub><mml:mrow><mml:mi>&#x003BB;</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mi>&#x003B5;</mml:mi><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msqrt><mml:mo>&#x02243;</mml:mo><mml:msqrt><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x000B7;</mml:mo><mml:mn>10</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msqrt><mml:mo>&#x02243;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula> (see section B2 in the Appendix for this expression), since we can approximate the order of magnitude of <inline-formula><mml:math id="M119"><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:mi>C</mml:mi><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:msup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>10</mml:mn><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mo>&#x000B7;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mn>5</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> for a moderate screening.</p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Numerical parameters that vary with resolution in the charged droplet simulations: Mesh size <italic>h</italic>, time step &#x003C4;, and interface thickness &#x003F5;.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold><italic>h</italic></bold></th>
<th valign="top" align="center"><bold>&#x003C4;</bold></th>
<th valign="top" align="center"><bold>&#x003F5;</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">0.04</td>
<td valign="top" align="center">0.04</td>
<td valign="top" align="center">0.06</td>
</tr>
<tr>
<td valign="top" align="left">0.02</td>
<td valign="top" align="center">0.02</td>
<td valign="top" align="center">0.03</td>
</tr>
<tr>
<td valign="top" align="left">0.01</td>
<td valign="top" align="center">0.01</td>
<td valign="top" align="center">0.015</td>
</tr>
<tr>
<td valign="top" align="left">0.005</td>
<td valign="top" align="center">0.005</td>
<td valign="top" align="center">0.0075</td>
</tr>
<tr>
<td valign="top" align="left">0.0025</td>
<td valign="top" align="center">0.0025</td>
<td valign="top" align="center">0.00375</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>Numerical parameters for the phases that are common for all charged droplet simulations.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value, phase 1</bold></th>
<th valign="top" align="center"><bold>Value, phase 2</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Density</td>
<td valign="top" align="left">&#x003C1;</td>
<td valign="top" align="center">200.0</td>
<td valign="top" align="center">100.0</td>
</tr>
<tr>
<td valign="top" align="left">Permittivity</td>
<td valign="top" align="left">&#x003B5;</td>
<td valign="top" align="center">1.0</td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Diffusivity</td>
<td valign="top" align="left"><italic>D</italic></td>
<td valign="top" align="center">1&#x000B7;10<sup>&#x02212;5</sup> (&#x02243;0)</td>
<td valign="top" align="center">0.001</td>
</tr>
<tr>
<td valign="top" align="left">Solubility</td>
<td valign="top" align="left">&#x003B2;</td>
<td valign="top" align="center">4.0</td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Viscosity</td>
<td valign="top" align="left">&#x003BC;</td>
<td valign="top" align="center">10.0</td>
<td valign="top" align="center">1.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p>Numerical parameters not specific to phase for the charged droplet simulations.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Potential difference</td>
<td valign="top" align="left">&#x00394;<italic>V</italic></td>
<td valign="top" align="center">10.0</td>
</tr>
<tr>
<td valign="top" align="left">Integrated concentration</td>
<td valign="top" align="left"><italic>C</italic><sub>0</sub></td>
<td valign="top" align="center">10.0</td>
</tr>
<tr>
<td valign="top" align="left">Phase field mobility coeff.</td>
<td valign="top" align="left"><italic>M</italic><sub>0</sub></td>
<td valign="top" align="center">1.5&#x000B7;10<sup>&#x02212;5</sup></td>
</tr>
<tr>
<td valign="top" align="left">Initial droplet radius</td>
<td valign="top" align="left"><italic>R</italic></td>
<td valign="top" align="center">0.25</td>
</tr>
<tr>
<td valign="top" align="left">Initial conc. std. dev.</td>
<td valign="top" align="left">&#x003B4;<sub><italic>c</italic></sub></td>
<td valign="top" align="center">0.0833</td>
</tr>
<tr>
<td valign="top" align="left">Surface tension</td>
<td valign="top" align="left">&#x003C3;</td>
<td valign="top" align="center">5.0</td>
</tr>
<tr>
<td valign="top" align="left">Length in <italic>x</italic>-direction</td>
<td valign="top" align="left"><italic>L</italic><sub><italic>x</italic></sub></td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">Length in <italic>y</italic>-direction</td>
<td valign="top" align="left"><italic>L</italic><sub><italic>y</italic></sub></td>
<td valign="top" align="center">1.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In <xref ref-type="fig" rid="F8">Figure 8</xref>, we show the contour of the driven droplet at two time instances <italic>t</italic> &#x0003D; 4 and <italic>t</italic> &#x0003D; 8, and compare increasing resolution (simultaneously in space, time and interface thickness). Qualitatively inspecting the contours by eye, the droplet shapes seem to converge to a well defined shape with increasing resolution at both time instances.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Shape comparison of electrically driven charged droplet at two time instances. The effect of the four resolutions given in <xref ref-type="table" rid="T3">Table 3</xref> is shown. The legend shown in the figure refers to both spatial (<italic>h</italic>) and temporal resolution (&#x003C4;).</p></caption>
<graphic xlink:href="fphy-07-00021-g0008.tif"/>
</fig>
<p>However, qualitive comparison is clearly not enough to assess the convergence. As in Hysing et al. [<xref ref-type="bibr" rid="B66">66</xref>] and Aland and Voigt [<xref ref-type="bibr" rid="B65">65</xref>], we define three observables:
<list list-type="bullet">
<list-item><p>Center of mass: We consider the center of mass of the dispersed phase (phase 2, i.e., &#x003D5; &#x0003C; 0),
<disp-formula id="E81"><label>(65)</label><mml:math id="M202"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext>CM</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle displaystyle='false'><mml:msub class='msub'><mml:mrow><mml:mo stretchy="false">&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle><mml:mi>x</mml:mi><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:msub class='msub'><mml:mrow><mml:mo stretchy="false">&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mi>A</mml:mi></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where we approximate the integral over the droplet (phase 2) by <inline-formula><mml:math id="M121"><mml:msub class="msub"><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>&#x000B7;</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>d</mml:mtext><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:msub class="msub"><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>&#x000B7;</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn><mml:mtext>d</mml:mtext><mml:mi>A</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>Drift velocity: Similarly as above, the velocity at which the droplet is driven is measured by
<disp-formula id="E82"><label>(66)</label><mml:math id="M203"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>V</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle displaystyle='true'><mml:msub class='msub'><mml:mrow><mml:mo stretchy="false">&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>u</mml:mtext></mml:mstyle></mml:mstyle><mml:mo>&#x000B7;</mml:mo><mml:mover accent='true'><mml:mrow><mml:mstyle mathvariant='bold'><mml:mstyle class="text"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:msub class='msub'><mml:mrow><mml:mo stretchy="false">&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mi>A</mml:mi></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p></list-item>
<list-item><p>Circularity: Defined as the ratio of the circumference of the area-equivalent circle to the droplet circumference,
<disp-formula id="E83"><label>(67)</label><mml:math id="M204"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>C</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:msqrt style="color:black"><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mstyle displaystyle='false'><mml:msub class='msub'><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003D5;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle><mml:mstyle class="text"><mml:mtext>d</mml:mtext></mml:mstyle><mml:mi>A</mml:mi></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p></list-item>
</list></p>
<p>The circumference &#x02113; and the integrals are computed by the post-processing method <monospace>geometry_in_time</monospace> which is built into <italic>Bernaise</italic>.</p>
<p><xref ref-type="fig" rid="F9">Figure 9</xref> shows the three quantities as a function of time for increasing resolution. (Here we have omitted the coarsest resolution <italic>h</italic> &#x0003D; 0.04 for visual clarity.) The curves seem to converge toward well-defined trajectories with resolution.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Observable quantities as a function of time. Increasing resolutions (spatial and temporal) are compared.</p></caption>
<graphic xlink:href="fphy-07-00021-g0009.tif"/>
</fig>
<p>For a more quantitative comparison, we define the time-integrated error norm,</p>
<disp-formula id="E84"><label>(68)</label><mml:math id="M205"><mml:msub><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mi>e</mml:mi><mml:mo>&#x02016;</mml:mo></mml:mrow><mml:mi>p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mstyle displaystyle='true'><mml:mrow><mml:msubsup><mml:mo stretchy="false">&#x0222B;</mml:mo><mml:mn>0</mml:mn><mml:mi>T</mml:mi></mml:msubsup><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mi>p</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mstyle><mml:mtext>&#x000A0;d</mml:mtext><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:mrow><mml:msubsup><mml:mo stretchy="false">&#x0222B;</mml:mo><mml:mn>0</mml:mn><mml:mi>T</mml:mi></mml:msubsup><mml:mrow><mml:mo>&#x0007C;</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msup><mml:mo>&#x0007C;</mml:mo><mml:mi>p</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mstyle><mml:mtext>&#x000A0;d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:mrow></mml:msup></mml:math></disp-formula>
<p>for a given quantity <italic>q</italic>. We can compute an empirical convergence rate of this norm,</p>
<disp-formula id="E85"><label>(69)</label><mml:math id="M206"><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>log</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mi>e</mml:mi><mml:mo>&#x02016;</mml:mo></mml:mrow></mml:mrow><mml:mi>p</mml:mi></mml:msub><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mi>e</mml:mi><mml:mo>&#x02016;</mml:mo></mml:mrow></mml:mrow><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>log</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>/</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:math></disp-formula>
<p>for two successive resolutions (<italic>h</italic><sub><italic>i</italic>&#x0002B;1</sub> &#x0003E; <italic>h</italic><sub><italic>i</italic></sub>). Here we shall consider the <italic>L</italic><sup>2</sup> error norm in time, i.e., <italic>p</italic> &#x0003D; 2, and in practice we compute the integrals in time by cubic spline interpolation of measurement points saved at every 5 time steps. There is no exact solution, or reference high-resolution sharp-interface solution available for this set-up. However, if we now assume that the finest resolution <italic>is</italic> the exact solution, and use this as the reference field in Equation (68), we can compute error norms and convergence rates. These values are reported in <xref ref-type="table" rid="T6">Table 6</xref>.</p>
<table-wrap position="float" id="T6">
<label>Table 6</label>
<caption><p>Mesh size <italic>h</italic>, error norm ||<italic>e</italic>||<sub>2</sub>, and empirical convergence rate <italic>k</italic><sub>2</sub> for increasing grid refinement, assuming the solution for the finest resolution to be exact.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold><italic>h</italic></bold></th>
<th valign="top" align="center"><bold>||<italic>e</italic>||<sub>2</sub></bold></th>
<th valign="top" align="center"><bold><italic>k</italic><sub>2</sub></bold></th>
</tr>
</thead>
<tbody>
<tr style="background-color:#bbbdc0">
<td valign="top" align="left" colspan="3"><bold>CENTER OF MASS</bold></td>
</tr>
<tr>
<td valign="top" align="left">0.04</td>
<td valign="top" align="center">0.1798</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">0.02</td>
<td valign="top" align="center">0.0955</td>
<td valign="top" align="center">0.9129</td>
</tr>
<tr>
<td valign="top" align="left">0.01</td>
<td valign="top" align="center">0.0410</td>
<td valign="top" align="center">1.2186</td>
</tr>
<tr>
<td valign="top" align="left">0.005</td>
<td valign="top" align="center">0.0126</td>
<td valign="top" align="center">1.7033</td>
</tr>
<tr style="background-color:#bbbdc0">
<td valign="top" align="left" colspan="3"><bold>DRIFT VELOCITY</bold></td>
</tr>
<tr>
<td valign="top" align="left">0.04</td>
<td valign="top" align="center">0.3427</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">0.02</td>
<td valign="top" align="center">0.2067</td>
<td valign="top" align="center">0.7293</td>
</tr>
<tr>
<td valign="top" align="left">0.01</td>
<td valign="top" align="center">0.1032</td>
<td valign="top" align="center">1.0025</td>
</tr>
<tr>
<td valign="top" align="left">0.005</td>
<td valign="top" align="center">0.0341</td>
<td valign="top" align="center">1.5932</td>
</tr>
<tr style="background-color:#bbbdc0">
<td valign="top" align="left" colspan="3"><bold>CIRCULARITY</bold></td>
</tr>
<tr>
<td valign="top" align="left">0.04</td>
<td valign="top" align="center">0.0891</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">0.02</td>
<td valign="top" align="center">0.0423</td>
<td valign="top" align="center">1.0757</td>
</tr>
<tr>
<td valign="top" align="left">0.01</td>
<td valign="top" align="center">0.0205</td>
<td valign="top" align="center">1.0467</td>
</tr>
<tr>
<td valign="top" align="left">0.005</td>
<td valign="top" align="center">0.0060</td>
<td valign="top" align="center">1.7612</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The computed convergence rates increase for all three observables and reach 1.6&#x02013;1.7 with increasing resolution, indicating also quantitatively a convergence that is in agreement with the anticipated convergence rate. Considering Equation (57), from the temporal discretization, we expect <italic>k</italic><sub>2</sub> &#x02243; 1, and from the spatial <italic>k</italic><sub>2</sub> &#x02243; 2. Depending on which term contributes most to the error, we will measure either of these rates. The values measured here indicate that both terms may be comparable in magnitude; however if we instead of using directly the finest solution as reference, extrapolated the trajectories further, we would presumptively have achieved lower convergence rates. This might indicate that the convergence error is eventually dominated by the temporal discretization, cf. Equation (57).</p>
</sec>
</sec>
<sec id="s6">
<title>6. Applications</title>
<sec>
<title>6.1. Oil Expulsion From a Dead-End Pore</title>
<p>Here, we present a demonstration of the method in a potential geophysical application. We consider a shear flow of one phase (&#x0201C;water&#x0201D;) over a dead-end pore which is initially filled with a second phase (&#x0201C;oil&#x0201D;). The water phase contains initially a uniform concentration of positive and negative ions, <italic>c</italic><sub>&#x000B1;</sub>|<sub><italic>t</italic> &#x0003D; 0</sub> &#x0003D; <italic>c</italic><sub>0</sub>, and the water&#x02013;oil interface is modeled to be impermeable. The simulation of the dead-end pore is carried out to preliminarily assess the hypothesis that electrowetting could be responsible for the increased expelling of oil in low-salinity enhanced oil recovery. The problem set-up is schematically shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. The phasic parameters used in the simulations are given in <xref ref-type="table" rid="T7">Table 7</xref>, and the remaining parameters are given in <xref ref-type="table" rid="T8">Table 8</xref>. This problem is implemented in the file <monospace>problems/snoevsen.py</monospace>.</p>
<table-wrap position="float" id="T7">
<label>Table 7</label>
<caption><p>Phasic parameters for the simulations of shear flow over a dead-end pore.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value in phase 1</bold></th>
<th valign="top" align="center"><bold>Value in phase 2</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Viscosity</td>
<td valign="top" align="left">&#x003BC;</td>
<td valign="top" align="center">1.0</td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Density</td>
<td valign="top" align="left">&#x003C1;</td>
<td valign="top" align="center">10.0</td>
<td valign="top" align="center">10.0</td>
</tr>
<tr>
<td valign="top" align="left">Permittivity</td>
<td valign="top" align="left">&#x003B5;</td>
<td valign="top" align="center">1.0</td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Solution energy</td>
<td valign="top" align="left">&#x003B2;<sub>&#x000B1;</sub></td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">1</td>
</tr>
<tr>
<td valign="top" align="left">Ion mobility</td>
<td valign="top" align="left"><italic>D</italic><sub>&#x000B1;</sub></td>
<td valign="top" align="center">0.0001</td>
<td valign="top" align="center">0.01</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The subscript &#x000B1; indicates the value for both the positive and negative ions</italic>.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T8">
<label>Table 8</label>
<caption><p>Simulation parameters for the simulations of shear flow over a dead-end pore.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Length</td>
<td valign="top" align="left"><italic>L</italic><sub><italic>x</italic></sub></td>
<td valign="top" align="center">3.0</td>
</tr>
<tr>
<td valign="top" align="left">Height</td>
<td valign="top" align="left"><italic>L</italic><sub><italic>y</italic></sub></td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Total simulation time</td>
<td valign="top" align="left"><italic>T</italic></td>
<td valign="top" align="center">20</td>
</tr>
<tr>
<td valign="top" align="left">Radius</td>
<td valign="top" align="left"><italic>R</italic></td>
<td valign="top" align="center">0.3</td>
</tr>
<tr>
<td valign="top" align="left">Time step</td>
<td valign="top" align="left">&#x003C4;</td>
<td valign="top" align="center">0.01</td>
</tr>
<tr>
<td valign="top" align="left">Resolution</td>
<td valign="top" align="left"><italic>h</italic></td>
<td valign="top" align="center">1/120</td>
</tr>
<tr>
<td valign="top" align="left">Interface thickness</td>
<td valign="top" align="left">&#x003F5;</td>
<td valign="top" align="center">0.02</td>
</tr>
<tr>
<td valign="top" align="left">Phase field mobility</td>
<td valign="top" align="left"><italic>M</italic><sub>0</sub></td>
<td valign="top" align="center">2.5&#x000B7;10<sup>&#x02212;6</sup></td>
</tr>
<tr>
<td valign="top" align="left">Surface tension</td>
<td valign="top" align="left">&#x003C3;</td>
<td valign="top" align="center">2.45</td>
</tr>
<tr>
<td valign="top" align="left">Surface charge</td>
<td valign="top" align="left">&#x003C3;<sub><italic>e</italic></sub></td>
<td valign="top" align="center">{&#x02212;10, 0}</td>
</tr>
<tr>
<td valign="top" align="left">Reference concentration</td>
<td valign="top" align="left"><italic>c</italic><sub>0</sub></td>
<td valign="top" align="center">2</td>
</tr>
<tr>
<td valign="top" align="left">Shear velocity</td>
<td valign="top" align="left"><italic>u</italic><sub>top</sub></td>
<td valign="top" align="center">0.2</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>A schematic depiction of the &#x0201C;dead-end pore&#x0201D; geometry, with the appropriate boundary conditions for the problem and specified initial conditions for the phase field. The geometry is specified by the two lengths <italic>L</italic><sub><italic>x</italic></sub>, <italic>L</italic><sub><italic>y</italic></sub>, and the radius <italic>R</italic> used to define the dead-end pore in the center of the channel by a circle and a circular smoothed inlet. The roman numerals indicate the phase, along with the tone of gray. The darker phase is the oil-like phase (I), and the lighter one is the water-like phase (II).</p></caption>
<graphic xlink:href="fphy-07-00021-g0010.tif"/>
</fig>
<p>To investigate the effect of including electrostatic interactions, we show in <xref ref-type="fig" rid="F11">Figure 11</xref> instantaneous snapshots of simulations with and without surface charge at different times. The left column, <xref ref-type="fig" rid="F11">Figures 11A,C,E</xref>, shows the results for vanishing surface charge, and the right column, <xref ref-type="fig" rid="F11">Figures 11B,D,F</xref>, shows the results for a surface charge of &#x003C3;<sub><italic>e</italic></sub> &#x0003D; &#x02212;10.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Oil released from a dead-end pore. We show instantaneous snapshots from the simulations of the dead-end pore under a shear flow. The black phase is the oil phase, which does not contain solutes, and the other phase is the water phase, which contains monovalent positive and negative ions. The color in the lighter phase indicates the local net charge, red meaning positive charge, blue negative charge, and gray neutral charge. The color scale is relative to the maximum deviation from neutral charge for an entire simulation; therefore the neutral simulations display numerical noise (which is of the order of machine precision). In the left column the surface charge is zero, and in the right column, a uniform surface charge density &#x003C3;<sub><italic>e</italic></sub> &#x0003D; &#x02212;10 is set. The rows show snapshots at different times <italic>t</italic>. <bold>(A)</bold> <italic>t</italic> = 3.0, &#x003C3;<sub><italic>e</italic></sub> = 0. <bold>(B)</bold> <italic>t</italic> = 3.0, &#x003C3;<sub><italic>e</italic></sub> = -10. <bold>(C)</bold> <italic>t</italic> = 6.0, &#x003C3;<sub><italic>e</italic></sub> = 0. <bold>(D)</bold> <italic>t</italic> = 3.0, &#x003C3;<sub><italic>e</italic></sub> = -10. <bold>(E)</bold> <italic>t</italic> = 9.0, &#x003C3;<sub><italic>e</italic></sub> = 0. <bold>(F)</bold> <italic>t</italic> = 9.0, &#x003C3;<sub><italic>e</italic></sub> = -10.</p></caption>
<graphic xlink:href="fphy-07-00021-g0011.tif"/>
</fig>
<p>For the uncharged case, the frames that are shown are almost indistinguishable. In fact, the main difference is the numerical noise of the total charge, which is due to roundoff errors of machine precision. The initial dynamics of the oil plug interface, which is to equilibrate with the neutral contact angle and the shear flow, mainly happens before the first frame presented; compare <xref ref-type="fig" rid="F10">Figure 10</xref> and <xref ref-type="fig" rid="F11">Figure 11A</xref>.</p>
<p>A markedly different behavior is displayed in the right column, <xref ref-type="fig" rid="F11">Figures 11B,D,F</xref>, where a uniform surface charge density is enforced at the walls at the simulation start, <italic>t</italic> &#x0003D; 0. Here, we see first that two tongues are intruding on both sides of the droplet, which push the droplet out into the center of the dead-end pore. The process is continued, as shown in the second frame, and finalized, as shown in the third frame, with the complete release of the droplet as the two tongues meet at the bottom of the dead-end pore, cutting the final contact point.</p>
<p>With these simulations, we have demonstrated the effects when a surface charge couples to hydrodynamics. This has lead to the observation that oil phase, on a larger scale than the Debye length, behaves like it is completely dewetting even when we locally enforce a neutral contact angle.</p>
</sec>
<sec>
<title>6.2. 3D Simulations of Droplet Coalescence and Breakup in an Electric Field</title>
<p>Finally, to demonstrate the ability of <italic>Bernaise</italic> to simulate 3D configurations, we present simulations of two oppositely charged droplets that coalesce. In order to achieve this efficiently, a fully iterative solver was implemented. The solver consists of a fractional step version of the <monospace>basic</monospace> solver, in the sense that within the fluid flow step, it splits between the velocity and pressure computations, as shown in Equations (56a), (56b), and (56c). The splitting introduces a weak compressibility which suffices to stabilize the problem [<xref ref-type="bibr" rid="B77">77</xref>] (with respect to the BB condition) and thus we can use P<sub>1</sub> finite elements also for the velocity. The combination of fewer degrees of freedom and the applicability of iterative linear solvers imparts significant speed-up compared to coupled solvers, which is of paramount importance for 3D simulations. This yields advantages over solvers which rely on a mixed-element formulation of the hydrodynamic subproblem [<xref ref-type="bibr" rid="B70">70</xref>]. The detailed analysis of the fractional step solver will be published in a separate paper, but the implementation can be found in <monospace>solvers/fracstep.py</monospace>. For solving the linear systems iteratively, we use an algebraic multigrid (AMG) preconditioner and a generalized minimal residual (GMRES) linear solver for the electrochemical and the pressure correction step; Jacobi preconditioner (Jacobi) and a stabilized bi-conjugate gradient method (BiCGStab) for the velocity prediction, and Jacobi and GMRES for the velocity correction. For the phase field we use Jacobi and a conjugate gradient method.</p>
<p>To prevent leakage of ions out of the two coalescing droplets, a weighted geometric mean was used for the diffusivities:</p>
<disp-formula id="E86"><label>(70)</label><mml:math id="M207"><mml:mtable class='eqnarray' columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#43;</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>instead of the arithmetic mean (25) used in most of the article.</p>
<p>We consider a setup of two initially spherical droplets in a domain &#x003A9; &#x0003D; [0, <italic>L</italic><sub><italic>x</italic></sub>] &#x000D7; [0, <italic>L</italic><sub><italic>y</italic></sub>] &#x000D7; [0, <italic>L</italic><sub><italic>z</italic></sub>]. The droplets are centered at (<italic>L</italic><sub><italic>x</italic></sub>/2, <italic>L</italic><sub><italic>y</italic></sub>/2, (<italic>L</italic><sub><italic>z</italic></sub>&#x000B1;<italic>L</italic><sub><italic>x</italic></sub>)/2) and have a radius <italic>R</italic>. The lower droplet (along the <italic>z</italic>-axis) is initialized with a Gaussian concentration distribution of negative ions (<italic>z</italic><sub>&#x02212;</sub> &#x0003D; &#x02212;1), whereas the upper droplet is initialized with positive ions (<italic>z</italic><sub>&#x0002B;</sub> &#x0003D; 1). The average concentration of the respective ion species within each droplet is <italic>c</italic><sub>0</sub>, such that the total charge in the system is zero, and the initial spread (standard deviation) of the Gaussian distribution is <italic>R</italic>/3. A potential <italic>V</italic><sub>0</sub> is set on the top plane at <italic>z</italic> &#x0003D; <italic>L</italic><sub><italic>z</italic></sub> and the bottom plane at <italic>z</italic> &#x0003D; 0 is taken to be grounded. We assume no-slip and no-flux conditions on all boundaries, except for the electrostatic potential <italic>V</italic> at the top and bottom planes, and the fluid is taken to be in a quiescent state at the initial time <italic>t</italic> &#x0003D; 0. The phasic parameters used in the simulations are given in <xref ref-type="table" rid="T9">Table 9</xref>, and the remaining parameters are given in <xref ref-type="table" rid="T10">Table 10</xref>. The problem is implemented in the file <monospace>problems/charged_droplets_3D.py</monospace>.</p>
<table-wrap position="float" id="T9">
<label>Table 9</label>
<caption><p>Phasic parameters for the simulations of droplet coalescence and breakup in an electric field.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value in phase 1</bold></th>
<th valign="top" align="center"><bold>Value in phase 2</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Viscosity</td>
<td valign="top" align="left">&#x003BC;</td>
<td valign="top" align="center">1.0</td>
<td valign="top" align="center">0.5</td>
</tr>
<tr>
<td valign="top" align="left">Density</td>
<td valign="top" align="left">&#x003C1;</td>
<td valign="top" align="center">500.0</td>
<td valign="top" align="center">50.0</td>
</tr>
<tr>
<td valign="top" align="left">Permittivity</td>
<td valign="top" align="left">&#x003B5;</td>
<td valign="top" align="center">1.0</td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">Solution energy</td>
<td valign="top" align="left">&#x003B2;<sub>&#x000B1;</sub></td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Ion mobility</td>
<td valign="top" align="left"><italic>D</italic><sub>&#x000B1;</sub></td>
<td valign="top" align="center">0.0001</td>
<td valign="top" align="center">0.1</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The subscript &#x000B1; indicates the value for both the positive and negative ions</italic>.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T10">
<label>Table 10</label>
<caption><p>Simulation parameters for the simulations of droplet coalescence and breakup in an electric field.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Length along <italic>x</italic></td>
<td valign="top" align="left"><italic>L</italic><sub><italic>x</italic></sub></td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Length along <italic>y</italic></td>
<td valign="top" align="left"><italic>L</italic><sub><italic>y</italic></sub></td>
<td valign="top" align="center">1.0</td>
</tr>
<tr>
<td valign="top" align="left">Height</td>
<td valign="top" align="left"><italic>L</italic><sub><italic>z</italic></sub></td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">Total simulation time</td>
<td valign="top" align="left"><italic>T</italic></td>
<td valign="top" align="center">20</td>
</tr>
<tr>
<td valign="top" align="left">Initial radius</td>
<td valign="top" align="left"><italic>R</italic></td>
<td valign="top" align="center">0.2</td>
</tr>
<tr>
<td valign="top" align="left">Time step</td>
<td valign="top" align="left">&#x003C4;</td>
<td valign="top" align="center">0.005</td>
</tr>
<tr>
<td valign="top" align="left">Resolution</td>
<td valign="top" align="left"><italic>h</italic></td>
<td valign="top" align="center">1/64</td>
</tr>
<tr>
<td valign="top" align="left">Interface thickness</td>
<td valign="top" align="left">&#x003F5;</td>
<td valign="top" align="center">0.01</td>
</tr>
<tr>
<td valign="top" align="left">Phase field mobility</td>
<td valign="top" align="left"><italic>M</italic><sub>0</sub></td>
<td valign="top" align="center">1&#x000B7;10<sup>&#x02212;5</sup></td>
</tr>
<tr>
<td valign="top" align="left">Surface tension</td>
<td valign="top" align="left">&#x003C3;</td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">Initial avg. concentration</td>
<td valign="top" align="left"><italic>c</italic><sub>0</sub></td>
<td valign="top" align="center">20.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p><xref ref-type="fig" rid="F12">Figure 12</xref> shows snapshots from the simulations at several instances of time. As seen from the figure, the droplets are set in motion toward each other by the electric field and collide with each other. Subsequently, the unified droplet is stretched, until it touches both electrodes. The middle part then breaks off, and as it is unstable, it further emits droplets that are released to two two sides. Finally, two spherical caps form at each electrode, and a neutral drop is left in the middle, due to the initial symmetry. Similar behavior has been observed in axisymmetric simulations (e.g.,[<xref ref-type="bibr" rid="B82">82</xref>]).</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>Snapshots from the simulations of droplet coalescence and subsequent breakup in an electric field. The phase boundary shows the &#x003D5; &#x0003D; 0 isosurface of the phase field. The coloring indicates charge: red is positive and blue is negative. The color bar goes from -20 (deep blue) to 20 (deep red). The quivers show the velocity field in the <italic>x</italic> &#x0003D; 0.5 plane (color indicates intensity). <bold>(A)</bold> <italic>t</italic> = 0.0. <bold>(B)</bold> <italic>t</italic> = 0.25. <bold>(C)</bold> <italic>t</italic> = 0.5. <bold>(D)</bold> <italic>t</italic> = 0.75. <bold>(E)</bold> <italic>t</italic> = 1.0. <bold>(F)</bold> <italic>t</italic> = 1.25. <bold>(G)</bold> <italic>t</italic> = 1.5. <bold>(H)</bold> <italic>t</italic> = 1.75. <bold>(I)</bold> <italic>t</italic> = 2.0. <bold>(J)</bold> <italic>t</italic> = 2.25. <bold>(K)</bold> <italic>t</italic> = 2.5. <bold>(L)</bold> <italic>t</italic> = 2.75. <bold>(M)</bold> <italic>t</italic> = 3.0. <bold>(N)</bold> <italic>t</italic> = 4.0.</p></caption>
<graphic xlink:href="fphy-07-00021-g0012.tif"/>
</fig>
<p>We finally carry out a strong scaling test of the linear iterative solver on a single in-house server with 80 dedicated cores. The results of average computational time per time step (averaged over 10 time steps) vs. number of cores are shown in <xref ref-type="fig" rid="F13">Figure 13</xref>. We show here the amount of time spent per time step for all substeps in order to illuminate where most of the computational resources are spent. As can be seen, a significant portion of the computational time is spent on the electrochemical substep. Overall, the solver displays sublinear scaling with the number of cores, but the results are promising given that neither the solver nor the FEniCS install (a standard PPA install of FEniCS 2017.2.0 on Ubuntu 16.04 server) are fully optimized. Much could be gained by improving the two steps where solving a Poisson equation is involved; in particular it seems possible that more specifically tailored preconditioners than the straightforward AMG preconditioning could impart speedup. However, we stress that the division of labor between the steps is highly problem-dependent, and in particular, the electrochemical subproblem is susceptible to how far into the non-linear regime we are (see e.g., [<xref ref-type="bibr" rid="B45">45</xref>]).</p>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>Strong scaling test. We show computational time per timestep vs. number of processor cores for the coalescence and breakup of droplets in 3D. The results are averaged over the 10 first timesteps for simulations with 128 &#x000D7; 128 &#x000D7; 256 &#x0003D; 4,194,304 degrees of freedom, with a time step &#x003C4; &#x0003D; 0.02.</p></caption>
<graphic xlink:href="fphy-07-00021-g0013.tif"/>
</fig>
</sec>
</sec>
<sec id="s7">
<title>7. Discussion and Conclusion</title>
<p>We have in this work presented <italic>Bernaise</italic>, a flexible open-source framework for simulating two-phase electrohydrodynamics in complex geometries using a phase-field model. The solver is written in its entirety in Python, and is built on top of the FEniCS/DOLFIN framework [<xref ref-type="bibr" rid="B42">42</xref>, <xref ref-type="bibr" rid="B83">83</xref>] for solving partial differential equations using the finite element method on unstructured meshes. FEniCS in turn interfaces to, e.g., scalable state-of-the art linear solvers through its PETSc backend [<xref ref-type="bibr" rid="B84">84</xref>]. We have proposed a linear operator-splitting scheme to solve the coupled non-linear equations of two-phase electrohydrodynamics. In contrast to solving the equations directly in a monolithic manner, the scheme sequentially solves the Cahn&#x02013;Hilliard equation for the phase field describing the interface, the Poisson&#x02013;Nernst&#x02013;Planck equations for the electrochemistry (solute transport and electrostatics), and the Navier&#x02013;Stokes equations for the hydrodynamics, at each time step. Implementation of new solvers and problems has been demonstrated through representative examples. Validation of the implementation was carried out by three means: (1) By comparison to analytic solutions in limiting cases where such are available, (2) by the method of manufactured solution through an augmented Taylor&#x02013;Green vortex, and (3) through convergence to a highly resolved solution of a new two-phase electrohydrodynamics benchmark problem of an electrically driven droplet. Finally, we have presented applications of the framework in non-trivial settings. Firstly, to test the applicability of the code in a complicated geometry, and to illuminate the effects of dynamic electrowetting, we simulated a shear flow of water containing an electrolyte over a dead-end pore initially filled with oil. This problem is relevant from a geophysical standpoint, and exemplifies the potential of the method to simulate the dynamics of the interaction between two-phase flow and electric double layers. Secondly, the ability of the framework to simulate three-dimensional configurations was demonstrated using a fully iterative version of the operator-splitting scheme, by simulating the coalescence and subsequent breakup of two oppositely charged droplets in an electric field. The parallel scalability of the latter solver was tested on in-house computing facilities. The results presented herein underpin our aim that <italic>Bernaise</italic> can become a valuable tool both within the micro- and nanofluidics community and within geophysical simulation.</p>
<p>We have in this article not considered situations with multiple interacting droplets, complicated background flows, or complex mesh topologies. While the numerical procedure is capable of handling this, the main purpose of this article (in addition to presenting the software) has been to establish the validity of the approach, and to demonstrate its use through fairly rudimentary examples. Hence, we plan to use the present work as a basis for studying more complicated systems in the future.</p>
<p>There are several possible avenues for further development and use of <italic>Bernaise</italic>. With regard to computational effort, the linear operator-splitting scheme constitutes a major computational improvement over a corresponding monolithic scheme. For the resulting smaller and simpler subproblems, more specialized linear solvers and preconditioners can be used. However, the implementation of the schemes are still not fully optimized, as in many cases it is not strictly necessary to reassemble entire system matrices (multiple times) at every time step. Using ideas e.g., from Mortensen and Valen-Sendstad [<xref ref-type="bibr" rid="B43">43</xref>] on how to effectively preassemble system matrices in FEniCS, one could achieve an implementation that is to a larger extent dominated by the backend linear solvers. However, as the phase field is updated at every time step, there may be less to gain in performance than what was the case in the latter reference.</p>
<p>With regard to solving the Navier&#x02013;Stokes equations, the solvers considered herein either rely on a coupled approach (the <monospace>basic</monospace> and <monospace>basicnewton</monospace> solvers) or a fractional step approach that splits between the computations of velocity and pressure (the <monospace>fracstep</monospace> solver that was considered in section 6.2). Using direct linear solvers, the coupled solvers yield accurate prediction of the pressure and can be expected to be more robust. However, direct solvers have numerical disadvantages when it comes to scalability, and Krylov solvers require specifically tailored preconditioners to achieve robust convergence. An avenue for further research is to refine the <monospace>fracstep</monospace> solver and develop decoupled energy-stable schemes for this problem, which seems possible by building on literature on similar systems [<xref ref-type="bibr" rid="B67">67</xref>&#x02013;<xref ref-type="bibr" rid="B70">70</xref>, <xref ref-type="bibr" rid="B75">75</xref>], Linga et al. (Submitted). The implementation of such enhanced schemes in <italic>Bernaise</italic> is straighforward, as demonstrated in this paper. On the other hand, in problems where interface forces and electric fields become sufficiently strong, and the equations become strongly nonlinearly coupled, it may be necessary to use a fully-implicit approach (along the lines of <monospace>basicnewton</monospace>), combined with direct linear solvers, to obtain a converged solution. In the future we aim to compare the ranges of applicability of various fully-implicit, semi-implicit, and splitting-based schemes for practical settings.</p>
<p>A clear enhancement of <italic>Bernaise</italic> would be adaptivity, both in time and space. Adaptivity in time should be implemented such that time step is variable and controlled by the globally largest propagation velocity (in any field), and a Courant number of choice. Adaptivity in space is presently only supported as a one-way operation. Adaptive mesh refinement is already used in the mesh initialization phase in many of the implemented problems. However, mesh coarsening has currently limited support in FEniCS and to the authors&#x00027; knowledge there are no concrete plans of adding support for this. Hence, <italic>Bernaise</italic> lacks an adaptive mesh functionality, but this could be implemented in an <italic>ad hoc</italic> manner with some code restructuring.</p>
<p>In this article, we have not considered any <italic>direct</italic> dependence of the contact angle (i.e., the surface energies) on an applied electric field. However, the contact angle on scales below the Debye length is generally thought to be unaffected, albeit on scales larger than the insulator thickness, an apparent contact angle forms [<xref ref-type="bibr" rid="B85">85</xref>, <xref ref-type="bibr" rid="B86">86</xref>]. Using the full two-phase electrohydrodynamic model presented herein, effective contact angle dependencies upon the zeta potential could be measured and used in simulations of more macroscopic models; i.e., models admissible on scales where the electrical double layers are not fully resolved [<xref ref-type="bibr" rid="B86">86</xref>]. This would result in a modified contact angle energy that would be enforced as a boundary condition in a phase field model [<xref ref-type="bibr" rid="B87">87</xref>].</p>
<p>Physically, several extensions of the model could be included in the simulation framework. Surfactants may influence the dynamics of droplets and interfaces, and could be included as in e.g., the model by Teigen et al. [<xref ref-type="bibr" rid="B88">88</xref>]. The model in its current form further assumes that we are concerned with dilute solutions (i.e., ideal gas law for the concentration), and hence more complicated electrochemistry could to some extent be incorporated into the chemical free energy &#x003B1;(<italic>c</italic>).</p>
<p>Finally, the requirement of the electrical double layer to be well-resolved constitutes the main constraint for upscaling of the current method. Thus, for simulation of two-phase electrohydrodynamic flow on larger scales, if ionic transport need not be accounted for, it would only require minor modifications of the code to run the somewhat simpler Taylor&#x02013;Melcher leaky dielectric model, e.g., in the formulation by Lin et al. [<xref ref-type="bibr" rid="B60">60</xref>], within the current framework.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>AB, GL, and JM: designed the study; GL: developed the numerical scheme and methods; GL and AB: performed simulations; GL: wrote the first draft.</p>
<sec>
<title>Conflict of Interest Statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</sec>
</body>
<back>
<sec sec-type="supplementary-material" id="s9">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fphy.2019.00021/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fphy.2019.00021/full#supplementary-material</ext-link></p>
<supplementary-material xlink:href="Data_Sheet_1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lippmann</surname> <given-names>G</given-names></name></person-group>. <source>Relations Entre les Ph&#x000E9;nom&#x000E8;nes &#x000C9;lectriques et Capillaires</source>. <publisher-loc>Paris</publisher-loc>: <publisher-name>Sorbonne</publisher-name> (<year>1875</year>).</citation></ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mugele</surname> <given-names>F</given-names></name> <name><surname>Baret</surname> <given-names>JC</given-names></name></person-group>. <article-title>Electrowetting: from basics to applications</article-title>. <source>J Phys Condens Matter.</source> (<year>2005</year>) <volume><bold>17</bold></volume>:<fpage>R705</fpage>. <pub-id pub-id-type="doi">10.1088/0953-8984/17/28/R01</pub-id></citation></ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ristenpart</surname> <given-names>W</given-names></name> <name><surname>Bird</surname> <given-names>J</given-names></name> <name><surname>Belmonte</surname> <given-names>A</given-names></name> <name><surname>Dollar</surname> <given-names>F</given-names></name> <name><surname>Stone</surname> <given-names>H</given-names></name></person-group>. <article-title>Non-coalescence of oppositely charged drops</article-title>. <source>Nature.</source> (<year>2009</year>) <volume>461</volume>:<fpage>377</fpage>&#x02013;<lpage>80</lpage>. <pub-id pub-id-type="doi">10.1038/nature08294</pub-id><pub-id pub-id-type="pmid">19759616</pub-id></citation></ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mugele</surname> <given-names>F</given-names></name></person-group>. <article-title>Fluid dynamics: to merge or not to merge</article-title>. <source>Nature.</source> (<year>2009</year>) <volume><bold>461</bold></volume>:<fpage>356</fpage>. <pub-id pub-id-type="doi">10.1038/461356a</pub-id></citation></ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Squires</surname> <given-names>TM</given-names></name> <name><surname>Quake</surname> <given-names>SR</given-names></name></person-group>. <article-title>Microfluidics: fluid physics at the nanoliter scale</article-title>. <source>Rev Mod Phys.</source> (<year>2005</year>) <volume><bold>77</bold></volume>:<fpage>977</fpage>. <pub-id pub-id-type="doi">10.1103/RevModPhys.77.977</pub-id></citation></ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Schoch</surname> <given-names>RB</given-names></name> <name><surname>Han</surname> <given-names>J</given-names></name> <name><surname>Renaud</surname> <given-names>P</given-names></name></person-group>. <article-title>Transport phenomena in nanofluidics</article-title>. <source>Rev Mod Phys.</source> (<year>2008</year>) <volume><bold>80</bold></volume>:<fpage>839</fpage>. <pub-id pub-id-type="doi">10.1103/RevModPhys.80.839</pub-id></citation></ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mugele</surname> <given-names>F</given-names></name> <name><surname>Duits</surname> <given-names>M</given-names></name> <name><surname>Van den Ende</surname> <given-names>D</given-names></name></person-group>. <article-title>Electrowetting: a versatile tool for drop manipulation, generation, and characterization</article-title>. <source>Adv Colloid Interface Sci.</source> (<year>2010</year>) <volume>161</volume>:<fpage>115</fpage>&#x02013;<lpage>23</lpage>. <pub-id pub-id-type="doi">10.1016/j.cis.2009.11.002</pub-id><pub-id pub-id-type="pmid">20004880</pub-id></citation></ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nelson</surname> <given-names>WC</given-names></name> <name><surname>Kim</surname> <given-names>CJ</given-names></name></person-group>. <article-title>Droplet actuation by electrowetting-on-dielectric (EWOD): a review</article-title>. <source>J Adhes Sci Technol.</source> (<year>2012</year>) <volume>26</volume>:<fpage>1747</fpage>&#x02013;<lpage>71</lpage>. <pub-id pub-id-type="doi">10.1163/156856111X599562</pub-id></citation></ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pollack</surname> <given-names>M</given-names></name> <name><surname>Shenderov</surname> <given-names>A</given-names></name> <name><surname>Fair</surname> <given-names>R</given-names></name></person-group>. <article-title>Electrowetting-based actuation of droplets for integrated microfluidics</article-title>. <source>Lab Chip.</source> (<year>2002</year>) <volume>2</volume>:<fpage>96</fpage>&#x02013;<lpage>101</lpage>. <pub-id pub-id-type="doi">10.1039/b110474h</pub-id><pub-id pub-id-type="pmid">15100841</pub-id></citation></ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Srinivasan</surname> <given-names>V</given-names></name> <name><surname>Pamula</surname> <given-names>VK</given-names></name> <name><surname>Fair</surname> <given-names>RB</given-names></name></person-group>. <article-title>An integrated digital microfluidic lab-on-a-chip for clinical diagnostics on human physiological fluids</article-title>. <source>Lab Chip.</source> (<year>2004</year>) <volume>4</volume>:<fpage>310</fpage>&#x02013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1039/b403341h</pub-id><pub-id pub-id-type="pmid">15269796</pub-id></citation></ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>J</given-names></name> <name><surname>Kim</surname> <given-names>CJ</given-names></name></person-group>. <article-title>Surface-tension-driven microactuation based on continuous electrowetting</article-title>.<source>J Microelectromech Syst.</source> (<year>2000</year>) <volume>9</volume>:<fpage>171</fpage>&#x02013;<lpage>80</lpage>. <pub-id pub-id-type="doi">10.1109/84.846697</pub-id></citation></ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Siria</surname> <given-names>A</given-names></name> <name><surname>Bocquet</surname> <given-names>ML</given-names></name> <name><surname>Bocquet</surname> <given-names>L</given-names></name></person-group>. <article-title>New avenues for the large-scale harvesting of blue energy</article-title>. <source>Nat Rev Chem.</source> (<year>2017</year>) <volume><bold>1</bold></volume>:<fpage>0091</fpage>. <pub-id pub-id-type="doi">10.1038/s41570-017-0091</pub-id></citation></ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Beni</surname> <given-names>G</given-names></name> <name><surname>Hackwood</surname> <given-names>S</given-names></name></person-group>. <article-title>Electro-wetting displays</article-title>. <source>Appl Phys Lett.</source> (<year>1981</year>) <volume>38</volume>:<fpage>207</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1063/1.92322</pub-id></citation></ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Beni</surname> <given-names>G</given-names></name> <name><surname>Tenan</surname> <given-names>M</given-names></name></person-group>. <article-title>Dynamics of electrowetting displays</article-title>. <source>J Appl Phys.</source> (<year>1981</year>) <volume>52</volume>:<fpage>6011</fpage>&#x02013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1063/1.329822</pub-id></citation></ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Beni</surname> <given-names>G</given-names></name> <name><surname>Hackwood</surname> <given-names>S</given-names></name> <name><surname>Jackel</surname> <given-names>J</given-names></name></person-group>. <article-title>Continuous electrowetting effect</article-title>. <source>Appl Phys Lett.</source> (<year>1982</year>) <volume>40</volume>:<fpage>912</fpage>&#x02013;<lpage>4</lpage>. <pub-id pub-id-type="doi">10.1063/1.92952</pub-id></citation></ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hayes</surname> <given-names>RA</given-names></name> <name><surname>Feenstra</surname> <given-names>BJ</given-names></name></person-group>. <article-title>Video-speed electronic paper based on electrowetting</article-title>. <source>Nature.</source> (<year>2003</year>) <volume><bold>425</bold></volume>:<fpage>383</fpage>. <pub-id pub-id-type="doi">10.1038/nature01988</pub-id><pub-id pub-id-type="pmid">14508484</pub-id></citation></ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pride</surname> <given-names>SR</given-names></name> <name><surname>Morgan</surname> <given-names>F</given-names></name></person-group>. <article-title>Electrokinetic dissipation induced by seismic waves</article-title>. <source>Geophysics.</source> (<year>1991</year>) <volume>56</volume>:<fpage>914</fpage>&#x02013;<lpage>25</lpage>. <pub-id pub-id-type="doi">10.1190/1.1443125</pub-id></citation></ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Fiorentino</surname> <given-names>EA</given-names></name> <name><surname>Toussaint</surname> <given-names>R</given-names></name> <name><surname>Jouniaux</surname> <given-names>L</given-names></name></person-group>. <article-title>Lattice Boltzmann modelling of streaming potentials: variations with salinity in monophasic conditions</article-title>. <source>Geophys J Int.</source> (<year>2016</year>) <volume>205</volume>:<fpage>648</fpage>&#x02013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.1093/gji/ggw041</pub-id></citation></ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Fiorentino</surname> <given-names>EA</given-names></name> <name><surname>Toussaint</surname> <given-names>R</given-names></name> <name><surname>Jouniaux</surname> <given-names>L</given-names></name></person-group>. <article-title>Two-phase lattice Boltzmann modelling of streaming potentials: influence of the air-water interface on the electrokinetic coupling</article-title>. <source>Geophys J Int.</source> (<year>2016</year>) <volume>208</volume>:<fpage>1139</fpage>&#x02013;<lpage>56</lpage>. <pub-id pub-id-type="doi">10.1093/gji/ggw417</pub-id></citation></ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hassenkam</surname> <given-names>T</given-names></name> <name><surname>Pedersen</surname> <given-names>CS</given-names></name> <name><surname>Dalby</surname> <given-names>K</given-names></name> <name><surname>Austad</surname> <given-names>T</given-names></name> <name><surname>Stipp</surname> <given-names>SLS</given-names></name></person-group>. <article-title>Pore scale observation of low salinity effects on outcrop and oil reservoir sandstone</article-title>. <source>Colloids Surf A.</source> (<year>2011</year>) <volume>390</volume>:<fpage>179</fpage>&#x02013;<lpage>88</lpage>. <pub-id pub-id-type="doi">10.1016/j.colsurfa.2011.09.025</pub-id></citation></ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hilner</surname> <given-names>E</given-names></name> <name><surname>Andersson</surname> <given-names>MP</given-names></name> <name><surname>Hassenkam</surname> <given-names>T</given-names></name> <name><surname>Matthiesen</surname> <given-names>J</given-names></name> <name><surname>Salino</surname> <given-names>P</given-names></name> <name><surname>Stipp</surname> <given-names>SLS</given-names></name></person-group>. <article-title>The effect of ionic strength on oil adhesion in sandstone&#x02013;the search for the low salinity mechanism</article-title>. <source>Sci Rep.</source> (<year>2015</year>) <volume><bold>5</bold></volume>:<fpage>9933</fpage>. <pub-id pub-id-type="doi">10.1038/srep09933</pub-id><pub-id pub-id-type="pmid">25899050</pub-id></citation></ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>RezaeiDoust</surname> <given-names>A</given-names></name> <name><surname>Puntervold</surname> <given-names>T</given-names></name> <name><surname>Strand</surname> <given-names>S</given-names></name> <name><surname>Austad</surname> <given-names>T</given-names></name></person-group>. <article-title>Smart water as wettability modifier in carbonate and sandstone: a discussion of similarities/differences in the chemical mechanisms</article-title>. <source>Energy Fuels.</source> (<year>2009</year>) <volume>23</volume>:<fpage>4479</fpage>&#x02013;<lpage>85</lpage>. <pub-id pub-id-type="doi">10.1021/ef900185q</pub-id></citation></ref>
<ref id="B23">
<label>23.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pedersen</surname> <given-names>N</given-names></name> <name><surname>Hassenkam</surname> <given-names>T</given-names></name> <name><surname>Ceccato</surname> <given-names>M</given-names></name> <name><surname>Dalby</surname> <given-names>KN</given-names></name> <name><surname>Mogensen</surname> <given-names>K</given-names></name> <name><surname>Stipp</surname> <given-names>SLS</given-names></name></person-group>. <article-title>Low salinity effect at pore scale: probing wettability changes in Middle East limestone</article-title>. <source>Energy Fuels.</source> (<year>2016</year>) <volume>30</volume>:<fpage>3768</fpage>&#x02013;<lpage>75</lpage>. <pub-id pub-id-type="doi">10.1021/acs.energyfuels.5b02562</pub-id></citation></ref>
<ref id="B24">
<label>24.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pl&#x000FC;mper</surname> <given-names>O</given-names></name> <name><surname>Botan</surname> <given-names>A</given-names></name> <name><surname>Los</surname> <given-names>C</given-names></name> <name><surname>Liu</surname> <given-names>Y</given-names></name> <name><surname>Malthe-S&#x000F8;renssen</surname> <given-names>A</given-names></name> <name><surname>Jamtveit</surname> <given-names>B</given-names></name></person-group>. <article-title>Fluid-driven metamorphism of the continental crust governed by nanoscale fluid flow</article-title>. <source>Nat Geosci.</source> (<year>2017</year>) <volume><bold>10</bold></volume>:<fpage>685</fpage>. <pub-id pub-id-type="doi">10.1038/ngeo3009</pub-id><pub-id pub-id-type="pmid">28890735</pub-id></citation></ref>
<ref id="B25">
<label>25.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>De Gennes</surname> <given-names>PG</given-names></name></person-group>. <article-title>Wetting: statics and dynamics</article-title>. <source>Rev Mod Phys.</source> (<year>1985</year>) <volume><bold>57</bold></volume>:<fpage>827</fpage>. <pub-id pub-id-type="doi">10.1103/RevModPhys.57.827</pub-id></citation></ref>
<ref id="B26">
<label>26.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Bonn</surname> <given-names>D</given-names></name> <name><surname>Eggers</surname> <given-names>J</given-names></name> <name><surname>Indekeu</surname> <given-names>J</given-names></name> <name><surname>Meunier</surname> <given-names>J</given-names></name> <name><surname>Rolley</surname> <given-names>E</given-names></name></person-group>. <article-title>Wetting and spreading</article-title>. <source>Rev Mod Phys.</source> (<year>2009</year>) <volume><bold>81</bold></volume>:<fpage>739</fpage>. <pub-id pub-id-type="doi">10.1103/RevModPhys.81.739</pub-id></citation></ref>
<ref id="B27">
<label>27.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Snoeijer</surname> <given-names>JH</given-names></name> <name><surname>Andreotti</surname> <given-names>B</given-names></name></person-group>. <article-title>Moving contact lines: scales, regimes, and dynamical transitions</article-title>. <source>Ann Rev Fluid Mech.</source> (<year>2013</year>) <volume>45</volume>:<fpage>269</fpage>&#x02013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1146/annurev-fluid-011212-140734</pub-id></citation></ref>
<ref id="B28">
<label>28.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Melcher</surname> <given-names>J</given-names></name> <name><surname>Taylor</surname> <given-names>G</given-names></name></person-group>. <article-title>Electrohydrodynamics: a review of the role of interfacial shear stresses</article-title>. <source>Ann Rev Fluid Mech.</source> (<year>1969</year>) <volume>1</volume>:<fpage>111</fpage>&#x02013;<lpage>46</lpage>. <pub-id pub-id-type="doi">10.1146/annurev.fl.01.010169.000551</pub-id></citation></ref>
<ref id="B29">
<label>29.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Saville</surname> <given-names>DA</given-names></name></person-group>. <article-title>Electrohydrodynamics: the Taylor-Melcher leaky dielectric model</article-title>. <source>Ann Rev Fluid Mech.</source> (<year>1997</year>) <volume>29</volume>:<fpage>27</fpage>&#x02013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.1146/annurev.fluid.29.1.27</pub-id></citation></ref>
<ref id="B30">
<label>30.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Fylladitakis</surname> <given-names>ED</given-names></name> <name><surname>Theodoridis</surname> <given-names>MP</given-names></name> <name><surname>Moronis</surname> <given-names>AX</given-names></name></person-group>. <article-title>Review on the history, research, and applications of electrohydrodynamics</article-title>. <source>IEEE Trans Plasma Sci.</source> (<year>2014</year>) <volume>42</volume>:<fpage>358</fpage>&#x02013;<lpage>75</lpage>. <pub-id pub-id-type="doi">10.1109/TPS.2013.2297173</pub-id></citation></ref>
<ref id="B31">
<label>31.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Taylor</surname> <given-names>G</given-names></name></person-group>. <article-title>Studies in electrohydrodynamics. I. The circulation produced in a drop by electrical field</article-title>. <source>Proc R Soc Lond Ser A Math Phys Sci.</source> (<year>1966</year>) <volume>291</volume>:<fpage>159</fpage>&#x02013;<lpage>66</lpage>.</citation></ref>
<ref id="B32">
<label>32.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Schnitzer</surname> <given-names>O</given-names></name> <name><surname>Yariv</surname> <given-names>E</given-names></name></person-group>. <article-title>The Taylor&#x02013;Melcher leaky dielectric model as a macroscale electrokinetic description</article-title>. <source>J Fluid Mech.</source> (<year>2015</year>) <volume>773</volume>:<fpage>1</fpage>&#x02013;<lpage>33</lpage>. <pub-id pub-id-type="doi">10.1017/jfm.2015.242</pub-id></citation></ref>
<ref id="B33">
<label>33.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zholkovskij</surname> <given-names>EK</given-names></name> <name><surname>Masliyah</surname> <given-names>JH</given-names></name> <name><surname>Czarnecki</surname> <given-names>J</given-names></name></person-group>. <article-title>An electrokinetic model of drop deformation in an electric field</article-title>. <source>J Fluid Mech.</source> (<year>2002</year>) <volume>472</volume>:<fpage>1</fpage>&#x02013;<lpage>27</lpage>. <pub-id pub-id-type="doi">10.1017/S0022112002001441</pub-id></citation></ref>
<ref id="B34">
<label>34.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Monroe</surname> <given-names>CW</given-names></name> <name><surname>Daikhin</surname> <given-names>LI</given-names></name> <name><surname>Urbakh</surname> <given-names>M</given-names></name> <name><surname>Kornyshev</surname> <given-names>AA</given-names></name></person-group>. <article-title>Electrowetting with Electrolytes</article-title>. <source>Phys Rev Lett.</source> (<year>2006</year>) <volume><bold>97</bold></volume>:<fpage>136102</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevLett.97.136102</pub-id><pub-id pub-id-type="pmid">17026049</pub-id></citation></ref>
<ref id="B35">
<label>35.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Monroe</surname> <given-names>CW</given-names></name> <name><surname>Daikhin</surname> <given-names>LI</given-names></name> <name><surname>Urbakh</surname> <given-names>M</given-names></name> <name><surname>Kornyshev</surname> <given-names>AA</given-names></name></person-group>. <article-title>Principles of electrowetting with two immiscible electrolytic solutions</article-title>. <source>J Phys Condens Matter.</source> (<year>2006</year>) <volume><bold>18</bold></volume>:<fpage>2837</fpage>. <pub-id pub-id-type="doi">10.1088/0953-8984/18/10/009</pub-id></citation></ref>
<ref id="B36">
<label>36.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>Q</given-names></name> <name><surname>Li</surname> <given-names>BQ</given-names></name> <name><surname>Ding</surname> <given-names>Y</given-names></name></person-group>. <article-title>3D phase field modeling of electrohydrodynamic multiphase flows</article-title>. <source>Int J Multiph Flow.</source> (<year>2013</year>) <volume>57</volume>:<fpage>1</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijmultiphaseflow.2013.06.006</pub-id></citation></ref>
<ref id="B37">
<label>37.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>Q</given-names></name> <name><surname>Li</surname> <given-names>BQ</given-names></name> <name><surname>Shao</surname> <given-names>J</given-names></name> <name><surname>Ding</surname> <given-names>Y</given-names></name></person-group>. <article-title>A phase field numerical study of 3D bubble rising in viscous fluids under an electric field</article-title>. <source>Int J Heat Mass Transf.</source> (<year>2014</year>) <volume>78</volume>:<fpage>820</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijheatmasstransfer.2014.07.039</pub-id></citation></ref>
<ref id="B38">
<label>38.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Berry</surname> <given-names>J</given-names></name> <name><surname>Davidson</surname> <given-names>M</given-names></name> <name><surname>Harvie</surname> <given-names>DJ</given-names></name></person-group>. <article-title>A multiphase electrokinetic flow model for electrolytes with liquid/liquid interfaces</article-title>. <source>J Comput Phys.</source> (<year>2013</year>) <volume>251</volume>:<fpage>209</fpage>&#x02013;<lpage>22</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2013.05.026</pub-id></citation></ref>
<ref id="B39">
<label>39.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zeng</surname> <given-names>J</given-names></name></person-group>. <article-title>Non-linear electrohydrodynamics in microfluidic devices</article-title>. <source>Int J Mol Sci.</source> (<year>2011</year>) <volume>12</volume>:<fpage>1633</fpage>&#x02013;<lpage>49</lpage>. <pub-id pub-id-type="doi">10.3390/ijms12031633</pub-id><pub-id pub-id-type="pmid">21673912</pub-id></citation></ref>
<ref id="B40">
<label>40.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>HW</given-names></name> <name><surname>Glasner</surname> <given-names>K</given-names></name> <name><surname>Bertozzi</surname> <given-names>A</given-names></name> <name><surname>Kim</surname> <given-names>CJ</given-names></name></person-group>. <article-title>A diffuse-interface model for electrowetting drops in a Hele-Shaw cell</article-title>. <source>J Fluid Mech.</source> (<year>2007</year>) <volume>590</volume>:<fpage>411</fpage>&#x02013;<lpage>35</lpage>. <pub-id pub-id-type="doi">10.1017/S0022112007008154</pub-id></citation></ref>
<ref id="B41">
<label>41.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Walker</surname> <given-names>SW</given-names></name> <name><surname>Shapiro</surname> <given-names>B</given-names></name> <name><surname>Nochetto</surname> <given-names>RH</given-names></name></person-group>. <article-title>Electrowetting with contact line pinning: computational modeling and comparisons with experiments</article-title>. <source>Phys Fluids.</source> (<year>2009</year>) <volume><bold>21</bold></volume>:<fpage>102103</fpage>. <pub-id pub-id-type="doi">10.1063/1.3254022</pub-id></citation></ref>
<ref id="B42">
<label>42.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Logg</surname> <given-names>A</given-names></name> <name><surname>Mardal</surname> <given-names>KA</given-names></name> <name><surname>Wells</surname> <given-names>G</given-names></name></person-group>. <source>Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book</source>, <volume>Vol. 84</volume>. <publisher-name>Springer Science &#x00026; Business Media</publisher-name> (<year>2012</year>).</citation></ref>
<ref id="B43">
<label>43.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mortensen</surname> <given-names>M</given-names></name> <name><surname>Valen-Sendstad</surname> <given-names>K</given-names></name></person-group>. <article-title>Oasis: a high-level/high-performance open source Navier&#x02013;Stokes solver</article-title>. <source>Comput Phys Commun.</source> (<year>2015</year>) <volume>188</volume>:<fpage>177</fpage>&#x02013;<lpage>88</lpage>. <pub-id pub-id-type="doi">10.1016/j.cpc.2014.10.026</pub-id></citation></ref>
<ref id="B44">
<label>44.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mitscha-Baude</surname> <given-names>G</given-names></name> <name><surname>Buttinger-Kreuzhuber</surname> <given-names>A</given-names></name> <name><surname>Tulzer</surname> <given-names>G</given-names></name> <name><surname>Heitzinger</surname> <given-names>C</given-names></name></person-group>. <article-title>Adaptive and iterative methods for simulations of nanopores with the PNP&#x02013;Stokes equations</article-title>. <source>J Comput Phys.</source> (<year>2017</year>) <volume>338</volume>:<fpage>452</fpage>&#x02013;<lpage>76</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2017.02.072</pub-id></citation></ref>
<ref id="B45">
<label>45.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Bolet</surname> <given-names>A</given-names></name> <name><surname>Linga</surname> <given-names>G</given-names></name> <name><surname>Mathiesen</surname> <given-names>J</given-names></name></person-group>. <article-title>Electrohydrodynamic channeling effects in narrow fractures and pores</article-title>. <source>Phys Rev E.</source> (<year>2018</year>) <volume><bold>97</bold></volume>:<fpage>043114</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevE.97.043114</pub-id><pub-id pub-id-type="pmid">29758757</pub-id></citation></ref>
<ref id="B46">
<label>46.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Prosperetti</surname> <given-names>A</given-names></name> <name><surname>Tryggvason</surname> <given-names>G</given-names></name></person-group>. <source>Computational Methods for Multiphase Flow</source>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name> (<year>2009</year>).</citation></ref>
<ref id="B47">
<label>47.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>C</given-names></name> <name><surname>Li</surname> <given-names>D</given-names></name></person-group>. <article-title>A method of determining the thickness of liquid-liquid interfaces</article-title>. <source>Colloids Surf A.</source> (<year>1996</year>) <volume>113</volume>:<fpage>51</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/0927-7757(96)03544-3</pub-id></citation></ref>
<ref id="B48">
<label>48.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Qian</surname> <given-names>T</given-names></name> <name><surname>Wang</surname> <given-names>XP</given-names></name> <name><surname>Sheng</surname> <given-names>P</given-names></name></person-group>. <article-title>A variational approach to moving contact line hydrodynamics</article-title>. <source>J Fluid Mech.</source> (<year>2006</year>) <volume>564</volume>:<fpage>333</fpage>&#x02013;<lpage>60</lpage>. <pub-id pub-id-type="doi">10.1017/S0022112006001935</pub-id></citation></ref>
<ref id="B49">
<label>49.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Qian</surname> <given-names>T</given-names></name> <name><surname>Wang</surname> <given-names>XP</given-names></name> <name><surname>Sheng</surname> <given-names>P</given-names></name></person-group>. <article-title>Molecular scale contact line hydrodynamics of immiscible flows</article-title>. <source>Phys Rev E.</source> (<year>2003</year>) <volume><bold>68</bold></volume>:<fpage>016306</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevE.68.016306</pub-id><pub-id pub-id-type="pmid">12935245</pub-id></citation></ref>
<ref id="B50">
<label>50.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sui</surname> <given-names>Y</given-names></name> <name><surname>Ding</surname> <given-names>H</given-names></name> <name><surname>Spelt</surname> <given-names>PDM</given-names></name></person-group>. <article-title>Numerical simulations of flows with moving contact lines</article-title>. <source>Ann Rev Fluid Mech.</source> (<year>2014</year>) <volume>46</volume>:<fpage>97</fpage>&#x02013;<lpage>119</lpage>. <pub-id pub-id-type="doi">10.1146/annurev-fluid-010313-141338</pub-id></citation></ref>
<ref id="B51">
<label>51.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ervik</surname> <given-names>&#x000C5;</given-names></name> <name><surname>Lysgaard</surname> <given-names>MO</given-names></name> <name><surname>Herdes</surname> <given-names>C</given-names></name> <name><surname>Jimnez-Serratos</surname> <given-names>G</given-names></name> <name><surname>M&#x000FC;ller</surname> <given-names>EA</given-names></name> <name><surname>Munkejord</surname> <given-names>ST</given-names></name> <etal/></person-group>. <article-title>A multiscale method for simulating fluid interfaces covered with large molecules such as asphaltenes</article-title>. <source>J Comput Phys.</source> (<year>2016</year>) <volume>327</volume>:<fpage>576</fpage>&#x02013;<lpage>611</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2016.09.039</pub-id></citation></ref>
<ref id="B52">
<label>52.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Walker</surname> <given-names>SW</given-names></name> <name><surname>Shapiro</surname> <given-names>B</given-names></name></person-group>. <article-title>Modeling the fluid dynamics of electrowetting on dielectric (EWOD)</article-title>. <source>J Microelectromech Syst.</source> (<year>2006</year>) <volume>15</volume>:<fpage>986</fpage>&#x02013;<lpage>1000</lpage>. <pub-id pub-id-type="doi">10.1109/JMEMS.2006.878876</pub-id></citation></ref>
<ref id="B53">
<label>53.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Teigen</surname> <given-names>KE</given-names></name> <name><surname>Munkejord</surname> <given-names>ST</given-names></name></person-group>. <article-title>Influence of surfactant on drop deformation in an electric field</article-title>. <source>Phys Fluids.</source> (<year>2010</year>) <volume><bold>22</bold></volume>:<fpage>112104</fpage>. <pub-id pub-id-type="doi">10.1063/1.3504271</pub-id></citation></ref>
<ref id="B54">
<label>54.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Tomar</surname> <given-names>G</given-names></name> <name><surname>Gerlach</surname> <given-names>D</given-names></name> <name><surname>Biswas</surname> <given-names>G</given-names></name> <name><surname>Alleborn</surname> <given-names>N</given-names></name> <name><surname>Sharma</surname> <given-names>A</given-names></name> <name><surname>Durst</surname> <given-names>F</given-names></name> <etal/></person-group>. <article-title>Two-phase electrohydrodynamic simulations using a volume-of-fluid approach</article-title>. <source>J Comput Phys.</source> (<year>2007</year>) <volume>227</volume>:<fpage>1267</fpage>&#x02013;<lpage>85</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2007.09.003</pub-id></citation></ref>
<ref id="B55">
<label>55.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>L&#x000F3;pez-Herrera</surname> <given-names>J</given-names></name> <name><surname>Popinet</surname> <given-names>S</given-names></name> <name><surname>Herrada</surname> <given-names>M</given-names></name></person-group>. <article-title>A charge-conservative approach for simulating electrohydrodynamic two-phase flows using volume-of-fluid</article-title>. <source>J Comput Phys.</source> (<year>2011</year>) <volume>230</volume>:<fpage>1939</fpage>&#x02013;<lpage>55</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2010.11.042</pub-id></citation></ref>
<ref id="B56">
<label>56.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Anderson</surname> <given-names>DM</given-names></name> <name><surname>McFadden</surname> <given-names>GB</given-names></name> <name><surname>Wheeler</surname> <given-names>AA</given-names></name></person-group>. <article-title>Diffuse-interface methods in fluid mechanics</article-title>. <source>Ann Rev Fluid Mech.</source> (<year>1998</year>) <volume>30</volume>:<fpage>139</fpage>&#x02013;<lpage>65</lpage>. <pub-id pub-id-type="doi">10.1146/annurev.fluid.30.1.139</pub-id></citation></ref>
<ref id="B57">
<label>57.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hohenberg</surname> <given-names>PC</given-names></name> <name><surname>Halperin</surname> <given-names>BI</given-names></name></person-group>. <article-title>Theory of dynamic critical phenomena</article-title>. <source>Rev Mod Phys.</source> (<year>1977</year>) <volume><bold>49</bold></volume>:<fpage>435</fpage>. <pub-id pub-id-type="doi">10.1103/RevModPhys.49.435</pub-id></citation></ref>
<ref id="B58">
<label>58.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lowengrub</surname> <given-names>J</given-names></name> <name><surname>Truskinovsky</surname> <given-names>L</given-names></name></person-group> <article-title>The Royal Society. Quasi-incompressible Cahn&#x02013;Hilliard fluids and topological transitions</article-title>. <source>Proc R Soc A.</source> (<year>1998</year>) <volume>454</volume>:<fpage>2617</fpage>&#x02013;<lpage>54</lpage>. <pub-id pub-id-type="doi">10.1098/rspa.1998.0273</pub-id></citation></ref>
<ref id="B59">
<label>59.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Abels</surname> <given-names>H</given-names></name> <name><surname>Garcke</surname> <given-names>H</given-names></name> <name><surname>Gr&#x000FC;n</surname> <given-names>G</given-names></name></person-group>. <article-title>Thermodynamically consistent, frame indifferent diffuse interface models for incompressible two-phase flows with different densities</article-title>. <source>Math Models Methods Appl Sci.</source> (<year>2012</year>) <volume><bold>22</bold></volume>:<fpage>1150013</fpage>. <pub-id pub-id-type="doi">10.1142/S0218202511500138</pub-id></citation></ref>
<ref id="B60">
<label>60.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lin</surname> <given-names>Y</given-names></name> <name><surname>Skjetne</surname> <given-names>P</given-names></name> <name><surname>Carlson</surname> <given-names>A</given-names></name></person-group>. <article-title>A phase field model for multiphase electro-hydrodynamic flow</article-title>. <source>Int J Multiphase Flow</source> (<year>2012</year>) <volume>45</volume>:<fpage>1</fpage>&#x02013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijmultiphaseflow.2012.04.002</pub-id></citation></ref>
<ref id="B61">
<label>61.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Campillo-Funollet</surname> <given-names>E</given-names></name> <name><surname>Gr&#x000FC;n</surname> <given-names>G</given-names></name> <name><surname>Klingbeil</surname> <given-names>F</given-names></name></person-group>. <article-title>On modeling and simulation of electrokinetic phenomena in two-phase flow with general mass densities</article-title>. <source>SIAM J Appl Math.</source> (<year>2012</year>) <volume>72</volume>:<fpage>1899</fpage>&#x02013;<lpage>925</lpage>. <pub-id pub-id-type="doi">10.1137/120861333</pub-id></citation></ref>
<ref id="B62">
<label>62.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Eck</surname> <given-names>C</given-names></name> <name><surname>Fontelos</surname> <given-names>M</given-names></name> <name><surname>Gr&#x000FC;n</surname> <given-names>G</given-names></name> <name><surname>Klingbeil</surname> <given-names>F</given-names></name> <name><surname>Vantzos</surname> <given-names>O</given-names></name></person-group>. <article-title>On a phase-field model for electrowetting</article-title>. <source>Interf Free Boundaries.</source> (<year>2009</year>) <volume>11</volume>:<fpage>259</fpage>&#x02013;<lpage>90</lpage>. <pub-id pub-id-type="doi">10.4171/IFB/211</pub-id></citation></ref>
<ref id="B63">
<label>63.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nochetto</surname> <given-names>RH</given-names></name> <name><surname>Salgado</surname> <given-names>AJ</given-names></name> <name><surname>Walker</surname> <given-names>SW</given-names></name></person-group>. <article-title>A diffuse interface model for electrowetting with moving contact lines</article-title>. <source>Math Models Methods Appl Sci.</source> (<year>2014</year>) <volume>24</volume>:<fpage>67</fpage>&#x02013;<lpage>111</lpage>. <pub-id pub-id-type="doi">10.1142/S0218202513500474</pub-id></citation></ref>
<ref id="B64">
<label>64.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gr&#x000FC;n</surname> <given-names>G</given-names></name> <name><surname>Klingbeil</surname> <given-names>F</given-names></name></person-group>. <article-title>Two-phase flow with mass density contrast: stable schemes for a thermodynamic consistent and frame-indifferent diffuse-interface model</article-title>. <source>J Comput Phys.</source> (<year>2014</year>) <volume>257</volume>:<fpage>708</fpage>&#x02013;<lpage>25</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2013.10.028</pub-id></citation></ref>
<ref id="B65">
<label>65.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hysing</surname> <given-names>SR</given-names></name> <name><surname>Turek</surname> <given-names>S</given-names></name> <name><surname>Kuzmin</surname> <given-names>D</given-names></name> <name><surname>Parolini</surname> <given-names>N</given-names></name> <name><surname>Burman</surname> <given-names>E</given-names></name> <name><surname>Ganesan</surname> <given-names>S</given-names></name> <etal/></person-group>. <article-title>Quantitative benchmark computations of two-dimensional bubble dynamics</article-title>. <source>Int J Numer Methods Fluids.</source> (<year>2009</year>) <volume>60</volume>:<fpage>1259</fpage>&#x02013;<lpage>88</lpage>. <pub-id pub-id-type="doi">10.1002/fld.1934</pub-id></citation></ref>
<ref id="B66">
<label>66.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Aland</surname> <given-names>S</given-names></name> <name><surname>Voigt</surname> <given-names>A</given-names></name></person-group>. <article-title>Benchmark computations of diffuse interface models for two-dimensional bubble dynamics</article-title>. <source>Int J Numer Methods Fluids.</source> (<year>2012</year>) <volume>69</volume>:<fpage>747</fpage>&#x02013;<lpage>61</lpage>. <pub-id pub-id-type="doi">10.1002/fld.2611</pub-id></citation></ref>
<ref id="B67">
<label>67.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Guill&#x000E9;n-Gonz&#x000E1;lez</surname> <given-names>F</given-names></name> <name><surname>Tierra</surname> <given-names>G</given-names></name></person-group>. <article-title>Splitting schemes for a Navier&#x02013;Stokes&#x02013;Cahn&#x02013;Hilliard model for two fluids with different densities</article-title>. <source>J Comp Math.</source> (<year>2014</year>) <volume>32</volume>:<fpage>643</fpage>&#x02013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.4208/jcm.1405-m4410</pub-id></citation></ref>
<ref id="B68">
<label>68.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gr&#x000FC;n</surname> <given-names>G</given-names></name> <name><surname>Guill&#x000E9;n-Gonz&#x000E1;lez</surname> <given-names>F</given-names></name> <name><surname>Metzger</surname> <given-names>S</given-names></name></person-group>. <article-title>On fully decoupled, convergent schemes for diffuse interface models for two-phase flow with general mass densities</article-title>. <source>Commun Comput Phys.</source> (<year>2016</year>) <volume>19</volume>:<fpage>1473</fpage>&#x02013;<lpage>502</lpage>. <pub-id pub-id-type="doi">10.4208/cicp.scpde14.39s</pub-id></citation></ref>
<ref id="B69">
<label>69.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Metzger</surname> <given-names>S</given-names></name></person-group>. <article-title>On numerical schemes for phase-field models for electrowetting with electrolyte solutions</article-title>. <source>Proc Appl Math Mech.</source> (<year>2015</year>) <volume>15</volume>:<fpage>715</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1002/pamm.201510346</pub-id></citation></ref>
<ref id="B70">
<label>70.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Metzger</surname> <given-names>S</given-names></name></person-group>. <article-title>On stable, dissipation reducing splitting schemes for two-phase flow of electrolyte solutions</article-title>. In: <source>Numerical Algorithms.</source> (<year>2018</year>). p. <fpage>1</fpage>&#x02013;<lpage>30</lpage>. <pub-id pub-id-type="doi">10.1007/s11075-018-0530-2</pub-id></citation></ref>
<ref id="B71">
<label>71.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>N&#x000FC;rnberg</surname> <given-names>R</given-names></name> <name><surname>Tucker</surname> <given-names>EJW</given-names></name></person-group>. <article-title>Stable finite element approximation of a Cahn&#x02013;Hilliard&#x02013;Stokes system coupled to an electric field</article-title>. <source>Eur J Appl Math.</source> (<year>2017</year>) <volume>28</volume>:<fpage>470</fpage>&#x02013;<lpage>98</lpage>. <pub-id pub-id-type="doi">10.1017/S0956792516000395</pub-id></citation></ref>
<ref id="B72">
<label>72.</label>
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Langtangen</surname> <given-names>HP</given-names></name> <name><surname>Logg</surname> <given-names>A</given-names></name></person-group>. <source>Solving PDEs in Python</source>. <publisher-loc>Berlin</publisher-loc>: <publisher-name>Springer</publisher-name> (<year>2017</year>). Available online at: <ext-link ext-link-type="uri" xlink:href="https://link.springer.com/book/10.1007/978-3-319-52462-7">https://link.springer.com/book/10.1007/978-3-319-52462-7</ext-link></citation></ref>
<ref id="B73">
<label>73.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nielsen</surname> <given-names>CP</given-names></name> <name><surname>Bruus</surname> <given-names>H</given-names></name></person-group>. <article-title>Concentration polarization, surface currents, and bulk advection in a microchannel</article-title>. <source>Phys Rev E.</source> (<year>2014</year>) <volume><bold>90</bold></volume>:<fpage>043020</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevE.90.043020</pub-id><pub-id pub-id-type="pmid">25375606</pub-id></citation></ref>
<ref id="B74">
<label>74.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Carlson</surname> <given-names>A</given-names></name> <name><surname>Bellani</surname> <given-names>G</given-names></name> <name><surname>Amberg</surname> <given-names>G</given-names></name></person-group>. <article-title>Universality in dynamic wetting dominated by contact-line friction</article-title>. <source>Phys Rev E.</source> (<year>2012</year>) <volume><bold>85</bold></volume>:<fpage>045302</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevE.85.045302</pub-id><pub-id pub-id-type="pmid">22680532</pub-id></citation></ref>
<ref id="B75">
<label>75.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shen</surname> <given-names>J</given-names></name> <name><surname>Yang</surname> <given-names>X</given-names></name></person-group>. <article-title>Decoupled, energy stable schemes for phase-field models of two-phase incompressible flows</article-title>. <source>SIAM J Numer Anal.</source> (<year>2015</year>) <volume>53</volume>:<fpage>279</fpage>&#x02013;<lpage>96</lpage>. <pub-id pub-id-type="doi">10.1137/140971154</pub-id></citation></ref>
<ref id="B76">
<label>76.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Brenner</surname> <given-names>SC</given-names></name> <name><surname>Scott</surname> <given-names>LR</given-names></name></person-group>. <source>The Mathematical Theory of Finite Element Methods</source>, <volume>Vol. 15</volume>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Springer Science and Business Media</publisher-name> (<year>2007</year>).</citation></ref>
<ref id="B77">
<label>77.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Langtangen</surname> <given-names>HP</given-names></name> <name><surname>Mardal</surname> <given-names>KA</given-names></name> <name><surname>Winther</surname> <given-names>R</given-names></name></person-group>. <article-title>Numerical methods for incompressible viscous flow</article-title>. <source>Adv Water Resour</source>. (<year>2002</year>) <volume>25</volume>:<fpage>1125</fpage>&#x02013;<lpage>46</lpage>. <pub-id pub-id-type="doi">10.1016/S0309-1708(02)00052-0</pub-id></citation></ref>
<ref id="B78">
<label>78.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chorin</surname> <given-names>AJ</given-names></name></person-group>. <article-title>A numerical method for solving incompressible viscous flow problems</article-title>. <source>J Comput Phys.</source> (<year>1967</year>) <volume>2</volume>:<fpage>12</fpage>&#x02013;<lpage>26</lpage>. <pub-id pub-id-type="doi">10.1016/0021-9991(67)90037-X</pub-id></citation></ref>
<ref id="B79">
<label>79.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chorin</surname> <given-names>AJ</given-names></name></person-group>. <article-title>Numerical solution of the Navier-Stokes equations</article-title>. <source>Math Comput.</source> (<year>1968</year>) <volume>22</volume>:<fpage>745</fpage>&#x02013;<lpage>62</lpage>. <pub-id pub-id-type="doi">10.1090/S0025-5718-1968-0242392-2</pub-id></citation></ref>
<ref id="B80">
<label>80.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Guermond</surname> <given-names>JL</given-names></name> <name><surname>Minev</surname> <given-names>P</given-names></name> <name><surname>Shen</surname> <given-names>J</given-names></name></person-group>. <article-title>An overview of projection methods for incompressible flows</article-title>. <source>Comput Methods Appl Mech Eng.</source> (<year>2006</year>) <volume>195</volume>:<fpage>6011</fpage>&#x02013;<lpage>45</lpage>. <pub-id pub-id-type="doi">10.1016/j.cma.2005.10.010</pub-id></citation></ref>
<ref id="B81">
<label>81.</label>
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Linga</surname> <given-names>G</given-names></name> <name><surname>Bolet</surname> <given-names>A</given-names></name></person-group>. <source>Bernaise: Git repository</source>. (<year>2018</year>). Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.github.com/gautelinga/BERNAISE">https://www.github.com/gautelinga/BERNAISE</ext-link></citation></ref>
<ref id="B82">
<label>82.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pillai</surname> <given-names>R</given-names></name> <name><surname>Berry</surname> <given-names>J</given-names></name> <name><surname>Harvie</surname> <given-names>D</given-names></name> <name><surname>Davidson</surname> <given-names>M</given-names></name></person-group>. <article-title>Electrolytic drops in an electric field: a numerical study of drop deformation and breakup</article-title>. <source>Phys Rev E.</source> (<year>2015</year>) <volume><bold>92</bold></volume>:<fpage>013007</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevE.92.013007</pub-id><pub-id pub-id-type="pmid">26274270</pub-id></citation></ref>
<ref id="B83">
<label>83.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Logg</surname> <given-names>A</given-names></name> <name><surname>Wells</surname> <given-names>GN</given-names></name></person-group>. <article-title>DOLFIN: automated finite element computing</article-title>. <source>ACM Trans Math Softw.</source> (<year>2010</year>) <volume><bold>37</bold></volume>:<fpage>20:1</fpage>&#x02013;<lpage>20:28</lpage>.</citation></ref>
<ref id="B84">
<label>84.</label>
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Balay</surname> <given-names>S</given-names></name> <name><surname>Abhyankar</surname> <given-names>S</given-names></name> <name><surname>Adams</surname> <given-names>MF</given-names></name> <name><surname>Brown</surname> <given-names>J</given-names></name> <name><surname>Brune</surname> <given-names>P</given-names></name> <name><surname>Buschelman</surname> <given-names>K</given-names></name> <etal/></person-group>. <source>PETSc Web page</source>. (<year>2017</year>). Available online at: <ext-link ext-link-type="uri" xlink:href="http://www.mcs.anl.gov/petsc">http://www.mcs.anl.gov/petsc</ext-link></citation></ref>
<ref id="B85">
<label>85.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mugele</surname> <given-names>F</given-names></name> <name><surname>Buehrle</surname> <given-names>J</given-names></name></person-group>. <article-title>Equilibrium drop surface profiles in electric fields</article-title>. <source>J Phys Condens Matter.</source> (<year>2007</year>) <volume><bold>19</bold></volume>:<fpage>375112</fpage>. <pub-id pub-id-type="doi">10.1088/0953-8984/19/37/375112</pub-id></citation></ref>
<ref id="B86">
<label>86.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Linga</surname> <given-names>G</given-names></name> <name><surname>Bolet</surname> <given-names>A</given-names></name> <name><surname>Mathiesen</surname> <given-names>J</given-names></name></person-group>. <article-title>Controlling wetting with electrolytic solutions: phase-field simulations of a droplet-conductor system</article-title>. <source>Phys Rev E.</source> (<year>2018</year>) <volume>98</volume>:<fpage>013101</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevE.98.013101</pub-id><pub-id pub-id-type="pmid">30110724</pub-id></citation></ref>
<ref id="B87">
<label>87.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>JJ</given-names></name> <name><surname>Huang</surname> <given-names>H</given-names></name> <name><surname>Wang</surname> <given-names>X</given-names></name></person-group>. <article-title>Wetting boundary conditions in numerical simulation of binary fluids by using phase-field method: some comparative studies and new development</article-title>. <source>Int J Numer Methods Fluids.</source> (<year>2015</year>) <volume>77</volume>:<fpage>123</fpage>&#x02013;<lpage>58</lpage>. <pub-id pub-id-type="doi">10.1002/fld.3975</pub-id></citation></ref>
<ref id="B88">
<label>88.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Teigen</surname> <given-names>KE</given-names></name> <name><surname>Song</surname> <given-names>P</given-names></name> <name><surname>Lowengrub</surname> <given-names>J</given-names></name> <name><surname>Voigt</surname> <given-names>A</given-names></name></person-group>. <article-title>A diffuse-interface method for two-phase flows with soluble surfactants</article-title>. <source>J Comput Phys.</source> (<year>2011</year>) <volume>230</volume>:<fpage>375</fpage>&#x02013;<lpage>93</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2010.09.020</pub-id><pub-id pub-id-type="pmid">21218125</pub-id></citation></ref>
</ref-list>
<fn-group>
<fn id="fn0001"><p><sup>1</sup>Instead of the full Navier&#x02013;Stokes equations, which would be necessary in the presence of boundaries in the two in-plane dimensions.</p></fn>
<fn id="fn0002"><p><sup>2</sup>The interpretation of this pressure depends on the formulation of the force on the right hand side of Equation (2).</p></fn>
<fn id="fn0003"><p><sup>3</sup>The latter also contains an equilibrium solver for the quiescent electrochemistry problem, mainly to be used for initialization purposes.</p></fn>
<fn id="fn0004"><p><sup>4</sup>Obviously, when the physical interface thickness may be resolved by the phase field, the sharp-interface assumption might be less sensible than the diffuse. Hence, in such cases this point might be too crude.</p></fn>
</fn-group>
<fn-group>
<fn fn-type="financial-disclosure"><p><bold>Funding.</bold> This project has received funding from the European Union&#x00027;s Horizon 2020 research and innovation program through a Marie Curie initial training networks under grant agreement no. 642976 (NanoHeal), and from the Villum Fonden through the grant Earth Patterns.</p></fn>
</fn-group>
</back>
</article>