19 const PrimClex &_primclex,
double _temperature,
23 m_primclex(&_primclex),
48 Index index_curr)
const {
79 for (
int index_new = 0; index_new < Ncomp; ++index_new) {
80 for (
int index_curr = 0; index_curr < Ncomp; ++index_curr) {
94 double in_param_chem_pot) {
154 return !(*
this == RHS);
159 int max_division = 0;
168 if (temp_division > max_division &&
170 max_division = temp_division;
Eigen::MatrixXd dparam_dmol() const
Return the matrix Mij = dx_i/dn_j.
std::vector< std::string > components() const
The order of components in mol composition vectors.
double temperature() const
void set_param_chem_pot(const Eigen::VectorXd &in_chem_pot)
double m_temperature
Temperature.
GrandCanonicalConditions operator-(const GrandCanonicalConditions &RHS) const
int operator/(const GrandCanonicalConditions &RHS_inc) const
Divide ALL parameters and return the greatest number in absolute value.
Eigen::MatrixXd m_exchange_chem_pot
Matrix(i,j) of chem_pot(i) - chem_pot(j)
const PrimClex & primclex() const
const PrimClex * m_primclex
GrandCanonicalConditions & operator+=(const GrandCanonicalConditions &RHS)
Add temperature and all chemical potentials to *this.
double m_tolerance
Tolerance for comparison operators == and !=.
Eigen::MatrixXd exchange_chem_pot() const
matrix of exchange chemical potential, M(new, curr) = chem_pot(new)
GrandCanonicalConditions operator+(const GrandCanonicalConditions &RHS) const
GrandCanonicalConditions & operator-=(const GrandCanonicalConditions &RHS)
Subtract temperature and all chemical potentials to *this.
double m_beta
Inverse temperature. Includes Boltzmann term.
bool operator!=(const GrandCanonicalConditions &RHS) const
Compare temperature and all chemical potentials to *this.
Eigen::VectorXd param_chem_pot() const
parametric chemical potential: dg/dcomp_x
Eigen::VectorXd m_param_chem_pot
bool operator==(const GrandCanonicalConditions &RHS) const
Compare temperature and all chemical potentials to *this.
Eigen::VectorXd m_chem_pot
void set_temperature(double in_temp)
Set the temperature of the current grand canonical condition.
GrandCanonicalConditions()
Default constructor.
PrimClex is the top-level data structure for a CASM project.
Eigen::CwiseUnaryOp< decltype(Local::round_l< typename Derived::Scalar >), const Derived > round(const Eigen::MatrixBase< Derived > &val)
Round Eigen::MatrixXd.
const CompositionConverter & composition_axes() const
const Access CompositionConverter object
CASM::jsonParser & to_json_array(const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json)
Write Eigen Matrix with 1 row or 1 column to JSON array.
std::ostream & operator<<(std::ostream &sout, const CanonicalConditions &cond)
bool almost_zero(const T &val, double tol=TOL)
If T is not integral, use std::abs(val) < tol;.
INDEX_TYPE Index
For long integer indexing:
Matrix< long int, Dynamic, 1 > VectorXl