Polarizable Embedding#

Penguin leverages the CPPE library[SRK+19] when combined with PySCF[SBB+18] and PyFraMe[ORc21] when combined with VeloxChem[RLV+20] to compute electrostatic and polarization interactions. Polarizable Embedding (PE) is a powerful tool designed to model these interactions, making it a robust choice for embedding-based quantum chemical calculations.
By integrating PE, Penguin ensures that users have access to state-of-the-art methods for incorporating environmental effects into their quantum chemical calculations. This capability enhances the accuracy and reliability of results for complex systems, particularly in cases where environmental interactions play a critical role.

How To Include PE#

PE is automatically applied when the @pe section is provided and a valid potential file (POTFILE.pot) is given.
The computational method is then defined as usual with the task keyword.

Example Input File#

@method settings  
basis: STO-3G  
@end  

@pe  
potfile: PATH/TO/POTFILE.pot  
@end  

@memory  
max_mem: 1  
@end  

@jobs  
Task: ccs  
@end  

@molecule  
charge: 0  
multiplicity: 1  
units: bohr  
xyz:  
O  0.0000000000  0.0000000000  0.0000000000  
H  0.0000000000  1.4304281903  1.1071565216  
H  0.0000000000 -1.4304281903  1.1071565216  
@end

Example Potential File#

@environment  
units: angstrom  
xyz:  
O -1.9957202  0.0160415  1.2422556 water 1  
H -2.4542703 -0.5669741  1.8472817 water 1  
H -1.9377950 -0.4817912  0.4267562 water 1  
@end  

@charges  
O -0.67444408 water  
H  0.33722206 water  
H  0.33722206 water  
@end  

@polarizabilities  
O 5.73935090  0.00000000  0.00000000  5.73935090  0.00000000  5.73935090 water  
H 2.30839051  0.00000000  0.00000000  2.30839051  0.00000000  2.30839051 water  
H 2.30839051  0.00000000  0.00000000  2.30839051  0.00000000  2.30839051 water  
@end

@pe Keywords#

General Keywords#

potfile

Description

Provide a relative path to the potential file. Doing so turns on PE for the specified calculation.

Type

None

Default

False

Example

An example is given here

CPPE Keywords#

iso_pol

Description

Make polarizabilities isotropic.

Type

bool

Default

False


induced_thresh

Description

Threshold for induced moments convergence.

Type

float

Default

1.0E-8


maxiter

Description

Maximum number of iterations for induced moments.

Type

int

Default

50


damp_induced

Description

Enable Thole damping for induced moments.

Type

bool

Default

False


damping_factor_induced

Description

Damping factor for induced moments.

Type

float

Default

2.1304

Requirements

Requires the damp_induced keyword to be True.


damp_multipole

Description

Enable Thole damping for electric fields created by multipole moments.

Type

bool

Default

False


damping_factor_multipole

Description

Damping factor for electric fields created by multipole moments.

Type

float

Default

2.1304

Requirements

Requires the damp_multipole keyword to be True.


pe_border

Description

Enable border options for sites in proximity to the QM/MM border.

Type

bool

Default

False


border_type

Description

Border type, either “remove” or “redist” moments/polarizabilities.

Type

str

Default

remove

Options

remove
redist


border_rmin

Description

Min radius in atomic units from QM atoms to MM sites for them to be removed/redistributed.

Type

float

Default

2.2


border_nredist

Description

Number of neighbor sites to redistribute to.

Type

int

Default

-1


border_nredist_order

Description

Order from which moments are removed.

Type

int

Default

1


border_redist_pol

Description

Enable redistribution of polarizabilities.

Type

bool

Default

False

PyFraMe Keywords#

threshold

Description

Threshold for the induced dipoles.

Type

float

Default

1.0E-8


max_iterations

Description

Max iterations for the induced dipoles.

Type

int

Default

100


solver

Description

Solver used to obtain the induced dipoles.

Type

str

Default

jacobi

Options

jacobi
jidiis
dcji
dcjidiis


mic

Description

Whether mic scaled coordinates should be used for the dipoles.

Type

bool

Default

False