Hi all,

MICRESS may give the user a lot of different messages during runtime, appearing mostly in the screen or .log output and revealing information about the current status or errors. Unfortunately, many of these messages have been created to be useful for developers only, while others are directed to the user, and these two types are not always clearly separated. The reason for that is historic on one hand, but at the same time reflects that understanding exactly what happens often requires some understanding of the internal structures.

Thus, instead of hermetically separating the user from what he is supposed not to understand, I want to try in the following (and incrementally) to explain what is behind those messages, even if the explanations may reflect internal structures and leave open further questions. My plan is to structure the different groups of messages by individual posts, starting with a set of standard TQ-related errors which are written by a specific error handling routine.

## MICRESS messages

### MICRESS messages: Standard TQ-Errors

MICRESS errors, which occur in MICRESS routines in connection to calls to the TQ-Library, are numerated and will be listed in the following. In some cases, the number is expanded to 3,5 or 6 digits and contains information about the involved element or phase numbers. In other occasions there is a direct text output which for some of them only appears if the "database_verbose" mode is activated. The information often contains routine names. Although the routines are not accessible to the standard user, the names often are self-exlpanatory with respect to what could have happened:

Error No 'verbose information'

5 'initialisize segments' (InitTQ)

6 'initialisize: error on removing phases' (InitTQ)

7 Error on setting composition condition (SolveCCalFunTQ, SolveCNewton)

13 'Segment for phase pair' (SolveCGetLinTQ)

14 'Equilibrium 1' (SolveCGetLinTQ)

15 'Solvus slopes' (SolveCGetLinTQ)

16 'Equilibrium 2' (SolveCGetLinTQ)

17 'dGdT 2' (SolveCGetLinTQ)

18 'Solidus Slopes' (SolveCGetLinTQ)

19 'Calculate Undercooling for Nucleation - Segment' (SpfCalcUndercooling)

20 'Calculate Undercooling for Nucleation 1' (SpfCalcUndercooling)

21 'Calculate Undercooling for Nucleation 2' (SpfCalcUndercooling)

22 Error 1 in calculation of diffusion matrix (SolveCGetDiffMatTQ)

23 Error 2 in calculation of diffusion matrix (SolveCGetDiffMatTQ)

24 Error in calculation of enthalpy (ToolGetEnthalpyTQ)

26 Switch segment to 'Enthalpy' (ToolGetEnthalpyTQ)

27 Error on entry to routine 'SpfCalcUnderCooling'

28 Error on exit from routine 'SpfCalcUnderCooling'

29 Error on entry to routine 'ToolGetEnthalpyTQ'

30 Error on exit from routine 'ToolGetEnthalpyTQ'

31 Error on entry to routine 'SolveCGetLinTQ'

32 Error on exit from routine 'SolveCGetLinTQ'

34 Error on entry to routine 'ToolGetMolVolTQ'

35 Error on exit from routine 'ToolGetMolVolTQ'

Error Code explanation

10x Error during calculation of quasi-equilibrium, x=error limit, standard: x=4, force: x=5

1xxyy limits error, if the "limits" or "sumlimits" keyword is set. xx: phase number, yy: component number

3xxyy Composition of both phases is exactly identical. xx: phase number 1, yy: phase number 2

4xx00 error related to the "ordered"/"disordered" options. xx: Phase number

1xxyyzz limits error, if the "criterion_higher" or "criterion_lower" keyword is set. xx: phase 1, yy: phase 2, zz: component number

Error No 'verbose information'

5 'initialisize segments' (InitTQ)

6 'initialisize: error on removing phases' (InitTQ)

7 Error on setting composition condition (SolveCCalFunTQ, SolveCNewton)

13 'Segment for phase pair' (SolveCGetLinTQ)

14 'Equilibrium 1' (SolveCGetLinTQ)

15 'Solvus slopes' (SolveCGetLinTQ)

16 'Equilibrium 2' (SolveCGetLinTQ)

17 'dGdT 2' (SolveCGetLinTQ)

18 'Solidus Slopes' (SolveCGetLinTQ)

19 'Calculate Undercooling for Nucleation - Segment' (SpfCalcUndercooling)

20 'Calculate Undercooling for Nucleation 1' (SpfCalcUndercooling)

21 'Calculate Undercooling for Nucleation 2' (SpfCalcUndercooling)

22 Error 1 in calculation of diffusion matrix (SolveCGetDiffMatTQ)

23 Error 2 in calculation of diffusion matrix (SolveCGetDiffMatTQ)

24 Error in calculation of enthalpy (ToolGetEnthalpyTQ)

26 Switch segment to 'Enthalpy' (ToolGetEnthalpyTQ)

27 Error on entry to routine 'SpfCalcUnderCooling'

28 Error on exit from routine 'SpfCalcUnderCooling'

29 Error on entry to routine 'ToolGetEnthalpyTQ'

30 Error on exit from routine 'ToolGetEnthalpyTQ'

31 Error on entry to routine 'SolveCGetLinTQ'

32 Error on exit from routine 'SolveCGetLinTQ'

34 Error on entry to routine 'ToolGetMolVolTQ'

35 Error on exit from routine 'ToolGetMolVolTQ'

Error Code explanation

10x Error during calculation of quasi-equilibrium, x=error limit, standard: x=4, force: x=5

1xxyy limits error, if the "limits" or "sumlimits" keyword is set. xx: phase number, yy: component number

3xxyy Composition of both phases is exactly identical. xx: phase number 1, yy: phase number 2

4xx00 error related to the "ordered"/"disordered" options. xx: Phase number

1xxyyzz limits error, if the "criterion_higher" or "criterion_lower" keyword is set. xx: phase 1, yy: phase 2, zz: component number

### MICRESS messages: Notifications

There is a number of messages which are not indicating an error but just give relevant information to the user:

This message informs that for interface LIQUID/FCC_L12 7 relinearisations have been performed because a substantial part of the interface has moved. When using global relinearisation of fragments (old notation: "globalF", "globalGF"; notation from version 7.1: "interface_fragmented", "fragmented"), new interface cells get only a copy of the global linearisation parameters. Thus, apart from the user-defined updating schemes, an extra relinearisation is required if a considerable portion of the interface moved to another location.

Same as above, but for non-fragmented relinearisation schemes (old notation: "global", "globalG"; new notation: "interface", "global").

The fasv-command of Thermo-Calc is executed, which erases former equilibrium results and forces new start values. This forcing is applied for calculation of initial equilibria, or after equilibrium calculations failed.

Diffusion data are updated for all phases, because there was a user-defined update request or because new have appeared and need to be initialized.

Updating of linearisation data for all interfaces as requested by the user ("global relinearisation interval")

Updating of linearisation data for interface LIQUID/FCC_L12 as requested by the user ("Relinearisation interval for interface ...")

Phase 2 disappeared completely (i.e. no grain of this phase remains in the simulation domain). If this message appears directly after nucleating a new phase, it indicates that nucleation was performed, but not successful, because none of the grains of this phase got stable.

**Fast moving fragment(s) relinearized LIQUID/FCC_L12 (7)**This message informs that for interface LIQUID/FCC_L12 7 relinearisations have been performed because a substantial part of the interface has moved. When using global relinearisation of fragments (old notation: "globalF", "globalGF"; notation from version 7.1: "interface_fragmented", "fragmented"), new interface cells get only a copy of the global linearisation parameters. Thus, apart from the user-defined updating schemes, an extra relinearisation is required if a considerable portion of the interface moved to another location.

**Fast moving interface(s) relinearized LIQUID/FCC_L12 (7)**Same as above, but for non-fragmented relinearisation schemes (old notation: "global", "globalG"; new notation: "interface", "global").

**--> Force automatic start values**The fasv-command of Thermo-Calc is executed, which erases former equilibrium results and forces new start values. This forcing is applied for calculation of initial equilibria, or after equilibrium calculations failed.

**Updating of diffusion data from database...**Diffusion data are updated for all phases, because there was a user-defined update request or because new have appeared and need to be initialized.

**complete relinearisation!**Updating of linearisation data for all interfaces as requested by the user ("global relinearisation interval")

**Relinearisation interface: LIQUID/FCC_L12 t=1.0526919E-02**Updating of linearisation data for interface LIQUID/FCC_L12 as requested by the user ("Relinearisation interval for interface ...")

**Phase 2 disappeared at 1.2001872E-03 s**Phase 2 disappeared completely (i.e. no grain of this phase remains in the simulation domain). If this message appears directly after nucleating a new phase, it indicates that nucleation was performed, but not successful, because none of the grains of this phase got stable.

### MICRESS messages: Other types of error messages

Other types of error messages:

In this case, error 40200 occurred (wrong state of order in phase 2 , see above) while checking for nucleation and calculating nucleation undercooling in a specific location

Here, as well the Thermo-Calc internal error number ("TOO MANY ITERATIONS") as the MICRESS error number are given for phase pair 1/2 (nucleating phase 2 with reference phase 1)

initialisation (i.e. calculating quasi-equilibrium first time for a given phase pair) has failed.

Typical sequence of error messages if relinearisation fatally fails. Here, the interface of grains 0/393 could not be relinearized despite of different trials (which already may have created other error messages before. If this happens, linearisation data are not updated.

Typical sequence of error messages appearing if relinearisation of phases 1/2 fail (here due to problem 20201 that both phases end up with identical compositions despite not having an identical index in the database. Each line indicates an increasing level of error accomodation (1-10, reporting starts at 4). The number zp=99257 corresponds to the grid cell index where the error occurs and can be looked up in DP_MICRESS (e.g. .numR or .refR outputs).

Error in calculation of quasi-equilibrium for grain pair 1/393 despite of forcing automatic start values. Note that error 105 is reported only if no other more specific error (e.g. 1xxyy, 3xxyy, 4xxyy) has been detected.

No new diffusion data of phase 2 could be calculated from database. The old values are kept instead. Please note that "2/2" just means for phase 2 here.

Composition dependence of diffusion coefficients (character "l" in definition of diffusion terms) could not be obtained and therefor is neglected until the next update of diffusion data.

This error indicates that the internal list structure has failed, and the sum of the fractions at triple junctions is not correct anymore. This can be due to too large phase increments (unsuitable interface mobility) or to inconsistent initial microstructures (e.g. periodic boundary conditions for non-periodic structures) and means that the simulation most probably has already crashed...

Relinearisation has calculated opposite signs for slopes in interface fcc/bcc for component C, indicating the possibility demixing instabilities when multi-binary extrapolation is used. This message (and the associated potential problems) can be avoided by using diagonal extrapolation ("diagonal") or defining C as stoichiometric in one of both phases (preferentially where the slope is steeper).

Relinearisation has calculated opposite signs for slopes in interface fcc/bcc for component C despite of using diagonal extrapolation, indicating a real miscibility gap or inconsistencies in the linearisation data.

Relinearisation has found demixing conditions for ternary extrapolation schemes ("interaction")

**Checking for nucleation Nucl.Ph: 2 error= 40200**In this case, error 40200 occurred (wrong state of order in phase 2 , see above) while checking for nucleation and calculating nucleation undercooling in a specific location

**Thermo-Calc error 1611 MICRESS error 20 phases 1/ 2**Here, as well the Thermo-Calc internal error number ("TOO MANY ITERATIONS") as the MICRESS error number are given for phase pair 1/2 (nucleating phase 2 with reference phase 1)

**initialisation failed, error = 2 interface FCC_L12/FCC_L12#2**initialisation (i.e. calculating quasi-equilibrium first time for a given phase pair) has failed.

**# Error number 40200 in Interface 0/ 393**

# time: 1.100000000000000E-003 s

# Serious error in linearisation!# time: 1.100000000000000E-003 s

# Serious error in linearisation!

Typical sequence of error messages if relinearisation fatally fails. Here, the interface of grains 0/393 could not be relinearized despite of different trials (which already may have created other error messages before. If this happens, linearisation data are not updated.

**trying hard phases 1 2 level: 4 zp= 99257 error= 30201**

trying harder! Error = 30201

trying even harder! Error 30201trying harder! Error = 30201

trying even harder! Error 30201

Typical sequence of error messages appearing if relinearisation of phases 1/2 fail (here due to problem 20201 that both phases end up with identical compositions despite not having an identical index in the database. Each line indicates an increasing level of error accomodation (1-10, reporting starts at 4). The number zp=99257 corresponds to the grid cell index where the error occurs and can be looked up in DP_MICRESS (e.g. .numR or .refR outputs).

**# Error number 105 in Interface 1/ 393**

Error in calculation of quasi-equilibrium for grain pair 1/393 despite of forcing automatic start values. Note that error 105 is reported only if no other more specific error (e.g. 1xxyy, 3xxyy, 4xxyy) has been detected.

**MICRESS error 24 phases 2/ 2**

Diffusion data not updated in phase FCC_L12#2Diffusion data not updated in phase FCC_L12#2

No new diffusion data of phase 2 could be calculated from database. The old values are kept instead. Please note that "2/2" just means for phase 2 here.

**Composition dependence temporarily disregarded in phase FCC_L12#2 / Constituent-4**

Composition dependence of diffusion coefficients (character "l" in definition of diffusion terms) could not be obtained and therefor is neglected until the next update of diffusion data.

**Warning in spfAddPhInkr, t=0.1100002E-02**

Wrong fractions at nTupelp= 1735

sum = 3.000000

x,y,z = 57 1 99Wrong fractions at nTupelp= 1735

sum = 3.000000

x,y,z = 57 1 99

This error indicates that the internal list structure has failed, and the sum of the fractions at triple junctions is not correct anymore. This can be due to too large phase increments (unsuitable interface mobility) or to inconsistent initial microstructures (e.g. periodic boundary conditions for non-periodic structures) and means that the simulation most probably has already crashed...

**Warning: Demixing in interface FCC_A1/BCC_A2, component C**Relinearisation has calculated opposite signs for slopes in interface fcc/bcc for component C, indicating the possibility demixing instabilities when multi-binary extrapolation is used. This message (and the associated potential problems) can be avoided by using diagonal extrapolation ("diagonal") or defining C as stoichiometric in one of both phases (preferentially where the slope is steeper).

**Warning: Diagonal Demixing in interface FCC_A1/BCC_A2, component C**Relinearisation has calculated opposite signs for slopes in interface fcc/bcc for component C despite of using diagonal extrapolation, indicating a real miscibility gap or inconsistencies in the linearisation data.

**Warning: Ternary Demixing in interface FCC_A1/BCC_A2, component C**Relinearisation has found demixing conditions for ternary extrapolation schemes ("interaction")