Skip to content

Latest commit

 

History

History
31 lines (24 loc) · 3.52 KB

README.md

File metadata and controls

31 lines (24 loc) · 3.52 KB

REPEATC - Rapid Exploration of Phase Equilibria Across Temperature and Composition

When exploring a new alloy system, a valuable exploration is to evaluate phase development and transformation at a known set of conditions. In the Taheri-Mousavi laboratory, this investigation has been the first step of any new project, from diule Al-alloys to multi-principle element alloys (MPEAs), where we evaluate phases and distribution versus temperature, introduction of new elements, and changes to composition (such as along the range of compositions).

This code is intended to accelerate these explorations by offering a general script which, using a local ThermoCalc and TC-Python installation, will take an alloy, database, and set of input conditions (currently configured to be temepratures, "T", or fraction of a non-balancing element), then perform single equilibrium calculatiuons at each condition. The output is then represented as plots for phase fraction, composition of each phase, and distribution of each element in phases.

The architecture of this is a custom class, "alloy_sys" with the following parameters:

  • dependent (Balancing element, default: 'Al')
  • composition (Dictionary containing alloying elements and initial composition in weight or mole fraction, default: {"Si":0.1,"Mg":0.0035})
  • param (Axis for simulation / parameter adjusted for each condition, currently accepts temperature ("T") or an element in the composition ("Si","Mg"), default: 'T')
  • param_range (Values for parameter to be varied on, equilibrium is performed at each condition, default: range(300,1300,100))
  • unit (Character that describes if composition is in weight fraction ("W") or mole fraction ("X"), default: 'X')
  • custom (Boolean value for if custom database (True) or preloaded ThermoCalc database (False) is used, default: False)
  • database (If using ThermoCalc databse (custom is False) write string for databse selected, otherwise enter path to custom TDB file, default: 'TCAL9')
  • suspended (List of phases to be suspended from calculation, default: None)

The class has four built-in functions:

  • do_perform_single_axis_split() which performs calculation. Additional arguments are temperature (T, default=298) and threshold (default 0.0001) - threshold is used to prevenet clutter by exlcuding phases that are at extremely small fractions, as well as only show elements that are in phase in the composition plots.
  • phase_distribution() which plots the amount of phase at each composition
  • composition_distribution() which creates subplots for each phase and shows composition trends
  • element_distribution() which creates subplots for each element and shows which phases they are in

The three plotting functions also pass the threhsold number as an argument, as well as a list of phases to be explictely excluded from the charts.

A set of examples for this is compiled in the attached "Alloy_syst_test" notebook which compares the setup for an Aluminum-Silicon-Magnesium alloy and a Nickel-Chromium-Niobium alloy.These cases compare evolution of phases at different temperatures Additional examples are compiled which compare influence of Iron on the Aluminum-Silicon-Magnesium alloy at a set temperature, and

New capabilities for future development:

  • Dual-axis simulations varying two compositions or a temperature and composition.
  • Element dependence - if the fraction of a second element is dependent on the primary axis (e.g. if equal fractions of dopants are added simultaneously)
  • Parallelizing calculations - accelerate simulations by running concurrently
  • Scheil simulations