def angularDistribution(this, bins, states = "all", simulation = -1, label = ''): print "Calculating angular distribution"; length = this.stateNumbers[simulation]; runName = this.simulations[simulation]; mdf.combine(runName, length); angle, angleDistribution = mda.angularDistribution(bins, runName, length, states); mdplot.plotAngularDistribution(this.path, angleDistribution, angle*180/np.pi, label = label); return angle, angleDistribution;
def radialDistribution(this, bins, simulation = -1, states = "all", label = ''): print "Calculating radial distribution"; simPath = this.simulations[simulation]; length = this.stateNumbers[simulation]; mdf.combine(simPath, length, ); r, g = mda.calculateRadialDistribution(simPath, bins, length, states); mdplot.plotRadialDistribution(this.path, g, r, label = label); return r, g;
def numberOfSilanol(this, A, t, simulation = -1, states = "all", label = ''): length = this.stateNumbers[simulation]; runName = this.simulations[simulation]; N = mda.silanolGroups(runName, length, states); if(states == "all"): states = np.arange(0, last + 1); #end print np.shape(N), np.shape(t); mdplot.plotSilanol(this.path, N, t, A, label = label); return t, N;
def analyze(this, simulation = -1, label = ''): simPath = this.simulations[simulation]; length = this.stateNumbers[simulation]; #Read dt and step from file datafile = open(simPath + "/init/data.dat"); datafile.readline(); datafile.readline(); dt = float(datafile.readline()); step = int(datafile.readline()); datafile.close(); t = step*dt*np.arange(0, length + 1); K, V, T, r2 = mda.getAnalysis(simPath, length); mdplot.plotEnergy(this.path, V, K, t, label = label); mdplot.plotTemperature(this.path, T, t, label = label); mdplot.plotDisplacement(this.path, r2, t, label = label); D = np.zeros(np.shape(r2)); for i in range(0, 3): D[1:, i] = r2[1:, i]/(6*t[1:]); #end return K, V, T, r2, D, t;