pycalphad package


pycalphad.constraints module

The constraints module contains definitions for equilibrium constraints and their Jacobian.

pycalphad.constraints.mole_fraction(phase, active_comps, species)[source]

Return a SymPy object representing the mole fraction as a function of site fractions.

  • phase (Phase) – Phase object corresponding to the phase of interest.
  • active_comps (list of str) – Names of components to consider.
  • species (str) – Names of species to consider.

Return type:

SymPy object representing the mole fraction.


>>> dbf = Database('alfe_sei.TDB')
>>> mole_fraction(dbf.phases['FCC_A1'], ['AL', 'FE', 'VA'], 'AL')

pycalphad.fitting module

This module contains routines for fitting new CALPHAD models.

class pycalphad.fitting.Dataset(error_func, calc_func, exp_data, json)

Bases: tuple


Return self as a plain tuple. Used by copy and pickle.


Exclude the OrderedDict from pickling


Return a nicely formatted representation string


Alias for field number 1


Alias for field number 0


Alias for field number 2


Alias for field number 3

pycalphad.fitting.build_pymc_model(dbf, dataset_names, params)[source]

Build a pymc (2.x) Model using the specified data and parameters.

  • dbf (Database) – Database with defined parameters, except for params.
  • dataset_names (list of str) – List of paths to pycalphad JSON files.
  • params (list of pymc.Stochastic) – Parameters to fit.

Return type:

(pymc.Model, dict of Dataset)

pycalphad.fitting.plot_results(input_database, datasets, params, databases=None)[source]

Generate figures using the datasets and trace of the parameters. A dict of label->Database objects may be provided as a kwarg.

pycalphad.fitting.setup_dataset(file_obj, dbf, params, mode=None)[source]

pycalphad.log module

The log module handles setup for logging errors, debug messages and warnings.


Set logger level to log debug messages.

pycalphad.model module

The Model module provides support for using a Database to perform calculations under specified conditions.

exception pycalphad.model.DofError[source]

Bases: exceptions.Exception

Error due to missing degrees of freedom.

class pycalphad.model.Model(dbe, comps, phase, parameters=None)[source]

Bases: object

Models use an abstract representation of the function for calculation of values under specified conditions.

  • dbf (Database) – Database containing the relevant parameters.
  • comps (list) – Names of components to consider in the calculation.
  • phase (list) – Name of phase model to build.
  • parameters (dict) – Optional dictionary of parameters to be substituted in the model. This will overwrite parameters specified in the database
None yet.


None yet.

TC = 0

Return the full abstract syntax tree of the model.

atomic_ordering_energy(dbe, disordered_phase_name, ordered_phase_name)[source]

Return the atomic ordering contribution in symbolic form. Description follows Servant and Ansara, Calphad, 2001.

build_phase(dbe, phase_name, symbols, param_search)[source]

Apply phase’s model hints to build a master SymPy object.

curie_temperature = 0
excess_mixing_energy(phase, param_search)[source]

Build the binary, ternary and higher order interaction term Here we use Redlich-Kister polynomial basis by default Here we use the Muggianu ternary extension by default Replace y_i -> y_i + (1 - sum(y involved in parameter)) / m, where m is the arity of the interaction parameter

gradient = None
ideal_mixing_energy(phase, param_search)[source]

Returns the ideal mixing energy in symbolic form.

magnetic_energy(phase, param_search)[source]

Return the energy from magnetic ordering in symbolic form. The implemented model is the Inden-Hillert-Jarl formulation. The approach follows from the background section of W. Xiong, 2011.

static mole_fraction(species_name, phase_name, constituent_array, site_ratios)[source]

Return an abstract syntax tree of the mole fraction of the given species as a function of its constituent site fractions.

Note that this will treat vacancies the same as any other component, i.e., this will not give the correct _overall_ composition for sublattices containing vacancies with other components by normalizing by a factor of 1 - y_{VA}. This is because we use this routine in the order-disorder model to calculate the disordered site fractions from the ordered site fractions, so we need _all_ site fractions, including VA, to sum to unity.

redlich_kister_sum(phase, param_search, param_query)[source]

Construct parameter in Redlich-Kister polynomial basis, using the Muggianu ternary parameter extension.

reference_energy(phase, param_search)[source]

Returns the weighted average of the endmember energies in symbolic form.


Mole fraction which correctly normalizes for vacancies.


Return state variables in the model.

class pycalphad.model.TestModel(dbf, comps, phase, solution=None, kmax=None)[source]

Bases: pycalphad.model.Model

Test Model object for global minimization.

Equation 15.2 in: P.M. Pardalos, H.E. Romeijn (Eds.), Handbook of Global Optimization, vol. 2. Kluwer Academic Publishers, Boston/Dordrecht/London (2002)

  • dbf (Database) – Ignored by TestModel but retained for API compatibility.
  • comps (sequence) – Names of components to consider in the calculation.
  • phase (str) – Name of phase model to build.
  • solution (sequence, optional) – Float array locating the true minimum. Same length as ‘comps’. If not specified, randomly generated and saved to self.solution
None yet.


None yet.

pycalphad.refdata module

The refdata module contains pure-element reference state data.

pycalphad.variables module

Classes and constants for representing thermodynamic variables.

class pycalphad.variables.ChemicalPotential[source]

Bases: pycalphad.variables.StateVariable

Chemical potentials are symbols with built-in assumptions of being real.


String representation.

default_assumptions = {}
class pycalphad.variables.Composition[source]

Bases: pycalphad.variables.StateVariable

Compositions are symbols with built-in assumptions of being real and nonnegative.

default_assumptions = {}

alias of ChemicalPotential

class pycalphad.variables.PhaseFraction[source]

Bases: pycalphad.variables.StateVariable

Phase fractions are symbols with built-in assumptions of being real and nonnegative. The constructor handles formatting of the name.

default_assumptions = {}
class pycalphad.variables.SiteFraction[source]

Bases: pycalphad.variables.StateVariable

Site fractions are symbols with built-in assumptions of being real and nonnegative. The constructor handles formatting of the name.


String representation.

default_assumptions = {}
class pycalphad.variables.StateVariable[source]

Bases: sympy.core.symbol.Symbol

State variables are symbols with built-in assumptions of being real.

default_assumptions = {}

alias of Composition


alias of SiteFraction


alias of SiteFraction

Module contents