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)
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) )