Example #1
0
                                    label=rf"$\Lambda={Lambda}$")
            else:
                ax[observable].plot(strains * 100,
                                    ysfwd[i][:],
                                    '.-',
                                    color=colors[js],
                                    label=rf"$\Lambda={Lambda}$")
            ax[observable].set_ylabel(ylabel, fontsize=10)
            ax[observable].set_xlabel(r"$\epsilon\times100\%$", fontsize=10)

    for observable in observable_list:

        ax[observable].set_xscale('log')
        if observable == "R":
            ax[observable].legend(frameon=False)
        if observable == "stress":
            ax[observable].set_yscale('log')
        if observable == "delta":
            ax[observable].legend(frameon=False)
        if observable == "surfacetwist":
            ax[observable].set_ylim(top=0.4)
            strainpoints = np.array([0.01, 1.4, 2.8, 5.0], float)
            tilt = np.array([16, 14, 12, 11], float) * np.pi / 180
            ax[observable].plot(strainpoints, tilt, 'k^')
    fig.subplots_adjust(left=0.2, right=0.8, bottom=0.1, top=0.95, hspace=0.05)
    fig.savefig(
        obsfwd.observable_sname("multiLambda-observable-vsstrain",
                                plot_format="pdf"))

    plt.show()
Example #2
0
        scan['mpt'] = str(mpt)
        print(i)

        # read in file name info
        obs = ObservableData(scan=scan,
                             loadsuf=loadsuf,
                             savesuf=loadsuf,
                             name=f"Evsh-{mpt}")

        hs = obs.data[:, 0]
        dEdR_cs = obs.data[:, 1]
        err_trunc = obs.data[:, 2]
        err_round = obs.data[:, 3]

        ax1.plot(hs, dEdR_cs, '-', label=rf'$m={mpt}$', color=colors[i])
        ax2.plot(hs, err_trunc, '-', label=rf'$m={mpt}$', color=colors[i])
        ax2.plot(hs, err_round, '-', color=colors[i])

    ax1.set_ylabel(r'$\frac{\partial E}{\partial R_c}$')
    ax1.set_xscale('log')
    ax1.legend(frameon=False)

    ax2.set_xscale('log')
    ax2.set_yscale('log')
    ax2.set_ylabel('derivative error (' + r'$\times \num{1e4}$' + ')')

    fig.subplots_adjust(left=0.3)

    fig.savefig(obs.observable_sname('Evsh'))
                                  cmap='seismic',
                                  vmin=vmin,
                                  vmax=vmax)

        axins[type].set_xticks([])
        axins[type].set_yticks([])
        axins[type].spines['polar'].set_linewidth(0.2)
        axins[type].spines['polar'].set_linestyle((0, (2, 8)))

        #axins[type].annotate(rf'$R={R:1.3f}$',xy=(5*np.pi/4,R-0.01*R),
        #                    xytext=(5*np.pi/4,R+R-0.01*R),fontsize=20,
        #                    color=colors[i])

    cax_ticks = [-0.3, -0.2, -0.1, 0, 0.1]

    cax = inset_axes(ax,
                     width="5%",
                     height="99%",
                     loc='lower left',
                     bbox_to_anchor=(1, 0, 1, 1),
                     bbox_transform=ax.transAxes,
                     borderpad=0.12)

    cbar = colorbar(im, ax=ax, cax=cax, format='%.1f', ticks=cax_ticks)

    cax.set_title("strain (\%)", fontsize=8)

    fig.subplots_adjust(left=0.2, right=0.8, bottom=0.2, top=0.8)
    #plt.show()
    fig.savefig(obsfwd.observable_sname(f"phase-diagram-with-axial-strain"))
Example #4
0
    ax.plot(gamma_coexists,k24_coexists,'-',color='k',
            lw=4)

    ax.plot(0.04,0.5,'*',color='w',markersize=8)
    ax.plot(gamma_coexists[0],k24_coexists[0],'o',color='k',
            markersize=8)


    ax.text(0.01,0.8,'linear\ntwist',color='k',fontsize=12)
    ax.text(0.065,0.8,'constant\ntwist',color='k',fontsize=12)

    ax.text(0.025,0.15,r'$(\gamma^c,k_{24}^c)$',fontsize=12)

    ax.set_xlabel(rf"$\gamma$",fontsize=10)
    ax.set_ylabel(r"$k_{24}$",fontsize=10)



    ax.legend(frameon=False,fontsize=10)
    fig.subplots_adjust(left=0.2,bottom=0.2)



    fig.savefig(obsfwd.observable_sname(f"phase-diagram"))




    
Example #5
0
                             scan_dir='scanbackward',
                             scan=scan,
                             loadsuf=loadsuf,
                             savesuf=savesuf)

    print(k24)
    # find all spots where two distinct phases exist (two different radii values)
    bool_1 = np.isclose(obsfwd.R(), obsbkwd.R(), rtol=1e-3)
    find_j = np.where(bool_1 == False)[0]

    if find_j.size > 0:  # if two distinct phases exist, then:

        # smallest gamma value that they both exist at
        jsmall = find_j[0]

        # largest gamma value that they both exist at
        jlarge = find_j[-1]

        # find the point where the fwd E becomes larger than the bkwd E
        j = (np.argmin(
            np.abs(obsfwd.E()[jsmall:jlarge + 1] -
                   obsbkwd.E()[jsmall:jlarge + 1])) + len(obsfwd.E()[:jsmall]))

        pstr = f"{k24:.2e} {gammas[j]:.2e} {jsmall} {obsfwd.R()[j]:.2e} {obsbkwd.R()[j]:.2e}"

        obsfwd.data[j:, :] = obsbkwd.data[j:, :]

    np.savetxt(obsfwd.observable_sname("observables", plot_format="txt"),
               obsfwd.data,
               fmt='\t'.join(["%13.6e"] + ["%15.8e"] * 5))
Example #6
0
                            label=rf"$\gamma={gamma}$")

        #ax[observable].plot(Lambdas[:i_fwd+1],ysfwd[i][:i_fwd+1],'.',color=colors[i])
        #ax[observable].plot(Lambdas[i_fwd:i_fwd+2],ysfwd[i][i_fwd:i_fwd+2],'-',
        #                    color=colors[i])
        #ax[observable].plot(ms_bkwd,ysbkwd[i][1:],'-',color=colors[i])
        #ax[observable].plot(Lambdas[i_fwd+2:],ysfwd[i][i_fwd+2:],'.',color=colors[i])
        ax[observable].set_xlabel(r"$\Lambda$",fontsize = 10)
        ax[observable].set_ylabel(ylabel,fontsize = 10)

        #ax[observable].tick_params("both",labelsize=18)
        

 
for observable in observable_list:

    if observable == "R":
        ax[observable].set_yscale('log')
        ax[observable].legend(frameon=False)
    
    ax[observable].set_xscale('log')    
    fig[observable].subplots_adjust(left=0.2,right=0.98,bottom=0.15,top=0.95)
    fig[observable].savefig(obsfwd.observable_sname("k24"+observable,plot_format="pdf"))



plt.show()



    k24 = pair[1]

    scan = {}
    scan['\\gamma_s'] = gamma
    scan['k_{24}'] = k24
    scan['\\omega'] = str(omega)

    obsfwd = ObservableData(["\\Lambda"],
                            scan_dir='scanforward',
                            scan=scan,
                            loadsuf=loadsuf,
                            savesuf=savesuf)

    Lambdas = obsfwd.data[:, 0]

    x, y = obsfwd.surfacetwist()[1:], 2 * np.pi / obsfwd.eta()[1:]

    ax.plot(x, y, '.', color=colors[js])
    ax.plot(x[-1], y[-1], 'rs')

dums = np.linspace(0.05, 0.25, num=150, endpoint=True)
ax.plot(dums, np.cos(dums), '--')

ax.set_xlabel(r"$\psi(R)$", fontsize=10)
ax.set_ylabel(r"$2\pi/\eta$", fontsize=10)

fig.subplots_adjust(left=0.1, right=0.9, bottom=0.15, top=0.95)
fig.savefig(obsfwd.observable_sname("twistvsdband", plot_format="pdf"))

plt.show()
        jlarge = find_j[-1]

        # find the point where the fwd E becomes larger than the bkwd E
        j = (np.argmin(np.abs(obsfwd.E()[jsmall:jlarge+1]-obsbkwd.E()[jsmall:jlarge+1]))
             +len(obsfwd.E()[:jsmall]))

        pstr = f"{k24:.2e} {gammas[j]:.2e} {jsmall} {obsfwd.R()[j]:.2e} {obsbkwd.R()[j]:.2e}"
        print(pstr)
        data2d[i,j] = 1
        
        gammacoexist.append(obsfwd.data[j,0])
        k24coexist.append(k24)

        obsfwd.data[j:bwdlen,:] = obsbkwd.data[j:bwdlen,:]

    np.savetxt(obsfwd.observable_sname("observables",plot_format="txt"),obsfwd.data,
               fmt='\t'.join(["%15.8e"]*6))

scoexist = np.array([gammacoexist,k24coexist],float)

np.savetxt(obsfwd.observable_sname("coexistence",plot_format='txt'),scoexist.T,
           fmt="%8.4e")


width = 3.37
height = width
fig = plt.figure()
fig.set_size_inches(width,height)

ax = fig.add_subplot(1,1,1)
Example #9
0
    axins.plot(ts,Rfrust,'>',color=colors[1],label=rf"${frustlab}$",markersize=2)
    axins.plot(ts,Rlin,'s',color=colors[0],label=rf"${linearlab}$",markersize=2)


    axins.set_xticks([0,1,2,3])
    axins.set_ylim(0.02,8)


    #axins.set_xscale('log')
    axins.set_yscale('log')

    axins.tick_params(axis='x',labelsize=6,pad=0.3)
    axins.tick_params(axis='y',labelsize=6,pad=0)

    axins.set_xlabel(r"$t$",labelpad=-0.4)
    axins.set_ylabel(r"$R$",labelpad=0.0)
    axins.legend(frameon=False,loc='upper left',
                 fontsize=6,ncol=1,bbox_to_anchor=(-0.05,1.05),
                 borderpad=0.3,columnspacing=0.7,handletextpad=-0.1)


    ax.legend(frameon=False,loc='lower right',fontsize=10)


    fig.savefig(obsfwd.observable_sname(f"{observable}_SCALING"))





        jlarge = find_j[-1]

        # find the point where the fwd E becomes larger than the bkwd E
        j = (np.argmin(
            np.abs(obsfwd.E()[jsmall:jlarge + 1] -
                   obsbkwd.E()[jsmall:jlarge + 1])) + len(obsfwd.E()[:jsmall]))

        pstr = f"{k24:.2e} {gammas[j]:.2e} {jsmall} {obsfwd.R()[j]:.2e} {obsbkwd.R()[j]:.2e}"
        print(pstr)
        data2d[i, j] = 1
        gammacoexist.append(obsfwd.data[j, 0])
        k24coexist.append(k24)

scoexist = np.array([gammacoexist, k24coexist], float)

np.savetxt(obsfwd.observable_sname("coexistence", plot_format='txt'),
           scoexist.T,
           fmt="%8.4e")

width = 3.37
height = width
fig = plt.figure()
fig.set_size_inches(width, height)

ax = fig.add_subplot(1, 1, 1)

ax.contourf(gammas, k24s, data2d, colors=["w", "g"])
ax.set_xlabel(r"$\gamma$", fontsize=10)
ax.set_ylabel(r"$k_{24}$", fontsize=10)
ax.text(0.1, 0.1, rf"$\Lambda={Lambda}$")
fig.subplots_adjust(left=0.2, bottom=0.2)
Example #11
0
    #                                                            fc='white'),
    #                                                  arrowprops=dict(arrowstyle='-[, widthB=9.5, lengthB=1.0', lw=2.0))

    #if j == 0:
    #    grid[observable].axarr[i][j]['main'].set_ylabel(ylabel)
    #    grid[observable].axarr[i][j]['slice_const_y'].set_ylabel(plabel)
    #    grid[observable].axarr[i][j]['main'].annotate(rf'$k_{{24}}={k24}$',
    #                                                  xy=(-0.49,0.7),
    #                                                  xytext=(-0.5,0.7),
    #                                                  xycoords='axes fraction',
    #                                                  ha='center',
    #                                                  va='center',
    #                                                  bbox=dict(boxstyle='square',
    #                                                            fc='white'),
    #                                                  arrowprops=dict(arrowstyle='-[, widthB=9.5, lengthB=1.0', lw=2.0))

    #else:
    #    plt.setp(grid[observable].axarr[i][j]['slice_const_y'].get_yticklabels(),
    #             visible=False)

coexist = np.loadtxt(obs.observable_sname("coexistence", plot_format="txt"))

for observable in observable_list:

    ax[observable].plot(coexist[:, 0], coexist[:, 1], 'k.')
    ax[observable].set_xlim(right=0.3)
    fig[observable].subplots_adjust(left=0.2, right=0.95, bottom=0.15)
    fig[observable].savefig(obs.observable_sname(observable))

plt.show()
Example #12
0
                                    color=colors[0])#,
                                    #arrowprops=dict(facecolor='black', shrink=0.001))


            ax[observable].annotate(frustlab,xy=(gammas[g_eq],ysbkwd[i][g_eq]),
                                    xytext=(gammas[g_eq]-0.007,ysbkwd[i][g_eq]*1.3),
                                    color=colors[1])#,
                                    #arrowprops=dict(facecolor='black', shrink=0.001))
            """

            ax[observable].set_ylabel(rf"${ylabel}$",fontsize=10)
            ax[observable].set_xlabel(r"$\gamma$",fontsize = 10)
            ax[observable].legend(frameon=False,fontsize=10)

            ax[observable].set_xlim(0,0.3)


    for observable in observable_list:

        fig[observable].subplots_adjust(left=0.2,bottom=0.2)

        fig[observable].savefig(obsfwd.observable_sname("vary_Lambda"+observable,
                                                        plot_format="pdf"))



    plt.show()



                                  float)
            bw_coexist = np.empty([len(k24s), obsbwd.data.shape[-1] + 1],
                                  float)

        if len(obsfwd.data.shape) > 1:

            dum1 = obsfwd.data[-1, :]

        else:

            dum1 = obsfwd.data

        if len(obsbwd.data.shape) > 1:

            dum2 = obsbwd.data[-1, :]

        else:

            dum2 = obsbwd.data

        fw_coexist[i] = np.concatenate(([k24], dum1))

        bw_coexist[i] = np.concatenate(([k24], dum2))

    np.savetxt(obsfwd.observable_sname("fw_coexist", plot_format="txt"),
               fw_coexist,
               fmt='%15.8e')
    np.savetxt(obsbwd.observable_sname("bw_coexist", plot_format="txt"),
               bw_coexist,
               fmt='%15.8e')
        ylabel = fr'$\{observable}$'
    else:
        ylabel = fr'${observable}$'

    ax[observable].plot(Lambdas[:i_fwd + 1],
                        ysfwd[i][:i_fwd + 1],
                        '.',
                        color=colors[i])
    ax[observable].plot(Lambdas[i_fwd:i_fwd + 2],
                        ysfwd[i][i_fwd:i_fwd + 2],
                        '-',
                        color=colors[i])
    ax[observable].plot(ms_bkwd, ysbkwd[i][1:], '-', color=colors[i])
    ax[observable].plot(Lambdas[i_fwd + 2:],
                        ysfwd[i][i_fwd + 2:],
                        '.',
                        color=colors[i])
    ax[observable].set_xlabel(r"$\Lambda$", fontsize=24)
    ax[observable].set_ylabel(ylabel, fontsize=24)

    ax[observable].set_xscale('log')
    ax[observable].tick_params("both", labelsize=18)

for observable in observable_list:

    fig[observable].subplots_adjust(left=0.15, right=0.95, bottom=0.1)
    fig[observable].savefig(
        obsfwd.observable_sname(observable, plot_format="png"))

plt.show()
            if observable == 'R':
                ax[observable].set_yscale('log')
            """
            ax[observable].annotate(linearlab,xy=(gammas[g_eq],ysfwd[i][g_eq]),
                                    xytext=(gammas[g_eq]+0.007,ysfwd[i][g_eq]*0.5),
                                    color=colors[0])#,
                                    #arrowprops=dict(facecolor='black', shrink=0.001))


            ax[observable].annotate(frustlab,xy=(gammas[g_eq],ysbkwd[i][g_eq]),
                                    xytext=(gammas[g_eq]-0.007,ysbkwd[i][g_eq]*1.3),
                                    color=colors[1])#,
                                    #arrowprops=dict(facecolor='black', shrink=0.001))
            """

            ax[observable].set_ylabel(rf"${ylabel}$", fontsize=10)
            ax[observable].set_xlabel(r"$\gamma$", fontsize=10)
            ax[observable].legend(frameon=False, fontsize=10)

            ax[observable].set_xlim(0, 0.3)

    for observable in observable_list:

        fig[observable].subplots_adjust(left=0.2, bottom=0.2)

        fig[observable].savefig(
            obsfwd.observable_sname("vary_omega" + observable,
                                    plot_format="pdf"))

    plt.show()
        ax[observable].plot(Lambdas[1:],
                            ysfwd[i][1:],
                            '.-',
                            color=colors[js],
                            label=rf"$k_{{24}}={k24}$")

        #ax[observable].plot(Lambdas[:i_fwd+1],ysfwd[i][:i_fwd+1],'.',color=colors[i])
        #ax[observable].plot(Lambdas[i_fwd:i_fwd+2],ysfwd[i][i_fwd:i_fwd+2],'-',
        #                    color=colors[i])
        #ax[observable].plot(ms_bkwd,ysbkwd[i][1:],'-',color=colors[i])
        #ax[observable].plot(Lambdas[i_fwd+2:],ysfwd[i][i_fwd+2:],'.',color=colors[i])
        ax[observable].set_xlabel(r"$\Lambda$", fontsize=10)
        ax[observable].set_ylabel(ylabel, fontsize=10)

        #ax[observable].tick_params("both",labelsize=18)

for observable in observable_list:

    if observable == "R":
        ax[observable].set_yscale('log')
        ax[observable].legend(frameon=False)
    ax[observable].set_xscale('log')
    fig[observable].subplots_adjust(left=0.2,
                                    right=0.98,
                                    bottom=0.15,
                                    top=0.95)
    fig[observable].savefig(
        obsfwd.observable_sname("gamma" + observable, plot_format="pdf"))

plt.show()
                              color=colors[js],
                              lw=3)
            ax["psi(r)"].plot(1.0,
                              psistuff.psi()[-1],
                              marker=mtypes[ms + 1],
                              color=colors[js],
                              markeredgewidth=0.5,
                              markeredgecolor="w")

for observable in observable_list:

    if observable == "R":
        ax[observable].set_yscale('log')
        ax[observable].set_zorder(1)
        ax[observable].legend(frameon=True,
                              loc="upper left",
                              bbox_to_anchor=(0.0, 0.0))
        ax[observable].tick_params(labelbottom=False)

    ax[observable].set_xscale('log')

# now plot psi(r)

ax["psi(r)"].set_xlabel(r"$r/R$", fontsize=10)
ax["psi(r)"].set_ylabel(r"$\psi(r)$", fontsize=10)

fig.subplots_adjust(left=0.1, right=0.9, bottom=0.15, top=0.95)
fig.savefig(obsfwd.observable_sname("radial-twopair", plot_format="pdf"))

plt.show()
Example #18
0
                           loadsuf=loadsuf,
                           savesuf=savesuf,
                           name=f"psivsr_{type}",
                           loadfilepath=loadfilepath,
                           datfile=datfile,
                           sfile_format="pdf")

        rs = psistuff.r() / q
        psis = psistuff.psi()

        axins.plot(rs, psis, markertypes[i], label=f'{type} twist', lw=2)

        print("Radius = ", rs[-1], " nm.")

        print("surface twist = ", psis[-1], " rad.")

        axins.set_xlabel(r'$\tilde{r}$' + ' (' + r'$\si{\nano\meter}$' + ')',
                         fontsize=8,
                         labelpad=0.0)
        axins.set_ylabel(r'$\psi(\tilde{r})$' + ' (' + r'$\si{\radian}$' + ')',
                         fontsize=8)
        axins.set_xlim(0, 120)
        axins.set_ylim(0, 0.1)

        axins.set_xticks([0, 50, 100])
        axins.set_yticks([0, 0.05, 0.1])
        axins.legend(frameon=False, fontsize=8)

    plt.show()
    fig.savefig(obsfwd.observable_sname(f"phase-diagram-with-psivsr"))
Example #19
0
loadsuf = ["K_{33}", "k_{24}", "\\Lambda", "\\omega"]

k24s = np.linspace(0.2, 1, num=41, endpoint=True)

Lambda = '600.0'
omega = '20.0'

scan = {}
scan['\\Lambda'] = Lambda
scan['\\omega'] = omega

# load in 2d grid of data in data2d for each observable at the
# specified gamma,k24 pair.
for i, k24 in enumerate(k24s):

    scan['k_{24}'] = str(k24)

    obsbwd = ObservableData(["\\gamma_s"],
                            scan_dir='scanbackward',
                            scan=scan,
                            loadsuf=loadsuf,
                            savesuf=savesuf,
                            datfile='data/inputbwd.dat')

    obsbwd.data = obsbwd.data[np.argsort(obsbwd.data[:, 0])]

    np.savetxt(obsbwd.observable_sname("observables_scanbackward",
                                       plot_format="txt"),
               obsbwd.data,
               fmt='\t'.join(["%15.8e"] * 6))
            j = 0

            while (fw[j,0] != bw[j,0] and j < len(fw[:,0])):

                j += 1

            out_idx = np.flatnonzero(fw[j:n,0]==bw[:n-j,0])

            fw = fw[out_idx+j]

            bw = bw[out_idx]
            

        jsmall,jlarge,jeq = find_metastable(fw[:,3],bw[:,3],fw[:,2],bw[:,2])

        fw_line = []
        bw_line = []

        for k in range(7):

            fw_line.append(fw[jeq,k])
            bw_line.append(bw[jeq,k])

        fw_coexist[i,:] = fw_line
        bw_coexist[i,:] = bw_line


    np.savetxt(obsfwd.observable_sname('fwd_coexist',plot_format='txt'),fw_coexist,fmt='%13.6e')
    np.savetxt(obsbkwd.observable_sname('bkwd_coexist',plot_format='txt'),bw_coexist,fmt='%13.6e')
                    arrowprops=dict(arrowstyle='-[, widthB=9.5, lengthB=1.0',
                                    lw=2.0))

            if j == 0:
                grid[observable].axarr[i][j]['main'].set_ylabel(ylabel)
                grid[observable].axarr[i][j]['slice_const_y'].set_ylabel(
                    plabel)
                grid[observable].axarr[i][j]['main'].annotate(
                    rf'$k_{{24}}={k24}$',
                    xy=(-0.49, 0.7),
                    xytext=(-0.5, 0.7),
                    xycoords='axes fraction',
                    ha='center',
                    va='center',
                    bbox=dict(boxstyle='square', fc='white'),
                    arrowprops=dict(arrowstyle='-[, widthB=9.5, lengthB=1.0',
                                    lw=2.0))

            else:

                plt.setp(grid[observable].axarr[i][j]
                         ['slice_const_y'].get_yticklabels(),
                         visible=False)

for observable in observable_list:

    fig[observable].subplots_adjust(left=0.2, right=0.95)
    fig[observable].savefig(obs.observable_sname("LO_" + observable))

plt.show()
Example #22
0
            else:

                linearlab = rf"${ylabel}_L^*$"
                frustlab = rf"${ylabel}_F^*$"

            ax.plot(ts,
                    obsfwd.data[:, i + 1],
                    '^',
                    color=colors[0],
                    label=linearlab,
                    markersize=3)
            ax.plot(ts,
                    obsbwd.data[:, i + 1],
                    's',
                    color=colors[1],
                    label=frustlab,
                    markersize=3)

        if observable == "R":

            ax.set_yscale('log')
            #ax.plot(xs,func_l(xs),'-')
            #ax.plot(xs,func_f(xs),'-')

        ax.set_ylabel(rf"${ylabel}$", fontsize=10)
        ax.set_xlabel(r"$t$", fontsize=10)
        ax.legend(frameon=False, fontsize=10)
        fig.subplots_adjust(left=0.2, bottom=0.2)

        fig.savefig(obsfwd.observable_sname(f"{observable}_GAP"))
Example #23
0
    tilt = expdata[:,2]*np.pi/180.0
    stresspoints = expdata[:,3]
            
    for observable in observable_list:

        if observable == "stress":
            ax[observable].plot(strainpoints,stresspoints,'k^',label="expt.")
            ax[observable].set_ylim(0,stresses[-1]+10)
            ax[observable].legend(frameon=False)

        if observable == "surfacetwist":

            ax[observable].plot(strainpoints,tilt,'k^',label="expt.")
            slope = np.gradient(tilt,strainpoints)[2]
            ax[observable].set_xlabel(r"$\epsilon\times100\%$",fontsize = 10)
            ax[observable].set_xlim(left=0)
            print(f"for experiment, slope is {slope}")

    fig.subplots_adjust(left=0.2,right=0.8,bottom=0.1,top=0.95,hspace=0.05)
    fig.savefig(obsfwd.observable_sname("psiavg_etc-vsstrain",plot_format="pdf"))

    plt.show()








Example #24
0
                            scan=scan,
                            loadsuf=loadsuf,
                            savesuf=savesuf)

    observables_list = ["E", "R", "eta", "delta", "psi(R)"]

    k24s = obsfwd.data[:, 0]

    delR = (obsbwd.data[:, 3] - obsfwd.data[:, 3])

    ys = np.log(delR)

    popt, pcov = curve_fit(func, k24s, ys)

    fig = plt.figure()
    fig.set_size_inches(width, height)

    ax = fig.add_subplot(1, 1, 1)

    ax.set_ylabel(rf"$\Delta R$", fontsize=10)
    ax.set_xlabel(r"$k_{24}$", fontsize=10)

    ax.plot(k24s, delR, '.')
    ax.plot(k24s, np.exp(func(k24s, popt[0], popt[1])), '-')
    ax.plot(k24s, np.exp(func(k24s, 0.3, -0.5)), '-')

    ax.legend(frameon=False, fontsize=10)
    fig.subplots_adjust(left=0.2, bottom=0.2)

    fig.savefig(obsfwd.observable_sname(f"delR-fit"))
            breaks[js] = strains[np.argmax(
                stresses[stresses == stresses])] * 100
            print(Lambda, breaks[js])

        ax["youngs"].plot(Larray,
                          youngs,
                          'o-',
                          color=colors[ks],
                          label=rf"$(\gamma,k_{{24}})=({gamma},{k24})$")
        ax["youngs"].set_ylabel(r"$Y$")
        ax["youngs"].set_xscale('log')
        ax["youngs"].set_yscale('log')
        ax["breaks"].plot(Larray,
                          breaks,
                          'o-',
                          color=colors[ks],
                          label=rf"$(\gamma,k_{{24}})=({gamma},{k24})$")
        ax["breaks"].set_ylabel(r"$\epsilon_{\mathrm{max}}\times100\%$")
        ax["breaks"].set_xlabel(r"$\Lambda$")
        ax["breaks"].set_xscale('log')

    ax["breaks"].set_ylim(top=5)
    ax["breaks"].legend(loc="lower left",
                        bbox_to_anchor=(0.2, 0.7),
                        frameon=False)
    fig.subplots_adjust(left=0.2, right=0.8, bottom=0.1, top=0.95, hspace=0.05)
    fig.savefig(obsfwd.observable_sname("youngs-vs-Lambda", plot_format="pdf"))

    plt.show()
Example #26
0
                                color=colors[js],
                                lw=1)

            ax[observable].plot(Lambdas[ms_upper:i_Lambda],
                                ysbkwd[i][ms_upper:i_Lambda],
                                '-',
                                color=colors[js],
                                lw=1)
            ax[observable].plot(Lambdas[i_Lambda:],
                                ysbkwd[i][i_Lambda:],
                                '-',
                                color=colors[js],
                                lw=3)

        ax[observable].set_ylabel(ylabel, fontsize=10)

    ax[observable].set_xlabel(r"$\Lambda$", fontsize=10)

for observable in observable_list:

    if observable == "E":
        ax[observable].legend(frameon=False,
                              loc="best",
                              bbox_to_anchor=(0.2, -0.07, 0.5, 0.5))

    ax[observable].set_xscale('log')
fig.subplots_adjust(left=0.2, right=0.8, bottom=0.1, top=0.95, hspace=0.05)
fig.savefig(obsfwd.observable_sname("E-eta-delta-twopair", plot_format="pdf"))

plt.show()
    #                                               xycoords='axes fraction',
    #                                               ha='center',
    #                                                  va='center',
    #                                                  bbox=dict(boxstyle='square',
    #                                                            fc='white'),
    #                                                  arrowprops=dict(arrowstyle='-[, widthB=9.5, lengthB=1.0', lw=2.0))

    #if j == 0:
    #    grid[observable].axarr[i][j]['main'].set_ylabel(ylabel)
    #    grid[observable].axarr[i][j]['slice_const_y'].set_ylabel(plabel)
    #    grid[observable].axarr[i][j]['main'].annotate(rf'$k_{{24}}={k24}$',
    #                                                  xy=(-0.49,0.7),
    #                                                  xytext=(-0.5,0.7),
    #                                                  xycoords='axes fraction',
    #                                                  ha='center',
    #                                                  va='center',
    #                                                  bbox=dict(boxstyle='square',
    #                                                            fc='white'),
    #                                                  arrowprops=dict(arrowstyle='-[, widthB=9.5, lengthB=1.0', lw=2.0))

    #else:
    #    plt.setp(grid[observable].axarr[i][j]['slice_const_y'].get_yticklabels(),
    #             visible=False)

for observable in observable_list:

    fig[observable].subplots_adjust(left=0.2, right=0.95)
    fig[observable].savefig(obs.observable_sname(observable))

plt.show()

            if observable == "stress_max":
                ylabel = r"$\sigma_{\mathrm{max}}$"
            elif observable == "strain_max":
                ylabel = r"$\epsilon(\sigma_{\mathrm{max}})$"


            ax[observable].plot(omegaarray,ys_arrays[observable],'.-',color=colors[kj],
                                    label=rf"$\Lambda={Lambda}$")
            ax[observable].set_ylabel(ylabel,fontsize = 10)
            ax[observable].set_xlabel(r"$\omega$",fontsize = 10)


            
    for observable in observable_list:

        ax[observable].set_xscale('log')
        if observable == "strain_max":
            ax[observable].legend(frameon=False)

    fig.subplots_adjust(left=0.2,right=0.8,bottom=0.1,top=0.95,hspace=0.05)
    fig.savefig(obsfwd.observable_sname("omega_dependent_failure",plot_format="pdf"))

    plt.show()