ppafm.HighLevel#

ppafm.HighLevel.Gauss(Evib, E0, w)[source]#
ppafm.HighLevel.computeDFTD3(input_file, df_params='PBE', geometry_format=None, save_format=None, compute_energy=False, parameters=None)[source]#

Compute the Grimme DFT-D3 force field and optionally save to a file. See also add_dftd3().

Parameters:
  • input_file – str. Path to input file. Supported formats are .xyz, .xsf, and .cube.

  • save_format – str or None. If not None, then the generated force field is saved to files FFvdW_{x,y,z} in format that can be either ‘xsf’ or ‘npy’.

  • compute_energy – bool. In addition to force, also compute the energy. The energy is saved to file Evdw if save format is not None.

  • df_params – str or dict. Functional-specific scaling parameters. Can be a str with the functional name or a dict with manually specified parameters.

Returns:
  • FF – np.ndarray of shape (nx, ny, nz, 3). Force field.

  • V – np.ndarray of shape (nx, ny, nz) or None. Energy, if compute_energy == True.

  • lvec – np.ndarray of shape (4, 3). Origin and lattice vectors of the force field.

ppafm.HighLevel.computeELFF_pointCharge(geomFile, geometry_format=None, tip='s', save_format=None, computeVpot=False, Fmax=10.0, Vmax=10.0, parameters=None)[source]#
ppafm.HighLevel.computeElFF(V, lvec, nDim, tip, computeVpot=False, tilt=0.0, sigma=None, deleteV=True, parameters=None)[source]#
ppafm.HighLevel.computeLJ(geomFile, speciesFile, geometry_format=None, save_format=None, computeVpot=False, Fmax=10.0, Vmax=10.0, ffModel='LJ', parameters=None)[source]#
ppafm.HighLevel.getAtomsWhichTouchPBCcell(fname, Rcut=1.0, bSaveDebug=True, geometry_format=None, parameters=None)[source]#
ppafm.HighLevel.loadValenceElectronDict()[source]#
ppafm.HighLevel.meshgrid3d(xs, ys, zs)[source]#
ppafm.HighLevel.perform_relaxation(lvec, FFLJ, FFel=None, FFpauli=None, FFboltz=None, FFkpfm_t0sV=None, FFkpfm_tVs0=None, tip_spline=None, bPPdisp=False, bFFtotDebug=False, parameters=None)[source]#
ppafm.HighLevel.prepareArrays(FF, Vpot, parameters)[source]#
ppafm.HighLevel.relaxedScan3D(xTips, yTips, zTips, trj=None, bF3d=False)[source]#
ppafm.HighLevel.relaxedScan3D_omp(xTips, yTips, zTips, trj=None, bF3d=False, tip_spline=None)[source]#
ppafm.HighLevel.shift_positions(R, s)[source]#

Shifts positions in R by s; returns the result. Needed especially to shift atoms according to the grid origin.

Parameters:
  • R – list of positional vectors or a 2D array. The first index donoting the item (typically an atom) the second index determines the coordinate

  • s – vector that determines the required shift

Returns:

Rs – Rs[ia,i] = R[ia,i] - s[i]

ppafm.HighLevel.subtractCoreDensities(rho, lvec, elems=None, Rs=None, fname=None, valElDict=None, Rcore=0.7, bSaveDebugDens=False, bSaveDebugGeom=True, head='\nATOMS\n 1   0.0   0.0   0.0\n\nBEGIN_BLOCK_DATAGRID_3D\n   some_datagrid\n   BEGIN_DATAGRID_3D_whatever\n', parameters=None)[source]#
ppafm.HighLevel.symGauss(Evib, E0, w)[source]#
ppafm.HighLevel.trjByDir(n, d, p0)[source]#