def testAddInpVelocities(self):
		testVelocities = [[1,2,3], [4,5,6]]
		kwargDict = {"subsysInpVelocities": testVelocities}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputVelocitiesReadIn()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testSurfDipoleCorr(self):
		kwargDict = {"useCorr":True,"surfDipoleDir":"x"}
		testOptObj = miscObjs.SurfaceDipoleCorrectionCP2K(**kwargDict)
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, testOptObj.modPyCP2KDict)
		expStr = _loadExpectedOutputSurfaceDipoleOptsA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testAgainstAtomicPosConstraintsA(self):
		kwargDict = {"atPosConstraint_fixIdxPositions":  [2,4,1] , #Note: This is one-indexed in cp2k
		             "atPosConstraint_fixComponents":    ["XY","XY", "XYZ"] } 
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputAtomicPosConstraintsA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testChangeDispNLCorr(self):
		kwargDict = {"corrType":"DRSLL", "cutoff":100, "kernelFileName":"fake_file.dat",
		             "verboseOutput":True}
		testOptObj = miscObjs.NonLocalDispersionsCorrOptsCP2K(**kwargDict)
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, testOptObj.modPyCP2KDict)
		expStr = _loadExpectedOutputChangeNonLocalDispCorrObjA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testChangeGrimmeDispCorr(self):
		kwargDict = {"corrType": "DFTD3", "excludeKindsD3":[1],
		             "paramFile":"fake_file", "refFunctional": "BLYP", "printDFTD":True}
		grimmeObj = miscObjs.GrimmeDispersionCorrOptsCP2K(**kwargDict)
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, grimmeObj.modPyCP2KDict)
		expStr = _loadExpectedOutputChangeGrimmeObjA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testNudgedBandOptionsSection(self):
		kwargDict = {"nudgedband_numbReplicas": 12, "nudgedband_procsPerReplicaEnv": 2, "nudgedBand_springConstant": "5e-2",
		             "nudgedband_type": "IT-NEB", "nudgedband_rotateFrames":False, "nudgedband_alignFrames":False, "nudgedband_printInitConfigInfo":True,
		             "nudgedband_optEndPoints":True}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutNudgedBandFile_noReplicasSet()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testMDSection(self):
		kwargDict = {"mdEnsemble":"NVT", "mdSteps":"100",
		             "mdTimeStep":"0.5", "mdTemperature":"300",
		             "mdThermostatType":"nose", "mdPrintKindTemps":True,
		             "mdStartTime":200, "mdStartStep":20}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputSimpleMDOptionsA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testNudgedBandReplicasSection(self, mockedUConvHelp):
		mockedUConvHelp.BOHR_TO_ANG = 1
		kwargDict = {"nudgedband_replica_coords": [ [[1,2,3],[4,5,6]],
		                                            [[7,8,9],[2,3,4]] ] }
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutNudgedBandReplicas()
		actStr = self.startCP2KObj.get_input_string()

		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def _createBaseCP2KObj(self, basisKeyDict):
		basicObj = self._createBasicObject()
		basisObjects = self._getBasisObjects(basisKeyDict)

		pyCP2KHelp.modCp2kObjBasedOnDict(basicObj, {"kpts":self.kPts, "charge":self.charge} )
		pyCP2KHelp.addGeomAndBasisInfoToSimpleCP2KObj(basicObj, self.geom, basisObjects)
		baseCP2KObj = baseCalcObjCP2K.CP2KCalcObj( basicObj )
		baseCP2KObj.maxScf = self.maxScf
		return baseCP2KObj	
	def testChangeScfConvParams(self):
		kwargDict = {"scfMixAlpha": "0.8", "scfMixMethod": "PULAY_MIXING", "scfMixingOn":False, "scfPrintRestart":True,
		             "scfPrintRestartHistoryOn":True, "scfPrintRestartHistory_eachMD":8, "scfPrintRestartHistory_eachSCF":12,
		             "scfPrintRestartHistory_backupCopies":5, "scfPrintRestart_eachMD":2, "scfPrintRestart_eachSCF":3,
		             "scfPrintRestart_backupCopies":7, "scfHistoryEps":1e-3,
		             "scfDiagOn":False, "scfOuterEps": 1e-5, "scfOuterMaxIters":20}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputScfMixA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testMetadynSection(self):
		metaVar = colVarHelp.MetaVarStandard(index=2, scale=3)
		kwargDict = {"metaVars":[metaVar], "metaDyn_doHills":True, "metaDyn_ntHills":5,
		             "metaDyn_hillHeight":7, "metaDyn_printColvarCommonIterLevels":3,
		             "metaDyn_printHills":True, "metaDyn_printHillsCommonIterLevels":3,
		             "metaDyn_spawnHillsHeight": [ 1,2,3 ] , "metaDyn_spawnHillsPos": [ [2,3],[4,5],[6,7] ],
		             "metaDyn_spawnHillsScale":  [ [1,2], [3,4], [5,6] ],
		             "metaDyn_nHillsStartVal": 3}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputMetadynSectionA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testModBasedOnDictGivesExpectedObjTestA(self):
		""" Modify multiple options on the CP2K object and check we get expected output file """
		modKwargsDict = {"kpts"       : [20,20,20],
		                 "gridCutAbs" : 300,
		                 "gridCutRel" : 50,
		                 "maxscf"     : 5,
		                 "addedMOs": 10}
	
		expStr = sorted(_loadExpectedOutputStrTestA())
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, modKwargsDict)
		actStr = sorted( self.startCP2KObj.get_input_string() )
		self.assertEqual(expStr, actStr)
예제 #13
0
	def _getAllRequiredCP2KObjs(self, basisKeyDict, startFolder):
		allObjs = list()
		for gVals in self._gridValsToUse:
			currObj = self._createBaseCP2KObj(basisKeyDict) 
			currObj.absGridCutoff = gVals.absCut
			currObj.relGridCutoff = gVals.relCut
			currObj.basePath = os.path.join(startFolder, gVals.toStr() )
			currObj.addedMOs = self.addedMOs

			if self.extraKwargDictToModCP2KObj is not None:
				cp2kFileHelpers.modCp2kObjBasedOnDict(currObj.cp2kObj, self.extraKwargDictToModCP2KObj)

			allObjs.append(currObj)
		return allObjs
	def testMiscOptsA(self):
		kwargDict = {"scfPrintRestart":False, "qsExtrapolationMethod":"LINEAR_P", "nGrids":5,
		             "walltime":2500, "prefDiagLib":"sl",
		             "rsGrid_distrib":[-1,-1,48], "qsExtrapolationOrder":4, "scfDiagAlgorithm":"OT",
		             "scfOTMinimizer": "DIIS", "scfOTEnergies":True, "scfOTRotation":True, "scfGuess":"restart",
		             "scfOTPreconditioner": "FULL_SINGLE_INVERSE", "scfOTEnergyGap": "1e-2",
		             "scfOTSafeDIIS":False,
		             "extRestartName": "fake_restart_file.restart", "scfMaxIterAfterHistoryFull":1,
		             "scfOTStepsize" : 0.1, "dftInpWfnRestartFilename":"fake_restart_wfn.wfn",
		             "printForces":False, "printPdos":True, "ldosIndices":[[1,2],[3,4]],
		             "motion_cellopt_constraint":"XY",
		             "motionPrintForces":True, "motionPrintVelocities":True,
		             "dftPrintDensityCube":True}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputMiscOptsA()
		actStr = self.startCP2KObj.get_input_string()

		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testSmearingFalseWorks(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"useSmearing":False})
		expStr = _loadExpectedOutputNoSmearing()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testCellOpt(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"runType":"cell_opt", "geo_constrain_cell_angles":[True,True,True]})
		expStr = _loadExpectedOutputCellOptA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testSetCharge(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"charge":2})
		expStr = _loadExpectedOutputCharge2()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testPrintOrbitalMulliken(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"printAOMullikenPop":True})
		expStr = _loadExpectedOutputStrPrintOrbitalMulliken()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testEpsRho(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"epsRho":3.7e-10})
		expStr = _loadExpectedOutputEpsRho_3pt7_e10()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testEpsCoreCore(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"epsCoreCharge":4.5e-10})
		expStr = _loadExpectedOutputEpsCoreCharge_4pt5_e10()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testAddThermoRegions(self):
		thermoRegions = [mock.Mock(), mock.Mock()]
		kwargDict = {"mdThermoRegions": thermoRegions}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		for region in thermoRegions:
			region.addToPyCp2kObj.assert_called_with(self.startCP2KObj)
	def testPrintHirshOptions(self):
		kwargDict = {"hirshfeld_on":True, "hirshfeld_selfConsistent":True, "hirshfeld_shapeFunction":"density"}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputHirshfeldOpts()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testRunTypeBSSE(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"runtype":"bsse", "fragmentsBSSE":[[1,2],[3,4]]})
		expStr = _loadExpectedOutputBSSE_a()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testChangeXCFunctional(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"xcFunctional":"blyp"})
		expStr = _loadExpectedOutputChangeXcFunctional()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testAddThermostatOpts(self):
		thermoOptObj = mock.Mock()
		kwargDict = {"mdThermoStatOpts": thermoOptObj}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		thermoOptObj.addToPyCp2kObj.assert_called_with(self.startCP2KObj)
	def testOptB88SpecialFunctional(self):
		kwargDict = {"xcFunctional":"optb88_pw92"}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputOptB88Functional()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testReplaceEpsPPNL(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"epsPPNL":3.2e-10})
		expStr = _loadExpectedOutputEpsPPNL_3pt2_e10()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )
	def testRestartPrintOptsA(self):
		kwargDict = {"restartPrintEachMd":3}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		expStr = _loadExpectedOutputRestartOptsA()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr.replace(" ","")), sorted(actStr.replace(" ","")) )
	def testAddColVars(self):
		colVarA, colVarB = mock.Mock(), mock.Mock()
		kwargDict = {"colVars": [colVarA, colVarB]}
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, kwargDict)
		colVarA.addColVarToSubsys.assert_called_with(self.startCP2KObj)
		colVarB.addColVarToSubsys.assert_called_with(self.startCP2KObj)
	def testReplaceEpsGvgRspace(self):
		tCode.modCp2kObjBasedOnDict(self.startCP2KObj, {"epsGvgRSpace":5.2e-10})
		expStr = _loadExpectedOutputEpsGVG_5p2_e10()
		actStr = self.startCP2KObj.get_input_string()
		self.assertEqual( sorted(expStr), sorted(actStr) )