#ifndef _MOLECULE_H_
#define _MOLECULE_H_
/**
@file Molecule.h
@brief The header file for the Molecule class.
@date $Date: 2008/03/27 15:46:07 $
@version $Rev$
@author
- Lance Deaver
@copyright
(©) Copyright 2006 by GATS Inc.
11864 Canon Blvd., Suite 101, Newport News, VA 23606
All Rights Reserved. No part of this software or publication may be
reproduced, stored in a retrieval system, or transmitted, in any form
or by any means, electronic, mechanical, photocopying, recording, or
otherwise without the prior written permission of GATS Inc.
@see Molecule
@bug None known
$Id: Molecule.h,v 1.1 2008/03/27 15:46:07 deaver Exp deaver $
*/
#include
class Molecule
{
protected:
int _id;
int _isotope;
public:
/**
* @brief the recommended constructor for the Molecule class
*/
Molecule(const int gasid=1, const int isotope=0);
virtual ~Molecule();
/**
* @brief Return the Id for the molecule
*/
virtual int Id() const;
/**
* @brief Return the isotope Id for the Molecule
*/
virtual int Isotope() const;
/**
* @brief Return the long name of the molecule for example "ozone"
*/
virtual std::string Name() const;
/**
* @brief Return the Chemical formulat for the molecule for example "O3"
*/
virtual std::string Chemical() const;
/**
* @brief Return the Number of Isotopes available for this molecule
*/
virtual int NumberOfIsotopes() const;
/**
* @brief Return the Molecular weight of the current molecule and isotope
*/
virtual double Weight() const;
/**
* @brief Return the Molecular weight for a specified isotope of the current molecule
*/
virtual double Weight(const int isotope) const ;
/**
* @brief Return the Abundance Ratio for the current molecule and isotope.
*/
virtual double Abundance() const;
/**
* @brief Return the Abundance Ratio for a specified isotope of the current molecule.
*/
virtual double Abundance(const int isotope) const ;
/**
* @brief Return the isotopologue value for the current molecule and Isotope.
*/
virtual int Isotopologue() const;
/**
* @brief Return the isotopologue value for a specified isotope of the current molecule.
*/
virtual int Isotopologue(const int isotope) const;
/**
* @brief Return a string containing the molecular formula for the current molecule and isotope.
*/
virtual std::string Formula() const;
/**
* @brief Return a string containing the molecular formula for a specified isotope for the current molecule.
*/
virtual std::string Formula(const int isotope) const ;
/**
* @brief Return the Total internal partition sums value for the molecule at a specified temperature
*/
// virtual double TotalInternalPartitionSums(const double cellT) const;
/**
* @brief Return the Total internal partition Sums value for a specified isotope at a specified temperature.
*/
// virtual double TotalInternalPartitionSums(const double cellT, const int isotope) const;
/**
* @brief Return the degeneracy value for the current molecule and isotope
*/
// virtual double Degeneracy() const;
/**
* @brief Return the degeracy value for the current molecule and a specific isotope.
*/
// virtual double Degeneracy(const int isotope) const ;
/**
* @brief Return the ratio of TIPS @ 296K / TIPS @ the cell temperature.
*/
// virtual double TIPSAdjustment(const double cellTemp) const;
/**
* @brief Return the ratio of TIPS @ 296K / TIPS @ the cell temperature for a specific isotope.
*/
// virtual double TIPSAdjustment(const double cellTemp, const int isotope) const ;
/**
* @brief Set the molecule isotope to a new value.
*/
virtual void SetIsotope(const int isotope);
};
#endif //_MOLECULE_H_