#Plot results r = solver.getrArray() for potentialType in boltzmannOfPotentialDictionary: pl.plot(r, boltzmannOfPotentialDictionary[potentialType], label='exp(-beta*' + str(potentialType) + ')') pl.xlabel('r/sigma') pl.ylabel('exp(-beta*u)') pl.legend(loc='upper right') pl.show() #We just repeat everything from above with a density > 0 to get a RDF fifferent from the Boltzmann of mutual potential density = 0.3 #We switch to ScipyAndersonOZsolver since it can better handle Star potential (?) solver = ScipyAndersonOZsolver(port=0) solver.setVolumeDensity(density) for potentialType in listOfPotentials: solver.setPotentialByName(*(potentialType.split('_'))) solver.solve() g = solver.getRDF() RDFdictionary[potentialType] = g #Plot results r = solver.getrArray() for potentialType in RDFdictionary: pl.plot(r, RDFdictionary[potentialType], label='RDF with' + str(potentialType)) pl.xlabel('r/sigma') pl.ylabel('g')
from picardOZsolver import PicardOZsolver from andersonOZsolver import AndersonOZsolver from scipyAndersonOZsolver import ScipyAndersonOZsolver from scipyNewtonKrylovOZsolver import ScipyNewtonKrylovOZsolver if __name__ == '__main__': #Dict to contain the various algorithms (classes) solverClassDictionary = {} #Dict to contain the various results (algorithm specific) algorithmSqDictionary = {} #Instantiate solver classes (port=0 means no server) solverClassDictionary['Picard'] = PicardOZsolver(port=0) solverClassDictionary['Anderson'] = AndersonOZsolver(port=0) solverClassDictionary['scipyAnderson'] = ScipyAndersonOZsolver(port=0) solverClassDictionary['scipyNewtonKrylov'] = ScipyNewtonKrylovOZsolver( port=0) #Basic params, use HardSphere together with analytical Solution (and PY, but this is default) density = 0.3 potential = 'HardSphere' #Start loop over classes (calculate S(q) with all algorithms) for algorithmKey in solverClassDictionary: #Activate the next line to use a different FPO, here the investment in design pays off, #since the fixpoint operator can easily be exchanged without further modifications #solverClassDictionary[algorithmKey].doNotUseGammaFixPointOperator() solverClassDictionary[algorithmKey].setPotentialByName(potential) solverClassDictionary[algorithmKey].setVolumeDensity(density) solverClassDictionary[algorithmKey].solve()
options, args = parser.parse_args() return options, args #Start here #******************************************************************************************************************************************************************* if __name__ == '__main__': options, args = readOptions() portNumber = int(options.portNumber) typeOfIteration = options.typeOfIteration if typeOfIteration == 'Picard': PicardOZsolver(portNumber) elif typeOfIteration == 'Anderson': AndersonOZsolver(portNumber) elif typeOfIteration == 'ScipyAnderson': ScipyAndersonOZsolver(portNumber) elif typeOfIteration == 'ScipyNewtonKrylov': ScipyNewtonKrylovOZsolver(portNumber) else: print "Unknown iteration schema, exiting" sys.exit()