Class PolarizabilityPlugin

All Implemented Interfaces:
TaggedCalculator, chemaxon.license.Licensable

@PublicApi public class PolarizabilityPlugin extends MajorMicrospeciesAccessorPlugin
Plugin class for atom polarizability calculation.

API usage example:

    // read input molecule
    MolImporter mi = new MolImporter("test.mol");
    Molecule mol = mi.read();
    mi.close();

    // create plugin
    PolarizabilityPlugin plugin = new PolarizabilityPlugin();

    // optional: take major microspecies at pH=7.4
    // skip this if you want to calculate polarizability for the input molecule as it is
    plugin.setpH(7.4);

    // set target molecule
    plugin.setMolecule(mol);

    // run the calculation
    plugin.run();

    // get molecular polarizability
    double molpol = plugin.getMolPolarizability();
    System.out.println("molecular polarizability: "+molpol);

    // get polarizability values for each atom
    int count = mol.getAtomCount();
    for (int i=0; i < count; ++i) {
       double pol = plugin.getPolarizability(i);
       if (!Double.isNaN(pol)) {
           System.out.println("polarizability for atom "+(i+1)+": "+pol);
          }
    }
 

For concurrent plugin example applications using ChemAxon's concurrent framework, refer to the Concurrent plugin examples.

  • Constructor Details

    • PolarizabilityPlugin

      public PolarizabilityPlugin()
      Constructor.
  • Method Details

    • isLicensed

      public boolean isLicensed()
      Returns true if the plugin is licensed. The license checking is based on the product name, returned by getProductName().
      Specified by:
      isLicensed in interface chemaxon.license.Licensable
      Overrides:
      isLicensed in class MajorMicrospeciesAccessorPlugin
      Returns:
      true if the plugin is licensed
    • getProductName

      public String getProductName()
      Returns the product identifier of the plugin as given by LicenseManager.
      Specified by:
      getProductName in class CalculatorPlugin
      Returns:
      The identifier LicenseManager.CHARGE_PLUGIN_GROUP
    • setParameters

      public void setParameters(Properties params) throws PluginException
      Sets the input parameters for the plugin. Polarization parameters and value ranges:
      • precision: 0-8 or inf (number of displayed fractional digits, inf for unrounded value)
      • type:
        • molecular
        • atomic
        (default: all)
      • geom3D: "true" if 3D geometry should be considered (computes molecular polarizability and principal components of polarizability tensor) (default: "false")
      Overrides:
      setParameters in class MajorMicrospeciesAccessorPlugin
      Parameters:
      params - is the parameter table
      Throws:
      PluginException - on error
    • setGeom3D

      public void setGeom3D(boolean geom3D)
      Sets 3D geometry consideration. Call this before setting the input molecule in CalculatorPlugin.setMolecule(Molecule).
      Parameters:
      geom3D - if true, molecular polarizability and principal components of polarizability tensor are computed (default: false)
    • checkMolecule

      public void checkMolecule(Molecule mol) throws PluginException
      Checks the input molecule. Throws exception if the molecule molecule contains R-groups.
      Overrides:
      checkMolecule in class MajorMicrospeciesAccessorPlugin
      Parameters:
      mol - is the input molecule
      Throws:
      PluginException - with error message for the user if the molecule is refused
    • setInputMolecule

      protected void setInputMolecule(Molecule mol) throws PluginException
      Sets the input molecule.
      Specified by:
      setInputMolecule in class CalculatorPlugin
      Parameters:
      mol - is the input molecule
      Throws:
      PluginException - on error
    • run

      public boolean run() throws PluginException
      Runs the charge calculation.
      Specified by:
      run in class CalculatorPlugin
      Returns:
      true if the calculation was successful, false on calculation error
      Throws:
      PluginException - on error
      See Also:
    • getErrorMessage

      public String getErrorMessage()
      Returns the calculation error information message if run() returned false (calculation error): hydrogen valence error.
      Overrides:
      getErrorMessage in class MajorMicrospeciesAccessorPlugin
      Returns:
      the calculation error information message
    • getPolarizability

      public double getPolarizability(int index)
      Returns the atom polarizability value.
      Parameters:
      index - is the atom index
      Returns:
      the atom polarizability value
      Since:
      Marvin 3.4.1
    • getHPolarizability

      public double getHPolarizability(int index)
      Returns the sum of the implicit H atom polarizability values around the given heavy atom.
      Parameters:
      index - is the heavy atom index
      Returns:
      the sum of the implicit H atom polarizability values
      Since:
      Marvin 4.1
    • getMolPolarizability

      public double getMolPolarizability()
      Returns the molecular polarizability value.
      Returns:
      the molecular polarizability value
    • getAveragePolarizabilityComponent

      public double getAveragePolarizabilityComponent()
      Returns the average polarizability component (for geom3D=true, see setGeom3D(boolean)).
      Returns:
      the average polarizability component
    • getPrincipalPolarizabilityComponents

      public double[] getPrincipalPolarizabilityComponents()
      Returns the principal components a(xx), a(yy), a(zz) of polarizability tensor (for geom3D=true, see setGeom3D(boolean)).
      Returns:
      the principal polarizability component array
    • getResultTypes

      public Object[] getResultTypes()
      Returns the result types (possible types: sigma, pi, total).
      Overrides:
      getResultTypes in class CalculatorPlugin
      Returns:
      the result types
    • getResultDomain

      public int getResultDomain(Object type)
      Returns the calculation domain CalculatorPlugin.ATOM or CalculatorPlugin.MOLECULE.
      Overrides:
      getResultDomain in class CalculatorPlugin
      Parameters:
      type - is the result type
      Returns:
      CalculatorPlugin.ATOM
      See Also:
    • getResultCount

      public int getResultCount(Object type)
      Returns the number of result items for the given result key. Polarizability returns the atom count for type "atomic", 1 for type "molecular".
      Overrides:
      getResultCount in class CalculatorPlugin
      Parameters:
      type - is the result type
      Returns:
      the number of result items
      See Also:
    • getResult

      public Object getResult(Object type, int index) throws PluginException
      Returns the result item for the specified type and index. Polarizability returns the atom polarizability value as a Double object.
      Overrides:
      getResult in class CalculatorPlugin
      Parameters:
      type - is the result type (not used)
      index - is the atom index
      Returns:
      the result item for the specified type and index
      Throws:
      PluginException - if the result cannot be returned
      See Also:
    • getResultAsString

      public String getResultAsString(Object type, int index, Object result) throws PluginException
      Returns the specified result in String format. Polarizability returns the rounded atom polarizability value in string format: the value is rounded using the 'precision' input parameter that determines the number of fractional digits displayed.
      Overrides:
      getResultAsString in class CalculatorPlugin
      Parameters:
      type - is the result type
      index - is the result index
      result - is the result item
      Returns:
      the specified result in String format
      Throws:
      PluginException - if an invalid result item is given
    • getResultMolecule

      public Molecule getResultMolecule() throws PluginException
      Returns the result molecule for display. Atomic results are stored in atom extra labels (MolAtom.getExtraLabel()). Molecular results are stored in molecule properties with keys being the result types (MPropHandler.convertToString(MPropertyContainer, String)).
      Overrides:
      getResultMolecule in class CalculatorPlugin
      Returns:
      the result molecule
      Throws:
      PluginException - on error
      Since:
      Marvin 4.0
    • tags

      public Set<CalculatorTag> tags()
      Description copied from interface: TaggedCalculator
      Returns the set of tags reported by this calculator. The same tags should be returned unless the calculator is modified using a mutator method, e.g. if some settings are changed.

      New tags can be introduced and reported in the future by existing calculators, so do not depend on the exact set of reported tags, only check for the presence of certain tags.

      Returns:
      the tags