def main(lamb0=1, time_f=10, lamb_lim=None, dotlamb_lim=None):
    time = np.linspace(0.0,time_f,time_f*2+1)
    # solving differential equations using odeint for axisymmetric and elliptic drops
    solut_cr = el_od.eq_solver(lamb0, time, lamby0=lamb0)
    solut_el = el_od.eq_solver(2*lamb0, time, lamby0=0.5*lamb0)
    # solving analytical eqs. for axisymmetric drop
    lamb_an_cr = an_eq.d2_lambda_evol(lamb0, time)
    dotlamb_an_cr = an_eq.d2_dot_lambda(lamb_an_cr, lamb0)

    #plotting
    fig = plt.figure(1, figsize = (6.5,5.5))
    ax = plt.subplot(1,1,1)
    #plotting a numerical solution for an elliptic drop 
    plt.plot(time, solut_el[:,0], "g", time, solut_el[:,2], "g")
    # plotting a numerical and an analytical solution for an axisymmetric drop
    plt.plot(time, solut_cr[:,0], "r", time, lamb_an_cr, "r o")
    plt.xlabel("time", fontsize=16) 
    plt.ylabel(r'$\lambda$    ',fontsize=20)
    ax.set_ylim(0, lamb_lim)
    for item in plt.xticks()[1] + plt.yticks()[1]:
        item.set_fontsize(15)
    ax1 = ax.twinx()
    #plotting d lambda / dt in the same way as lambda
    plt.plot(time, solut_el[:,1], "g--", time, solut_el[:,3], "g--")
    plt.plot(time, solut_cr[:,1], "r--", time, dotlamb_an_cr, "r o")
    for item in plt.xticks()[1] + plt.yticks()[1]:
        item.set_fontsize(15)
    for i, tick in enumerate(ax.yaxis.get_major_ticks()):
        if i % 2 != 0:
            tick.label1On = False 
    plt.ylabel(r'$\dot{\lambda}$    ', fontsize=20)
    ax1.set_ylim(0, dotlamb_lim)
    plt.tight_layout()
    plt.savefig("fig3.pdf")
    plt.show()
def main(lamb0=1, time_f=10, lamb_lim=None, dotlamb_lim=None):
    time = np.linspace(0.0, time_f, time_f * 2 + 1)
    # solving differential equations using odeint for axisymmetric and elliptic drops
    solut_cr = el_od.eq_solver(lamb0, time, lamby0=lamb0)
    solut_el = el_od.eq_solver(2 * lamb0, time, lamby0=0.5 * lamb0)
    # solving analytical eqs. for axisymmetric drop
    lamb_an_cr = an_eq.d2_lambda_evol(lamb0, time)
    dotlamb_an_cr = an_eq.d2_dot_lambda(lamb_an_cr, lamb0)

    #plotting
    fig = plt.figure(1, figsize=(6.5, 5.5))
    ax = plt.subplot(1, 1, 1)
    #plotting a numerical solution for an elliptic drop
    plt.plot(time, solut_el[:, 0], "g", time, solut_el[:, 2], "g")
    # plotting a numerical and an analytical solution for an axisymmetric drop
    plt.plot(time, solut_cr[:, 0], "r", time, lamb_an_cr, "r o")
    plt.xlabel("time", fontsize=16)
    plt.ylabel(r'$\lambda$    ', fontsize=20)
    ax.set_ylim(0, lamb_lim)
    for item in plt.xticks()[1] + plt.yticks()[1]:
        item.set_fontsize(15)
    ax1 = ax.twinx()
    #plotting d lambda / dt in the same way as lambda
    plt.plot(time, solut_el[:, 1], "g--", time, solut_el[:, 3], "g--")
    plt.plot(time, solut_cr[:, 1], "r--", time, dotlamb_an_cr, "r o")
    for item in plt.xticks()[1] + plt.yticks()[1]:
        item.set_fontsize(15)
    for i, tick in enumerate(ax.yaxis.get_major_ticks()):
        if i % 2 != 0:
            tick.label1On = False
    plt.ylabel(r'$\dot{\lambda}$    ', fontsize=20)
    ax1.set_ylim(0, dotlamb_lim)
    plt.tight_layout()
    plt.savefig("fig3.pdf")
    plt.show()
def main(lambx0_l=[2, 3], time_f=50, partlamb_lim=2.2):

    time = np.linspace(0.0, time_f, time_f * 2 + 1)
    solut = {}
    #solving differential equations up  for lambda_{x0} from the list - lambx0_l
    for lambx0 in lambx0_l:
        solut[str(lambx0)] = el_od.eq_solver(lambx0, time)

    #plotting the relation  obtained from energy conservation
    fig = plt.figure(1, figsize=(8., 5))
    ax = plt.subplot(1, 1, 1)
    #plotting the LHS of eq. 14 for lambda_{x0} = 2 and 3
    plt.plot(time, solut["2"][:, 3]**2 + solut["2"][:, 1]**2, "g", time,
             solut["3"][:, 3]**2 + solut["3"][:, 1]**2, "b")
    #plotting the RHS of eq. 14 for lambda_{x0} = 2 and 3
    plt.plot(time[::2],
             4 * (1. / 2 - 1. / solut["2"][::2, 2] / solut["2"][::2, 0]), "go",
             time[::2],
             4 * (1. / 3 - 1. / solut["3"][::2, 2] / solut["3"][::2, 0]), "bo")
    plt.xlabel("time", fontsize=16)
    plt.ylabel(r'$\dot{\lambda_x}^2 + \dot{\lambda_y}^2$', fontsize=20)
    for item in plt.xticks()[1] + plt.yticks()[1]:
        item.set_fontsize(15)
    ax.set_ylim(0, partlamb_lim)
    ax.set_xlim(0, time_f)
    plt.tight_layout()
    plt.savefig("fig2.pdf")
    plt.show()
def main(lambx0_l=[2,3], time_f=50, partlamb_lim=2.2):
    
    time = np.linspace(0.0,time_f,time_f*2+1)
    solut = {}     
    #solving differential equations up  for lambda_{x0} from the list - lambx0_l
    for lambx0 in lambx0_l:
        solut[str(lambx0)] = el_od.eq_solver(lambx0, time)
    
    #plotting the relation  obtained from energy conservation
    fig = plt.figure(1, figsize = (8.,5))
    ax = plt.subplot(1,1,1)
    #plotting the LHS of eq. 14 for lambda_{x0} = 2 and 3
    plt.plot(time, solut["2"][:,3]**2 + solut["2"][:,1]**2, "g",
             time, solut["3"][:,3]**2 + solut["3"][:,1]**2, "b")
    #plotting the RHS of eq. 14 for lambda_{x0} = 2 and 3  
    plt.plot(time[::2], 4 * (1./2 - 1./solut["2"][::2,2]/solut["2"][::2,0]), "go",
             time[::2], 4 * (1./3 - 1./solut["3"][::2,2]/solut["3"][::2,0]), "bo")
    plt.xlabel("time", fontsize=16)
    plt.ylabel(r'$\dot{\lambda_x}^2 + \dot{\lambda_y}^2$', fontsize=20)
    for item in plt.xticks()[1] + plt.yticks()[1]:
        item.set_fontsize(15)
    ax.set_ylim(0, partlamb_lim)
    ax.set_xlim(0, time_f)
    plt.tight_layout()
    plt.savefig("fig2.pdf")
    plt.show()