8#ifndef MEANFIELDMODELSMULTI_H 
    9#define MEANFIELDMODELSMULTI_H 
   44        virtual double v()
 const { 
return 0.; }
 
   52        virtual double dv(
int i)
                                            const { 
return 0.; }
 
   61        virtual double d2v(
int i, 
int j)
                             const { 
return 0.; }
 
   71        virtual double d3v(
int i, 
int j, 
int k)
                const { 
return 0.; }
 
   82        virtual double d4v(
int i, 
int j, 
int k, 
int l)
  const { 
return 0.; }
 
   89        virtual double dvdT()
                                               const { 
return 0.; }
 
 
  148            const std::vector< std::vector<double> >& a, 
 
  149            const std::vector< std::vector<double> >& dadT = std::vector< std::vector<double> >()
 
  156                m_dadT = std::vector< std::vector<double> >(
m_a.size(), std::vector<double>(
m_a.size(), 0.));
 
 
  170        void setAij(
const std::vector< std::vector<double> >& a) { 
m_a = a; }
 
  184        virtual double v() 
const;
 
  192        virtual double dv(
int i) 
const;
 
  201        virtual double d2v(
int i, 
int j) 
const;
 
  211        virtual double d3v(
int i, 
int j, 
int k)
 const { 
return 0.; }
 
  222        virtual double d4v(
int i, 
int j, 
int k, 
int l)
 const { 
return 0.; }
 
  229        virtual double dvdT() 
const;
 
  235        std::vector< std::vector<double> > 
m_a;
 
  236        std::vector< std::vector<double> > 
m_dadT;
 
 
  257                    const std::vector<MeanFieldModelBase*>& mfmods,
 
  258                    const std::vector<int>& ind
 
 
  278        virtual double v() 
const;
 
  286        virtual double dv(
int i) 
const;
 
  295        virtual double d2v(
int i, 
int j) 
const;
 
  305        virtual double d3v(
int i, 
int j, 
int k) 
const;
 
  316        virtual double d4v(
int i, 
int j, 
int k, 
int l) 
const;
 
  323        virtual double dvdT() 
const;
 
 
  353                    const std::vector<double>& chgs
 
 
  373        virtual double v() 
const;
 
  381        virtual double dv(
int i) 
const;
 
  390        virtual double d2v(
int i, 
int j) 
const;
 
  400        virtual double d3v(
int i, 
int j, 
int k) 
const;
 
  411        virtual double d4v(
int i, 
int j, 
int k, 
int l) 
const;
 
  418        virtual double dvdT() 
const;
 
  425        virtual void SetDensities(
const std::vector<double>& n);
 
 
Header with helper mean-field classes.
 
Base class implementing the ideal gas (no mean field).
 
virtual void ComputeComponents()
Computes the components based on the mean field parameters.
 
virtual double d4v(int i, int j, int k, int l) const
Calculates the fourth derivative of the mean field.
 
virtual double d3v(int i, int j, int k) const
Calculates the third derivative of the mean field.
 
std::vector< double > m_charges
 
virtual double d2v(int i, int j) const
Calculates the second derivative of the mean field.
 
virtual double dvdT() const
Calculates the temperature derivative of the mean field.
 
virtual void SetDensities(const std::vector< double > &n)
Sets the densities of particle species.
 
MeanFieldModelBase * m_mfmodel
 
virtual double dv(int i) const
Calculates the first derivative of the mean field.
 
virtual ~MeanFieldModelChargeDensityDependent()
Destructor for the MeanFieldModelChargeDensityDependent class.
 
MeanFieldModelChargeDensityDependent(MeanFieldModelBase *mfmod, const std::vector< double > &chgs)
Constructor for the MeanFieldModelChargeDensityDependent class.
 
virtual double v() const
Calculates the mean field value.
 
virtual void ComputeComponents()
Computes the components based on the mean field parameters.
 
virtual double d3v(int i, int j, int k) const
Calculates the third derivative of the mean field.
 
virtual double v() const
Calculates the mean field value.
 
virtual double dv(int i) const
Calculates the first derivative of the mean field.
 
MeanFieldModelComponents(int components, const std::vector< MeanFieldModelBase * > &mfmods, const std::vector< int > &ind)
Constructor for the MeanFieldModelComponents class.
 
virtual double d2v(int i, int j) const
Calculates the second derivative of the mean field.
 
virtual double d4v(int i, int j, int k, int l) const
Calculates the fourth derivative of the mean field.
 
virtual ~MeanFieldModelComponents()
Destructor for the MeanFieldModelComponents class.
 
std::vector< MeanFieldModelBase * > m_mfmodels
 
virtual double dvdT() const
Calculates the temperature derivative of the mean field.
 
virtual double d3v(int i, int j, int k) const
Calculates the third derivative of the mean field.
 
std::vector< double > m_densities
 
virtual const int ComponentsNumber() const
Gets the number of components.
 
virtual double dvdT() const
Calculates the temperature derivative of the mean field.
 
virtual ~MeanFieldModelMultiBase()
Destructor for the MeanFieldModelMultiBase class.
 
virtual const std::vector< int > & ComponentIndices() const
Gets the component indices.
 
virtual const std::vector< int > & ComponentIndicesFrom() const
Gets the component indices from.
 
std::vector< int > m_componentsFrom
 
virtual double d2v(int i, int j) const
Calculates the second derivative of the mean field.
 
virtual void SetDensities(const std::vector< double > &n)
Sets the densities of particle species.
 
virtual void ComputeComponents()
Computes the components based on the mean field parameters.
 
virtual double v() const
Calculates the mean field value.
 
virtual double dv(int i) const
Calculates the first derivative of the mean field.
 
std::vector< double > m_densities_components
 
virtual double d4v(int i, int j, int k, int l) const
Calculates the fourth derivative of the mean field.
 
MeanFieldModelMultiBase(int N)
Constructor for the MeanFieldModelMultiBase class.
 
std::vector< int > m_components
 
virtual double d3v(int i, int j, int k) const
Calculates the third derivative of the mean field.
 
virtual double d4v(int i, int j, int k, int l) const
Calculates the fourth derivative of the mean field.
 
virtual double v() const
Calculates the mean field value.
 
virtual void ComputeComponents()
Computes the components based on the mean field parameters.
 
void setdAijdT(const std::vector< std::vector< double > > &dadT)
Sets the temperature derivatives of the attraction parameters.
 
virtual double dvdT() const
Calculates the temperature derivative of the mean field.
 
std::vector< std::vector< double > > m_a
 
virtual ~MeanFieldModelMultiVDW()
Destructor for the MeanFieldModelMultiVDW class.
 
MeanFieldModelMultiVDW(const std::vector< std::vector< double > > &a, const std::vector< std::vector< double > > &dadT=std::vector< std::vector< double > >())
Constructor for the MeanFieldModelMultiVDW class.
 
std::vector< std::vector< double > > m_dadT
 
virtual double d2v(int i, int j) const
Calculates the second derivative of the mean field.
 
void setAij(const std::vector< std::vector< double > > &a)
Sets the attraction parameters between species.
 
virtual double dv(int i) const
Calculates the first derivative of the mean field.
 
The main namespace where all classes and functions of the Thermal-FIST library reside.