def testSplineCoeff(): import parse_potential as pp prefix = '/home/cask0/home/tsanyal/c25ld/data/cg_ff/methane/methane_wca_SPLD' logfile, histfile, sumfile = pp.parseFileNames(prefix) paramstring = pp.parseParamString(sumfile) h = pp.parseHist(histfile)['LD'] rho_t = h[0]; rho_m = h[1] d = alg.makeSysData(isPolymer = False, hasLJ = True) Sys = alg.makeSys(LDCut = 6.5, SysData = d, Prefix = 'testsys', paramstring = paramstring, fftype = 'wca') (nknot, spdist, spc0, spc1, spc2, spc3) = alg.getLDSpline(Sys = Sys) rho = rho_t dfdrho = np.zeros(len(rho)) frho = np.zeros(len(rho)) for n in range(len(rho)): x = (rho[n] - min(rho)) * spdist[1] i = max(min(int(x), nknot-2), 0) t = max(min(x - float(i), 1.0), 0.0) frho[n] = spc0[i] + t * (spc1[i] + t*(spc2[i]+t*spc3[i])) dfdrho[n] = spdist[1] * (spc1[i] + t * (2.*spc2[i]+t*3.*spc3[i])) fig = plt.figure ax1 = plt.subplot(211) ; ax2 = plt.subplot(212) ax1.plot(rho, frho, linewidth = 3, label = r'$f(\rho)$'); ax1.legend() ax2.plot(rho, dfdrho, linewidth = 3, label = r'$\frac{df}{d\rho}$'); ax2.legend()
def getPotential(system, cgtype, fftype): if cgtype == 'AA': cgtype = 'LD' if cgtype == 'LD': pType = '%s_AA' % fftype.upper() else: pType = 'SP' filePrefix = os.path.join(data_dir_potentials[system], '%s_%s_%s' % (system, fftype, cgtype)) logfile, histfile, sumfile = pp.parseFileNames(filePrefix) r, pot = pp.parseLog(sumfile)[pType] r = np.append(r, np.linspace(r[-1], r[-1]*5.0, 20)) pot = np.append(pot, np.zeros(20)) return r, pot
import setup matplotlib.rcParams.update(setup.params) data_dir = os.path.join(setup.data_dir, 'TIP4P') temp = 300 rhos = [1020, 1100, 1170] fig = plt.figure(figsize=(4, 3)) ax = fig.add_subplot(1, 1, 1) styles = {'AA': 'ro', 'SP': 'b-', 'SPLD': 'k-'} cgtypes = ['SP', 'SPLD'] for i, rho in enumerate(rhos): for j, cgtype in enumerate(cgtypes): prefix = os.path.join(data_dir, 'R%dT%d_%s' % (rho, temp, cgtype)) histfile = pp.parseFileNames(prefix)[1] hist = pp.parseHist(histfile)['LD'] r_t = hist[0] h_t = hist[1] r_m = hist[2] h_m = hist[3] if j == 0: ax.plot(r_t + 20 * i, h_t, styles['AA'], label='AA') ax.plot(r_m + 20 * i, h_m, styles[cgtype], label=cgtype) if i == 0: leg = ax.legend() # design ax.set_xlabel(r'$r(\AA)$') ax.set_ylabel('local density') setup.prune(ax) # annotation
#!/usr/bin/env python import os, sys import matplotlib import matplotlib.pyplot as plt # Build dependencies sys.path.append('../') import setup import parse_potential as pp matplotlib.rcParams.update(setup.params) # data paths prefix = '/home/tanmoy/projects/paper1_plots/data/FORCEFIELDS/cgff_methane25_newrc_50LDKnots/methane25_wca_SPLD' logfile, histfile, sumfile = pp.parseFileNames(prefix) rho, pot = pp.parseLog(sumfile)['LD'] rholist = rho.tolist() # start potential from zero pot-= pot[0] start = [rholist.index(x) for x in rholist if rholist.__contains__(x) and x >=1.][0] # normalized f(rho) fig1 = plt.figure(figsize = (setup.set_width('single'),2.8)) ax1 = fig1.add_subplot(1,1,1) ax1.plot(rho, pot, 'r-') # normalized f(rho)/rho fig2 = plt.figure(figsize = (setup.set_width('single'),2.8)) ax2 = fig2.add_subplot(1,1,1) ax2.plot(rho, pot/rho, 'r-')
import parse_potential as pp import setup matplotlib.rcParams.update(setup.params) data_dir = os.path.join(setup.data_dir, 'TIP4P') rhos = [1020, 1100, 1170, 1250] temp = 300 cgtype = 'SP' styles = ['r-', 'g-', 'b-', 'k-'] fig = plt.figure(figsize = (4,3)) ax= fig.add_subplot(1,1,1) for j, rho in enumerate(rhos): prefix = os.path.join(data_dir, 'R%dT%d_%s' % (rho, temp, cgtype)) sumfile = pp.parseFileNames(prefix)[2] r, potential = pp.parseLog(sumfile)['SP'] ax.plot(r, potential, styles[j], label = r'$\rho = $' + str(rho) + r'$(kg/m^3)$') # design ax.set_xlabel(r'$r (\AA)$'); ax.set_ylabel('potential '+ r'$(kcal/mol)$') ax.set_xlim([2, 4.5]); ax.set_ylim([-1.5, 5]) ax.set_xticks(np.arange(2,4.5, 10)); ax.set_yticks(np.arange(-1.5, 5, 10)) setup.prune(ax) leg = ax.legend() # annotation ax.annotate('300 K', xy = (3.5, 1)) # save figure fig.savefig('TIP4P_cg_potential.%s' % setup.params['savefig.format'])
units = setup.units_dict matplotlib.rcParams.update(setup.params) import parse_potential as pp ffdir = os.path.expanduser('~/c25ld/data/cg_ff/feb15_runs_fsw') fig = plt.figure(figsize = (8,4)) ax1= fig.add_subplot(1,2,1) axL = fig.add_subplot(1,2,2) ax2 = axL.twinx() fftype = 'wca' cgtypes = ['SP', 'SPLD', 'LD'] linest = ['r-', 'b-', 'g--', 'k:'] for i, cgtype in enumerate(cgtypes): prefix = os.path.join(ffdir, 'c25_%s_%s' % (fftype, cgtype)) logname, histname = pp.parseFileNames(prefix) hist = pp.parseHist(histname, '', []) hist = hist['LD'] r_t = hist[0]; h_t = hist[1]; r_m = hist[2]; h_m = hist[3] if (i==0): ax1.plot(r_t, h_t, linest[0], markersize = 10, label = 'AA') ax1.plot(r_m, h_m, linest[i+1], label = cgtypes[i]) for cgtype in ['SPLD', 'LD']: prefix = os.path.join(ffdir, 'c25_%s_%s' % (fftype, cgtype)) logname, histname = pp.parseFileNames(prefix) log = pp.parseLog(logname) log = log['LD'] r = log[0]; pot = log[1] if cgtype == 'SPLD':