Source code for schrodinger.application.jaguar.hydrokinetic_validation

"""
Hydrokinetic keywords input validation and specialized Exceptions
"""
# Contributors: Daniel S. Levine

import schrodinger.application.jaguar.workflow_validation as wv

#------------------------------------------------------------------------------


[docs]def check_conflicts(kwd, all_keywords): """ Raise Exception if keyword value is inconsistent with the other keywords. This is done in an adhoc case-by-case way. :type kwd: HydrokineticKeyword :param kwd: reference Hydrokinetic keyword :type all_keywords: dict of HydrokineticKeyword instances indexed by name :param all_keywords: all the other Hydrokinetic keywords set :raise WorkflowKeywordConflictError if conflicting values found. """ # add other known conflicts here... if kwd.name == 'xxx' and kwd.value == 'yyy': pass return True
[docs]def validate_structures(hinp): """ Perform a check to ensure that matter is conserved and that charge/multiplicity are consistent with structures. A WorkflowConservationError is raised if any test fails. """ charge = hinp.getValue("charge") mult = hinp.getValue("multiplicity") r = hinp.getInputMolecule() _validate_reaction([r], charge, mult)
def _validate_reaction(r, charge, mult): """ Validate a reaction specification. will raise a WorkflowConservationError if the specification is invalid. """ wv.estate_is_physical(r, charge, mult) wv.charge_is_consistent(r, charge)