qrunch.chemistry.molecule.solvent
Module containing a solvent class used for embedding molecular configurations in solvents.
Functions
Create a solvent model. |
Classes
Enum representing different Polarizable Continuum Model (PCM) methods. |
|
Protocol for solvent objects that indicate their solvent model type. |
|
Builder for all solvent model types. |
|
Class for storing and passing solvents used for embedding molecular configurations. |
|
Builder for a frame-based (polarizable embedding) solvent. |
|
Class for defining a Polarizable Continuum Model solvent. |
|
Builder for a Polarizable Continuum Model (PCM) solvent. |
- class PCMMethod
Bases:
EnumEnum representing different Polarizable Continuum Model (PCM) methods.
- Abbreviations:
IEF_PCM: Integral Equation Formalism Polarizable Continuum Model. C_PCM: Conductor-like Polarizable Continuum Model. SS_V_PE: Surface and Simulation of Volume Polarization for Electrostatics. COSMO: Conductor-like Screening Model.
- COSMO = 'COSMO'
- C_PCM = 'C-PCM'
- IEF_PCM = 'IEF-PCM'
- SS_V_PE = 'SS(V)PE'
- class Solvent
Bases:
ProtocolProtocol for solvent objects that indicate their solvent model type.
Provides a method to return the specific solvent type.
- __init__(*args, **kwargs)
- set_solvent(molecular_problem: PyscfKernelInterface) PyscfKernelInterface
Set solvent properties for the given molecular problem.
This method adjusts the molecular_problem based on the provided molecular_configuration. The type of molecular_problem is preserved in the return value.
- Parameters:
molecular_problem (PyscfKernelInterface) – The molecular problem instance.
- Return type:
PyscfKernelInterface
- class SolventCreator
Bases:
objectBuilder for all solvent model types.
- static frame(potential_file: str | Path) SolventFrameCreator
Narrow to a Polarizable Embedding (PE) solvent.
This model uses a classical representation of the solvent based on atom-centered multipoles and polarizabilities, allowing the solvent environment to respond to the solute’s electrostatic field.
- Parameters:
potential_file (str | Path) – Path to the potential file.
- Return type:
- static pcm(dielectric_constant: float | None = None, solvent: Literal['water', 'methanol', 'ethanol', '2-propanol', 'acetone', 'acetonitrile', 'dimethyl sulfoxide', 'N,N-dimethylformamide', 'tetrahydrofuran', 'dichloromethane', 'chloroform', 'toluene', 'n-hexane', 'cyclohexane', 'diethyl ether'] | str | None = None) SolventPCMCreator
Narrow to a Polarizable Continuum Model (PCM) solvent.
This model describes the solvent as a uniform dielectric continuum characterized by its macroscopic dielectric constant.
Set the dielectric constant of the solvent either directly by giving the dielectric constant or via the solvent name. Note that the two input arguments are mutually exclusive.
- Typical values:
Water: ~78.4
Methanol: ~33.0
Benzene: ~2.3
- Parameters:
dielectric_constant (float | None) – The dielectric constant of the solvent (> 1.0).
solvent (Literal['water', 'methanol', 'ethanol', '2-propanol', 'acetone', 'acetonitrile', 'dimethyl sulfoxide', 'N,N-dimethylformamide', 'tetrahydrofuran', 'dichloromethane', 'chloroform', 'toluene', 'n-hexane', 'cyclohexane', 'diethyl ether'] | str | None) – The name of a solvent (one of the listed common solvents or any recognized solvent name).
- Return type:
- class SolventFrame
Bases:
SolventClass for storing and passing solvents used for embedding molecular configurations.
- __init__(potential_file: Path | str) None
Initialize an instance of the solvent class using a Polarizable Embedding potential file.
Note
BETA FEATURE — This feature is experimental and may change or be removed in future versions without notice.
- Parameters:
potential_file (Path | str)
- Return type:
None
- set_solvent(molecular_problem: PyscfKernelInterface) PyscfKernelInterface
Set solvent properties for the given molecular problem.
This method adjusts the molecular_problem based on the provided molecular_configuration. The type of molecular_problem is preserved in the return value.
Note
BETA FEATURE — This feature is experimental and may change or be removed in future versions without notice.
- Parameters:
molecular_problem (PyscfKernelInterface) – The molecular problem instance.
- Return type:
PyscfKernelInterface
- class SolventFrameCreator
Bases:
objectBuilder for a frame-based (polarizable embedding) solvent.
- __init__(potential_file: str | Path) None
Initialize builder for SolventFrame.
The potential file defines the distributed multipoles and polarizabilities representing the solvent environment.
- Parameters:
potential_file (str | Path) – Path to the potential file
- Return type:
None
- create() SolventFrame
Create an instance of
SolventFrame.- Return type:
- class SolventPCM
Bases:
SolventClass for defining a Polarizable Continuum Model solvent.
- __init__(dielectric_constant: float, method: PCMMethod | None = PCMMethod.IEF_PCM) None
Initialize an instance of the solvent class.
- Parameters:
dielectric_constant (float)
method (PCMMethod | None)
- Return type:
None
- set_solvent(molecular_problem: PyscfKernelInterface) PyscfKernelInterface
Set solvent properties for the given molecular problem.
This method adjusts the molecular_problem based on the provided molecular_configuration. The type of molecular_problem is preserved in the return value.
- Parameters:
molecular_problem (PyscfKernelInterface) – The molecular problem instance.
- Return type:
PyscfKernelInterface
- class SolventPCMCreator
Bases:
objectBuilder for a Polarizable Continuum Model (PCM) solvent.
- __init__(dielectric_constant: float | None, solvent: Literal['water', 'methanol', 'ethanol', '2-propanol', 'acetone', 'acetonitrile', 'dimethyl sulfoxide', 'N,N-dimethylformamide', 'tetrahydrofuran', 'dichloromethane', 'chloroform', 'toluene', 'n-hexane', 'cyclohexane', 'diethyl ether'] | str | None) None
Initialize builder for SolventPCM.
Set the dielectric constant of the solvent either directly by giving the dielectric constant or via the solvent name. Note that the two input arguments are mutually exclusive.
- Typical values:
Water: ~78.4
Methanol: ~33.0
Benzene: ~2.3
- Parameters:
dielectric_constant (float | None) – The dielectric constant of the solvent (> 1.0).
solvent (Literal['water', 'methanol', 'ethanol', '2-propanol', 'acetone', 'acetonitrile', 'dimethyl sulfoxide', 'N,N-dimethylformamide', 'tetrahydrofuran', 'dichloromethane', 'chloroform', 'toluene', 'n-hexane', 'cyclohexane', 'diethyl ether'] | str | None) – The name of a solvent (one of the listed common solvents or any recognized solvent name).
- Raises:
ValueError – If the dielectric constant is < 1.0, if the solvent name is not recognized, or if neither dielectric constant nor solvent name or both are provided.
- Return type:
None
- create() SolventPCM
Create an instance of
SolventPCM.- Return type:
- with_method(method: Literal['IEF-PCM', 'C-PCM', 'SS(V)PE', 'COSMO'] | PCMMethod) Self
Select PCM method to use.
- Parameters:
method (Literal['IEF-PCM', 'C-PCM', 'SS(V)PE', 'COSMO'] | ~qrunch.chemistry.molecule.solvent.PCMMethod) – PCM method to use, either as a
PCMMethodenum or a string literal (e.g.,"IEF-PCM"or"COSMO").- Raises:
ValueError – If the given method is not a valid PCM formulation.
- Return type:
Self
- solvent_creator() SolventCreator
Create a solvent model.
This is the intended starting point for creating any type of solvent. See https://qrunch.docs.kvantify.net/docs/explanations/builder_pattern.html for more information on using the builder pattern.
- Return type: