.. _adhesive_contact_models: ================ Adhesive models ================ In addition to hertzian models, adhesive models capture the effect of distance-dependent attractive force between particles. Adhesive models are usually mathematically rather complicated, extending the Hertz theory in some way. Usually the equations for :math:`\delta(a)` and :math:`a(P)` are provided, reflecting the typical use of adhesive models in microscopy fields. For DEM models, the relationship :math:`P(\delta)` is needed. In some cases, the :math:`\delta(a(P))` is not analytically invertible and solution must be sought by iteration which can have some performance impacts. Symbols used for adhesive models, in addition to those introduced for Hertzian models) are: ================== =============== :math:`\gamma` surface energy (in models with adhesion) :math:`P_{na}` normal adhesive (also called "pull-off" or "sticking") force :math:`P_c` critical force (leads to surface separation); maximum tensile force an adhesive contact can sustain :math:`\alpha` :cite:`Carpick1999` transition parameter between DMT and JKR models :math:`\hat\delta` reduced penetration (dimensionless) :math:`\hat P` reduced total normal force (dimensionless) :math:`\hat a` reduced contact radius (dimensionless) ================== =============== :cite:`Maugis1992` introduced normalized (dimensionless) numbers of some quantities on adhesive contacts; they are useful for validating models against published plots regardless of the value of input parameters. These units are defined as follows: .. math:: :nowrap: \begin{align*} \hat a&=a\left(\frac{K}{\pi\gamma R^2}\right)^{\frac{1}{3}}, \\ \hat\delta&=\delta\left(\frac{K^2}{\pi^2\gamma^2 R}\right)^{\frac{1}{3}}, \\ \hat P&=P\frac{1}{\pi\gamma R}. \end{align*} Derjaugin-Muller-Toporov (DMT) ------------------------------- The DMT model superposes adhesion outside of the area of contact as predicted by the Hertz model. The magnitude of adhesion is derived from surface energy :math:`\gamma` using thermodynamic approach (:cite:`Modenese2013` pg 39; :cite:`Derjaguin1975` derives adhesion force for one surface with nonzero surface energy, here we suppose they have together the surface energy of :math:`2\gamma`): .. math:: P_{na}=-4\pi R\gamma which acts against (negative sign) the elastic repulsion of particles :ref:`(eq) `; the total normal force then reads :math:`P_n=P_{ne}+P_{nv}+P_{na}`. Contact radius :math:`a` can be expressed from :ref:`(eq) ` by replacing :math:`P_{ne}` with total normal force :math:`P_n`. .. todo:: For completeness mention JKR model; mention Maugis model as the one which accounts for the transition between both, COS introducing the :math:`\alpha` parameter, Schwarz (below) giving analytical solution. .. _schwarz-contact-model: Schwarz model -------------- Schwarz :cite:`Schwarz2003` proposes model which accounts for the DMT-JKR transition and, unlike the Maugis "Dugdale" model (:cite:`Maugis1992`), gives the :math:`a(F)` and :math:`\delta(a)` analytically. The surface energy is decomposed as short-range adhesion :math:`w_1` and long-range adhesion :math:`w_2`, i.e. .. math:: \gamma=w_1+w_2 :label: schwarz-gamma-w1-w2 and their proportion determines whether the model is DMT-like or JKR-like. The critical load is superposition of critical forces found in the JKR and DMT models respectively (:cite:`Schwarz2003` (23)): .. math:: P_c=-\frac{3}{2}\pi R w_1-2\pi R w_2. :label: schwarz-pc-w DMT-JKR transition ^^^^^^^^^^^^^^^^^^^ For convenience, we will use the :math:`\alpha\in\langle 0\dots 1\rangle` dimensionless parameter introduced by Carpick, Ogletree and Salmeron in :cite:`Carpick1999` defined as (:cite:`Schwarz2003` (34)) .. math:: \alpha^2=-\frac{3 P_c+6\pi R \gamma}{P_c} and by rearranging .. math:: P_c=-\frac{6\pi R \gamma}{\alpha^2+3}. :label: schwarz-pc-alpha Combining :eq:`schwarz-gamma-w1-w2`, :eq:`schwarz-pc-w` and :eq:`schwarz-pc-alpha` leads to .. math:: \gamma\left(\frac{-12}{\alpha^2+3}+4\right)=w_1 and by further rearrangements we can relate the ratio of short-range and long-range adhesion forces to :math:`\alpha` both ways: .. math:: \frac{w_1}{w_2}&=\frac{3(1-\alpha^2)}{4\alpha^2} \alpha^2=\frac{3}{4\frac{w_1}{w_2}+3} We can see that extreme values of :math:`\alpha` recover DMT (as limit) or JKR models, and intermediate values represent transition between them: ============== =============== =============== =========== :math:`\alpha` :math:`w_1` :math:`w_2` model -------------- --------------- --------------- ----------- → 0 → 0 :math:`\gamma` → DMT 1 :math:`\gamma` 0 JKR ============== =============== =============== =========== Contact radius ^^^^^^^^^^^^^^^ Contact radius and force are related by the function (:cite:`Schwarz2003` (36)) .. math:: a=\left(\frac{R}{K}\right)^{\frac{1}{3}}\left(\alpha\sqrt{-P_c}\pm\sqrt{P_n-P_c}\right)^{\frac{2}{3}} which is analytically invertible to .. math:: P_n=\left(\sqrt{a^3\frac{K}{R}}-\alpha\sqrt{-P_c}\right)^2+P_c. The following plot shows both functions (dots are the inverse relationship; this plot appears in :cite:`Maugis1992`, Fig. 5.): .. plot:: import woo.models alphaGammaName=[(1.,.1,'JKR'),(.5,.1,''),(.01,.1,'$\\to$DMT')] woo.models.SchwarzModel.normalized_plot('a(F)',alphaGammaName) Peneration ^^^^^^^^^^^^ Penetration is given as (:cite:`Schwarz2003` (27)) .. math:: \delta=\frac{a^2}{R}-4\sqrt{\frac{\pi a}{3 K}\left(\frac{P_c}{\pi R}+2\gamma\right)}. :label: schwarz-delta-pc Plugging :eq:`schwarz-pc-alpha` into :eq:`schwarz-delta-pc`, we obtain .. math:: :label: schwarz-delta-a \delta(a)=\frac{a^2}{R}-4\underbrace{\sqrt{\frac{2\pi\gamma}{3K}\left(1-\frac{3}{\alpha^2+3}\right)}}_{\xi}\sqrt{a}=\frac{a^2}{R}-4\xi\sqrt{a} where the :math:`\xi` term was introduced for readability. This equation is not analytically invertible and has to be solved numerically. We can find the global minimum as .. math:: :nowrap: \begin{align*} \delta'(a)&=\frac{2a}{R}-2\xi a^{-\frac{1}{2}} \\ \delta'(a_{\min})&=0 \\ a_{\min}&=(\xi R)^{\frac{2}{3}} \\ \delta_{\min}&=\delta(a_{\min})=-3R^{\frac{1}{3}}\xi^{\frac{4}{3}}. \end{align*} The second derivative .. math:: \delta''(a)=\underbrace{\frac{2}{R}}_{>0}+\underbrace{\xi a^{-\frac{3}{2}}}_{\geq 0}>0 is strictly positive as :math:`\xi`, :math:`R` and positive and :math:`a` non-negative. Given known penetration :math:`\delta`, we can find the corresponding value of :math:`a` with `Newton-Raphson `__ or `Halley's `__ methods. There are two solutions for all :math:`\delta\in(\delta_{\min}\dots 0\rangle`. The solution for the ascending branch (:math:`\delta'(a0`) is energetically unstable and we can ignore it in dynamic simulations. As the initial solution for iteration, we can use the (stable) value for zero overlap (satisfying :math:`\delta(a_0)=0`) expressed from :eq:`schwarz-delta-a` as :math:`a_0=(4\xi R)^{\frac{2}{3}}` for :obj:`fresh ` contacts (where the overlap is likely close to zero); for previously existing contacts, the previous value of :math:`a` is a good initial guess. This plot shows both loading and unloading (unstable) branches, obtained via Newton iteration (bisection for the unstable branch for simplicity); this plot reproduces :cite:`Maugis1992`, Fig. 6.: .. plot:: import woo.models alphaGammaName=[(1.,.1,'JKR'),(.5,.1,''),(.01,.1,'$\\to$DMT')] woo.models.SchwarzModel.normalized_plot('a(delta)',alphaGammaName,aHi=[1]) .. note:: Values bracketing possible solutions, :math:`a\in\langle a_{\mathrm{lo}}, a_{\mathrm{hi}}\rangle` (lower and upper brackets) are to be defined for guarded iterative methods. The lower bracket is .. math:: a_{\mathrm{lo}}=\begin{cases} a_{\min}=(\xi R)^\frac{2}{3} & \text{if $\delta<0$} \\ a_0=(4\xi R)^{\frac{2}{3}}=4^\frac{2}{3}a_{\min} & \text{if $\delta\geq0$} \end{cases}. The upper bracket :math:`a_{\mathrm{hi}}` can be obtained from :eq:`schwarz-delta-a`. Since :math:`\delta'(a)` is bounded by .. math:: \delta'(a)=\frac{2a}{R}-\underbrace{2\xi a^{-\frac{1}{2}}}_{\geq0}\leq\frac{2a}{R}=\delta_{\mathrm{Hertz}}'(a) :label: schwarz-delta-prime-bracket where :math:`\delta_{\mathrm{Hertz}}=a^2 R` is the Hertz limit valid for :math:`\alpha\to0`; it is a purely geometrical relationship, valid also for the DMT model. It follows for the stable branch of :math:`a(\delta)` that .. math:: \delta(a>a_{\min})\geq \delta_{\mathrm{Hertz}}(a-a_{\min})+\delta_{\min}, i.e. that :math:`\delta_{\mathrm{Hertz}}(a)` with the origin shifted to :math:`(a_{\min},\delta_{\min})` is the lower bracket for :math:`\delta(a)`. Since :math:`\delta'(a)=1/a'(\delta)` (as per `derivative rule for inverses `__), the inequality :eq:`schwarz-delta-prime-bracket` implies .. math:: a(\delta)\leq a_{\mathrm{hi}} = a_{\mathrm{Hertz}}(\delta-\delta_{\min})+a_{\min}=\sqrt{R(\delta-\delta_{\min})}+a_{\min}. The upper bracket is shown in the plot above for :math:`\alpha=0.5`. By composing :math:`P_n(a)` and (numerically evaluated) :math:`a(\delta)`, we obtain the displacement-force relationship (:cite:`Maugis1992`, Fig. 7.) .. plot:: import woo.models alphaGammaName=[(1.,.1,'JKR'),(.5,.1,''),(.01,.1,'$\\to$DMT')] woo.models.SchwarzModel.normalized_plot('F(delta)',alphaGammaName) .. admonition:: Implementation note: DMT/Schwarz contact models can be used via :obj:`woo.dem.Law2_L6Geom_HertzPhys_DMT`, when :obj:`woo.dem.Cp2_FrictMat_HertzPhys.gamma` (surface energy :math:`\gamma`) is non-zero; :obj:`woo.dem.Cp2_FrictMat_HertzPhys.alpha` (Carpick-Ogletree-Salmeron transition parameter :math:`\alpha`) determines the model behavior on the continuous DMT (:math:`\alpha=0`) -- JKR (:math:`\alpha=1`) range. Appropriate engines are returned from :obj:`woo.dem.DemField.minimalEngines` when ``model`` is an instance of :obj:`woo.models.ContactModelSelector` with ``name`` equal to ``"DMT"`` or ``"Schwarz"``.