Source code for nucleardatapy.fig.matter_setupMicro_band_fig

import numpy as np
import matplotlib.pyplot as plt

import nucleardatapy as nuda


[docs] def matter_setupMicro_band_fig(pname, models, den, matter): """ Plot the reference band together with the models on wich it is constructed. The plot is 1x2 with: [0]: E versus den. [1]: E/EFFG versus den. :param pname: name of the figure (*.png) :type pname: str. :param models: list of models to run on. :type models: array of str. :param den: numpy array with densities to define the reference band. :type den: array of reals. :param matter: chose between 'SM', 'NM' or 'Esym'. :type matter: str. """ # print(f"Plot name: {pname}") # # den = 0.03*np.arange(13) # fig, axs = plt.subplots(1, 2) fig.tight_layout() # Or equivalently, "plt.tight_layout()" fig.subplots_adjust( left=0.15, bottom=0.12, right=0.95, top=0.98, wspace=0.38, hspace=0.3 ) # axs[0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14") axs[0].set_xlim([0, 0.2]) # axs[1].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14") axs[1].set_xlim([0, 0.2]) # if matter.lower() == "nm": axs[0].set_ylabel(r"$E_\text{int,NM}$", fontsize="14") axs[1].set_ylabel(r"$E_\text{int,NM}/E_\text{int,NM}^\text{NR FFG}$", fontsize="14") axs[0].set_ylim([0, 20]) axs[1].set_ylim([0.2, 0.9]) elif matter.lower() == "sm": axs[0].set_ylabel(r"$E_\text{int,SM}$", fontsize="14") axs[1].set_ylabel(r"$E_\text{int,SM}/E_\text{int,SM}^\text{NR FFG}$", fontsize="14") axs[0].set_ylim([-20, 0]) axs[1].set_ylim([-1.0, 0.0]) elif matter.lower() == "esym": axs[0].set_ylabel(r"$E_\text{sym}$", fontsize="14") axs[1].set_ylabel(r"$E_\text{sym}/E_\text{sym}^\text{NR FFG}$", fontsize="14") axs[0].set_ylim([0, 50]) axs[1].set_ylim([1.5, 2.8]) # for model in models: # mic = nuda.matter.setupMicro(model=model) if nuda.env.verb_output: mic.print_outputs() # if mic.nm_e2a_int is not None: print("model:", model) if matter.lower() == "nm": axs[0].errorbar( mic.nm_den, mic.nm_e2a_int, yerr=mic.nm_e2a_err, linestyle=mic.linestyle, label=mic.label, errorevery=mic.every, ) axs[1].errorbar( mic.nm_den, mic.nm_e2a_int / nuda.effg_nr(mic.nm_kfn), yerr=mic.nm_e2a_err / nuda.effg_nr(mic.nm_kfn), linestyle=mic.linestyle, label=mic.label, errorevery=mic.every, ) elif matter.lower() == "sm": axs[0].errorbar( mic.sm_den, mic.sm_e2a_int, yerr=mic.sm_e2a_err, linestyle=mic.linestyle, label=mic.label, errorevery=mic.every, ) axs[1].errorbar( mic.sm_den, mic.sm_e2a_int / nuda.effg_nr(mic.sm_kfn), yerr=mic.sm_e2a_err / nuda.effg_nr(mic.sm_kfn), linestyle=mic.linestyle, label=mic.label, errorevery=mic.every, ) elif matter.lower() == "esym": esym = nuda.matter.setupMicroEsym(model=model) axs[0].errorbar( esym.den, esym.esym, yerr=esym.esym_err, linestyle=esym.linestyle, label=esym.label, errorevery=esym.every, ) axs[1].errorbar( esym.den, esym.esym / nuda.esymffg_nr(esym.kf), yerr=esym.esym_err / nuda.esymffg_nr(esym.kf), linestyle=esym.linestyle, label=esym.label, errorevery=esym.every, ) # band = nuda.matter.setupMicroBand(models, den=den, matter=matter) # axs[0].fill_between( band.den, y1=band.e2a_int - band.e2a_std, y2=band.e2a_int + band.e2a_std, color=band.color, alpha=band.alpha, ) if matter.lower() == "nm": axs[1].fill_between( band.den, y1=(band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn), y2=(band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn), color=band.color, alpha=band.alpha, ) elif matter.lower() == "sm": axs[1].fill_between( band.den, y1=(band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kf), y2=(band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kf), color=band.color, alpha=band.alpha, ) elif matter.lower() == "esym": axs[1].fill_between( band.den, y1=(band.e2a_int - band.e2a_std) / nuda.esymffg_nr(band.kf), y2=(band.e2a_int + band.e2a_std) / nuda.esymffg_nr(band.kf), color=band.color, alpha=band.alpha, ) # if matter.lower() == "nm": axs[1].legend(loc="upper left", fontsize="12", ncol=1) elif matter.lower() == "sm": axs[1].legend(loc="upper left", fontsize="12", ncol=1) elif matter.lower() == "esym": axs[0].legend(loc="upper left", fontsize="12", ncol=1) # if pname is not None: plt.savefig(pname, dpi=200) plt.close()