# CONFIDENTIAL. (C) 2017 OpenEye Scientific Software Inc.
# All rights reserved.
# 
# ALL SOFTWARE BELOW IS PROPRIETARY AND CONFIDENTIAL TO OPENEYE
# SCIENTIFIC SOFTWARE INC., AND IS SUBJECT TO THE FULL PROTECTION OF
# COPYRIGHT AND TRADESECRET LAW.
# Copying or modifying this software is strictly prohibited and illegal.
# Using this software without a valid license from OpenEye is strictly
# prohibited and illegal.  De-obfuscating, de-minimizing, or any other
# attempt to reverse engineer or discover the workings of this software,
# is strictly prohibited. Even if software is exposed or visible, it is
# still proprietary and confidential and the above prohibitions apply.
# This software is NOT "Sample Code". For purposes of customization or
# interoperation with other software you must use Sample Code
# specifically labeled as such.
# Please contact OpenEye at eyesopen.com/legal if you have any questions
# about this warning.


# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")


def swig_import_helper():
    from os.path import dirname
    import importlib.util

    spec = importlib.machinery.PathFinder().find_spec("_oechem", [dirname(__file__)])

    if spec is None:
        # OpenEye Import Statements
        spec = importlib.machinery.PathFinder().find_spec("libs",[dirname(__file__)])
    libs = importlib.util.module_from_spec(spec)

    import sys
    sys.modules[spec.name] = libs
    spec.loader.exec_module(libs)

    assert not sys.platform.startswith('win')

    _oeszybki = libs.OEGetModule('_oeszybki2311')
    return _oeszybki

_oeszybki = swig_import_helper()
del swig_import_helper

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


import weakref

import openeye.oechem as oechem
import openeye.oeff as oeff
OEForceFieldType_MMFF94 = _oeszybki.OEForceFieldType_MMFF94

OEForceFieldType_MMFF94S = _oeszybki.OEForceFieldType_MMFF94S

OEForceFieldType_MMFF_AMBER = _oeszybki.OEForceFieldType_MMFF_AMBER

OEForceFieldType_MMFFS_AMBER = _oeszybki.OEForceFieldType_MMFFS_AMBER

OEForceFieldType_MMFF_IEFF = _oeszybki.OEForceFieldType_MMFF_IEFF

OEForceFieldType_MMFFS_IEFF = _oeszybki.OEForceFieldType_MMFFS_IEFF

OEForceFieldType_SMIRNOFF99FROSST = _oeszybki.OEForceFieldType_SMIRNOFF99FROSST


OEForceFieldType_SMIRNOFF = OEForceFieldType_SMIRNOFF99FROSST

OEForceFieldType_PARSLEY_OPENFF100 = _oeszybki.OEForceFieldType_PARSLEY_OPENFF100

OEForceFieldType_PARSLEY_OPENFF111 = _oeszybki.OEForceFieldType_PARSLEY_OPENFF111

OEForceFieldType_PARSLEY_OPENFF121 = _oeszybki.OEForceFieldType_PARSLEY_OPENFF121

OEForceFieldType_PARSLEY_OPENFF131 = _oeszybki.OEForceFieldType_PARSLEY_OPENFF131

OEForceFieldType_FF14SB_SMIRNOFF = _oeszybki.OEForceFieldType_FF14SB_SMIRNOFF

OEComplexFFType_MMFF94 = _oeszybki.OEComplexFFType_MMFF94

OEComplexFFType_MMFF94S = _oeszybki.OEComplexFFType_MMFF94S

OEComplexFFType_MMFF_AMBER = _oeszybki.OEComplexFFType_MMFF_AMBER

OEComplexFFType_MMFFS_AMBER = _oeszybki.OEComplexFFType_MMFFS_AMBER

OEComplexFFType_FF14SB_PARSLEY = _oeszybki.OEComplexFFType_FF14SB_PARSLEY

OELigandChargeType_CURRENT = _oeszybki.OELigandChargeType_CURRENT

OELigandChargeType_AM1BCC = _oeszybki.OELigandChargeType_AM1BCC

OELigandChargeType_AM1BCCELF10 = _oeszybki.OELigandChargeType_AM1BCCELF10

OELigandChargeType_MMFF = _oeszybki.OELigandChargeType_MMFF

OESolventModel_NoSolv = _oeszybki.OESolventModel_NoSolv

OESolventModel_Sheffield = _oeszybki.OESolventModel_Sheffield

OESolventModel_PB = _oeszybki.OESolventModel_PB

OESolventModel_Cavity = _oeszybki.OESolventModel_Cavity

OEProteinElectrostatics_NoElectrostatics = _oeszybki.OEProteinElectrostatics_NoElectrostatics

OEProteinElectrostatics_GridPB = _oeszybki.OEProteinElectrostatics_GridPB

OEProteinElectrostatics_GridCoulomb = _oeszybki.OEProteinElectrostatics_GridCoulomb

OEProteinElectrostatics_ExactCoulomb = _oeszybki.OEProteinElectrostatics_ExactCoulomb

OEProteinElectrostatics_SolventPBForces = _oeszybki.OEProteinElectrostatics_SolventPBForces

OEOptType_BFGS = _oeszybki.OEOptType_BFGS

OEOptType_CG = _oeszybki.OEOptType_CG

OEOptType_SD = _oeszybki.OEOptType_SD

OEOptType_SD_BFGS = _oeszybki.OEOptType_SD_BFGS

OEOptType_SD_CG = _oeszybki.OEOptType_SD_CG

OEOptType_NEWTON = _oeszybki.OEOptType_NEWTON

OEEnvType_Gas = _oeszybki.OEEnvType_Gas

OEEnvType_SolutionSPT = _oeszybki.OEEnvType_SolutionSPT

OEEnvType_SolutionSA = _oeszybki.OEEnvType_SolutionSA

OEEnvType_Protein = _oeszybki.OEEnvType_Protein

OEEntropyMethod_QNewton = _oeszybki.OEEntropyMethod_QNewton

OEEntropyMethod_Analytic = _oeszybki.OEEntropyMethod_Analytic

OEEntropyMethod_ExternalHessian = _oeszybki.OEEntropyMethod_ExternalHessian

OEAtomicRadii_Bondi = _oeszybki.OEAtomicRadii_Bondi

OEAtomicRadii_ZAP9 = _oeszybki.OEAtomicRadii_ZAP9

OEAtomicRadii_ZAP7 = _oeszybki.OEAtomicRadii_ZAP7

OESzybkiReturnCode_Success = _oeszybki.OESzybkiReturnCode_Success

OESzybkiReturnCode_ExcessiveOverlap = _oeszybki.OESzybkiReturnCode_ExcessiveOverlap

OESzybkiReturnCode_IncompleteOpt = _oeszybki.OESzybkiReturnCode_IncompleteOpt

OESzybkiReturnCode_Failed = _oeszybki.OESzybkiReturnCode_Failed

OESzybkiReturnCode_ProteinFailedFF = _oeszybki.OESzybkiReturnCode_ProteinFailedFF

OESzybkiReturnCode_ProteinMissing3D = _oeszybki.OESzybkiReturnCode_ProteinMissing3D

OESzybkiReturnCode_ProteinMissingCharge = _oeszybki.OESzybkiReturnCode_ProteinMissingCharge

OESzybkiReturnCode_ProteinNotSet = _oeszybki.OESzybkiReturnCode_ProteinNotSet

OESzybkiReturnCode_LigandFailedFF = _oeszybki.OESzybkiReturnCode_LigandFailedFF

OESzybkiReturnCode_LigandMissing3D = _oeszybki.OESzybkiReturnCode_LigandMissing3D

OESzybkiReturnCode_LigandMissingCharge = _oeszybki.OESzybkiReturnCode_LigandMissingCharge

OESzybkiReturnCode_LigandFailedCharge = _oeszybki.OESzybkiReturnCode_LigandFailedCharge

OEOptimizationType_Cartesian = _oeszybki.OEOptimizationType_Cartesian

OEOptimizationType_PoseCartesian = _oeszybki.OEOptimizationType_PoseCartesian

OEPotentialTerms_VdW = _oeszybki.OEPotentialTerms_VdW

OEPotentialTerms_Coulomb = _oeszybki.OEPotentialTerms_Coulomb

OEPotentialTerms_Bond = _oeszybki.OEPotentialTerms_Bond

OEPotentialTerms_Bend = _oeszybki.OEPotentialTerms_Bend

OEPotentialTerms_StretchBend = _oeszybki.OEPotentialTerms_StretchBend

OEPotentialTerms_Torsion = _oeszybki.OEPotentialTerms_Torsion

OEPotentialTerms_ImproperTorsion = _oeszybki.OEPotentialTerms_ImproperTorsion

OEPotentialTerms_LigandVdW = _oeszybki.OEPotentialTerms_LigandVdW

OEPotentialTerms_LigandCoulomb = _oeszybki.OEPotentialTerms_LigandCoulomb

OEPotentialTerms_LigandBond = _oeszybki.OEPotentialTerms_LigandBond

OEPotentialTerms_LigandBend = _oeszybki.OEPotentialTerms_LigandBend

OEPotentialTerms_LigandStretchBend = _oeszybki.OEPotentialTerms_LigandStretchBend

OEPotentialTerms_LigandTorsion = _oeszybki.OEPotentialTerms_LigandTorsion

OEPotentialTerms_LigandImproperTorsion = _oeszybki.OEPotentialTerms_LigandImproperTorsion

OEPotentialTerms_ProteinVdW = _oeszybki.OEPotentialTerms_ProteinVdW

OEPotentialTerms_ProteinCoulomb = _oeszybki.OEPotentialTerms_ProteinCoulomb

OEPotentialTerms_ProteinBond = _oeszybki.OEPotentialTerms_ProteinBond

OEPotentialTerms_ProteinBend = _oeszybki.OEPotentialTerms_ProteinBend

OEPotentialTerms_ProteinStretchBend = _oeszybki.OEPotentialTerms_ProteinStretchBend

OEPotentialTerms_ProteinTorsion = _oeszybki.OEPotentialTerms_ProteinTorsion

OEPotentialTerms_ProteinImproperTorsion = _oeszybki.OEPotentialTerms_ProteinImproperTorsion

OEPotentialTerms_ProteinLigandVdW = _oeszybki.OEPotentialTerms_ProteinLigandVdW

OEPotentialTerms_ProteinLigandCoulomb = _oeszybki.OEPotentialTerms_ProteinLigandCoulomb

OEPotentialTerms_ProteinLigandInteraction = _oeszybki.OEPotentialTerms_ProteinLigandInteraction

OEPotentialTerms_SheffieldSolvation = _oeszybki.OEPotentialTerms_SheffieldSolvation

OEPotentialTerms_HarmonicConstraint = _oeszybki.OEPotentialTerms_HarmonicConstraint

OEPotentialTerms_PBSolvation = _oeszybki.OEPotentialTerms_PBSolvation

OEPotentialTerms_CavitySolvation = _oeszybki.OEPotentialTerms_CavitySolvation

OEPotentialTerms_VdWProteinLigand = _oeszybki.OEPotentialTerms_VdWProteinLigand

OEPotentialTerms_CoulombProteinLigand = _oeszybki.OEPotentialTerms_CoulombProteinLigand

OEPotentialTerms_ProteinDesolvation = _oeszybki.OEPotentialTerms_ProteinDesolvation

OEPotentialTerms_LigandDesolvation = _oeszybki.OEPotentialTerms_LigandDesolvation

OEPotentialTerms_SolventScreening = _oeszybki.OEPotentialTerms_SolventScreening

OEPotentialTerms_GridCoulomb = _oeszybki.OEPotentialTerms_GridCoulomb

OEPotentialTerms_ExactCoulomb = _oeszybki.OEPotentialTerms_ExactCoulomb

OEPotentialTerms_ProteinPseudoLigandInteraction = _oeszybki.OEPotentialTerms_ProteinPseudoLigandInteraction

OEPotentialTerms_ProteinLigandAmberVdW = _oeszybki.OEPotentialTerms_ProteinLigandAmberVdW

OEPotentialTerms_ProteinLigandAmberCoulomb = _oeszybki.OEPotentialTerms_ProteinLigandAmberCoulomb

OEPotentialTerms_TorsionHarmonicConstraint = _oeszybki.OEPotentialTerms_TorsionHarmonicConstraint

OEPotentialTerms_IEFFInteraction = _oeszybki.OEPotentialTerms_IEFFInteraction

OEPotentialTerms_InterLigandIEFF = _oeszybki.OEPotentialTerms_InterLigandIEFF

OEPotentialTerms_MMFFVdW = _oeszybki.OEPotentialTerms_MMFFVdW

OEPotentialTerms_SMIRVdW = _oeszybki.OEPotentialTerms_SMIRVdW

OEPotentialTerms_MMFFCoulomb = _oeszybki.OEPotentialTerms_MMFFCoulomb

OEPotentialTerms_SMIRCou = _oeszybki.OEPotentialTerms_SMIRCou

OEPotentialTerms_MMFFBond = _oeszybki.OEPotentialTerms_MMFFBond

OEPotentialTerms_SMIRBond = _oeszybki.OEPotentialTerms_SMIRBond

OEPotentialTerms_MMFFBend = _oeszybki.OEPotentialTerms_MMFFBend

OEPotentialTerms_SMIRAngle = _oeszybki.OEPotentialTerms_SMIRAngle

OEPotentialTerms_MMFFStretchBend = _oeszybki.OEPotentialTerms_MMFFStretchBend

OEPotentialTerms_MMFFTorsion = _oeszybki.OEPotentialTerms_MMFFTorsion

OEPotentialTerms_SMIRTor = _oeszybki.OEPotentialTerms_SMIRTor

OEPotentialTerms_MMFFImproperTorsion = _oeszybki.OEPotentialTerms_MMFFImproperTorsion

OEPotentialTerms_SMIRImp = _oeszybki.OEPotentialTerms_SMIRImp

OEPotentialTerms_LigandMMFFVdW = _oeszybki.OEPotentialTerms_LigandMMFFVdW

OEPotentialTerms_LigandSMIRNOFFVdW = _oeszybki.OEPotentialTerms_LigandSMIRNOFFVdW

OEPotentialTerms_LigandMMFFCoulomb = _oeszybki.OEPotentialTerms_LigandMMFFCoulomb

OEPotentialTerms_LigandSMIRNOFFCoulomb = _oeszybki.OEPotentialTerms_LigandSMIRNOFFCoulomb

OEPotentialTerms_LigandMMFFBond = _oeszybki.OEPotentialTerms_LigandMMFFBond

OEPotentialTerms_LigandSMIRNOFFBond = _oeszybki.OEPotentialTerms_LigandSMIRNOFFBond

OEPotentialTerms_LigandMMFFBend = _oeszybki.OEPotentialTerms_LigandMMFFBend

OEPotentialTerms_LigandSMIRNOFFBend = _oeszybki.OEPotentialTerms_LigandSMIRNOFFBend

OEPotentialTerms_LigandMMFFStretchBend = _oeszybki.OEPotentialTerms_LigandMMFFStretchBend

OEPotentialTerms_LigandMMFFTorsion = _oeszybki.OEPotentialTerms_LigandMMFFTorsion

OEPotentialTerms_LigandSMIRNOFFTorsion = _oeszybki.OEPotentialTerms_LigandSMIRNOFFTorsion

OEPotentialTerms_LigandMMFFImproperTorsion = _oeszybki.OEPotentialTerms_LigandMMFFImproperTorsion

OEPotentialTerms_LigandSMIRNOFFImproperTorsion = _oeszybki.OEPotentialTerms_LigandSMIRNOFFImproperTorsion

OEPotentialTerms_ProteinMMFFVdW = _oeszybki.OEPotentialTerms_ProteinMMFFVdW

OEPotentialTerms_ProteinSMIRNOFFVdW = _oeszybki.OEPotentialTerms_ProteinSMIRNOFFVdW

OEPotentialTerms_ProteinMMFFCoulomb = _oeszybki.OEPotentialTerms_ProteinMMFFCoulomb

OEPotentialTerms_ProteinSMIRNOFFCoulomb = _oeszybki.OEPotentialTerms_ProteinSMIRNOFFCoulomb

OEPotentialTerms_ProteinMMFFBond = _oeszybki.OEPotentialTerms_ProteinMMFFBond

OEPotentialTerms_ProteinSMIRNOFFBond = _oeszybki.OEPotentialTerms_ProteinSMIRNOFFBond

OEPotentialTerms_ProteinMMFFBend = _oeszybki.OEPotentialTerms_ProteinMMFFBend

OEPotentialTerms_ProteinSMIRNOFFBend = _oeszybki.OEPotentialTerms_ProteinSMIRNOFFBend

OEPotentialTerms_ProteinMMFFStretchBend = _oeszybki.OEPotentialTerms_ProteinMMFFStretchBend

OEPotentialTerms_ProteinMMFFTorsion = _oeszybki.OEPotentialTerms_ProteinMMFFTorsion

OEPotentialTerms_ProteinSMIRNOFFTorsion = _oeszybki.OEPotentialTerms_ProteinSMIRNOFFTorsion

OEPotentialTerms_ProteinMMFFImproperTorsion = _oeszybki.OEPotentialTerms_ProteinMMFFImproperTorsion

OEPotentialTerms_ProteinSMIRNOFFImproperTorsion = _oeszybki.OEPotentialTerms_ProteinSMIRNOFFImproperTorsion

OEPotentialTerms_ProteinLigandMMFFVdW = _oeszybki.OEPotentialTerms_ProteinLigandMMFFVdW

OEPotentialTerms_ProteinLigandSMIRNOFFVdW = _oeszybki.OEPotentialTerms_ProteinLigandSMIRNOFFVdW

OEPotentialTerms_ProteinLigandMMFFCoulomb = _oeszybki.OEPotentialTerms_ProteinLigandMMFFCoulomb

OEPotentialTerms_ProteinLigandSMIRNOFFCoulomb = _oeszybki.OEPotentialTerms_ProteinLigandSMIRNOFFCoulomb

OEPotentialTerms_Max = _oeszybki.OEPotentialTerms_Max

OEProtFlex_NoFlex = _oeszybki.OEProtFlex_NoFlex

OEProtFlex_PolarH = _oeszybki.OEProtFlex_PolarH

OEProtFlex_SideChains = _oeszybki.OEProtFlex_SideChains

OEProtFlex_Residues = _oeszybki.OEProtFlex_Residues

OEProtFlex_ResidueList = _oeszybki.OEProtFlex_ResidueList

OEProtFlex_SideChainsList = _oeszybki.OEProtFlex_SideChainsList

OEProtFlex_PolarHResList = _oeszybki.OEProtFlex_PolarHResList

OERunType_SinglePoint = _oeszybki.OERunType_SinglePoint

OERunType_TorsionsOpt = _oeszybki.OERunType_TorsionsOpt

OERunType_CartesiansOpt = _oeszybki.OERunType_CartesiansOpt

OERunType_SolidBodyOpt = _oeszybki.OERunType_SolidBodyOpt

OEFreeFormIonicState_Uncharged = _oeszybki.OEFreeFormIonicState_Uncharged

OEFreeFormIonicState_PH74 = _oeszybki.OEFreeFormIonicState_PH74

OEFreeFormIonicState_Input = _oeszybki.OEFreeFormIonicState_Input


OEFreeFormIonicState_Default = OEFreeFormIonicState_PH74

OEFreeFormReturnCode_Success = _oeszybki.OEFreeFormReturnCode_Success

OEFreeFormReturnCode_AtomTypeFailure = _oeszybki.OEFreeFormReturnCode_AtomTypeFailure

OEFreeFormReturnCode_ImplicitHydrogens = _oeszybki.OEFreeFormReturnCode_ImplicitHydrogens

OEFreeFormReturnCode_InputGeometry = _oeszybki.OEFreeFormReturnCode_InputGeometry

OEFreeFormReturnCode_No3DCoordinates = _oeszybki.OEFreeFormReturnCode_No3DCoordinates

OEFreeFormReturnCode_ConfGenFailure = _oeszybki.OEFreeFormReturnCode_ConfGenFailure

OEFreeFormReturnCode_TooManyRotors = _oeszybki.OEFreeFormReturnCode_TooManyRotors

OEFreeFormReturnCode_ChargeMismatch = _oeszybki.OEFreeFormReturnCode_ChargeMismatch

OEFreeFormReturnCode_NotSupportedCharges = _oeszybki.OEFreeFormReturnCode_NotSupportedCharges

OEFreeFormReturnCode_UnrecognizedChargeState = _oeszybki.OEFreeFormReturnCode_UnrecognizedChargeState

OEFreeFormReturnCode_UnsupportedRadiiType = _oeszybki.OEFreeFormReturnCode_UnsupportedRadiiType

OEFreeFormReturnCode_ChargeAssignFailure = _oeszybki.OEFreeFormReturnCode_ChargeAssignFailure

OEFreeFormReturnCode_GraphMismatch = _oeszybki.OEFreeFormReturnCode_GraphMismatch

OEFreeFormReturnCode_UnequalNumConfs = _oeszybki.OEFreeFormReturnCode_UnequalNumConfs

OEFreeFormReturnCode_PartnerConfNotFound = _oeszybki.OEFreeFormReturnCode_PartnerConfNotFound

OEFreeFormReturnCode_MissingPartnerConf = _oeszybki.OEFreeFormReturnCode_MissingPartnerConf

OEFreeFormReturnCode_MissingFFConfEne = _oeszybki.OEFreeFormReturnCode_MissingFFConfEne

OEFreeFormReturnCode_InvalidOptions = _oeszybki.OEFreeFormReturnCode_InvalidOptions

OEFreeFormWarning_UnspecifiedStereo = _oeszybki.OEFreeFormWarning_UnspecifiedStereo

OEFreeFormWarning_NotRemovableCharge = _oeszybki.OEFreeFormWarning_NotRemovableCharge

OEFreeFormWarning_HSamplingSkipped = _oeszybki.OEFreeFormWarning_HSamplingSkipped

OEFreeFormWarning_Missing3DCoordinates = _oeszybki.OEFreeFormWarning_Missing3DCoordinates

OEFreeFormWarning_ZeroPartialCharges = _oeszybki.OEFreeFormWarning_ZeroPartialCharges

class OESzybkiEnsembleResults(object):
    r"""Proxy of C++ OESz::OESzybkiEnsembleResults class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiEnsembleResults self) -> OESzybkiEnsembleResults
        __init__(OESzybkiEnsembleResults self, OESzybkiEnsembleResults arg2) -> OESzybkiEnsembleResults
        """
        _oeszybki.OESzybkiEnsembleResults_swiginit(self, _oeszybki.new_OESzybkiEnsembleResults(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiEnsembleResults

    def GetImpl(self, *args) -> "OESz::OESzybkiEnsembleResultsImpl const *":
        r"""
        GetImpl(OESzybkiEnsembleResults self) -> OESz::OESzybkiEnsembleResultsImpl
        GetImpl(OESzybkiEnsembleResults self) -> OESz::OESzybkiEnsembleResultsImpl const *
        """
        return _oeszybki.OESzybkiEnsembleResults_GetImpl(self, *args)

    def NumConfs(self) -> "unsigned int":
        r"""NumConfs(OESzybkiEnsembleResults self) -> unsigned int"""
        return _oeszybki.OESzybkiEnsembleResults_NumConfs(self)

    def GetTemperature(self) -> "double":
        r"""GetTemperature(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetTemperature(self)

    def GetTotalEntropy(self) -> "double":
        r"""GetTotalEntropy(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetTotalEntropy(self)

    def HasEntropy(self) -> "bool":
        r"""HasEntropy(OESzybkiEnsembleResults self) -> bool"""
        return _oeszybki.OESzybkiEnsembleResults_HasEntropy(self)

    def GetEntropicEnergy(self) -> "double":
        r"""GetEntropicEnergy(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetEntropicEnergy(self)

    def GetConfigurationalEntropy(self) -> "double":
        r"""GetConfigurationalEntropy(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetConfigurationalEntropy(self)

    def GetEnsembleLigSolvEntropy(self) -> "double":
        r"""GetEnsembleLigSolvEntropy(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetEnsembleLigSolvEntropy(self)

    def GetEnsembleLigPartialSolvEntropy(self) -> "double":
        r"""GetEnsembleLigPartialSolvEntropy(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetEnsembleLigPartialSolvEntropy(self)

    def GetEnsembleProtDesolvEntropy(self) -> "double":
        r"""GetEnsembleProtDesolvEntropy(OESzybkiEnsembleResults self) -> double"""
        return _oeszybki.OESzybkiEnsembleResults_GetEnsembleProtDesolvEntropy(self)

    def GetChargeType(self) -> "unsigned int":
        r"""GetChargeType(OESzybkiEnsembleResults self) -> unsigned int"""
        return _oeszybki.OESzybkiEnsembleResults_GetChargeType(self)

    def GetResultsForConformations(self) -> "OESystem::OEIterBase< OESz::OESzybkiResults > *":
        r"""GetResultsForConformations(OESzybkiEnsembleResults self) -> OESystem::OEIterBase< OESz::OESzybkiResults > *"""
        return _oeszybki.OESzybkiEnsembleResults_GetResultsForConformations(self)

# Register OESzybkiEnsembleResults in _oeszybki:
_oeszybki.OESzybkiEnsembleResults_swigregister(OESzybkiEnsembleResults)

class OESzybkiGeneralOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OESzybkiGeneralOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiGeneralOptions self) -> OESzybkiGeneralOptions
        __init__(OESzybkiGeneralOptions self, OESzybkiGeneralOptions arg2) -> OESzybkiGeneralOptions
        """
        _oeszybki.OESzybkiGeneralOptions_swiginit(self, _oeszybki.new_OESzybkiGeneralOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiGeneralOptions

    def Validate(self) -> "bool":
        r"""Validate(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_Validate(self)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OESzybkiGeneralOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiGeneralOptions_GetForceFieldType(self)

    def SetForceFieldType(self, value: "unsigned int const") -> "bool":
        r"""SetForceFieldType(OESzybkiGeneralOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetForceFieldType(self, value)

    def GetForceField(self) -> "OEMolPotential::OEForceField const *":
        r"""GetForceField(OESzybkiGeneralOptions self) -> OEForceField"""
        return _oeszybki.OESzybkiGeneralOptions_GetForceField(self)

    def SetForceField(self, value: "OEForceField") -> "bool":
        r"""SetForceField(OESzybkiGeneralOptions self, OEForceField value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetForceField(self, value)

    def GetIEFFCluster(self) -> "bool":
        r"""GetIEFFCluster(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_GetIEFFCluster(self)

    def SetIEFFCluster(self, value: "bool const") -> "bool":
        r"""SetIEFFCluster(OESzybkiGeneralOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetIEFFCluster(self, value)

    def GetRemoveCoulombTerms(self) -> "bool":
        r"""GetRemoveCoulombTerms(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_GetRemoveCoulombTerms(self)

    def SetRemoveCoulombTerms(self, value: "bool const") -> "bool":
        r"""SetRemoveCoulombTerms(OESzybkiGeneralOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetRemoveCoulombTerms(self, value)

    def GetIntramolecularVdWCutoff(self) -> "double":
        r"""GetIntramolecularVdWCutoff(OESzybkiGeneralOptions self) -> double"""
        return _oeszybki.OESzybkiGeneralOptions_GetIntramolecularVdWCutoff(self)

    def SetIntramolecularVdWCutoff(self, value: "double const") -> "bool":
        r"""SetIntramolecularVdWCutoff(OESzybkiGeneralOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetIntramolecularVdWCutoff(self, value)

    def GetRemoveAttractiveVdWForces(self) -> "bool":
        r"""GetRemoveAttractiveVdWForces(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_GetRemoveAttractiveVdWForces(self)

    def SetRemoveAttractiveVdWForces(self, value: "bool const") -> "bool":
        r"""SetRemoveAttractiveVdWForces(OESzybkiGeneralOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetRemoveAttractiveVdWForces(self, value)

    def GetLigandRMSDHeavy(self) -> "bool":
        r"""GetLigandRMSDHeavy(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_GetLigandRMSDHeavy(self)

    def SetLigandRMSDHeavy(self, value: "bool const") -> "bool":
        r"""SetLigandRMSDHeavy(OESzybkiGeneralOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetLigandRMSDHeavy(self, value)

    def GetCalculateGradients(self) -> "bool":
        r"""GetCalculateGradients(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_GetCalculateGradients(self)

    def SetCalculateGradients(self, value: "bool const") -> "bool":
        r"""SetCalculateGradients(OESzybkiGeneralOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetCalculateGradients(self, value)

    def GetTemperature(self) -> "double":
        r"""GetTemperature(OESzybkiGeneralOptions self) -> double"""
        return _oeszybki.OESzybkiGeneralOptions_GetTemperature(self)

    def SetTemperature(self, value: "double const") -> "bool":
        r"""SetTemperature(OESzybkiGeneralOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetTemperature(self, value)

    def GetSoluteDielectric(self) -> "double":
        r"""GetSoluteDielectric(OESzybkiGeneralOptions self) -> double"""
        return _oeszybki.OESzybkiGeneralOptions_GetSoluteDielectric(self)

    def SetSoluteDielectric(self, value: "double const") -> "bool":
        r"""SetSoluteDielectric(OESzybkiGeneralOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetSoluteDielectric(self, value)

    def GetVerbose(self) -> "bool":
        r"""GetVerbose(OESzybkiGeneralOptions self) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_GetVerbose(self)

    def SetVerbose(self, value: "bool const") -> "bool":
        r"""SetVerbose(OESzybkiGeneralOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiGeneralOptions_SetVerbose(self, value)

# Register OESzybkiGeneralOptions in _oeszybki:
_oeszybki.OESzybkiGeneralOptions_swigregister(OESzybkiGeneralOptions)

class OESzybkiOptOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OESzybkiOptOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiOptOptions self) -> OESzybkiOptOptions
        __init__(OESzybkiOptOptions self, OESzybkiOptOptions arg2) -> OESzybkiOptOptions
        """
        _oeszybki.OESzybkiOptOptions_swiginit(self, _oeszybki.new_OESzybkiOptOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiOptOptions

    def GetOptimizerType(self) -> "unsigned int":
        r"""GetOptimizerType(OESzybkiOptOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptOptions_GetOptimizerType(self)

    def SetOptimizerType(self, value: "unsigned int const") -> "bool":
        r"""SetOptimizerType(OESzybkiOptOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiOptOptions_SetOptimizerType(self, value)

    def GetMaxIter(self) -> "unsigned int":
        r"""GetMaxIter(OESzybkiOptOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptOptions_GetMaxIter(self)

    def SetMaxIter(self, value: "unsigned int const") -> "bool":
        r"""SetMaxIter(OESzybkiOptOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiOptOptions_SetMaxIter(self, value)

    def GetGradTolerance(self) -> "double":
        r"""GetGradTolerance(OESzybkiOptOptions self) -> double"""
        return _oeszybki.OESzybkiOptOptions_GetGradTolerance(self)

    def SetGradTolerance(self, value: "double const") -> "bool":
        r"""SetGradTolerance(OESzybkiOptOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiOptOptions_SetGradTolerance(self, value)

    def GetCalculateFrozenTerms(self) -> "bool":
        r"""GetCalculateFrozenTerms(OESzybkiOptOptions self) -> bool"""
        return _oeszybki.OESzybkiOptOptions_GetCalculateFrozenTerms(self)

    def SetCalculateFrozenTerms(self, value: "bool const") -> "bool":
        r"""SetCalculateFrozenTerms(OESzybkiOptOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiOptOptions_SetCalculateFrozenTerms(self, value)

# Register OESzybkiOptOptions in _oeszybki:
_oeszybki.OESzybkiOptOptions_swigregister(OESzybkiOptOptions)

class OESzybkiSolventOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OESzybkiSolventOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiSolventOptions self) -> OESzybkiSolventOptions
        __init__(OESzybkiSolventOptions self, OESzybkiSolventOptions argOpts) -> OESzybkiSolventOptions
        """
        _oeszybki.OESzybkiSolventOptions_swiginit(self, _oeszybki.new_OESzybkiSolventOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiSolventOptions

    def GetSolventModel(self) -> "unsigned int":
        r"""GetSolventModel(OESzybkiSolventOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiSolventOptions_GetSolventModel(self)

    def SetSolventModel(self, value: "unsigned int const") -> "bool":
        r"""SetSolventModel(OESzybkiSolventOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiSolventOptions_SetSolventModel(self, value)

    def GetAtomicRadiiType(self) -> "unsigned int":
        r"""GetAtomicRadiiType(OESzybkiSolventOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiSolventOptions_GetAtomicRadiiType(self)

    def SetAtomicRadiiType(self, value: "unsigned int const") -> "bool":
        r"""SetAtomicRadiiType(OESzybkiSolventOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiSolventOptions_SetAtomicRadiiType(self, value)

    def GetSolventDielectric(self) -> "double":
        r"""GetSolventDielectric(OESzybkiSolventOptions self) -> double"""
        return _oeszybki.OESzybkiSolventOptions_GetSolventDielectric(self)

    def SetSolventDielectric(self, value: "double const") -> "bool":
        r"""SetSolventDielectric(OESzybkiSolventOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiSolventOptions_SetSolventDielectric(self, value)

    def GetSaltConcentration(self) -> "double":
        r"""GetSaltConcentration(OESzybkiSolventOptions self) -> double"""
        return _oeszybki.OESzybkiSolventOptions_GetSaltConcentration(self)

    def SetSaltConcentration(self, value: "double const") -> "bool":
        r"""SetSaltConcentration(OESzybkiSolventOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiSolventOptions_SetSaltConcentration(self, value)

    def GetCavitySolventParameter(self) -> "double":
        r"""GetCavitySolventParameter(OESzybkiSolventOptions self) -> double"""
        return _oeszybki.OESzybkiSolventOptions_GetCavitySolventParameter(self)

    def SetCavitySolventParameter(self, value: "double const") -> "bool":
        r"""SetCavitySolventParameter(OESzybkiSolventOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiSolventOptions_SetCavitySolventParameter(self, value)

    def SetChargeEngine(self, argChargeEngine: "OEProton::OEChargeEngineBase const &") -> "void":
        r"""SetChargeEngine(OESzybkiSolventOptions self, OEProton::OEChargeEngineBase const & argChargeEngine)"""
        return _oeszybki.OESzybkiSolventOptions_SetChargeEngine(self, argChargeEngine)

    def SetUseCurrentCharges(self) -> "void":
        r"""SetUseCurrentCharges(OESzybkiSolventOptions self)"""
        return _oeszybki.OESzybkiSolventOptions_SetUseCurrentCharges(self)

# Register OESzybkiSolventOptions in _oeszybki:
_oeszybki.OESzybkiSolventOptions_swigregister(OESzybkiSolventOptions)

class OESzybkiProteinOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OESzybkiProteinOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiProteinOptions self) -> OESzybkiProteinOptions
        __init__(OESzybkiProteinOptions self, OESzybkiProteinOptions argOpts) -> OESzybkiProteinOptions
        """
        _oeszybki.OESzybkiProteinOptions_swiginit(self, _oeszybki.new_OESzybkiProteinOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiProteinOptions

    def Validate(self) -> "bool":
        r"""Validate(OESzybkiProteinOptions self) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_Validate(self)

    def GetExactVdWProteinLigand(self) -> "bool":
        r"""GetExactVdWProteinLigand(OESzybkiProteinOptions self) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_GetExactVdWProteinLigand(self)

    def SetExactVdWProteinLigand(self, value: "bool const") -> "bool":
        r"""SetExactVdWProteinLigand(OESzybkiProteinOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_SetExactVdWProteinLigand(self, value)

    def GetProteinDielectric(self) -> "double":
        r"""GetProteinDielectric(OESzybkiProteinOptions self) -> double"""
        return _oeszybki.OESzybkiProteinOptions_GetProteinDielectric(self)

    def SetProteinDielectric(self, value: "double const") -> "bool":
        r"""SetProteinDielectric(OESzybkiProteinOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_SetProteinDielectric(self, value)

    def GetProteinFlexibilityRange(self) -> "double":
        r"""GetProteinFlexibilityRange(OESzybkiProteinOptions self) -> double"""
        return _oeszybki.OESzybkiProteinOptions_GetProteinFlexibilityRange(self)

    def SetProteinFlexibilityRange(self, value: "double const") -> "bool":
        r"""SetProteinFlexibilityRange(OESzybkiProteinOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_SetProteinFlexibilityRange(self, value)

    def GetIntermolecularVdWCutoff(self) -> "double":
        r"""GetIntermolecularVdWCutoff(OESzybkiProteinOptions self) -> double"""
        return _oeszybki.OESzybkiProteinOptions_GetIntermolecularVdWCutoff(self)

    def SetIntermolecularVdWCutoff(self, value: "double const") -> "bool":
        r"""SetIntermolecularVdWCutoff(OESzybkiProteinOptions self, double const value) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_SetIntermolecularVdWCutoff(self, value)

    def GetProteinElectrostaticModel(self) -> "unsigned int":
        r"""GetProteinElectrostaticModel(OESzybkiProteinOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiProteinOptions_GetProteinElectrostaticModel(self)

    def SetProteinElectrostaticModel(self, value: "unsigned int const") -> "bool":
        r"""SetProteinElectrostaticModel(OESzybkiProteinOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_SetProteinElectrostaticModel(self, value)

    def GetProteinFlexibilityType(self) -> "unsigned int":
        r"""GetProteinFlexibilityType(OESzybkiProteinOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiProteinOptions_GetProteinFlexibilityType(self)

    def SetProteinFlexibilityType(self, value: "unsigned int const") -> "bool":
        r"""SetProteinFlexibilityType(OESzybkiProteinOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_SetProteinFlexibilityType(self, value)

    def AddFlexibleResidue(self, argRes: "OEResidue") -> "bool":
        r"""AddFlexibleResidue(OESzybkiProteinOptions self, OEResidue argRes) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_AddFlexibleResidue(self, argRes)

    def HasFlexibleResidues(self) -> "bool":
        r"""HasFlexibleResidues(OESzybkiProteinOptions self) -> bool"""
        return _oeszybki.OESzybkiProteinOptions_HasFlexibleResidues(self)

    def ClearFlexibleResidues(self) -> "void":
        r"""ClearFlexibleResidues(OESzybkiProteinOptions self)"""
        return _oeszybki.OESzybkiProteinOptions_ClearFlexibleResidues(self)

# Register OESzybkiProteinOptions in _oeszybki:
_oeszybki.OESzybkiProteinOptions_swigregister(OESzybkiProteinOptions)

class OESzybkiOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OESzybkiOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiOptions self) -> OESzybkiOptions
        __init__(OESzybkiOptions self, OESzybkiOptions arg2) -> OESzybkiOptions
        """
        _oeszybki.OESzybkiOptions_swiginit(self, _oeszybki.new_OESzybkiOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiOptions

    def Validate(self) -> "bool":
        r"""Validate(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_Validate(self)

    def GetUseCurrentCharges(self) -> "bool":
        r"""GetUseCurrentCharges(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetUseCurrentCharges(self)

    def SetUseCurrentCharges(self, value: "bool const") -> "bool":
        r"""SetUseCurrentCharges(OESzybkiOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiOptions_SetUseCurrentCharges(self, value)

    def GetEveryConfAM1BCCCharges(self) -> "bool":
        r"""GetEveryConfAM1BCCCharges(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetEveryConfAM1BCCCharges(self)

    def SetEveryConfAM1BCCCharges(self, value: "bool const") -> "bool":
        r"""SetEveryConfAM1BCCCharges(OESzybkiOptions self, bool const value) -> bool"""
        return _oeszybki.OESzybkiOptions_SetEveryConfAM1BCCCharges(self, value)

    def GetRunType(self) -> "unsigned int":
        r"""GetRunType(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetRunType(self)

    def SetRunType(self, value: "unsigned int const") -> "bool":
        r"""SetRunType(OESzybkiOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OESzybkiOptions_SetRunType(self, value)

    def SetGeneralOptions(self, opts: "OESzybkiGeneralOptions") -> "void":
        r"""SetGeneralOptions(OESzybkiOptions self, OESzybkiGeneralOptions opts)"""
        return _oeszybki.OESzybkiOptions_SetGeneralOptions(self, opts)

    def GetGeneralOptions(self, *args) -> "OESz::OESzybkiGeneralOptions const &":
        r"""
        GetGeneralOptions(OESzybkiOptions self) -> OESzybkiGeneralOptions
        GetGeneralOptions(OESzybkiOptions self) -> OESzybkiGeneralOptions
        """
        return _oeszybki.OESzybkiOptions_GetGeneralOptions(self, *args)

    def SetOptOptions(self, opts: "OESzybkiOptOptions") -> "void":
        r"""SetOptOptions(OESzybkiOptions self, OESzybkiOptOptions opts)"""
        return _oeszybki.OESzybkiOptions_SetOptOptions(self, opts)

    def GetOptOptions(self, *args) -> "OESz::OESzybkiOptOptions const &":
        r"""
        GetOptOptions(OESzybkiOptions self) -> OESzybkiOptOptions
        GetOptOptions(OESzybkiOptions self) -> OESzybkiOptOptions
        """
        return _oeszybki.OESzybkiOptions_GetOptOptions(self, *args)

    def SetSolventOptions(self, opts: "OESzybkiSolventOptions") -> "void":
        r"""SetSolventOptions(OESzybkiOptions self, OESzybkiSolventOptions opts)"""
        return _oeszybki.OESzybkiOptions_SetSolventOptions(self, opts)

    def GetSolventOptions(self, *args) -> "OESz::OESzybkiSolventOptions const &":
        r"""
        GetSolventOptions(OESzybkiOptions self) -> OESzybkiSolventOptions
        GetSolventOptions(OESzybkiOptions self) -> OESzybkiSolventOptions
        """
        return _oeszybki.OESzybkiOptions_GetSolventOptions(self, *args)

    def SetProteinOptions(self, opts: "OESzybkiProteinOptions") -> "void":
        r"""SetProteinOptions(OESzybkiOptions self, OESzybkiProteinOptions opts)"""
        return _oeszybki.OESzybkiOptions_SetProteinOptions(self, opts)

    def GetProteinOptions(self, *args) -> "OESz::OESzybkiProteinOptions const &":
        r"""
        GetProteinOptions(OESzybkiOptions self) -> OESzybkiProteinOptions
        GetProteinOptions(OESzybkiOptions self) -> OESzybkiProteinOptions
        """
        return _oeszybki.OESzybkiOptions_GetProteinOptions(self, *args)

    def SetForceFieldType(self, ff: "unsigned int") -> "bool":
        r"""SetForceFieldType(OESzybkiOptions self, unsigned int ff) -> bool"""
        return _oeszybki.OESzybkiOptions_SetForceFieldType(self, ff)

    def SetIEFFCluster(self, arg2: "bool") -> "bool":
        r"""SetIEFFCluster(OESzybkiOptions self, bool arg2) -> bool"""
        return _oeszybki.OESzybkiOptions_SetIEFFCluster(self, arg2)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetForceFieldType(self)

    def GetIEFFCluster(self) -> "bool":
        r"""GetIEFFCluster(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetIEFFCluster(self)

    def SetOptimizerType(self, type: "unsigned int") -> "void":
        r"""SetOptimizerType(OESzybkiOptions self, unsigned int type)"""
        return _oeszybki.OESzybkiOptions_SetOptimizerType(self, type)

    def GetOptimizerType(self) -> "unsigned int":
        r"""GetOptimizerType(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetOptimizerType(self)

    def SetOptCriteria(self, itmax: "unsigned int", tolgrad: "double") -> "void":
        r"""SetOptCriteria(OESzybkiOptions self, unsigned int itmax, double tolgrad)"""
        return _oeszybki.OESzybkiOptions_SetOptCriteria(self, itmax, tolgrad)

    def GetMaxIter(self) -> "unsigned int":
        r"""GetMaxIter(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetMaxIter(self)

    def GetGradTolerance(self) -> "double":
        r"""GetGradTolerance(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetGradTolerance(self)

    def SetRemoveCoulombTerms(self, remove: "bool") -> "void":
        r"""SetRemoveCoulombTerms(OESzybkiOptions self, bool remove)"""
        return _oeszybki.OESzybkiOptions_SetRemoveCoulombTerms(self, remove)

    def GetRemoveCoulombTerms(self) -> "bool":
        r"""GetRemoveCoulombTerms(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetRemoveCoulombTerms(self)

    def SetProteinElectrostaticModel(self, type: "unsigned int") -> "void":
        r"""SetProteinElectrostaticModel(OESzybkiOptions self, unsigned int type)"""
        return _oeszybki.OESzybkiOptions_SetProteinElectrostaticModel(self, type)

    def GetProteinElectrostaticModel(self) -> "unsigned int":
        r"""GetProteinElectrostaticModel(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetProteinElectrostaticModel(self)

    def SetProteinDielectric(self, pd: "double") -> "void":
        r"""SetProteinDielectric(OESzybkiOptions self, double pd)"""
        return _oeszybki.OESzybkiOptions_SetProteinDielectric(self, pd)

    def GetProteinDielectric(self) -> "double":
        r"""GetProteinDielectric(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetProteinDielectric(self)

    def SetSolventDielectric(self, sd: "double") -> "void":
        r"""SetSolventDielectric(OESzybkiOptions self, double sd)"""
        return _oeszybki.OESzybkiOptions_SetSolventDielectric(self, sd)

    def GetSolventDielectric(self) -> "double":
        r"""GetSolventDielectric(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetSolventDielectric(self)

    def SetSolventModel(self, type: "unsigned int", outdi: "float"=80.0, indi: "float"=1.0) -> "void":
        r"""SetSolventModel(OESzybkiOptions self, unsigned int type, float outdi=80.0, float indi=1.0)"""
        return _oeszybki.OESzybkiOptions_SetSolventModel(self, type, outdi, indi)

    def GetSolventModel(self) -> "unsigned int":
        r"""GetSolventModel(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetSolventModel(self)

    def SetCavitySolventParameter(self, area_factor: "double") -> "void":
        r"""SetCavitySolventParameter(OESzybkiOptions self, double area_factor)"""
        return _oeszybki.OESzybkiOptions_SetCavitySolventParameter(self, area_factor)

    def GetCavitySolventParameter(self) -> "double":
        r"""GetCavitySolventParameter(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetCavitySolventParameter(self)

    def GetSolventDielectricForLigandSolvation(self) -> "float":
        r"""GetSolventDielectricForLigandSolvation(OESzybkiOptions self) -> float"""
        return _oeszybki.OESzybkiOptions_GetSolventDielectricForLigandSolvation(self)

    def GetSoluteDielectric(self) -> "float":
        r"""GetSoluteDielectric(OESzybkiOptions self) -> float"""
        return _oeszybki.OESzybkiOptions_GetSoluteDielectric(self)

    def SetAtomicRadii(self, type: "unsigned int") -> "void":
        r"""SetAtomicRadii(OESzybkiOptions self, unsigned int type)"""
        return _oeszybki.OESzybkiOptions_SetAtomicRadii(self, type)

    def GetAtomicRadiiType(self) -> "unsigned int":
        r"""GetAtomicRadiiType(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetAtomicRadiiType(self)

    def SetExactVdWProteinLigand(self, exactvdw: "bool") -> "bool":
        r"""SetExactVdWProteinLigand(OESzybkiOptions self, bool exactvdw) -> bool"""
        return _oeszybki.OESzybkiOptions_SetExactVdWProteinLigand(self, exactvdw)

    def GetExactVdWProteinLigand(self) -> "bool":
        r"""GetExactVdWProteinLigand(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetExactVdWProteinLigand(self)

    def SetIntermolecularVdWCutoff(self, r: "double") -> "void":
        r"""SetIntermolecularVdWCutoff(OESzybkiOptions self, double r)"""
        return _oeszybki.OESzybkiOptions_SetIntermolecularVdWCutoff(self, r)

    def GetIntermolecularVdWCutoff(self) -> "double":
        r"""GetIntermolecularVdWCutoff(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetIntermolecularVdWCutoff(self)

    def SetIntramolecularVdWCutoff(self, r: "double") -> "void":
        r"""SetIntramolecularVdWCutoff(OESzybkiOptions self, double r)"""
        return _oeszybki.OESzybkiOptions_SetIntramolecularVdWCutoff(self, r)

    def GetIntramolecularVdWCutoff(self) -> "double":
        r"""GetIntramolecularVdWCutoff(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetIntramolecularVdWCutoff(self)

    def SetSaltConcentration(self, sc: "float") -> "void":
        r"""SetSaltConcentration(OESzybkiOptions self, float sc)"""
        return _oeszybki.OESzybkiOptions_SetSaltConcentration(self, sc)

    def GetSaltConcentration(self) -> "float":
        r"""GetSaltConcentration(OESzybkiOptions self) -> float"""
        return _oeszybki.OESzybkiOptions_GetSaltConcentration(self)

    def SetProteinFlexibilityType(self, arg2: "unsigned int") -> "bool":
        r"""SetProteinFlexibilityType(OESzybkiOptions self, unsigned int arg2) -> bool"""
        return _oeszybki.OESzybkiOptions_SetProteinFlexibilityType(self, arg2)

    def GetProteinFlexibilityType(self) -> "unsigned int":
        r"""GetProteinFlexibilityType(OESzybkiOptions self) -> unsigned int"""
        return _oeszybki.OESzybkiOptions_GetProteinFlexibilityType(self)

    def SetProteinFlexibilityRange(self, dist: "double") -> "bool":
        r"""SetProteinFlexibilityRange(OESzybkiOptions self, double dist) -> bool"""
        return _oeszybki.OESzybkiOptions_SetProteinFlexibilityRange(self, dist)

    def GetProteinFlexibilityRange(self) -> "double":
        r"""GetProteinFlexibilityRange(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetProteinFlexibilityRange(self)

    def AddFlexibleResidue(self, res: "OEResidue") -> "bool":
        r"""AddFlexibleResidue(OESzybkiOptions self, OEResidue res) -> bool"""
        return _oeszybki.OESzybkiOptions_AddFlexibleResidue(self, res)

    def HasFlexibleResidues(self) -> "bool":
        r"""HasFlexibleResidues(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_HasFlexibleResidues(self)

    def ClearFlexibleResidues(self) -> "void":
        r"""ClearFlexibleResidues(OESzybkiOptions self)"""
        return _oeszybki.OESzybkiOptions_ClearFlexibleResidues(self)

    def SetCalculateFrozenTerms(self, calc: "bool") -> "void":
        r"""SetCalculateFrozenTerms(OESzybkiOptions self, bool calc)"""
        return _oeszybki.OESzybkiOptions_SetCalculateFrozenTerms(self, calc)

    def GetCalculateFrozenTerms(self) -> "bool":
        r"""GetCalculateFrozenTerms(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetCalculateFrozenTerms(self)

    def SetLigandRMSDHeavy(self, state: "bool") -> "void":
        r"""SetLigandRMSDHeavy(OESzybkiOptions self, bool state)"""
        return _oeszybki.OESzybkiOptions_SetLigandRMSDHeavy(self, state)

    def GetLigandRMSDHeavy(self) -> "bool":
        r"""GetLigandRMSDHeavy(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetLigandRMSDHeavy(self)

    def SetCalculateGradients(self, exportg: "bool") -> "void":
        r"""SetCalculateGradients(OESzybkiOptions self, bool exportg)"""
        return _oeszybki.OESzybkiOptions_SetCalculateGradients(self, exportg)

    def GetCalculateGradients(self) -> "bool":
        r"""GetCalculateGradients(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetCalculateGradients(self)

    def SetTemperature(self, t: "double") -> "void":
        r"""SetTemperature(OESzybkiOptions self, double t)"""
        return _oeszybki.OESzybkiOptions_SetTemperature(self, t)

    def GetTemperature(self) -> "double":
        r"""GetTemperature(OESzybkiOptions self) -> double"""
        return _oeszybki.OESzybkiOptions_GetTemperature(self)

    def SetVerbose(self, verbose: "bool") -> "void":
        r"""SetVerbose(OESzybkiOptions self, bool verbose)"""
        return _oeszybki.OESzybkiOptions_SetVerbose(self, verbose)

    def GetVerbose(self) -> "bool":
        r"""GetVerbose(OESzybkiOptions self) -> bool"""
        return _oeszybki.OESzybkiOptions_GetVerbose(self)

# Register OESzybkiOptions in _oeszybki:
_oeszybki.OESzybkiOptions_swigregister(OESzybkiOptions)

class OESzybki(object):
    r"""Proxy of C++ OESz::OESzybki class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybki self, unsigned int force_field=) -> OESzybki
        __init__(OESzybki self, OESzybkiOptions opts) -> OESzybki
        """
        _oeszybki.OESzybki_swiginit(self, _oeszybki.new_OESzybki(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybki

    def SetForceFieldType(self, ff: "unsigned int") -> "bool":
        r"""SetForceFieldType(OESzybki self, unsigned int ff) -> bool"""
        return _oeszybki.OESzybki_SetForceFieldType(self, ff)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OESzybki self) -> unsigned int"""
        return _oeszybki.OESzybki_GetForceFieldType(self)

    def SetRunType(self, type: "unsigned int") -> "bool":
        r"""SetRunType(OESzybki self, unsigned int type) -> bool"""
        return _oeszybki.OESzybki_SetRunType(self, type)

    def GetRunType(self) -> "unsigned int":
        r"""GetRunType(OESzybki self) -> unsigned int"""
        return _oeszybki.OESzybki_GetRunType(self)

    def SetOptimizerType(self, type: "unsigned int") -> "void":
        r"""SetOptimizerType(OESzybki self, unsigned int type)"""
        return _oeszybki.OESzybki_SetOptimizerType(self, type)

    def GetOptimizerType(self) -> "unsigned int":
        r"""GetOptimizerType(OESzybki self) -> unsigned int"""
        return _oeszybki.OESzybki_GetOptimizerType(self)

    def SetOptCriteria(self, imax: "unsigned int", gtol: "double"=0.0) -> "void":
        r"""SetOptCriteria(OESzybki self, unsigned int imax, double gtol=0.0)"""
        return _oeszybki.OESzybki_SetOptCriteria(self, imax, gtol)

    def __call__(self, *args) -> "bool":
        r"""
        __call__(OESzybki self, OEMCMolBase m) -> OESystem::OEIterBase< OESz::OESzybkiResults >
        __call__(OESzybki self, OEMolBase m, OESzybkiResults res) -> bool
        """
        return _oeszybki.OESzybki___call__(self, *args)

    def GetSolutionEntropy(self, *args) -> "double":
        r"""GetSolutionEntropy(OESzybki self, OEMCMolBase m, double & sconf, double & ssolv, unsigned int method=, unsigned int env=) -> double"""
        return _oeszybki.OESzybki_GetSolutionEntropy(self, *args)

    def ImportHessian(self, source: "double const *", dimension: "unsigned int") -> "bool":
        r"""ImportHessian(OESzybki self, double const * source, unsigned int dimension) -> bool"""
        return _oeszybki.OESzybki_ImportHessian(self, source, dimension)

    def GetProteinBoundLigandEntropy(self, m: "OEMCMolBase", sconf: "double &", psole: "double &", pdesole: "double &") -> "double":
        r"""GetProteinBoundLigandEntropy(OESzybki self, OEMCMolBase m, double & sconf, double & psole, double & pdesole) -> double"""
        return _oeszybki.OESzybki_GetProteinBoundLigandEntropy(self, m, sconf, psole, pdesole)

    def GetEntropy(self, *args) -> "double":
        r"""
        GetEntropy(OESzybki self, OEMCMolBase m, unsigned int method=, unsigned int env=) -> double
        GetEntropy(OESzybki self, OEMCMolBase m, OESzybkiEnsembleResults r, unsigned int method=, unsigned int env=) -> double
        """
        return _oeszybki.OESzybki_GetEntropy(self, *args)

    def SetTemperature(self, t: "double") -> "void":
        r"""SetTemperature(OESzybki self, double t)"""
        return _oeszybki.OESzybki_SetTemperature(self, t)

    def GetTemperature(self) -> "double":
        r"""GetTemperature(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetTemperature(self)

    def SetRemoveCoulombTerms(self, state: "bool") -> "bool":
        r"""SetRemoveCoulombTerms(OESzybki self, bool state) -> bool"""
        return _oeszybki.OESzybki_SetRemoveCoulombTerms(self, state)

    def GetRemoveCoulombTerms(self) -> "bool":
        r"""GetRemoveCoulombTerms(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetRemoveCoulombTerms(self)

    def SetRemoveAttractiveVdWForces(self, state: "bool") -> "bool":
        r"""SetRemoveAttractiveVdWForces(OESzybki self, bool state) -> bool"""
        return _oeszybki.OESzybki_SetRemoveAttractiveVdWForces(self, state)

    def GetRemoveAttractiveVdWForces(self) -> "bool":
        r"""GetRemoveAttractiveVdWForces(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetRemoveAttractiveVdWForces(self)

    def SetHarmonicConstraints(self, *args) -> "bool":
        r"""SetHarmonicConstraints(OESzybki self, double kc, double kd=0.0, OEUnaryAtomPred pred=OEChem::OEIsHeavy()) -> bool"""
        return _oeszybki.OESzybki_SetHarmonicConstraints(self, *args)

    def ClearHarmonicConstraints(self) -> "bool":
        r"""ClearHarmonicConstraints(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_ClearHarmonicConstraints(self)

    def SetTorsionConstraint(self, *args) -> "bool":
        r"""
        SetTorsionConstraint(OESzybki self, std::string const & tor_pattern, double k, double phi0) -> bool
        SetTorsionConstraint(OESzybki self, OETorsion tor, double k) -> bool
        """
        return _oeszybki.OESzybki_SetTorsionConstraint(self, *args)

    def ClearTorsionConstraint(self) -> "bool":
        r"""ClearTorsionConstraint(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_ClearTorsionConstraint(self)

    def FixAtoms(self, *args) -> "bool":
        r"""
        FixAtoms(OESzybki self, std::string const & smarts_pattern) -> bool
        FixAtoms(OESzybki self, OEUnaryAtomPred arg2) -> bool
        """
        return _oeszybki.OESzybki_FixAtoms(self, *args)

    def GetFixPattern(self) -> "char const *":
        r"""GetFixPattern(OESzybki self) -> char const *"""
        return _oeszybki.OESzybki_GetFixPattern(self)

    def GetFixPredicate(self) -> "OESystem::OEUnaryPredicate< OEChem::OEAtomBase > const *":
        r"""GetFixPredicate(OESzybki self) -> OEUnaryAtomPred"""
        return _oeszybki.OESzybki_GetFixPredicate(self)

    def ClearFixAtoms(self) -> "void":
        r"""ClearFixAtoms(OESzybki self)"""
        return _oeszybki.OESzybki_ClearFixAtoms(self)

    def SetSolventModel(self, type: "unsigned int", outdi: "float"=80.0, indi: "float"=1.0) -> "bool":
        r"""SetSolventModel(OESzybki self, unsigned int type, float outdi=80.0, float indi=1.0) -> bool"""
        return _oeszybki.OESzybki_SetSolventModel(self, type, outdi, indi)

    def GetSolventModel(self) -> "unsigned int":
        r"""GetSolventModel(OESzybki self) -> unsigned int"""
        return _oeszybki.OESzybki_GetSolventModel(self)

    def SetSheffieldParameters(self, a: "double", b: "double", indi: "double"=1.0) -> "void":
        r"""SetSheffieldParameters(OESzybki self, double a, double b, double indi=1.0)"""
        return _oeszybki.OESzybki_SetSheffieldParameters(self, a, b, indi)

    def SetCavitySolventParameter(self, area_factor: "double") -> "void":
        r"""SetCavitySolventParameter(OESzybki self, double area_factor)"""
        return _oeszybki.OESzybki_SetCavitySolventParameter(self, area_factor)

    def GetCavitySolventParameter(self) -> "double":
        r"""GetCavitySolventParameter(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetCavitySolventParameter(self)

    def SetUseCurrentCharges(self, state: "bool") -> "void":
        r"""SetUseCurrentCharges(OESzybki self, bool state)"""
        return _oeszybki.OESzybki_SetUseCurrentCharges(self, state)

    def GetUseCurrentCharges(self) -> "bool":
        r"""GetUseCurrentCharges(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetUseCurrentCharges(self)

    def SetEveryConfAM1BCCCharges(self, state: "bool") -> "void":
        r"""SetEveryConfAM1BCCCharges(OESzybki self, bool state)"""
        return _oeszybki.OESzybki_SetEveryConfAM1BCCCharges(self, state)

    def GetEveryConfAM1BCCCharges(self) -> "bool":
        r"""GetEveryConfAM1BCCCharges(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetEveryConfAM1BCCCharges(self)

    def LoadPotentialGrid(self, fname: "std::string const &") -> "void":
        r"""LoadPotentialGrid(OESzybki self, std::string const & fname)"""
        return _oeszybki.OESzybki_LoadPotentialGrid(self, fname)

    def SavePotentialGrid(self, fname: "std::string const &") -> "void":
        r"""SavePotentialGrid(OESzybki self, std::string const & fname)"""
        return _oeszybki.OESzybki_SavePotentialGrid(self, fname)

    def SetProtein(self, protein: "OEMolBase") -> "bool":
        r"""SetProtein(OESzybki self, OEMolBase protein) -> bool"""
        return _oeszybki.OESzybki_SetProtein(self, protein)

    def GetProtein(self, p: "OEMolBase") -> "bool":
        r"""GetProtein(OESzybki self, OEMolBase p) -> bool"""
        return _oeszybki.OESzybki_GetProtein(self, p)

    def UnsetProtein(self) -> "void":
        r"""UnsetProtein(OESzybki self)"""
        return _oeszybki.OESzybki_UnsetProtein(self)

    def SetProteinElectrostaticModel(self, type: "unsigned int") -> "void":
        r"""SetProteinElectrostaticModel(OESzybki self, unsigned int type)"""
        return _oeszybki.OESzybki_SetProteinElectrostaticModel(self, type)

    def GetProteinElectrostaticModel(self) -> "unsigned int":
        r"""GetProteinElectrostaticModel(OESzybki self) -> unsigned int"""
        return _oeszybki.OESzybki_GetProteinElectrostaticModel(self)

    def SetAtomicRadii(self, type: "unsigned int") -> "void":
        r"""SetAtomicRadii(OESzybki self, unsigned int type)"""
        return _oeszybki.OESzybki_SetAtomicRadii(self, type)

    def GetAtomicRadiiType(self) -> "unsigned int":
        r"""GetAtomicRadiiType(OESzybki self) -> unsigned int"""
        return _oeszybki.OESzybki_GetAtomicRadiiType(self)

    def SetExactVdWProteinLigand(self, state: "bool") -> "void":
        r"""SetExactVdWProteinLigand(OESzybki self, bool state)"""
        return _oeszybki.OESzybki_SetExactVdWProteinLigand(self, state)

    def GetExactVdWProteinLigand(self) -> "bool":
        r"""GetExactVdWProteinLigand(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetExactVdWProteinLigand(self)

    def SetIntermolecularVdWCutoff(self, r: "double") -> "void":
        r"""SetIntermolecularVdWCutoff(OESzybki self, double r)"""
        return _oeszybki.OESzybki_SetIntermolecularVdWCutoff(self, r)

    def GetIntermolecularVdWCutoff(self) -> "double":
        r"""GetIntermolecularVdWCutoff(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetIntermolecularVdWCutoff(self)

    def SetProteinVdWCutoff(self, r: "double") -> "void":
        r"""SetProteinVdWCutoff(OESzybki self, double r)"""
        return _oeszybki.OESzybki_SetProteinVdWCutoff(self, r)

    def GetProteinVdWCutoff(self) -> "double":
        r"""GetProteinVdWCutoff(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetProteinVdWCutoff(self)

    def SetIntramolecularVdWCutoff(self, r: "double") -> "void":
        r"""SetIntramolecularVdWCutoff(OESzybki self, double r)"""
        return _oeszybki.OESzybki_SetIntramolecularVdWCutoff(self, r)

    def GetIntramolecularVdWCutoff(self) -> "double":
        r"""GetIntramolecularVdWCutoff(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetIntramolecularVdWCutoff(self)

    def SetProteinDielectric(self, indi: "double") -> "void":
        r"""SetProteinDielectric(OESzybki self, double indi)"""
        return _oeszybki.OESzybki_SetProteinDielectric(self, indi)

    def GetProteinDielectric(self) -> "double":
        r"""GetProteinDielectric(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetProteinDielectric(self)

    def SetSolventDielectric(self, outdi: "double") -> "void":
        r"""SetSolventDielectric(OESzybki self, double outdi)"""
        return _oeszybki.OESzybki_SetSolventDielectric(self, outdi)

    def GetSolventDielectric(self) -> "double":
        r"""GetSolventDielectric(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetSolventDielectric(self)

    def SetSaltConcentration(self, sc: "float") -> "bool":
        r"""SetSaltConcentration(OESzybki self, float sc) -> bool"""
        return _oeszybki.OESzybki_SetSaltConcentration(self, sc)

    def GetSaltConcentration(self) -> "float":
        r"""GetSaltConcentration(OESzybki self) -> float"""
        return _oeszybki.OESzybki_GetSaltConcentration(self)

    def SetSideChainsFlexibility(self, dist: "double") -> "void":
        r"""SetSideChainsFlexibility(OESzybki self, double dist)"""
        return _oeszybki.OESzybki_SetSideChainsFlexibility(self, dist)

    def SetPolarHFlexibility(self, dist: "double") -> "void":
        r"""SetPolarHFlexibility(OESzybki self, double dist)"""
        return _oeszybki.OESzybki_SetPolarHFlexibility(self, dist)

    def SetResidueFlexibility(self, dist: "double") -> "void":
        r"""SetResidueFlexibility(OESzybki self, double dist)"""
        return _oeszybki.OESzybki_SetResidueFlexibility(self, dist)

    def GetSideChainsFlexibility(self) -> "double":
        r"""GetSideChainsFlexibility(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetSideChainsFlexibility(self)

    def GetPolarHFlexibility(self) -> "double":
        r"""GetPolarHFlexibility(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetPolarHFlexibility(self)

    def GetResidueFlexibility(self) -> "double":
        r"""GetResidueFlexibility(OESzybki self) -> double"""
        return _oeszybki.OESzybki_GetResidueFlexibility(self)

    def SetVerbose(self, verb: "bool") -> "void":
        r"""SetVerbose(OESzybki self, bool verb)"""
        return _oeszybki.OESzybki_SetVerbose(self, verb)

    def GetVerbose(self) -> "bool":
        r"""GetVerbose(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetVerbose(self)

    def SetCalculateFrozenTerms(self, state: "bool") -> "void":
        r"""SetCalculateFrozenTerms(OESzybki self, bool state)"""
        return _oeszybki.OESzybki_SetCalculateFrozenTerms(self, state)

    def GetCalculateFrozenTerms(self) -> "bool":
        r"""GetCalculateFrozenTerms(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetCalculateFrozenTerms(self)

    def SetLigandRMSDHeavy(self, state: "bool") -> "void":
        r"""SetLigandRMSDHeavy(OESzybki self, bool state)"""
        return _oeszybki.OESzybki_SetLigandRMSDHeavy(self, state)

    def GetLigandRMSDHeavy(self) -> "bool":
        r"""GetLigandRMSDHeavy(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetLigandRMSDHeavy(self)

    def SetCalculateGradients(self, state: "bool") -> "bool":
        r"""SetCalculateGradients(OESzybki self, bool state) -> bool"""
        return _oeszybki.OESzybki_SetCalculateGradients(self, state)

    def GetCalculateGradients(self) -> "bool":
        r"""GetCalculateGradients(OESzybki self) -> bool"""
        return _oeszybki.OESzybki_GetCalculateGradients(self)

    def GetHarmonicConstraints(self) -> "PyObject *":
        r"""GetHarmonicConstraints(OESzybki self) -> PyObject *"""
        return _oeszybki.OESzybki_GetHarmonicConstraints(self)

    def GetSheffieldParameters(self) -> "PyObject *":
        r"""GetSheffieldParameters(OESzybki self) -> PyObject *"""
        return _oeszybki.OESzybki_GetSheffieldParameters(self)

# Register OESzybki in _oeszybki:
_oeszybki.OESzybki_swigregister(OESzybki)


def OEGetEnergyTermName(arg1: "unsigned int") -> "char const *":
    r"""OEGetEnergyTermName(unsigned int arg1) -> char const *"""
    return _oeszybki.OEGetEnergyTermName(arg1)
class OESzybkiResults(object):
    r"""Proxy of C++ OESz::OESzybkiResults class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiResults self) -> OESzybkiResults
        __init__(OESzybkiResults self, OESzybkiResults arg2) -> OESzybkiResults
        """
        _oeszybki.OESzybkiResults_swiginit(self, _oeszybki.new_OESzybkiResults(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiResults

    def GetConfIdx(self) -> "unsigned int":
        r"""GetConfIdx(OESzybkiResults self) -> unsigned int"""
        return _oeszybki.OESzybkiResults_GetConfIdx(self)

    def GetNumRotors(self) -> "unsigned int":
        r"""GetNumRotors(OESzybkiResults self) -> unsigned int"""
        return _oeszybki.OESzybkiResults_GetNumRotors(self)

    def GetNumFixAtoms(self) -> "unsigned int":
        r"""GetNumFixAtoms(OESzybkiResults self) -> unsigned int"""
        return _oeszybki.OESzybkiResults_GetNumFixAtoms(self)

    def GetNumCycles(self) -> "unsigned int":
        r"""GetNumCycles(OESzybkiResults self) -> unsigned int"""
        return _oeszybki.OESzybkiResults_GetNumCycles(self)

    def GetCPUTime(self) -> "float":
        r"""GetCPUTime(OESzybkiResults self) -> float"""
        return _oeszybki.OESzybkiResults_GetCPUTime(self)

    def GetInitialRMSGradient(self) -> "double":
        r"""GetInitialRMSGradient(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetInitialRMSGradient(self)

    def GetFinalRMSGradient(self) -> "double":
        r"""GetFinalRMSGradient(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetFinalRMSGradient(self)

    def GetGradients(self, gradients: "double *", atom: "OEAtomBase") -> "bool":
        r"""GetGradients(OESzybkiResults self, double * gradients, OEAtomBase atom) -> bool"""
        return _oeszybki.OESzybkiResults_GetGradients(self, gradients, atom)

    def GetRMSD(self) -> "double":
        r"""GetRMSD(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetRMSD(self)

    def GetProteinRMSD(self) -> "double":
        r"""GetProteinRMSD(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetProteinRMSD(self)

    def GetMaxDisplacement(self) -> "double":
        r"""GetMaxDisplacement(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetMaxDisplacement(self)

    def GetInitialTotalPotential(self) -> "double":
        r"""GetInitialTotalPotential(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetInitialTotalPotential(self)

    def GetFinalTotalPotential(self) -> "double":
        r"""GetFinalTotalPotential(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetFinalTotalPotential(self)

    def GetEnergyTerm(self, arg2: "unsigned int") -> "double":
        r"""GetEnergyTerm(OESzybkiResults self, unsigned int arg2) -> double"""
        return _oeszybki.OESzybkiResults_GetEnergyTerm(self, arg2)

    def IsActiveTerm(self, arg2: "unsigned int") -> "bool":
        r"""IsActiveTerm(OESzybkiResults self, unsigned int arg2) -> bool"""
        return _oeszybki.OESzybkiResults_IsActiveTerm(self, arg2)

    def GetTotalEnergy(self) -> "double":
        r"""GetTotalEnergy(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetTotalEnergy(self)

    def GetInterEnergy(self) -> "double":
        r"""GetInterEnergy(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetInterEnergy(self)

    def GetTotalEnergyWithHarmConstraint(self) -> "double":
        r"""GetTotalEnergyWithHarmConstraint(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetTotalEnergyWithHarmConstraint(self)

    def GetIntramolecularLigandEnergy(self) -> "double":
        r"""GetIntramolecularLigandEnergy(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetIntramolecularLigandEnergy(self)

    def GetConfFreeEnergyFromEnsemble(self) -> "double":
        r"""GetConfFreeEnergyFromEnsemble(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetConfFreeEnergyFromEnsemble(self)

    def IsUnique(self) -> "bool":
        r"""IsUnique(OESzybkiResults self) -> bool"""
        return _oeszybki.OESzybkiResults_IsUnique(self)

    def GetVibEntropy(self) -> "double":
        r"""GetVibEntropy(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetVibEntropy(self)

    def GetRotEntropy(self) -> "double":
        r"""GetRotEntropy(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetRotEntropy(self)

    def GetLnQvib(self) -> "double":
        r"""GetLnQvib(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetLnQvib(self)

    def GetLnQrot(self) -> "double":
        r"""GetLnQrot(OESzybkiResults self) -> double"""
        return _oeszybki.OESzybkiResults_GetLnQrot(self)

    def Clear(self) -> "void":
        r"""Clear(OESzybkiResults self)"""
        return _oeszybki.OESzybkiResults_Clear(self)

    def ForceFieldVersion(self) -> "std::string":
        r"""ForceFieldVersion(OESzybkiResults self) -> std::string"""
        return _oeszybki.OESzybkiResults_ForceFieldVersion(self)

    def Print(self, *args) -> "void":
        r"""
        Print(OESzybkiResults self, OEErrorHandler arg2)
        Print(OESzybkiResults self, oeostream arg2)
        """
        return _oeszybki.OESzybkiResults_Print(self, *args)

# Register OESzybkiResults in _oeszybki:
_oeszybki.OESzybkiResults_swigregister(OESzybkiResults)

class OESzybkiResultsIter(object):
    r"""Proxy of C++ OESystem::OEIter< OESz::OESzybkiResults > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESzybkiResultsIter self) -> OESzybkiResultsIter
        __init__(OESzybkiResultsIter self, OESzybkiResultsIter rhs) -> OESzybkiResultsIter
        __init__(OESzybkiResultsIter self, OESystem::OEIterBase< OESz::OESzybkiResults > * rhs) -> OESzybkiResultsIter
        __init__(OESzybkiResultsIter self, OESystem::OEIterBase< OESystem::OEIter< OESz::OESzybkiResults >::NonConstA > * rhs) -> OESzybkiResultsIter
        """
        _oeszybki.OESzybkiResultsIter_swiginit(self, _oeszybki.new_OESzybkiResultsIter(*args))
    __swig_destroy__ = _oeszybki.delete_OESzybkiResultsIter

    def Copy(self) -> "OESystem::OEIterBase< OESz::OESzybkiResults > *":
        r"""Copy(OESzybkiResultsIter self) -> OESystem::OEIterBase< OESz::OESzybkiResults > *"""
        return _oeszybki.OESzybkiResultsIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OESzybkiResultsIter self, OESystem::OEIterBase< OESz::OESzybkiResults > * ib)
        Push(OESzybkiResultsIter self, OESzybkiResultsIter iter)
        """
        return _oeszybki.OESzybkiResultsIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OESz::OESzybkiResults,OESz::OESzybkiResults > const &") -> "void":
        r"""Sort(OESzybkiResultsIter self, OESystem::OEBinaryPredicate< OESz::OESzybkiResults,OESz::OESzybkiResults > const & sort_criterion)"""
        return _oeszybki.OESzybkiResultsIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OESz::OESzybkiResults > &":
        r"""ToFirst(OESzybkiResultsIter self) -> OESzybkiResultsIter"""
        return _oeszybki.OESzybkiResultsIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OESz::OESzybkiResults > &":
        r"""ToLast(OESzybkiResultsIter self) -> OESzybkiResultsIter"""
        return _oeszybki.OESzybkiResultsIter_ToLast(self)

    def __ref__(self) -> "OESz::OESzybkiResults &":
        r"""__ref__(OESzybkiResultsIter self) -> OESzybkiResults"""
        return _oeszybki.OESzybkiResultsIter___ref__(self)

    def IsValid(self):
      return _oeszybki.OESzybkiResultsIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OESzybkiResultsIter self) -> PyObject *"""
        return _oeszybki.OESzybkiResultsIter_next(self)

    def Target(self) -> "OESz::OESzybkiResults &":
        r"""Target(OESzybkiResultsIter self) -> OESzybkiResults"""
        return _oeszybki.OESzybkiResultsIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OESz::OESzybkiResults > &":
        r"""
        Next(OESzybkiResultsIter self) -> OESzybkiResultsIter
        Next(OESzybkiResultsIter self, int i) -> OESzybkiResultsIter
        """
        return _oeszybki.OESzybkiResultsIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OESz::OESzybkiResults > &":
        r"""
        Prev(OESzybkiResultsIter self) -> OESzybkiResultsIter
        Prev(OESzybkiResultsIter self, int i) -> OESzybkiResultsIter
        """
        return _oeszybki.OESzybkiResultsIter_Prev(self, *args)

# Register OESzybkiResultsIter in _oeszybki:
_oeszybki.OESzybkiResultsIter_swigregister(OESzybkiResultsIter)

class OESingleConfResultIter(object):
    r"""Proxy of C++ OESystem::OEIter< OESz::OESingleConfResult > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESingleConfResultIter self) -> OESingleConfResultIter
        __init__(OESingleConfResultIter self, OESingleConfResultIter rhs) -> OESingleConfResultIter
        __init__(OESingleConfResultIter self, OESystem::OEIterBase< OESz::OESingleConfResult > * rhs) -> OESingleConfResultIter
        __init__(OESingleConfResultIter self, OESystem::OEIterBase< OESystem::OEIter< OESz::OESingleConfResult >::NonConstA > * rhs) -> OESingleConfResultIter
        """
        _oeszybki.OESingleConfResultIter_swiginit(self, _oeszybki.new_OESingleConfResultIter(*args))
    __swig_destroy__ = _oeszybki.delete_OESingleConfResultIter

    def Copy(self) -> "OESystem::OEIterBase< OESz::OESingleConfResult > *":
        r"""Copy(OESingleConfResultIter self) -> OESystem::OEIterBase< OESz::OESingleConfResult > *"""
        return _oeszybki.OESingleConfResultIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OESingleConfResultIter self, OESystem::OEIterBase< OESz::OESingleConfResult > * ib)
        Push(OESingleConfResultIter self, OESingleConfResultIter iter)
        """
        return _oeszybki.OESingleConfResultIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OESz::OESingleConfResult,OESz::OESingleConfResult > const &") -> "void":
        r"""Sort(OESingleConfResultIter self, OESystem::OEBinaryPredicate< OESz::OESingleConfResult,OESz::OESingleConfResult > const & sort_criterion)"""
        return _oeszybki.OESingleConfResultIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OESz::OESingleConfResult > &":
        r"""ToFirst(OESingleConfResultIter self) -> OESingleConfResultIter"""
        return _oeszybki.OESingleConfResultIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OESz::OESingleConfResult > &":
        r"""ToLast(OESingleConfResultIter self) -> OESingleConfResultIter"""
        return _oeszybki.OESingleConfResultIter_ToLast(self)

    def __ref__(self) -> "OESz::OESingleConfResult &":
        r"""__ref__(OESingleConfResultIter self) -> OESingleConfResult"""
        return _oeszybki.OESingleConfResultIter___ref__(self)

    def IsValid(self):
      return _oeszybki.OESingleConfResultIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OESingleConfResultIter self) -> PyObject *"""
        return _oeszybki.OESingleConfResultIter_next(self)

    def Target(self) -> "OESz::OESingleConfResult &":
        r"""Target(OESingleConfResultIter self) -> OESingleConfResult"""
        return _oeszybki.OESingleConfResultIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OESz::OESingleConfResult > &":
        r"""
        Next(OESingleConfResultIter self) -> OESingleConfResultIter
        Next(OESingleConfResultIter self, int i) -> OESingleConfResultIter
        """
        return _oeszybki.OESingleConfResultIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OESz::OESingleConfResult > &":
        r"""
        Prev(OESingleConfResultIter self) -> OESingleConfResultIter
        Prev(OESingleConfResultIter self, int i) -> OESingleConfResultIter
        """
        return _oeszybki.OESingleConfResultIter_Prev(self, *args)

# Register OESingleConfResultIter in _oeszybki:
_oeszybki.OESingleConfResultIter_swigregister(OESingleConfResultIter)

class OEProteinLigandOptResults(object):
    r"""Proxy of C++ OESz::OEProteinLigandOptResults class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEProteinLigandOptResults self) -> OEProteinLigandOptResults
        __init__(OEProteinLigandOptResults self, OEProteinLigandOptResults arg2) -> OEProteinLigandOptResults
        """
        _oeszybki.OEProteinLigandOptResults_swiginit(self, _oeszybki.new_OEProteinLigandOptResults(*args))
    __swig_destroy__ = _oeszybki.delete_OEProteinLigandOptResults

    def GetInitialEnergies(self) -> "OEFF::OEComplexEnergies const &":
        r"""GetInitialEnergies(OEProteinLigandOptResults self) -> OEComplexEnergies"""
        return _oeszybki.OEProteinLigandOptResults_GetInitialEnergies(self)

    def GetFinalEnergies(self) -> "OEFF::OEComplexEnergies const &":
        r"""GetFinalEnergies(OEProteinLigandOptResults self) -> OEComplexEnergies"""
        return _oeszybki.OEProteinLigandOptResults_GetFinalEnergies(self)

    def GetProteinRMSD(self) -> "double":
        r"""GetProteinRMSD(OEProteinLigandOptResults self) -> double"""
        return _oeszybki.OEProteinLigandOptResults_GetProteinRMSD(self)

    def GetLigandRMSD(self) -> "double":
        r"""GetLigandRMSD(OEProteinLigandOptResults self) -> double"""
        return _oeszybki.OEProteinLigandOptResults_GetLigandRMSD(self)

    def GetTotalRMSD(self) -> "double":
        r"""GetTotalRMSD(OEProteinLigandOptResults self) -> double"""
        return _oeszybki.OEProteinLigandOptResults_GetTotalRMSD(self)

    def GetReturnCode(self) -> "unsigned int":
        r"""GetReturnCode(OEProteinLigandOptResults self) -> unsigned int"""
        return _oeszybki.OEProteinLigandOptResults_GetReturnCode(self)

# Register OEProteinLigandOptResults in _oeszybki:
_oeszybki.OEProteinLigandOptResults_swigregister(OEProteinLigandOptResults)

class OEProteinLigandOptOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OEProteinLigandOptOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEProteinLigandOptOptions self) -> OEProteinLigandOptOptions
        __init__(OEProteinLigandOptOptions self, OEProteinLigandOptOptions arg2) -> OEProteinLigandOptOptions
        """
        _oeszybki.OEProteinLigandOptOptions_swiginit(self, _oeszybki.new_OEProteinLigandOptOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OEProteinLigandOptOptions

    def GetForceField(self) -> "OEFF::OEComplexFF const *":
        r"""GetForceField(OEProteinLigandOptOptions self) -> OEComplexFF"""
        return _oeszybki.OEProteinLigandOptOptions_GetForceField(self)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OEProteinLigandOptOptions self) -> unsigned int"""
        return _oeszybki.OEProteinLigandOptOptions_GetForceFieldType(self)

    def SetForceField(self, *args) -> "bool":
        r"""
        SetForceField(OEProteinLigandOptOptions self, unsigned int const value) -> bool
        SetForceField(OEProteinLigandOptOptions self, std::string const & value) -> bool
        SetForceField(OEProteinLigandOptOptions self, OEComplexFF value) -> bool
        """
        return _oeszybki.OEProteinLigandOptOptions_SetForceField(self, *args)

    def GetLigandCharge(self) -> "OEProton::OEChargeEngineBase const *":
        r"""GetLigandCharge(OEProteinLigandOptOptions self) -> OEProton::OEChargeEngineBase const *"""
        return _oeszybki.OEProteinLigandOptOptions_GetLigandCharge(self)

    def GetLigandChargeType(self) -> "unsigned int":
        r"""GetLigandChargeType(OEProteinLigandOptOptions self) -> unsigned int"""
        return _oeszybki.OEProteinLigandOptOptions_GetLigandChargeType(self)

    def SetLigandCharge(self, *args) -> "bool":
        r"""
        SetLigandCharge(OEProteinLigandOptOptions self, unsigned int const value) -> bool
        SetLigandCharge(OEProteinLigandOptOptions self, std::string const & value) -> bool
        SetLigandCharge(OEProteinLigandOptOptions self, OEProton::OEChargeEngineBase const & value) -> bool
        """
        return _oeszybki.OEProteinLigandOptOptions_SetLigandCharge(self, *args)

    def GetOptimizationType(self) -> "unsigned int":
        r"""GetOptimizationType(OEProteinLigandOptOptions self) -> unsigned int"""
        return _oeszybki.OEProteinLigandOptOptions_GetOptimizationType(self)

    def SetOptimizationType(self, value: "unsigned int const") -> "bool":
        r"""SetOptimizationType(OEProteinLigandOptOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEProteinLigandOptOptions_SetOptimizationType(self, value)

    def GetGradTolerance(self) -> "double":
        r"""GetGradTolerance(OEProteinLigandOptOptions self) -> double"""
        return _oeszybki.OEProteinLigandOptOptions_GetGradTolerance(self)

    def SetGradTolerance(self, value: "double const") -> "bool":
        r"""SetGradTolerance(OEProteinLigandOptOptions self, double const value) -> bool"""
        return _oeszybki.OEProteinLigandOptOptions_SetGradTolerance(self, value)

    def GetMaxIter(self) -> "unsigned int":
        r"""GetMaxIter(OEProteinLigandOptOptions self) -> unsigned int"""
        return _oeszybki.OEProteinLigandOptOptions_GetMaxIter(self)

    def SetMaxIter(self, value: "unsigned int const") -> "bool":
        r"""SetMaxIter(OEProteinLigandOptOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEProteinLigandOptOptions_SetMaxIter(self, value)

# Register OEProteinLigandOptOptions in _oeszybki:
_oeszybki.OEProteinLigandOptOptions_swigregister(OEProteinLigandOptOptions)

class OEProteinFlexOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OEProteinFlexOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEProteinFlexOptions self) -> OEProteinFlexOptions
        __init__(OEProteinFlexOptions self, OEProteinFlexOptions arg2) -> OEProteinFlexOptions
        """
        _oeszybki.OEProteinFlexOptions_swiginit(self, _oeszybki.new_OEProteinFlexOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OEProteinFlexOptions

    def GetFlexRange(self) -> "double":
        r"""GetFlexRange(OEProteinFlexOptions self) -> double"""
        return _oeszybki.OEProteinFlexOptions_GetFlexRange(self)

    def SetFlexRange(self, value: "double const") -> "bool":
        r"""SetFlexRange(OEProteinFlexOptions self, double const value) -> bool"""
        return _oeszybki.OEProteinFlexOptions_SetFlexRange(self, value)

    def GetResidueID(self) -> "std::string":
        r"""GetResidueID(OEProteinFlexOptions self) -> std::string"""
        return _oeszybki.OEProteinFlexOptions_GetResidueID(self)

    def SetResidueID(self, value: "std::string const") -> "bool":
        r"""SetResidueID(OEProteinFlexOptions self, std::string const value) -> bool"""
        return _oeszybki.OEProteinFlexOptions_SetResidueID(self, value)

    def HasFlexibility(self) -> "bool":
        r"""HasFlexibility(OEProteinFlexOptions self) -> bool"""
        return _oeszybki.OEProteinFlexOptions_HasFlexibility(self)

    def GetPredicate(self, protein: "OEMolBase", ligand: "OEMolBase") -> "OEBio::OEAtomMatchResidue":
        r"""GetPredicate(OEProteinFlexOptions self, OEMolBase protein, OEMolBase ligand) -> OEAtomMatchResidue"""
        return _oeszybki.OEProteinFlexOptions_GetPredicate(self, protein, ligand)

# Register OEProteinFlexOptions in _oeszybki:
_oeszybki.OEProteinFlexOptions_swigregister(OEProteinFlexOptions)

class OEProteinLigandOptimizer(object):
    r"""Proxy of C++ OESz::OEProteinLigandOptimizer class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEProteinLigandOptimizer self, OEProteinLigandOptOptions opts=OESz::OEProteinLigandOptOptions()) -> OEProteinLigandOptimizer
        __init__(OEProteinLigandOptimizer self, OEProteinLigandOptimizer arg2) -> OEProteinLigandOptimizer
        """
        _oeszybki.OEProteinLigandOptimizer_swiginit(self, _oeszybki.new_OEProteinLigandOptimizer(*args))
    __swig_destroy__ = _oeszybki.delete_OEProteinLigandOptimizer

# Register OEProteinLigandOptimizer in _oeszybki:
_oeszybki.OEProteinLigandOptimizer_swigregister(OEProteinLigandOptimizer)

class OEFixedProteinLigandOptimizer(OEProteinLigandOptimizer):
    r"""Proxy of C++ OESz::OEFixedProteinLigandOptimizer class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFixedProteinLigandOptimizer self, OEProteinLigandOptOptions opts=OESz::OEProteinLigandOptOptions()) -> OEFixedProteinLigandOptimizer
        __init__(OEFixedProteinLigandOptimizer self, OEFixedProteinLigandOptimizer arg2) -> OEFixedProteinLigandOptimizer
        """
        _oeszybki.OEFixedProteinLigandOptimizer_swiginit(self, _oeszybki.new_OEFixedProteinLigandOptimizer(*args))
    __swig_destroy__ = _oeszybki.delete_OEFixedProteinLigandOptimizer

    def SetProtein(self, *args) -> "unsigned int":
        r"""
        SetProtein(OEFixedProteinLigandOptimizer self, OEDesignUnit du, unsigned int const proteinMask) -> unsigned int
        SetProtein(OEFixedProteinLigandOptimizer self, OEMolBase mol) -> unsigned int
        """
        return _oeszybki.OEFixedProteinLigandOptimizer_SetProtein(self, *args)

    def Optimize(self, *args) -> "unsigned int":
        r"""
        Optimize(OEFixedProteinLigandOptimizer self, OEMCMolBase mol) -> OESystem::OEIterBase< OESz::OEProteinLigandOptResults >
        Optimize(OEFixedProteinLigandOptimizer self, OEProteinLigandOptResults res, OEMolBase mol) -> unsigned int
        """
        return _oeszybki.OEFixedProteinLigandOptimizer_Optimize(self, *args)

    def Energy(self, *args) -> "unsigned int":
        r"""
        Energy(OEFixedProteinLigandOptimizer self, OEMCMolBase mol) -> OESystem::OEIterBase< OEFF::OEComplexEnergies >
        Energy(OEFixedProteinLigandOptimizer self, OEComplexEnergies res, OEMolBase mol) -> unsigned int
        """
        return _oeszybki.OEFixedProteinLigandOptimizer_Energy(self, *args)

# Register OEFixedProteinLigandOptimizer in _oeszybki:
_oeszybki.OEFixedProteinLigandOptimizer_swigregister(OEFixedProteinLigandOptimizer)

class OEFlexProteinLigandOptimizer(OEProteinLigandOptimizer):
    r"""Proxy of C++ OESz::OEFlexProteinLigandOptimizer class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFlexProteinLigandOptimizer self, OEProteinLigandOptOptions opts=OESz::OEProteinLigandOptOptions()) -> OEFlexProteinLigandOptimizer
        __init__(OEFlexProteinLigandOptimizer self, OEFlexProteinLigandOptimizer arg2) -> OEFlexProteinLigandOptimizer
        """
        _oeszybki.OEFlexProteinLigandOptimizer_swiginit(self, _oeszybki.new_OEFlexProteinLigandOptimizer(*args))
    __swig_destroy__ = _oeszybki.delete_OEFlexProteinLigandOptimizer

    def Optimize(self, *args) -> "unsigned int":
        r"""
        Optimize(OEFlexProteinLigandOptimizer self, OEProteinLigandOptResults res, OEDesignUnit du, unsigned int const proteinMask, unsigned int const ligandMask, OEUnaryAtomPred protFlexPred) -> unsigned int
        Optimize(OEFlexProteinLigandOptimizer self, OEProteinLigandOptResults res, OEMolBase protein, OEMolBase ligand, OEUnaryAtomPred protFlexPred) -> unsigned int
        Optimize(OEFlexProteinLigandOptimizer self, OEProteinLigandOptResults res, OEDesignUnit du, unsigned int const proteinMask, unsigned int const ligandMask, OEProteinFlexOptions flexOpts) -> unsigned int
        Optimize(OEFlexProteinLigandOptimizer self, OEProteinLigandOptResults res, OEMolBase protein, OEMolBase ligand, OEProteinFlexOptions flexOpts) -> unsigned int
        """
        return _oeszybki.OEFlexProteinLigandOptimizer_Optimize(self, *args)

    def Energy(self, *args) -> "unsigned int":
        r"""
        Energy(OEFlexProteinLigandOptimizer self, OEComplexEnergies res, OEDesignUnit du, unsigned int const proteinMask, unsigned int const ligandMask, OEUnaryAtomPred protFlexPred) -> unsigned int
        Energy(OEFlexProteinLigandOptimizer self, OEComplexEnergies res, OEMolBase protein, OEMolBase ligand, OEUnaryAtomPred protFlexPred) -> unsigned int
        Energy(OEFlexProteinLigandOptimizer self, OEComplexEnergies res, OEDesignUnit du, unsigned int const proteinMask, unsigned int const ligandMask, OEProteinFlexOptions flexOpts) -> unsigned int
        Energy(OEFlexProteinLigandOptimizer self, OEComplexEnergies res, OEMolBase protein, OEMolBase ligand, OEProteinFlexOptions flexOpts) -> unsigned int
        """
        return _oeszybki.OEFlexProteinLigandOptimizer_Energy(self, *args)

# Register OEFlexProteinLigandOptimizer in _oeszybki:
_oeszybki.OEFlexProteinLigandOptimizer_swigregister(OEFlexProteinLigandOptimizer)


def OEGetSzybkiError(code: "unsigned int const") -> "std::string":
    r"""OEGetSzybkiError(unsigned int const code) -> std::string"""
    return _oeszybki.OEGetSzybkiError(code)
class OEComplexEnergiesIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEFF::OEComplexEnergies > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEComplexEnergiesIter self) -> OEComplexEnergiesIter
        __init__(OEComplexEnergiesIter self, OEComplexEnergiesIter rhs) -> OEComplexEnergiesIter
        __init__(OEComplexEnergiesIter self, OESystem::OEIterBase< OEFF::OEComplexEnergies > * rhs) -> OEComplexEnergiesIter
        __init__(OEComplexEnergiesIter self, OESystem::OEIterBase< OESystem::OEIter< OEFF::OEComplexEnergies >::NonConstA > * rhs) -> OEComplexEnergiesIter
        """
        _oeszybki.OEComplexEnergiesIter_swiginit(self, _oeszybki.new_OEComplexEnergiesIter(*args))
    __swig_destroy__ = _oeszybki.delete_OEComplexEnergiesIter

    def Copy(self) -> "OESystem::OEIterBase< OEFF::OEComplexEnergies > *":
        r"""Copy(OEComplexEnergiesIter self) -> OESystem::OEIterBase< OEFF::OEComplexEnergies > *"""
        return _oeszybki.OEComplexEnergiesIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OEComplexEnergiesIter self, OESystem::OEIterBase< OEFF::OEComplexEnergies > * ib)
        Push(OEComplexEnergiesIter self, OEComplexEnergiesIter iter)
        """
        return _oeszybki.OEComplexEnergiesIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEFF::OEComplexEnergies,OEFF::OEComplexEnergies > const &") -> "void":
        r"""Sort(OEComplexEnergiesIter self, OESystem::OEBinaryPredicate< OEFF::OEComplexEnergies,OEFF::OEComplexEnergies > const & sort_criterion)"""
        return _oeszybki.OEComplexEnergiesIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEFF::OEComplexEnergies > &":
        r"""ToFirst(OEComplexEnergiesIter self) -> OEComplexEnergiesIter"""
        return _oeszybki.OEComplexEnergiesIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEFF::OEComplexEnergies > &":
        r"""ToLast(OEComplexEnergiesIter self) -> OEComplexEnergiesIter"""
        return _oeszybki.OEComplexEnergiesIter_ToLast(self)

    def __ref__(self) -> "OEFF::OEComplexEnergies &":
        r"""__ref__(OEComplexEnergiesIter self) -> OEComplexEnergies"""
        return _oeszybki.OEComplexEnergiesIter___ref__(self)

    def IsValid(self):
      return _oeszybki.OEComplexEnergiesIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OEComplexEnergiesIter self) -> PyObject *"""
        return _oeszybki.OEComplexEnergiesIter_next(self)

    def Target(self) -> "OEFF::OEComplexEnergies &":
        r"""Target(OEComplexEnergiesIter self) -> OEComplexEnergies"""
        return _oeszybki.OEComplexEnergiesIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEFF::OEComplexEnergies > &":
        r"""
        Next(OEComplexEnergiesIter self) -> OEComplexEnergiesIter
        Next(OEComplexEnergiesIter self, int i) -> OEComplexEnergiesIter
        """
        return _oeszybki.OEComplexEnergiesIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEFF::OEComplexEnergies > &":
        r"""
        Prev(OEComplexEnergiesIter self) -> OEComplexEnergiesIter
        Prev(OEComplexEnergiesIter self, int i) -> OEComplexEnergiesIter
        """
        return _oeszybki.OEComplexEnergiesIter_Prev(self, *args)

# Register OEComplexEnergiesIter in _oeszybki:
_oeszybki.OEComplexEnergiesIter_swigregister(OEComplexEnergiesIter)

class OEProteinLigandOptResultsIter(object):
    r"""Proxy of C++ OESystem::OEIter< OESz::OEProteinLigandOptResults > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResultsIter
        __init__(OEProteinLigandOptResultsIter self, OEProteinLigandOptResultsIter rhs) -> OEProteinLigandOptResultsIter
        __init__(OEProteinLigandOptResultsIter self, OESystem::OEIterBase< OESz::OEProteinLigandOptResults > * rhs) -> OEProteinLigandOptResultsIter
        __init__(OEProteinLigandOptResultsIter self, OESystem::OEIterBase< OESystem::OEIter< OESz::OEProteinLigandOptResults >::NonConstA > * rhs) -> OEProteinLigandOptResultsIter
        """
        _oeszybki.OEProteinLigandOptResultsIter_swiginit(self, _oeszybki.new_OEProteinLigandOptResultsIter(*args))
    __swig_destroy__ = _oeszybki.delete_OEProteinLigandOptResultsIter

    def Copy(self) -> "OESystem::OEIterBase< OESz::OEProteinLigandOptResults > *":
        r"""Copy(OEProteinLigandOptResultsIter self) -> OESystem::OEIterBase< OESz::OEProteinLigandOptResults > *"""
        return _oeszybki.OEProteinLigandOptResultsIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OEProteinLigandOptResultsIter self, OESystem::OEIterBase< OESz::OEProteinLigandOptResults > * ib)
        Push(OEProteinLigandOptResultsIter self, OEProteinLigandOptResultsIter iter)
        """
        return _oeszybki.OEProteinLigandOptResultsIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OESz::OEProteinLigandOptResults,OESz::OEProteinLigandOptResults > const &") -> "void":
        r"""Sort(OEProteinLigandOptResultsIter self, OESystem::OEBinaryPredicate< OESz::OEProteinLigandOptResults,OESz::OEProteinLigandOptResults > const & sort_criterion)"""
        return _oeszybki.OEProteinLigandOptResultsIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OESz::OEProteinLigandOptResults > &":
        r"""ToFirst(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResultsIter"""
        return _oeszybki.OEProteinLigandOptResultsIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OESz::OEProteinLigandOptResults > &":
        r"""ToLast(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResultsIter"""
        return _oeszybki.OEProteinLigandOptResultsIter_ToLast(self)

    def __ref__(self) -> "OESz::OEProteinLigandOptResults &":
        r"""__ref__(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResults"""
        return _oeszybki.OEProteinLigandOptResultsIter___ref__(self)

    def IsValid(self):
      return _oeszybki.OEProteinLigandOptResultsIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OEProteinLigandOptResultsIter self) -> PyObject *"""
        return _oeszybki.OEProteinLigandOptResultsIter_next(self)

    def Target(self) -> "OESz::OEProteinLigandOptResults &":
        r"""Target(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResults"""
        return _oeszybki.OEProteinLigandOptResultsIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OESz::OEProteinLigandOptResults > &":
        r"""
        Next(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResultsIter
        Next(OEProteinLigandOptResultsIter self, int i) -> OEProteinLigandOptResultsIter
        """
        return _oeszybki.OEProteinLigandOptResultsIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OESz::OEProteinLigandOptResults > &":
        r"""
        Prev(OEProteinLigandOptResultsIter self) -> OEProteinLigandOptResultsIter
        Prev(OEProteinLigandOptResultsIter self, int i) -> OEProteinLigandOptResultsIter
        """
        return _oeszybki.OEProteinLigandOptResultsIter_Prev(self, *args)

# Register OEProteinLigandOptResultsIter in _oeszybki:
_oeszybki.OEProteinLigandOptResultsIter_swigregister(OEProteinLigandOptResultsIter)

class OEFreeFormConfOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OEFreeFormConfOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFreeFormConfOptions self) -> OEFreeFormConfOptions
        __init__(OEFreeFormConfOptions self, OEFreeFormConfOptions arg2) -> OEFreeFormConfOptions
        """
        _oeszybki.OEFreeFormConfOptions_swiginit(self, _oeszybki.new_OEFreeFormConfOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OEFreeFormConfOptions

    def Validate(self) -> "bool":
        r"""Validate(OEFreeFormConfOptions self) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_Validate(self)

    def GetUseInputEnsemble(self) -> "bool":
        r"""GetUseInputEnsemble(OEFreeFormConfOptions self) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_GetUseInputEnsemble(self)

    def SetUseInputEnsemble(self, value: "bool const") -> "bool":
        r"""SetUseInputEnsemble(OEFreeFormConfOptions self, bool const value) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_SetUseInputEnsemble(self, value)

    def GetUseSolventCorr(self) -> "bool":
        r"""GetUseSolventCorr(OEFreeFormConfOptions self) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_GetUseSolventCorr(self)

    def SetUseSolventCorr(self, value: "bool const") -> "bool":
        r"""SetUseSolventCorr(OEFreeFormConfOptions self, bool const value) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_SetUseSolventCorr(self, value)

    def GetIonicState(self) -> "unsigned int":
        r"""GetIonicState(OEFreeFormConfOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfOptions_GetIonicState(self)

    def SetIonicState(self, value: "unsigned int const") -> "bool":
        r"""SetIonicState(OEFreeFormConfOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_SetIonicState(self, value)

    def SetOmegaOptions(self, opts: "OEConfGen::OEOmegaOptions const &") -> "void":
        r"""SetOmegaOptions(OEFreeFormConfOptions self, OEConfGen::OEOmegaOptions const & opts)"""
        return _oeszybki.OEFreeFormConfOptions_SetOmegaOptions(self, opts)

    def GetOmegaOptions(self, *args) -> "OEConfGen::OEOmegaOptions const &":
        r"""
        GetOmegaOptions(OEFreeFormConfOptions self) -> OEConfGen::OEOmegaOptions
        GetOmegaOptions(OEFreeFormConfOptions self) -> OEConfGen::OEOmegaOptions const &
        """
        return _oeszybki.OEFreeFormConfOptions_GetOmegaOptions(self, *args)

    def SetSzybkiGeneralOptions(self, opts: "OESzybkiGeneralOptions") -> "void":
        r"""SetSzybkiGeneralOptions(OEFreeFormConfOptions self, OESzybkiGeneralOptions opts)"""
        return _oeszybki.OEFreeFormConfOptions_SetSzybkiGeneralOptions(self, opts)

    def GetSzybkiGeneralOptions(self, *args) -> "OESz::OESzybkiGeneralOptions const &":
        r"""
        GetSzybkiGeneralOptions(OEFreeFormConfOptions self) -> OESzybkiGeneralOptions
        GetSzybkiGeneralOptions(OEFreeFormConfOptions self) -> OESzybkiGeneralOptions
        """
        return _oeszybki.OEFreeFormConfOptions_GetSzybkiGeneralOptions(self, *args)

    def SetPreOptimizeOptions(self, opts: "OESzybkiOptOptions") -> "void":
        r"""SetPreOptimizeOptions(OEFreeFormConfOptions self, OESzybkiOptOptions opts)"""
        return _oeszybki.OEFreeFormConfOptions_SetPreOptimizeOptions(self, opts)

    def GetPreOptimizeOptions(self, *args) -> "OESz::OESzybkiOptOptions const &":
        r"""
        GetPreOptimizeOptions(OEFreeFormConfOptions self) -> OESzybkiOptOptions
        GetPreOptimizeOptions(OEFreeFormConfOptions self) -> OESzybkiOptOptions
        """
        return _oeszybki.OEFreeFormConfOptions_GetPreOptimizeOptions(self, *args)

    def SetOptimizeOptions(self, opts: "OESzybkiOptOptions") -> "void":
        r"""SetOptimizeOptions(OEFreeFormConfOptions self, OESzybkiOptOptions opts)"""
        return _oeszybki.OEFreeFormConfOptions_SetOptimizeOptions(self, opts)

    def GetOptimizeOptions(self, *args) -> "OESz::OESzybkiOptOptions const &":
        r"""
        GetOptimizeOptions(OEFreeFormConfOptions self) -> OESzybkiOptOptions
        GetOptimizeOptions(OEFreeFormConfOptions self) -> OESzybkiOptOptions
        """
        return _oeszybki.OEFreeFormConfOptions_GetOptimizeOptions(self, *args)

    def SetSolventOptions(self, opts: "OESzybkiSolventOptions") -> "void":
        r"""SetSolventOptions(OEFreeFormConfOptions self, OESzybkiSolventOptions opts)"""
        return _oeszybki.OEFreeFormConfOptions_SetSolventOptions(self, opts)

    def GetSolventOptions(self, *args) -> "OESz::OESzybkiSolventOptions const &":
        r"""
        GetSolventOptions(OEFreeFormConfOptions self) -> OESzybkiSolventOptions
        GetSolventOptions(OEFreeFormConfOptions self) -> OESzybkiSolventOptions
        """
        return _oeszybki.OEFreeFormConfOptions_GetSolventOptions(self, *args)

    def SetCorrSolventOptions(self, opts: "OESzybkiSolventOptions") -> "void":
        r"""SetCorrSolventOptions(OEFreeFormConfOptions self, OESzybkiSolventOptions opts)"""
        return _oeszybki.OEFreeFormConfOptions_SetCorrSolventOptions(self, opts)

    def GetCorrSolventOptions(self, *args) -> "OESz::OESzybkiSolventOptions const &":
        r"""
        GetCorrSolventOptions(OEFreeFormConfOptions self) -> OESzybkiSolventOptions
        GetCorrSolventOptions(OEFreeFormConfOptions self) -> OESzybkiSolventOptions
        """
        return _oeszybki.OEFreeFormConfOptions_GetCorrSolventOptions(self, *args)

    def SetConfGenRMS(self, rms: "double") -> "void":
        r"""SetConfGenRMS(OEFreeFormConfOptions self, double rms)"""
        return _oeszybki.OEFreeFormConfOptions_SetConfGenRMS(self, rms)

    def GetConfGenRMS(self) -> "double":
        r"""GetConfGenRMS(OEFreeFormConfOptions self) -> double"""
        return _oeszybki.OEFreeFormConfOptions_GetConfGenRMS(self)

    def SetMaxConfGen(self, nmax: "unsigned int") -> "void":
        r"""SetMaxConfGen(OEFreeFormConfOptions self, unsigned int nmax)"""
        return _oeszybki.OEFreeFormConfOptions_SetMaxConfGen(self, nmax)

    def GetMaxConfGen(self) -> "unsigned int":
        r"""GetMaxConfGen(OEFreeFormConfOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfOptions_GetMaxConfGen(self)

    def SetUseInput3D(self, use3D: "bool") -> "void":
        r"""SetUseInput3D(OEFreeFormConfOptions self, bool use3D)"""
        return _oeszybki.OEFreeFormConfOptions_SetUseInput3D(self, use3D)

    def GetUseInput3D(self) -> "bool":
        r"""GetUseInput3D(OEFreeFormConfOptions self) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_GetUseInput3D(self)

    def SetConfGenEneWindow(self, ewindow: "double const") -> "void":
        r"""SetConfGenEneWindow(OEFreeFormConfOptions self, double const ewindow)"""
        return _oeszybki.OEFreeFormConfOptions_SetConfGenEneWindow(self, ewindow)

    def GetConfGenEneWindow(self) -> "double":
        r"""GetConfGenEneWindow(OEFreeFormConfOptions self) -> double"""
        return _oeszybki.OEFreeFormConfOptions_GetConfGenEneWindow(self)

    def SetAtomicRadiiType(self, radii_type: "unsigned int") -> "void":
        r"""SetAtomicRadiiType(OEFreeFormConfOptions self, unsigned int radii_type)"""
        return _oeszybki.OEFreeFormConfOptions_SetAtomicRadiiType(self, radii_type)

    def GetAtomicRadiiType(self) -> "unsigned int":
        r"""GetAtomicRadiiType(OEFreeFormConfOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfOptions_GetAtomicRadiiType(self)

    def SetSolventModel(self, solvent_model: "unsigned int") -> "void":
        r"""SetSolventModel(OEFreeFormConfOptions self, unsigned int solvent_model)"""
        return _oeszybki.OEFreeFormConfOptions_SetSolventModel(self, solvent_model)

    def GetSolventModel(self) -> "unsigned int":
        r"""GetSolventModel(OEFreeFormConfOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfOptions_GetSolventModel(self)

    def SetForceFieldType(self, forcefield: "unsigned int") -> "void":
        r"""SetForceFieldType(OEFreeFormConfOptions self, unsigned int forcefield)"""
        return _oeszybki.OEFreeFormConfOptions_SetForceFieldType(self, forcefield)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OEFreeFormConfOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfOptions_GetForceFieldType(self)

    def SetPBSolvDielectric(self, dielectric: "double const") -> "void":
        r"""SetPBSolvDielectric(OEFreeFormConfOptions self, double const dielectric)"""
        return _oeszybki.OEFreeFormConfOptions_SetPBSolvDielectric(self, dielectric)

    def GetPBSolvDielectric(self) -> "double":
        r"""GetPBSolvDielectric(OEFreeFormConfOptions self) -> double"""
        return _oeszybki.OEFreeFormConfOptions_GetPBSolvDielectric(self)

    def SetChargeType(self, chargetype: "unsigned int") -> "bool":
        r"""SetChargeType(OEFreeFormConfOptions self, unsigned int chargetype) -> bool"""
        return _oeszybki.OEFreeFormConfOptions_SetChargeType(self, chargetype)

    def GetChargeType(self) -> "unsigned int":
        r"""GetChargeType(OEFreeFormConfOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfOptions_GetChargeType(self)

# Register OEFreeFormConfOptions in _oeszybki:
_oeszybki.OEFreeFormConfOptions_swigregister(OEFreeFormConfOptions)

class OEFreeFormSolvOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OEFreeFormSolvOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFreeFormSolvOptions self) -> OEFreeFormSolvOptions
        __init__(OEFreeFormSolvOptions self, OEFreeFormSolvOptions arg2) -> OEFreeFormSolvOptions
        """
        _oeszybki.OEFreeFormSolvOptions_swiginit(self, _oeszybki.new_OEFreeFormSolvOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OEFreeFormSolvOptions

    def Validate(self) -> "bool":
        r"""Validate(OEFreeFormSolvOptions self) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_Validate(self)

    def GetUseInputEnsemble(self) -> "bool":
        r"""GetUseInputEnsemble(OEFreeFormSolvOptions self) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_GetUseInputEnsemble(self)

    def SetUseInputEnsemble(self, value: "bool const") -> "bool":
        r"""SetUseInputEnsemble(OEFreeFormSolvOptions self, bool const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetUseInputEnsemble(self, value)

    def GetUseInput3D(self) -> "bool":
        r"""GetUseInput3D(OEFreeFormSolvOptions self) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_GetUseInput3D(self)

    def SetUseInput3D(self, value: "bool const") -> "bool":
        r"""SetUseInput3D(OEFreeFormSolvOptions self, bool const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetUseInput3D(self, value)

    def GetConfGenRMS(self) -> "double":
        r"""GetConfGenRMS(OEFreeFormSolvOptions self) -> double"""
        return _oeszybki.OEFreeFormSolvOptions_GetConfGenRMS(self)

    def SetConfGenRMS(self, value: "double const") -> "bool":
        r"""SetConfGenRMS(OEFreeFormSolvOptions self, double const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetConfGenRMS(self, value)

    def GetMaxConfGen(self) -> "unsigned int":
        r"""GetMaxConfGen(OEFreeFormSolvOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormSolvOptions_GetMaxConfGen(self)

    def SetMaxConfGen(self, value: "unsigned int const") -> "bool":
        r"""SetMaxConfGen(OEFreeFormSolvOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetMaxConfGen(self, value)

    def GetIonicState(self) -> "unsigned int":
        r"""GetIonicState(OEFreeFormSolvOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormSolvOptions_GetIonicState(self)

    def SetIonicState(self, value: "unsigned int const") -> "bool":
        r"""SetIonicState(OEFreeFormSolvOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetIonicState(self, value)

    def GetChargeType(self) -> "unsigned int":
        r"""GetChargeType(OEFreeFormSolvOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormSolvOptions_GetChargeType(self)

    def SetChargeType(self, value: "unsigned int const") -> "bool":
        r"""SetChargeType(OEFreeFormSolvOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetChargeType(self, value)

    def GetAtomicRadiiType(self) -> "unsigned int":
        r"""GetAtomicRadiiType(OEFreeFormSolvOptions self) -> unsigned int"""
        return _oeszybki.OEFreeFormSolvOptions_GetAtomicRadiiType(self)

    def SetAtomicRadiiType(self, value: "unsigned int const") -> "bool":
        r"""SetAtomicRadiiType(OEFreeFormSolvOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OEFreeFormSolvOptions_SetAtomicRadiiType(self, value)

# Register OEFreeFormSolvOptions in _oeszybki:
_oeszybki.OEFreeFormSolvOptions_swigregister(OEFreeFormSolvOptions)

class OEFreeFormSolvResults(object):
    r"""Proxy of C++ OESz::OEFreeFormSolvResults class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFreeFormSolvResults self) -> OEFreeFormSolvResults
        __init__(OEFreeFormSolvResults self, OEFreeFormSolvResults ffr) -> OEFreeFormSolvResults
        """
        _oeszybki.OEFreeFormSolvResults_swiginit(self, _oeszybki.new_OEFreeFormSolvResults(*args))
    __swig_destroy__ = _oeszybki.delete_OEFreeFormSolvResults

    def GetSolvationFreeEnergy(self) -> "double":
        r"""GetSolvationFreeEnergy(OEFreeFormSolvResults self) -> double"""
        return _oeszybki.OEFreeFormSolvResults_GetSolvationFreeEnergy(self)

    def GetElectrostaticSolvationFreeEnergy(self) -> "double":
        r"""GetElectrostaticSolvationFreeEnergy(OEFreeFormSolvResults self) -> double"""
        return _oeszybki.OEFreeFormSolvResults_GetElectrostaticSolvationFreeEnergy(self)

    def GetHydrophobicSolvationFreeEnergy(self) -> "double":
        r"""GetHydrophobicSolvationFreeEnergy(OEFreeFormSolvResults self) -> double"""
        return _oeszybki.OEFreeFormSolvResults_GetHydrophobicSolvationFreeEnergy(self)

    def GetAtomicPotentials(self, apot: "OEDoubleVector") -> "void":
        r"""GetAtomicPotentials(OEFreeFormSolvResults self, OEDoubleVector apot)"""
        return _oeszybki.OEFreeFormSolvResults_GetAtomicPotentials(self, apot)

    def GetWarnings(self, warnings: "OEUIntVector") -> "void":
        r"""GetWarnings(OEFreeFormSolvResults self, OEUIntVector warnings)"""
        return _oeszybki.OEFreeFormSolvResults_GetWarnings(self, warnings)

    def GetReturnCode(self) -> "unsigned int":
        r"""GetReturnCode(OEFreeFormSolvResults self) -> unsigned int"""
        return _oeszybki.OEFreeFormSolvResults_GetReturnCode(self)

    def GetImpl(self, *args) -> "OESz::OEFreeFormSolvResultsImpl const *":
        r"""
        GetImpl(OEFreeFormSolvResults self) -> OESz::OEFreeFormSolvResultsImpl
        GetImpl(OEFreeFormSolvResults self) -> OESz::OEFreeFormSolvResultsImpl const *
        """
        return _oeszybki.OEFreeFormSolvResults_GetImpl(self, *args)

# Register OEFreeFormSolvResults in _oeszybki:
_oeszybki.OEFreeFormSolvResults_swigregister(OEFreeFormSolvResults)

class OEResult(object):
    r"""Proxy of C++ OESz::OEResult class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_destroy__ = _oeszybki.delete_OEResult

# Register OEResult in _oeszybki:
_oeszybki.OEResult_swigregister(OEResult)

class OESingleConfResult(OEResult):
    r"""Proxy of C++ OESz::OESingleConfResult class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    LnQrot = _oeszybki.OESingleConfResult_LnQrot
    
    LnQvib = _oeszybki.OESingleConfResult_LnQvib
    
    InternalEne = _oeszybki.OESingleConfResult_InternalEne
    
    SolvEne = _oeszybki.OESingleConfResult_SolvEne
    
    TotalEne = _oeszybki.OESingleConfResult_TotalEne
    
    RelEne = _oeszybki.OESingleConfResult_RelEne
    
    RelVibEne = _oeszybki.OESingleConfResult_RelVibEne
    
    RelLnQ = _oeszybki.OESingleConfResult_RelLnQ
    
    dGConf = _oeszybki.OESingleConfResult_dGConf
    
    dEConf = _oeszybki.OESingleConfResult_dEConf
    
    VibEneConf = _oeszybki.OESingleConfResult_VibEneConf
    
    Svib = _oeszybki.OESingleConfResult_Svib
    
    Srot = _oeszybki.OESingleConfResult_Srot
    
    Prob = _oeszybki.OESingleConfResult_Prob
    
    ResCount = _oeszybki.OESingleConfResult_ResCount
    

    def __init__(self, *args):
        r"""
        __init__(OESingleConfResult self) -> OESingleConfResult
        __init__(OESingleConfResult self, OEConfBase argConf) -> OESingleConfResult
        __init__(OESingleConfResult self, OESingleConfResult argRes) -> OESingleConfResult
        """
        _oeszybki.OESingleConfResult_swiginit(self, _oeszybki.new_OESingleConfResult(*args))
    __swig_destroy__ = _oeszybki.delete_OESingleConfResult

    def GetConfIdx(self) -> "unsigned int":
        r"""GetConfIdx(OESingleConfResult self) -> unsigned int"""
        return _oeszybki.OESingleConfResult_GetConfIdx(self)

    def GetRotationalEntropy(self) -> "double":
        r"""GetRotationalEntropy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetRotationalEntropy(self)

    def GetVibrationalEntropy(self) -> "double":
        r"""GetVibrationalEntropy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetVibrationalEntropy(self)

    def GetLnQvibrational(self) -> "double":
        r"""GetLnQvibrational(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetLnQvibrational(self)

    def GetLnQrotational(self) -> "double":
        r"""GetLnQrotational(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetLnQrotational(self)

    def GetRelLnQ(self) -> "double":
        r"""GetRelLnQ(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetRelLnQ(self)

    def GetSolvEnergy(self) -> "double":
        r"""GetSolvEnergy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetSolvEnergy(self)

    def GetMMFFEnergy(self) -> "double":
        r"""GetMMFFEnergy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetMMFFEnergy(self)

    def GetTotalEnergy(self) -> "double":
        r"""GetTotalEnergy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetTotalEnergy(self)

    def GetRelativeEnergy(self) -> "double":
        r"""GetRelativeEnergy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetRelativeEnergy(self)

    def GetDeltaG(self) -> "double":
        r"""GetDeltaG(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetDeltaG(self)

    def GetDeltaE(self) -> "double":
        r"""GetDeltaE(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetDeltaE(self)

    def GetVibrationalEnergy(self) -> "double":
        r"""GetVibrationalEnergy(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetVibrationalEnergy(self)

    def GetProbability(self) -> "double":
        r"""GetProbability(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetProbability(self)

    def GetRMSD(self) -> "double":
        r"""GetRMSD(OESingleConfResult self) -> double"""
        return _oeszybki.OESingleConfResult_GetRMSD(self)

# Register OESingleConfResult in _oeszybki:
_oeszybki.OESingleConfResult_swigregister(OESingleConfResult)

class OEFreeFormConfResults(OEResult):
    r"""Proxy of C++ OESz::OEFreeFormConfResults class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Stotal = _oeszybki.OEFreeFormConfResults_Stotal
    
    Sconf = _oeszybki.OEFreeFormConfResults_Sconf
    
    Temperature = _oeszybki.OEFreeFormConfResults_Temperature
    
    ResCount = _oeszybki.OEFreeFormConfResults_ResCount
    

    def __init__(self, *args):
        r"""
        __init__(OEFreeFormConfResults self) -> OEFreeFormConfResults
        __init__(OEFreeFormConfResults self, OEMCMolBase argMol) -> OEFreeFormConfResults
        __init__(OEFreeFormConfResults self, OEFreeFormConfResults argRes) -> OEFreeFormConfResults
        """
        _oeszybki.OEFreeFormConfResults_swiginit(self, _oeszybki.new_OEFreeFormConfResults(*args))
    __swig_destroy__ = _oeszybki.delete_OEFreeFormConfResults

    def GetNumUniqueConfs(self) -> "unsigned int":
        r"""GetNumUniqueConfs(OEFreeFormConfResults self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfResults_GetNumUniqueConfs(self)

    def GetTotalEntropy(self) -> "double":
        r"""GetTotalEntropy(OEFreeFormConfResults self) -> double"""
        return _oeszybki.OEFreeFormConfResults_GetTotalEntropy(self)

    def GetTemperature(self) -> "double":
        r"""GetTemperature(OEFreeFormConfResults self) -> double"""
        return _oeszybki.OEFreeFormConfResults_GetTemperature(self)

    def GetResultsForConformations(self) -> "OESystem::OEIterBase< OESz::OESingleConfResult > *":
        r"""GetResultsForConformations(OEFreeFormConfResults self) -> OESystem::OEIterBase< OESz::OESingleConfResult > *"""
        return _oeszybki.OEFreeFormConfResults_GetResultsForConformations(self)

    def GetConfResult(self, argConf: "unsigned int const") -> "OESz::OESingleConfResult":
        r"""GetConfResult(OEFreeFormConfResults self, unsigned int const argConf) -> OESingleConfResult"""
        return _oeszybki.OEFreeFormConfResults_GetConfResult(self, argConf)

    def GetLowestdGConfIdx(self) -> "unsigned int":
        r"""GetLowestdGConfIdx(OEFreeFormConfResults self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfResults_GetLowestdGConfIdx(self)

    def GetLowestRelEneConfIdx(self) -> "unsigned int":
        r"""GetLowestRelEneConfIdx(OEFreeFormConfResults self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfResults_GetLowestRelEneConfIdx(self)

    def PrintTxt(self, argStream: "oeostream", argMolName: "std::string const &") -> "void":
        r"""PrintTxt(OEFreeFormConfResults self, oeostream argStream, std::string const & argMolName)"""
        return _oeszybki.OEFreeFormConfResults_PrintTxt(self, argStream, argMolName)

    def PrintCsv(self, argStream: "oeostream", argMolName: "std::string const &") -> "void":
        r"""PrintCsv(OEFreeFormConfResults self, oeostream argStream, std::string const & argMolName)"""
        return _oeszybki.OEFreeFormConfResults_PrintCsv(self, argStream, argMolName)

    def GetWarnings(self, warnings: "OEUIntVector") -> "void":
        r"""GetWarnings(OEFreeFormConfResults self, OEUIntVector warnings)"""
        return _oeszybki.OEFreeFormConfResults_GetWarnings(self, warnings)

    def GetReturnCode(self) -> "unsigned int":
        r"""GetReturnCode(OEFreeFormConfResults self) -> unsigned int"""
        return _oeszybki.OEFreeFormConfResults_GetReturnCode(self)

# Register OEFreeFormConfResults in _oeszybki:
_oeszybki.OEFreeFormConfResults_swigregister(OEFreeFormConfResults)

class OERestrictionEnergyResult(OEResult):
    r"""Proxy of C++ OESz::OERestrictionEnergyResult class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    LocalStrain = _oeszybki.OERestrictionEnergyResult_LocalStrain
    
    GlobalStrain = _oeszybki.OERestrictionEnergyResult_GlobalStrain
    
    ResCount = _oeszybki.OERestrictionEnergyResult_ResCount
    

    def __init__(self, *args):
        r"""
        __init__(OERestrictionEnergyResult self) -> OERestrictionEnergyResult
        __init__(OERestrictionEnergyResult self, OEMolBase argConf) -> OERestrictionEnergyResult
        __init__(OERestrictionEnergyResult self, OERestrictionEnergyResult argRes) -> OERestrictionEnergyResult
        """
        _oeszybki.OERestrictionEnergyResult_swiginit(self, _oeszybki.new_OERestrictionEnergyResult(*args))
    __swig_destroy__ = _oeszybki.delete_OERestrictionEnergyResult

    def GetGlobalStrain(self) -> "double":
        r"""GetGlobalStrain(OERestrictionEnergyResult self) -> double"""
        return _oeszybki.OERestrictionEnergyResult_GetGlobalStrain(self)

    def GetLocalStrain(self) -> "double":
        r"""GetLocalStrain(OERestrictionEnergyResult self) -> double"""
        return _oeszybki.OERestrictionEnergyResult_GetLocalStrain(self)

# Register OERestrictionEnergyResult in _oeszybki:
_oeszybki.OERestrictionEnergyResult_swigregister(OERestrictionEnergyResult)


def OEEstimateConfFreeEnergies(res: "OEFreeFormConfResults", dst: "OEMCMolBase", src: "OEMCMolBase", opts: "OEFreeFormConfOptions") -> "bool":
    r"""OEEstimateConfFreeEnergies(OEFreeFormConfResults res, OEMCMolBase dst, OEMCMolBase src, OEFreeFormConfOptions opts) -> bool"""
    return _oeszybki.OEEstimateConfFreeEnergies(res, dst, src, opts)

def OEEstimateSolvFreeEnergy(res: "OEFreeFormSolvResults", dst: "OEMolBase", src: "OEMCMolBase", opts: "OEFreeFormSolvOptions") -> "bool":
    r"""OEEstimateSolvFreeEnergy(OEFreeFormSolvResults res, OEMolBase dst, OEMCMolBase src, OEFreeFormSolvOptions opts) -> bool"""
    return _oeszybki.OEEstimateSolvFreeEnergy(res, dst, src, opts)
class OEFreeFormConf(object):
    r"""Proxy of C++ OESz::OEFreeFormConf class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFreeFormConf self, OEFreeFormConfOptions opts=OESz::OEFreeFormConfOptions()) -> OEFreeFormConf
        __init__(OEFreeFormConf self, OEFreeFormConf arg2) -> OEFreeFormConf
        """
        _oeszybki.OEFreeFormConf_swiginit(self, _oeszybki.new_OEFreeFormConf(*args))
    __swig_destroy__ = _oeszybki.delete_OEFreeFormConf

    def SetOptions(self, argOpts: "OEFreeFormConfOptions") -> "bool":
        r"""SetOptions(OEFreeFormConf self, OEFreeFormConfOptions argOpts) -> bool"""
        return _oeszybki.OEFreeFormConf_SetOptions(self, argOpts)

    def GetOptions(self) -> "OESz::OEFreeFormConfOptions const &":
        r"""GetOptions(OEFreeFormConf self) -> OEFreeFormConfOptions"""
        return _oeszybki.OEFreeFormConf_GetOptions(self)

    def EstimateFreeEnergies(self, *args) -> "unsigned int":
        r"""
        EstimateFreeEnergies(OEFreeFormConf self, OEMCMolBase argMol) -> unsigned int
        EstimateFreeEnergies(OEFreeFormConf self, OEMCMolBase argMol, OEMCMolBase argRctMol) -> unsigned int
        """
        return _oeszybki.OEFreeFormConf_EstimateFreeEnergies(self, *args)

    def FindSimilarConfs(self, argMol: "OEMCMolBase", argEnsemble: "OEMCMolBase", argRefConf: "OEConfBase", argCondition: "OEBinaryConfPred") -> "unsigned int":
        r"""FindSimilarConfs(OEFreeFormConf self, OEMCMolBase argMol, OEMCMolBase argEnsemble, OEConfBase argRefConf, OEBinaryConfPred argCondition) -> unsigned int"""
        return _oeszybki.OEFreeFormConf_FindSimilarConfs(self, argMol, argEnsemble, argRefConf, argCondition)

# Register OEFreeFormConf in _oeszybki:
_oeszybki.OEFreeFormConf_swigregister(OEFreeFormConf)

class OEFreeFormConfAdvanced(OEFreeFormConf):
    r"""Proxy of C++ OESz::OEFreeFormConfAdvanced class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFreeFormConfAdvanced self, OEFreeFormConfOptions opts=OESz::OEFreeFormConfOptions()) -> OEFreeFormConfAdvanced
        __init__(OEFreeFormConfAdvanced self, OEFreeFormConfAdvanced arg2) -> OEFreeFormConfAdvanced
        """
        _oeszybki.OEFreeFormConfAdvanced_swiginit(self, _oeszybki.new_OEFreeFormConfAdvanced(*args))
    __swig_destroy__ = _oeszybki.delete_OEFreeFormConfAdvanced

    def PrepareEnsemble(self, *args) -> "unsigned int":
        r"""
        PrepareEnsemble(OEFreeFormConfAdvanced self, OEMCMolBase argMol) -> unsigned int
        PrepareEnsemble(OEFreeFormConfAdvanced self, OEMCMolBase argMol, OEMCMolBase argRstrMol, OEMCMolBase argFreeMol) -> unsigned int
        """
        return _oeszybki.OEFreeFormConfAdvanced_PrepareEnsemble(self, *args)

    def PreOptimizeEnsemble(self, argMol: "OEMCMolBase") -> "unsigned int":
        r"""PreOptimizeEnsemble(OEFreeFormConfAdvanced self, OEMCMolBase argMol) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_PreOptimizeEnsemble(self, argMol)

    def RemoveDuplicates(self, argMol: "OEMCMolBase") -> "unsigned int":
        r"""RemoveDuplicates(OEFreeFormConfAdvanced self, OEMCMolBase argMol) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_RemoveDuplicates(self, argMol)

    def Optimize(self, argMol: "OEMCMolBase") -> "unsigned int":
        r"""Optimize(OEFreeFormConfAdvanced self, OEMCMolBase argMol) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_Optimize(self, argMol)

    def EstimateEnergies(self, argMol: "OEMCMolBase") -> "unsigned int":
        r"""EstimateEnergies(OEFreeFormConfAdvanced self, OEMCMolBase argMol) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_EstimateEnergies(self, argMol)

    def OptimizeRestraint(self, argMol: "OEMCMolBase") -> "unsigned int":
        r"""OptimizeRestraint(OEFreeFormConfAdvanced self, OEMCMolBase argMol) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_OptimizeRestraint(self, argMol)

    def IdentifyConformer(self, argMol: "OEMCMolBase", argEnsemble: "OEMCMolBase") -> "unsigned int":
        r"""IdentifyConformer(OEFreeFormConfAdvanced self, OEMCMolBase argMol, OEMCMolBase argEnsemble) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_IdentifyConformer(self, argMol, argEnsemble)

    def EstimateRestrictionEnergy(self, argFreeMol: "OEMCMolBase", argRstrMol: "OEMCMolBase") -> "unsigned int":
        r"""EstimateRestrictionEnergy(OEFreeFormConfAdvanced self, OEMCMolBase argFreeMol, OEMCMolBase argRstrMol) -> unsigned int"""
        return _oeszybki.OEFreeFormConfAdvanced_EstimateRestrictionEnergy(self, argFreeMol, argRstrMol)

# Register OEFreeFormConfAdvanced in _oeszybki:
_oeszybki.OEFreeFormConfAdvanced_swigregister(OEFreeFormConfAdvanced)


def GetSWIG_NewPointerObj(*args) -> "PyObject *":
    r"""
    GetSWIG_NewPointerObj(OEAtomBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEBondBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEMolBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEConfBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OETransBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OENbrs arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAltLocation arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAltGroup arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESequenceAlignment arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OERole arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEResidue arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(std::string const & arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(std::string & arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OERotamer arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OETorsion arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEColor arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEColorStop arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEGroupBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAtomBondSet arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESubSearch arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEInteractionHintTypeBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEInteractionHint arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESphere arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEReceptorProteinConstraint arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEReceptorConstraintFeature arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEHierResidue arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEHierFragment arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEHierChain arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEPlaceHydrogensMoverNote arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAnnotation arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEFuzzy arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEFComponent arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEInteraction arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEComplexEnergies arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEProteinLigandOptResults arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OETorsionScanResult arg, bool owned) -> PyObject *
    """
    return _oeszybki.GetSWIG_NewPointerObj(*args)
class OETorsionScanOptions(oechem.OEOptions):
    r"""Proxy of C++ OESz::OETorsionScanOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorsionScanOptions self) -> OETorsionScanOptions
        __init__(OETorsionScanOptions self, OETorsionScanOptions arg2) -> OETorsionScanOptions
        """
        _oeszybki.OETorsionScanOptions_swiginit(self, _oeszybki.new_OETorsionScanOptions(*args))
    __swig_destroy__ = _oeszybki.delete_OETorsionScanOptions

    def Validate(self) -> "bool":
        r"""Validate(OETorsionScanOptions self) -> bool"""
        return _oeszybki.OETorsionScanOptions_Validate(self)

    def GetDelta(self) -> "double":
        r"""GetDelta(OETorsionScanOptions self) -> double"""
        return _oeszybki.OETorsionScanOptions_GetDelta(self)

    def SetDelta(self, value: "double const") -> "bool":
        r"""SetDelta(OETorsionScanOptions self, double const value) -> bool"""
        return _oeszybki.OETorsionScanOptions_SetDelta(self, value)

    def GetUserDefinedAngles(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetUserDefinedAngles(OETorsionScanOptions self) -> OEDoubleVector"""
        return _oeszybki.OETorsionScanOptions_GetUserDefinedAngles(self)

    def SetUserDefinedAngles(self, *args) -> "bool":
        r"""
        SetUserDefinedAngles(OETorsionScanOptions self, OEDoubleVector value) -> bool
        SetUserDefinedAngles(OETorsionScanOptions self, std::string const & value) -> bool
        """
        return _oeszybki.OETorsionScanOptions_SetUserDefinedAngles(self, *args)

    def GetForceField(self) -> "OEMolPotential::OEForceField const *":
        r"""GetForceField(OETorsionScanOptions self) -> OEForceField"""
        return _oeszybki.OETorsionScanOptions_GetForceField(self)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OETorsionScanOptions self) -> unsigned int"""
        return _oeszybki.OETorsionScanOptions_GetForceFieldType(self)

    def SetForceField(self, *args) -> "bool":
        r"""
        SetForceField(OETorsionScanOptions self, unsigned int const value) -> bool
        SetForceField(OETorsionScanOptions self, std::string const & value) -> bool
        SetForceField(OETorsionScanOptions self, OEForceField value) -> bool
        """
        return _oeszybki.OETorsionScanOptions_SetForceField(self, *args)

    def GetPenaltyForceConstant(self) -> "double":
        r"""GetPenaltyForceConstant(OETorsionScanOptions self) -> double"""
        return _oeszybki.OETorsionScanOptions_GetPenaltyForceConstant(self)

    def SetPenaltyForceConstant(self, value: "double const") -> "bool":
        r"""SetPenaltyForceConstant(OETorsionScanOptions self, double const value) -> bool"""
        return _oeszybki.OETorsionScanOptions_SetPenaltyForceConstant(self, value)

    def GetSolvationType(self) -> "unsigned int":
        r"""GetSolvationType(OETorsionScanOptions self) -> unsigned int"""
        return _oeszybki.OETorsionScanOptions_GetSolvationType(self)

    def SetSolvationType(self, value: "unsigned int const") -> "bool":
        r"""SetSolvationType(OETorsionScanOptions self, unsigned int const value) -> bool"""
        return _oeszybki.OETorsionScanOptions_SetSolvationType(self, value)

    def GetUseSinglePointPB(self) -> "bool":
        r"""GetUseSinglePointPB(OETorsionScanOptions self) -> bool"""
        return _oeszybki.OETorsionScanOptions_GetUseSinglePointPB(self)

    def SetUseSinglePointPB(self, value: "bool const") -> "bool":
        r"""SetUseSinglePointPB(OETorsionScanOptions self, bool const value) -> bool"""
        return _oeszybki.OETorsionScanOptions_SetUseSinglePointPB(self, value)

    def SetForceFieldType(self, ff: "unsigned int const") -> "bool":
        r"""SetForceFieldType(OETorsionScanOptions self, unsigned int const ff) -> bool"""
        return _oeszybki.OETorsionScanOptions_SetForceFieldType(self, ff)

# Register OETorsionScanOptions in _oeszybki:
_oeszybki.OETorsionScanOptions_swigregister(OETorsionScanOptions)

class OETorsionScanResult(object):
    r"""Proxy of C++ OESz::OETorsionScanResult class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorsionScanResult self, double dihedral_angle, double ener) -> OETorsionScanResult
        __init__(OETorsionScanResult self, OETorsionScanResult tsr) -> OETorsionScanResult
        """
        _oeszybki.OETorsionScanResult_swiginit(self, _oeszybki.new_OETorsionScanResult(*args))
    __swig_destroy__ = _oeszybki.delete_OETorsionScanResult

    def GetAngle(self) -> "double":
        r"""GetAngle(OETorsionScanResult self) -> double"""
        return _oeszybki.OETorsionScanResult_GetAngle(self)

    def GetEnergy(self) -> "double":
        r"""GetEnergy(OETorsionScanResult self) -> double"""
        return _oeszybki.OETorsionScanResult_GetEnergy(self)

# Register OETorsionScanResult in _oeszybki:
_oeszybki.OETorsionScanResult_swigregister(OETorsionScanResult)


def OETorsionScan(dst: "OEMCMolBase", src: "OEMCMolBase", torsion: "OETorsion", opts: "OETorsionScanOptions") -> "OESystem::OEIterBase< OESz::OETorsionScanResult > *":
    r"""OETorsionScan(OEMCMolBase dst, OEMCMolBase src, OETorsion torsion, OETorsionScanOptions opts) -> OESystem::OEIterBase< OESz::OETorsionScanResult > *"""
    return _oeszybki.OETorsionScan(dst, src, torsion, opts)
class OETorsionScanResultIter(object):
    r"""Proxy of C++ OESystem::OEIter< OESz::OETorsionScanResult > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorsionScanResultIter self) -> OETorsionScanResultIter
        __init__(OETorsionScanResultIter self, OETorsionScanResultIter rhs) -> OETorsionScanResultIter
        __init__(OETorsionScanResultIter self, OESystem::OEIterBase< OESz::OETorsionScanResult > * rhs) -> OETorsionScanResultIter
        __init__(OETorsionScanResultIter self, OESystem::OEIterBase< OESystem::OEIter< OESz::OETorsionScanResult >::NonConstA > * rhs) -> OETorsionScanResultIter
        """
        _oeszybki.OETorsionScanResultIter_swiginit(self, _oeszybki.new_OETorsionScanResultIter(*args))
    __swig_destroy__ = _oeszybki.delete_OETorsionScanResultIter

    def Copy(self) -> "OESystem::OEIterBase< OESz::OETorsionScanResult > *":
        r"""Copy(OETorsionScanResultIter self) -> OESystem::OEIterBase< OESz::OETorsionScanResult > *"""
        return _oeszybki.OETorsionScanResultIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OETorsionScanResultIter self, OESystem::OEIterBase< OESz::OETorsionScanResult > * ib)
        Push(OETorsionScanResultIter self, OETorsionScanResultIter iter)
        """
        return _oeszybki.OETorsionScanResultIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OESz::OETorsionScanResult,OESz::OETorsionScanResult > const &") -> "void":
        r"""Sort(OETorsionScanResultIter self, OESystem::OEBinaryPredicate< OESz::OETorsionScanResult,OESz::OETorsionScanResult > const & sort_criterion)"""
        return _oeszybki.OETorsionScanResultIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OESz::OETorsionScanResult > &":
        r"""ToFirst(OETorsionScanResultIter self) -> OETorsionScanResultIter"""
        return _oeszybki.OETorsionScanResultIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OESz::OETorsionScanResult > &":
        r"""ToLast(OETorsionScanResultIter self) -> OETorsionScanResultIter"""
        return _oeszybki.OETorsionScanResultIter_ToLast(self)

    def __ref__(self) -> "OESz::OETorsionScanResult &":
        r"""__ref__(OETorsionScanResultIter self) -> OETorsionScanResult"""
        return _oeszybki.OETorsionScanResultIter___ref__(self)

    def IsValid(self):
      return _oeszybki.OETorsionScanResultIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OETorsionScanResultIter self) -> PyObject *"""
        return _oeszybki.OETorsionScanResultIter_next(self)

    def Target(self) -> "OESz::OETorsionScanResult &":
        r"""Target(OETorsionScanResultIter self) -> OETorsionScanResult"""
        return _oeszybki.OETorsionScanResultIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OESz::OETorsionScanResult > &":
        r"""
        Next(OETorsionScanResultIter self) -> OETorsionScanResultIter
        Next(OETorsionScanResultIter self, int i) -> OETorsionScanResultIter
        """
        return _oeszybki.OETorsionScanResultIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OESz::OETorsionScanResult > &":
        r"""
        Prev(OETorsionScanResultIter self) -> OETorsionScanResultIter
        Prev(OETorsionScanResultIter self, int i) -> OETorsionScanResultIter
        """
        return _oeszybki.OETorsionScanResultIter_Prev(self, *args)

# Register OETorsionScanResultIter in _oeszybki:
_oeszybki.OETorsionScanResultIter_swigregister(OETorsionScanResultIter)

OE_OESZYBKI_VERSION = _oeszybki.OE_OESZYBKI_VERSION


def OESzybkiGetRelease() -> "char const *":
    r"""OESzybkiGetRelease() -> char const *"""
    return _oeszybki.OESzybkiGetRelease()

def OESzybkiGetVersion() -> "unsigned int":
    r"""OESzybkiGetVersion() -> unsigned int"""
    return _oeszybki.OESzybkiGetVersion()

def OESzybkiGetArch() -> "char const *":
    r"""OESzybkiGetArch() -> char const *"""
    return _oeszybki.OESzybkiGetArch()

def OESzybkiGetPlatform() -> "char const *":
    r"""OESzybkiGetPlatform() -> char const *"""
    return _oeszybki.OESzybkiGetPlatform()

def OESzybkiIsLicensed(feature: "char const *"=None, expdate: "unsigned int *"=None) -> "bool":
    r"""OESzybkiIsLicensed(char const * feature=None, unsigned int * expdate=None) -> bool"""
    return _oeszybki.OESzybkiIsLicensed(feature, expdate)

def OESzybkiGetLicensee(*args) -> "std::string":
    r"""
    OESzybkiGetLicensee(std::string & licensee) -> bool
    OESzybkiGetLicensee() -> std::string
    """
    return _oeszybki.OESzybkiGetLicensee(*args)

def OESzybkiGetSite(*args) -> "std::string":
    r"""
    OESzybkiGetSite(std::string & site) -> bool
    OESzybkiGetSite() -> std::string
    """
    return _oeszybki.OESzybkiGetSite(*args)


