I want to calculate the difference in Gibbs free energies between a Zr-Cu-Al liquid (composition - Zr 65 Cu 27.5 Al 7.5 at%) and the CuZr2 solid phase as a function of temperature (300 - 1000 K). In the system I am modelling, I assume solid $\ce{CuZr2}$ precipitates out of Zr-Cu-Al liquid and I want to calculate the driving energy for the crystallization event by using parallel tangent construction.

I found the thermodynamic description of Al-Cu-Zr system by the CALPHAD approach in .TDB format (source file and publication are available). Could someone please advise me about how to do these calculations using either Thermocalc (free academic version) or OpenCALPHAD? Thanks in advance for your time.

  • $\begingroup$ +1 Welcome to our new community and thank you very much for contributing your question here! We hope to see much more of you in the future !!! I've made some small edits to your question, would it be possible for you to proofread it and try to fix any foibles you may find? $\endgroup$ Commented Mar 2, 2021 at 19:22

1 Answer 1


Thermo-Calc's DGM is the normalized parallel tangent driving force per mole of components. To be able to compute the driving force of a phase, it must be set to "dormant" status so that it cannot become stable, but the driving force can still be computed.

Here's an example macro of how this could be done in Thermo-Calc:

@@ These commands can be copied into console mode or saved as a macro (.TCM) file
@@ Load your database and get the data for your system
go database_retrieval
@@ the next command will open a file dialog to pick your TDB file
switch user

define-elements AL CU ZR

@@ Go to poly-3 module to do calculations
go poly-3
@@ Set conditions for the fixed values
set-condition n=1 P=101325 X(CU)=0.275 X(AL)=0.075
@@ Set temperature axis variable, accept default step size
set-axis-variable 1 T 300 1000 ,

@@ Make all phases dormant except for the liquid phase
@@ We first make all phases dormant (so we don't need to specify all solid phases manually)
change-status phase *=dormant
@@ Then make liquid entered with a phase amount of 1
@@ If your liquid has a phase name that is not LIQUID, then change that here
change-status phase LIQUID=entered 1

@@ Perform a normal step calculation to step in your axis variable (temperature)
step normal

@@ Plot using POST
set-diagram-axis x T
@@ Assuming your phase is named CUZR2, set the Y-axis to plot DGM(CUZR2)
@@ Note that DGM is the normalized driving force per mole of components (normalized by RT)
set-diagram-axis y DGM(CUZR2)
@@ If you want to plot driving forces for all phases, you can use DGM(*)
@@set-diagram-axis y DGM(*) *
@@ Set the curve labeling to option F to get each phase to be labeled with a color and make a legend
set-label-curve-option F

@@ Return control to the user if run from a macro

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .