def __init__(self, molecule, origin, axes, nrep, data, subtitle='<STR_LIT>', nuclear_charges=None):
self.molecule = molecule<EOL>self.origin = np.array(origin, copy=False)<EOL>self.axes = np.array(axes, copy=False)<EOL>self.nrep = np.array(nrep, copy=False)<EOL>self.data = np.array(data, copy=False)<EOL>self.subtitle = subtitle<EOL>if nuclear_charges is None:<EOL><INDENT>self.nuclear_charges = self.molecule.numbers.astype(float)<EOL><DEDENT>else:<EOL><INDENT>self.nuclear_charges = nuclear_charges<EOL><DEDENT>
*Arguments:*

molecule
     A Molecule instance.

origin
     The cartesian coordinate for the origin of the grid.

axes
     The 3 by 3 array with the grid spacings as rows.

nrep
     The number of grid points along each axis.

subtitle
     The title on the second line in the cube file.

nuclear_charges
     The nuclear charges, can be different from the atomic numbers
     in case of effective core potentials.