VPTHamiltonianOptions
Provides a helper to keep track of the levers available for setting up the Hamiltonian
__init__(self, mode_selection=None, mode_transformation=None, local_mode_couplings=None, local_mode_coupling_order=None, full_surface_mode_selection=None, include_potential=None, include_gmatrix=None, include_coriolis_coupling=None, include_pseudopotential=None, include_only_mode_couplings=None, potential_terms=None, kinetic_terms=None, coriolis_terms=None, pseudopotential_terms=None, include_dipole=None, dipole_terms=None, dipole_derivatives=None, undimensionalize_normal_modes=None, use_numerical_jacobians=None, eckart_embed_derivatives=None, eckart_embed_planar_ref_tolerance=None, strip_dummy_atoms=None, strip_embedding_coordinates=None, mixed_derivative_handling_mode=None, mixed_derivative_warning_threshold=None, mixed_derivative_handle_zeros=None, rephase_modes=None, backpropagate_internals=None, direct_propagate_cartesians=None, zero_mass_term=None, internal_fd_mesh_spacing=None, internal_fd_stencil=None, cartesian_fd_mesh_spacing=None, cartesian_fd_stencil=None, cartesian_analytic_deriv_order=None, cartesian_by_internal_derivative_method=None, internal_by_cartesian_order=None, cartesian_by_internal_order=None, expansion_handling_mode=None, jacobian_warning_threshold=None, check_input_force_constants=None, hessian_tolerance=None, grad_tolerance=None, freq_tolerance=None, g_derivative_threshold=None, gmatrix_tolerance=None, use_internal_modes=None, use_cartesian_kinetic_energy=None, operator_coefficient_threshold=None, imaginary_frequency_handling_mode=None):
mode_selection:Iterable[int]|Nonethe set of the supplied normal modes to do perturbation theory on
include_coriolis_coupling:boolwhether or not to include Coriolis coupling in Cartesian normal mode calculation
include_pseudopotential:boolwhether or not to include the pseudopotential/Watson term
potential_terms:Iterable[np.ndarray]explicit values for the potential terms (e.g. from analytic models), should be a list of tensors starting with the Hessian with each axis of length
nmodeskinetic_terms:Iterable[np.ndarray]explicit values for the kinetic terms (e.g. from analytic models), same format as for the potential
coriolis_terms:Iterable[np.ndarray]explicit values for the Coriolis terms
pseudopotential_terms:Iterable[np.ndarray]explicit values for the psuedopotential terms
undimensionalize_normal_modes:boolwhether or not to convert normal modes into dimensional coordinates
use_numerical_jacobians:boolwhether or not to use numerical differentiation when getting coordinate transformations
eckart_embed_derivatives:boolwhether or not to use Eckart embedding when getting Cartesian to internal transformations (needed for proper results)
strip_dummy_atoms:boolwhether or not to strip off dummy atoms when doing transformations
strip_embedding_coordinates:boolwhether or not to strip off translation/rotation embedding coordinates when doing transformations
mixed_derivative_handling_mode:boolhow to handle differences between numerical/analytical mixed derivatives of potential/dipole terms
backpropagate_internals:boolwhether or not to do Cartesian coordinate calculations with values backpropagated from internals
internal_fd_mesh_spacing:floatmesh spacing for finite difference of Cartesian coordinates with internals
internal_fd_stencil:intstencil for finite difference of Cartesian coordinates with internals
cartesian_fd_mesh_spacing:floatmesh spacing for finite difference of internal coordinates with respect to Cartesians
cartesian_fd_stencil:intstencil for finite difference of internal coordinates with respect to Cartesians
cartesian_analytic_deriv_order:intorder of analytic derivatives to use for derivatives of internal coordinates with respect to Cartesians (supports
0or1)jacobian_warning_threshold:floatthe value at which to warn that the Jacobian is ill-conditions
check_input_force_constants:boolwhether or not to check that the input force constants match the input frequencies
hessian_tolerance:floatthe deviation to allow when transforming from Cartesian to internal Hessian
grad_tolerance:floatthe size of the norm of the gradient above which to print a warning
freq_tolerance:floatthe deviation from the input frequencies to allow when transforming from Cartesians to internals
g_derivative_threshold:floatthe size of the norm of any G-matrix derivative above which to print a warning
operator_coefficient_threshold:float|Nonethe minimum size of a coefficient to keep when evaluating representation terms