AtomicChemicalPotentialList

class AtomicChemicalPotentialList(material_specifications, atomic_chemical_potential_list, dynamical_matrix_processes_per_task=None)

Constructor for the AtomicChemicalPotentialList object. An AtomicChemicalPotentialList ensures that either heat of formation conditions (when all elements present in the material specification pristine configuration are specified) or rich conditions (when only some are specified) are satisfied. If non native elements are included its atomic chemical potentials will be used directly without assuming either rich or heat of formation conditions for non native elements.

Parameters:
  • material_specifications (MaterialSpecifications) – Material specifications involved in the calculations. The atomic chemical potentials from this material specifications are ignored. Only the ones explicitly specified in the atomic_chemical_potentials parameter of this constructor are used.

  • atomic_chemical_potentials – A list of atomic chemical potential objects to work with.

atomicChemicalPotentials()
Returns:

The user provided list of chemical potentials

Return type:

list of AtomicChemicalPotential

calculatedAtomicChemicalPotentials(temperature=None)

This function can only be called on updated objects.

Parameters:

temperature (PhysicalQuantity of type temperature) – The temperature used for calculating entropies
Default: 300.0 * Kelvin

Returns:

List of atomic chemical potentials with their properties properly calculated. This list can be directly assigned to a MaterialSpecification for further calculations.

Return type:

list of AtomicChemicalPotential

dependentStudies()
Returns:

The list of dependent studies.

Return type:

list of Study

dynamicalMatrixProcessesPerTask()
Returns:

The number of processes that will be used to execute each task for DynamicalMatrix study objects.

Return type:

int

filename()
Returns:

The filename where the study object is stored.

Return type:

str

logFilenamePrefix()
Returns:

The filename prefix for the logging output of the study.

Return type:

str | LogToStdOut

materialSpecifications()
Returns:

The material specifications associated with the chemical potentials

Return type:

MaterialSpecifications

nlprint(stream=None)

Print a string containing an ASCII table useful for plotting the Study object.

Parameters:

stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()

numberOfProcessesPerTask()
Returns:

The number of processes to be used to execute each task. If None, all available processes should execute each task collaboratively.

Return type:

int | None | ProcessesPerNode

numberOfProcessesPerTaskResolved()
Returns:

The number of processes to be used to execute each task. Default values are resolved based on the current execution settings.

Return type:

int

objectId()
Returns:

The name of the study object in the file.

Return type:

str

saveToFileAfterUpdate()
Returns:

Whether the study is automatically saved after it is updated.

Return type:

bool

tasksFinished()
Returns:

how many tasks are finished out of how many

Return type:

tuple of int, int

totalEnergyReference()

Function to be called on updated objects only.

Returns:

The total energy for the unit cell in the material specifications.

Return type:

PhysicalQuantity of type energy.

totalEntropyReference(temperature=None)

Function to be called on updated objects only

Parameters:

temperature (PhysicalQuantity of type temperature) – Temperature for entropy calculation.
Default: 300K

Returns:

The total entropy for the unit cell in the material specifications at the specified temperature. None if not needed (assumed entropies specified).

Return type:

PhysicalQuantity of type energy / boltmann_constant | None

uniqueString()

Return a unique string representing the state of the object.

update()

Performs the calculations for the AtomicChemicalPotentialList,

Example

A simple example for a TiN system where Ti-rich conditions are desired is:

Ti_rich   = AtomicChemicalPotentialList(TiN,[AtomicChemicalPotential(Titanium)])
Ti_rich.update()
nlprint(Ti_rich)

# update reference material with updated chemical potential - Ti rich condition
TiN_rich = TiN(atomic_chemical_potentials=Ti_rich.calculatedAtomicChemicalPotentials())