# Chemical Compounds

## Making a Compound

chemlib.chemistry.Compound

  alias of `chemlib.chemistry.chemlib.chemistry.Compound._name`

Instantiate a `chemlib.Compound` object with the formula of the compound.

    >>> from chemlib import Compound
    >>> water = Compound("H2O")
    >>> water.formula
    'H₂O₁'

> chemlib.chemistry.Compound.occurences: dict

> A dictionary containing the frequencies of the constituent elements in the compound.

>     >>> water.occurences
>     {'H': 2, 'O': 1}

## Molar Mass

chemlib.chemistry.Compound.molar_mass(self)
  Returns

    The molar mass in (g/mol) of the compound

  Return type

    float

    >>> water.molar_mass()
    18.01

## Percentage Composition by Mass

chemlib.chemistry.Compound.percentage_by_mass(self, element)

  Get the percentage composition by mass of a certain element of the compound.

  Parameters

    element (str) – The constituent element of which the user wants to get percentage composition.

  Returns

    The percentage composition by mass of the element in the compound.

  Return type

    float

    >>> water.percentage_by_mass('H') #Percent of Hydrogen in Compound
    11.183
    >>> water.percentage_by_mass('O') #Percent of Oxygen in Compound
    88.834

## Stoichiometry

chemlib.chemistry.Compound.get_amounts(self, **kwargs)

  Get stoichiometric amounts of the compound given one measurement.

  Parameters

    - compound_number (int) – The chosen compound in the reaction by order of appearance.

    - kwargs – The amount of the chosen compound (grams=, moles=, or molecules=)

  Returns

    The gram, mole, and molecule amounts of the compound.

  Return type

    dict

  Raises

    - ValueError – If the kwargs argument isn’t either grams, moles, or molecules

    - ValueError – if more than one argument is given under kwargs

Get the amount of moles and molecules of water given 2 grams of water.

    >>> water.get_amounts(grams = 2)
    {'Compound': 'H₂O₁', 'Grams': 2, 'Moles': 0.111, 'Molecules': 6.685e+22}

Get the amount of grams and molecules of water given 2 moles of water.

    >>> water.get_amounts(moles = 2)
    {'Compound': 'H₂O₁', 'Grams': 36.02, 'Moles': 2, 'Molecules': 1.204e+24}

Get the amount of moles and grams of water given 2e+24 molecules of water.

    >>> water.get_amounts(molecules = 2e+24)
    {'Compound': 'H₂O₁', 'Grams': 59.834, 'Moles': 3.3223, 'Molecules': 2e+24}