3 #include "casm/external/gzstream/gzstream.h"
41 std::set<std::string> exclude;
45 formatter.
push_back(MonteCarloTFormatter<Canonical>());
46 formatter.
push_back(MonteCarloBetaFormatter<Canonical>());
51 formatter.
push_back(MonteCarloCompFormatter<Canonical>(mc, i));
57 for(
int i = 0; i < struc_mol_name.size(); ++i) {
58 name = std::string(
"comp_n(") + struc_mol_name[i] +
")";
59 formatter.
push_back(MonteCarloCompNFormatter<Canonical>(mc, i));
65 name =
"potential_energy";
70 name =
"formation_energy";
78 if(exclude.find(it->first) == exclude.end()) {
85 formatter.
push_back(MonteCarloHeatCapacityFormatter<Canonical>());
108 for(
int i = 0; i < param_composition.size(); i++) {
115 for(
int i = 0; i < components.size(); ++i) {
116 json[
"comp_n"][components[i]] = mol_composition(i);
119 json[
"tolerance"] = conditions.
tolerance();
139 double temp = json[
"temperature"].
get<
double>();
140 double tol = json[
"tolerance"].
get<
double>();
146 if(json[
"comp"].is_array()) {
153 for(
int i = 0; i < Nparam; i++) {
162 if(json[
"comp_n"].is_array()) {
167 comp_n.resize(components.size());
169 for(
int i = 0; i < components.size(); i++) {
170 comp_n(i) = json[
"comp_n"][components[i]].
get<
double>();
178 throw std::runtime_error(
"Error reading conditions: No 'comp' or 'comp_n' specified");
GenericDatumFormatter< double, ConstMonteCarloPtr > MonteCarloMeanFormatter(std::string prop_name)
Print mean property values:
Eigen::VectorXd param_composition(const Eigen::VectorXd &n) const
Convert number of mol per prim, 'n' to parametric composition 'x'.
GenericDatumFormatter< bool, ConstMonteCarloPtr > MonteCarloIsConvergedFormatter()
Print if converged.
jsonParser & to_json(const CanonicalConditions &conditions, jsonParser &json)
Store CanonicalConditions in JSON format.
Eigen::VectorXd param_composition() const
parametric composition: comp_x
Eigen::VectorXd comp(const Configuration &config)
Returns parametric composition, as calculated using PrimClex::param_comp.
T get(Args...args) const
Get data from json, using one of several alternatives.
std::vector< std::string > get_struc_molecule_name() const
Returns an Array of each possible Molecule in this Structure.
std::vector< std::string > components() const
The order of components in mol composition vectors.
Eigen::VectorXd comp_n(const ConfigDoF &configdof, const Supercell &scel)
Returns comp_n, the number of each molecule per primitive cell, ordered as Structure::get_struc_molec...
static std::string comp_var(size_type i)
Composition variable names: "a", "b", ...
Eigen::VectorXd mol_composition() const
mol composition: comp_n
Array< CoordType > basis
Lattice vectors that specifies periodicity of the crystal.
const PrimClex & primclex() const
const Access the PrimClex that *this is based on
void from_json(CanonicalConditions &conditions, const PrimClex &primclex, const jsonParser &json)
Read CanonicalConditions from JSON format.
PrimClex is the top-level data structure for a CASM project.
GenericDatumFormatter< MonteSampler::size_type, ConstMonteCarloPtr > MonteCarloNAvgSamplesFormatter()
Print number of samples used in calculating means.
DataFormatter< ConstMonteCarloPtr > make_results_formatter(const Canonical &mc)
Make a LTE results formatter.
size_type independent_compositions() const
The dimensionality of the composition space.
const CompositionConverter & composition_axes() const
const Access CompositionConverter object
jsonParser & put_obj()
Puts new empty JSON object.
bool contains(const std::string &name) const
Return true if JSON object contains 'name'.
GenericDatumFormatter< bool, ConstMonteCarloPtr > MonteCarloIsEquilibratedFormatter()
Print if equilibrated (not counting explicitly requested equilibration)
double temperature() const
GenericDatumFormatter< MonteSampler::size_type, ConstMonteCarloPtr > MonteCarloNEquilSamplesFormatter()
Print number of samples used for equilibration (not counting explicitly requested equilibration) ...
GenericDatumFormatter< double, ConstMonteCarloPtr > MonteCarloPrecFormatter(std::string prop_name)
Print calculated precision of property values: prec(
)
const PrimClex & primclex() const
static jsonParser object()
Returns an empty json object.
const SamplerMap & samplers() const
const Access sampler map
const Structure & get_prim() const
const Access to primitive Structure