-
Notifications
You must be signed in to change notification settings - Fork 77
/
changes.txt
2479 lines (2073 loc) · 127 KB
/
changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
This file contains information on OpenCalphad (OC) version 6 and
earlier. This log started 2016-03-03.
For general information please read the intro-OC7.pdf and the
macros-OC7.pdf.
There is a precompiled installation of OC for Windows on the
OpenCalphad web page. It includes an introduction, on-line help and
examples with macro files and some small databases. For graphics the
free GNUPLOT software must be installed separately from Sourceforge or
a similar website.
On Linux, MacOS and other OS the installation requires some general
knowledge about compiling and linking of software. There is an
installation manual (and an old mainly redundant video on You Tube)
but if you are not familiar with such procedures please ask a local
guru for help. Installation problems depend on your local
envirionment and we who provide this software for free do not have the
time to answer such questions.
In the list below the most recent changes come first.
2024.10.28 version 6.076 A preliminary code for calculating
Toop/Kohler extrapolations has been added. This is still debugged and
very tentative. If you want to test any feedback is appreciated.
2024.10.26 version 6.075 The data structure for Kohler/Toop ternary
extrapolation structure revised but still not implemented for
calculations.
2024.10.22 version 6.074 A number of bugfixes and cleanups. Using the
MQMQA or new ternary extrapolation methods may still generate a lot of
information useful for debugging.
2024.10.20 version 6.073 The implementation of the MQMQA model and the
Toop/Kohler ternary extrapolation method has progressed somewhat.
Time to save an intermedeate state.
2024.10.04 version 6.073 Cleaned up some code in ges5E.F90. Added an
example sro-cef.OVM to calculate the prototype FCC phase diagram.
2024.06.30 version 6.072 The subroutine calc_toop moved to the
gtp3XQ.F90 file as it is closely associated with the MQMQA model even
if Toop and Kohler ternary extrapolation methods can be used in any
phase. I had forgotten this subroutine evidently written in 2020. It
uses records of the TYPE gtp_tooprec to identify a ternary with Toop
or Kohler extrapolation. Most probably the more elabore
Toop/Kohler/Muggianu extrapolations described in Peltion's paper from
2001 are not included. The routine has not been properly debugged.
2024.06.18 OC version 6.071: Long time no development. Created a
gtp3XQ.F90 so simplify work in the MQMQA model and handling
multicomponent Kohler-Toop extrapolations.
2023.12.16 OC version 6.070: Many minor changes to prepare for the
implementation of TDB files using the XML markup language.
2023.10.29 OC version 6.069: In the previous update I forgot to
mention that the argument for the GEIN function has been changed to be
the actual Einstein THETA, not the logarithm. See OC version 6.062.
In the LNTH parameter the logarithm of the THETA is used because it is
physically more reasonable to vary the logarithm of THETA with the
composition. But one can use the same numeric THETA value as in the
GEIN function by using LN(THETA) for the parameter.
Last update also included a macro to calculate the Al-C system with
the new unary. But I forgot the explain how one can handle the Gibbs
energy for unaries with multiple Einstein THETA, for example C as
graphite. In the database for the Al-C system you can see for example
the graphite phase, which has been assessed using 5 THETA, the
parameters are:
PARAMETER G(GRAPHITE,C) 10 +GHSERCC; 6000 N 20HE !
PARAMETER LNTH(GRAPHITE,C) 10 LN(1953); 6000 N 20HE !
where the function GHSERCC is split on several functions:
FUNCTION GHSERCC 10 -17752.213 +GEGRACC +GTSERCC; 6000 N !
FUNCTION GEGRACC 10 -0.5159523*GEIN(1953) +0.121519*GEIN(448)
+0.3496843*GEIN(947)+0.0388463*GEIN(193)+0.005840323*GEIN(64); 6000 N !
FUNCTION GTSERCC 10 -2.9531332E-04*T**2-3.3998492E-16*T**5; 6000 N !
The sum of the coefficients for the GEIN functions in GEGRACC must be
unity. As one of the Einstein THETA, equal to 1953, is used also in
the LNTH parameter this represents a coefficient equal to unity. Thus
the coefficient of the GEIN function for the same THETA, 1953, in
GEGRACC must be negative. Note that the GTSERCC has no linear T term
and no T*LN(T) term as the heat capacity and entropy must be zero at
T=0K. A minor spelling error is also fixed.
2023.10.27 OC version 6.068: A new example added using the new unary
models. The Al-C system assessed in 2021 by Zingtang He et al. The
new usnary is implemented in the software but there is still no way to
specify these in the TDB file which is one of the reasons for the
project to develop a new XML based format. Anyway I added an example
showing one can now calculate heat capacities down to a few K.
2023.10.23 OC version 6.067: A rather serious bug in handling
expressions for TP functions and parameters has been discovered. This
is now fixed and illegal expressions which were previously accepted,
for example "T**-1", without parenthesis surrounding the power,
i.e. "T**(-1)", will now give an explicit error message indicating the
line on the databases which needs correction. This error may occur
also with database you have used for a long time.
2023.10.01 OC version 6.066: A fix to supress illegal XML characters
(< > & and ") in bibliogaphic references. The characters are replaced
by [ ] | and ' to avoid increasing the length of the text.
2023.09.30 OC version 6.065: A tentative XML format has been
implemented when saving databases. The command is SAVE XTDB. The
current TDB format has worked for 40 years but new models has made it
cumbersome and different software has added various features which
makes it difficult to read a TDB file generated by one software by
another one. The TDB file was developed for the 1991 unary and
hopefully there will be a new XML standard developed for the new
generation unary data. There is still no way to read the XTDB format
by OC as the different features are still discussed.
2023.09.18 OC version 6.064: The first update using my new PC! I am
still not working full time, there are reasons to enjoy the time as
retired also. I added a LIST WORKING_DIR making it easier to know
where any plot files have disappeared if you do not find them. The
macros STEP-TZERO and and MAP19 have some additional features also.
No major changes in the software.
2023.05.27 OC version 6.063: The development is really slow, the only
thing added is the command CALCULATE LIQUID_EET which calculates the T
(or composition) where two phases (not necessarily the liquid) have
the same entropy. This can be useful to calculate when the "EEC" or
Equi-Entropy Criteria would prevent a solid phase to become stable
because it has higher entropy than the liquid. This is one feature
added to the new unary database to avoid introducing a breakpoint in
the heat capacity of the solid phases extrapolated above the melting
point of the element. However, STEP LIQUID_EET is not implemented
yet, one has to calculate point by point.
2023.04.24 OC version 6.062: The example step-epz has been modified.
This macro calculates sections of an Fe-C alloy with small additions
of Mn and Si system in order to explain various transformations in
steels using full equlibrium, the para-equilibrium concept and the
T-zero line for diffusionless transformations (martensite!).
The GEIN function to calculate the Einstein low T vibrational
contribution to the heat capacity has been modified to take the
logarithm of the Einstein THETA as argument. This is to be compatible
with the LNTH parameter which calculates the composition dependent
Einstein function. When an element has several THETA they are each
weighted with factors, sum of which must be unity. When one of them
is selected as the LNTH parameter, which has the weight unity, the
weight factor for the corresponding GEIN function must be negative and
the same value of the Einsten T must be used for the LNTH and the GEIN
function.
2023.03.08 OC version 6.061: Celebrating women day! I have started
implementing a model for SRO a la CVM for tetrahedron FCC. This is
still only for testing and a model also for CVM LRO is in the
pipeline. A number of other minor improvement added and bugs fixed.
2023.01.22 OC version 6.060: A long time without work, or rather too
much to have time with the software. I am still struggling with the
MQMQA model with litte progress, the map19 and cslaf-map macros are
still the only examples. But I have improved the stability of some
STEP calculations using T as axis variable. An OC user had a
complicated step calculation with 18 components (a nuclear fuel) and
it failed many times calculating phase amounts from 1000 to 3000 K. I
found the reason was the negligable solubility of some elements in the
metallic liquid combined with bad extrapolation of the Gibbs energies
of some of the 200 solid compounds. This meant that some elements did
not dissolve properly in the liquid and some compounds tried to become
stable at various T. I added an extra check to prevent this and the
step calculation became much more stable. Unfortunately this extra
check had a bad influence on the normal MAP/STEP calculations so the
checks had to be refined. But the current version should be able to
reproduce all the examples.
2022.10.13 OC version 6.059: The way of entering constitutions for the
command "calculate phase" has changed to set, by default, the same
fraction of all constituents in each sublattice. That is usually the
best when using this command to set an initial composition of a phase
when there are convergence problems. Individual fractions can be set
and the fraction of the major constituent can be set as the "rest".
2022.09.21 OC version 6.058: An irritating bug that FCC_4SL with FCC
permutations was stored as the alphabetically last phase has been
fixed. Several minor things also fixed, for example append plot files
were very sensitive to text on comment lines.
2022.08.18 OC version 6.057: The command SET OPTIMIZING_COND has been
changed to SET LMDIF_ACCURACY. LMDIF is the least square routine used
for assessments in OC. The commands to set an optimizing coefficent
as VARIABLE, FIXED or SCALED (the latter not yet implemented) are now
set OPTCOEFF_VARIABL, OPTCOEFF_FIXED and OPTCOEFF_SCALED respectivly.
This should make the commands a little easier to remember. The files
in examples/macros for testing the optimizer been modified for this.
The documentation of the GTP and the minimizer has been updated. Work
in ongoing on the online help and other modules to prepare for a
release of version 7 later this year.
2022.07.28 OC version 6.056: The code for the models have been
reorganized to prepare for its documentation. Some minor bugs fixed
and some commands have been modified.
2022.07.15 OC version 6.055: Modified reading TDB files to accept
longer input lines (120 characters) and to handle some odd terms in
functions, such as T**(+2) rather than just T**2, which was prevously
not accepted.
2022.07.13 OC version 6.054: Summer vacation, some more fixes of the
MQMQA model, a new macro map19.OCM for NaCl-MgCl2, added for the MQMQA
model in the examples/macro directory. A bug using the assessment
module which caused crashes on Linux but was undetected on Windows has
been fixed. The converter of ChemSage DAT files to TDB files
developed by Nathalie Dupin has been tested and works although some
DAT file seems to contain a lot of redundant phases.
2022.06.10 OC version 6.053: A redundant debug message removed.
2022.05.16 OC version 6.052: Just some more bugfixes. MQMQA tested
with three cations, some problems with reciprocal system.
2022.05.13 OC version 6.051: Friday 13th version with a minor bugfix
in MQMQA model. I have added a sleep function after submitting a plot
to GNUPLT from OC for my own testing of the graphics as sometimes a
plot was overwritten by the next plot. Normal plotting should not be
affected.
2022.05.11 OC version 6.050: The OC implementation of the MQMQA model
can now handle some of the excess parameters. As this model is
different from anyone previously implemented in OC and its
documentation is involved and fairly cryptic there has been some
difficulties to understand some "hidden" model parameters in the way
the Gibbs energy is calculated. A second problem is that most systems
used with this model are quasi-binary or -ternary system where the
amount of one of the components is is given by the ratio of the amount
of the other components. This works also in OC but will proably
require some modificatons to improve the convergence.
2022.04.19 OC version 6.049: The declaration of error code gx%bmperr
has been moved to METLIB4 in a first step to unify error codes. Some
strange problems compiling with OpenMP for parallel had to be fixed.
Some more general routines has been moved from gtp3*.F90 to
metlib4.F90. The TDB reader in gtp3E.F90 has been prepared to handle
reading encrypted databases but such options are outside the scope of
the free version of OC.
2022.04.07 OC version 6.048: A number of minor bugfixes and other things.
2022.04.02 OC version 6.047: I have now implemented a binary version
of the TISR model for SRO, (see a recent Calphad journal). I have
also made additional changes to prepare for reading encrypted
databases with OC. This means changes in datastructures that I have
not touched for many years and this may cause trouble for some
applications, please report problems!
2022.04.01 OC version 6.046: The Makefiles have now been updated for
all the changes made.
2022.03.30 OC version 6.045: In order to prepare OC to read encrypted
databases some modifications of the data structures and subroutines
has been made. There should be no change for using unencrypted
databases. Please report any problems!
2022.03.26 OC version 6.044: The war in Ukraine has made me think
developing thermodynamic software is not very important. But work
goes on, the reading of TDB files has been simplified by reading
all TYPE_DEF first, before any other keyword. The reason is that in
OC a TYPE_DEF character had to be defined before it was used in a
PHASE keyword. But many TDB files are organized differently and as it
is accepted by other software it is now finally accepted also by OC.
This should not affect anything in the calculations but please report
problems! Additionally a parameter identifier "BM", used as
abbreviation for BMAGN (for the Bohr magneton number), will be
interpreted as BMAG, which is the coresponding OC parameter
identifier.
There is a new command "LIST ESTIMAT_ACCURACY" which can be used after
an equilibrium calculation to obtain error estimates of the results.
This is done by calculating mumltiple equilibria varying the value of
the conditions with +/-5%. It can be useful to understand how the
system will behave in a production situation when it can be difficult
to keep compositions and temperatures at the optimal values.
2022.02.21 OC version 6.043: Clement Introini and his colleagues at
CEA Cadarache have worked extensively with the grid minimizer and
various other parts of the code and has allowed that to be shared by
all users of OC. The integration is still ongoing and there are some
examples that may fail until all is finished as well as some which
work better.
2021.12.15 OC version 6.042: Working with Nathalie Dupin to make it
possible for OC to read MQMQA databases using a TDB format. The
converter from DAT format is written by Nathalie. Update with some
bugfixes.
2021.12.12 OC version 6.041: Restored using the fraction of the
reference state of an MQMQA FNN endmember and removed the irrelevant
reference state from listing of MQMQA SNN parameters. Now the way to
transform endmember parameters from DAT to TDB should be stable. But
there are still problems to be solved for excess parameters.
2021.12.11B OC version 6.040: Fixed one more bug for the reference
state. Now the excess parameters ... and some peace of mind during
Christmas.
2021.12.11 OC version 6.039: There is no nobel price in thermodynamics
but maybe there should be ... . The MQMQA model is a bit more stable
and spurious lines for tracing removed.
2021.12.03 OC version 6.038: First calculation with MQMQA with SRO and
correct reference state. Still fixing minor bugs and the data
structures can be improved. This model violates almost all principles
I have had developing models and I have not tried reciprocal models
yet. It is still just the basic MQM but include the possibility to
have several constituents on both sublattices.
2021.11.26 OC version 6.037: Even more bugfixes in the MQMQA routines.
Collaborating with Nathalie Dupin to convert ChemSage DAT files to TDB
files.
2021.11.15 OC version 6.036: More bugfixes in the MQMQA routines.
2021.11.07 OC version 6.035: A version of the SGTE unary database
adapted for OC is available on exaples/macro. Some problems with
converting a TDB file to a ChemSage DAT file has been fixed but there
may still be problems.
2021.11.01 OC version 6.034: Finally the MQMQA model works for some
simple examples such as SRO in a system A-B-AB. Further testing and
calculations on real systems are needed but as OC cannot read DAT
files we have to wait for some files to be converted a TDB format
extended with some bond parameters. Thanks to Max Poschmann and the
people developing Thermochimica for all the help.
2021.10.13 OC version 6.033: Some progress with MQMQA to be saved
before I make a mess of it again.
Working on the implementation of MQMQA model has revieled some
problems within OC. The first was the fact that a species containing
Va, which may occur in a "quadrupole" in this model, is counted as a
real atom and this upset the calculation of mole fractions. This has
been fixed temporarily but needs further attention if the vacancy mix
with other species in a sublattice. Secondly the amount of formula
units of a phase is upset when the total amount of atoms in a phase is
less than unity. This occur regularly in MQMQA because most
quadrupoles, which are treated as real species in OC, normally contain
less than 1 atom, often 1/3 or even less.
The reason is that in OC and FactSage the "amount of a phase" means
different things, in FactSage there is no specific "amount of phase",
only the amount of atomes in a phase, whereas OC (and TC) has defined
a property called "Formula Unit" (FU) of a phase and normally one has
values of properties "per FU" as well as "per mole of atoms". The
difference can be big as phases such as sigma has 30 atoms per FU and
23-catbide contains 29 atoms. The FU simplifies slightly the modeling
of phases because the Gibbs energy of a phase in OC is defined per
mole formula unit wheras in FactSage it is defined per mole of atoms
in the phase. Thus in OC there is a property "amount of phase per
formula unit" which is used in the "list result" whereas the property
NP(phase) is the "amount of atoms" in the phase. These can differ if
there is not 1 atom/FU.
The value of the FU of a phase can vary if there are vacancies or
species with different number of atoms in a phase (for example in a
gas phase or an interstitial phase with vacancies). Using FU normally
simplifies writing the Gibbs energy formula for the phase as it is
independent of the actual amount of the phase. But the MQMQA model is
defined using the amount of atoms in the different quads and initially
I tried to follow this but it became incompatible with the rest of OC.
The simplest is to use the formula unit 1 for the MQMQA liquid. The
sublattices in MQMQA can contain vacancies but they have no charge (in
contrast to the I2SL model where the number of sites are adjusted to
make the phase neutral). The actual number of atoms per sublattice
can vary in MQMQA, normally it seems to be less than unity. The
sublattice occupancy is calculated from the quad fractions and as
several quads contain the same species on the different sublattices
the fraction of the identical species fractions in a sublattice are
added together. In the case of the same species with different
valency (such as Fe+2 and Fe+3) they will be be treated as different
and give a contribution to the configurational entropy in the
sublattice.
I have also found that there are some restrictions in OC when the
amount of atomes per FU is less than one to avoid dealing with phases
with an excess of vacancies, this may have to be modified.
2021.10.01 OC version 6.032: More time with no work, or rather very
little progress. The MQMQA model is still refusing to work but some
light in the end of the tunnel. I wish to save the current status on
the github server as I continue.
2021.08.04 OC version 6.031: Long time no work ... the problem using
mass % for mapping seems to be fixed, I am not sure why it occured.
I have added a directory examples/TQ4lib/F90/parallel-alnipt with a
new example for the TQ interface simulating diffusion in an AL-Ni-Pt
system in parallel. There are instructions in the directory how to
compile, link, run and plot. There is also a slideshow explaining the
example.
For database managers looking for errors in the database there is a
DEBUG TRACE command which can turn on a listing of rejected
parameters.
I have added a new command that can be useful for assessments. It
copies the phase amounts and constitutions from one specified
equilibrium to the current one. When assessing miscibility gaps using
several equilibria with tie-lines the miscibility gap frequently fails
in some (or all) equilibria during an optimize run. To restore the
constitutions in several equilibria can be a pain. Now, after
restoring the model parameter and recalculated the miscibility gap in
one equilibrium "eqnum", one can select another experiental
equilibrium with the miscibility gap and transfer the phase amounts
and constitutions from eqnum to this using "AMEND START_CONST eqnum".
In PARROT this was the "TRANSFER" command.
My main task is still to implememt the MQM model but ... I am also
working on adding a new STEP variant called STEP FAST which is a
Scheil-Gulliver solidification model with one or more fast diffusing
elements. The fast diffusing element has the same chemical potential
in the liquid as in the already solidified sections. Typical examples
is solidification of steels with C.
2021.04.25 OC version 6.030: It seems there are difficulties to
calculate diagrams using mass percent, w%. No such problems uing mole
or mass fractions. Until I have had time to look into this please use
fractions as axis variables in all calculations of diagrams. For
plotting it is possible to use mass percent.
I have fixed that the axis conditions used during step/map are now
restored after the step/map has finished (unless there is an error).
2021.04.25 OC version 6.029: A few corrections in the new magnetic
model have been made, evidently the new magnetic model still uses the
disordered paramagnetic state at high T as reference state except(!)
corrected for the pure elements in the new unary database. This may
cause some non-zero or even negative entropies for alloys.
I also changed the "model-parameter-id" VS to be VD because the "S" in
VS can be misunderstood as the SER reference state suffix. The
restoring of conditions after STEP and MAP has also been removed as it
caused problems. I will check if it can be restored later.
2021.04.15 OC version 6.028: In the Makefile for Linux I have changed
to use X11 plot driver in GNUPLOT by default. For MacOS the qt plot
driver is the default and for Windows the wxt. The user can change
this interactivly also for each plot.
The "model-parameter-identifier" for the Einstein T, hithero known
as THET has changed to LNTH as it is the value of LN(theta) which
is used. The reason to use LN(theta) is that the composition dependence
is better expressed using the logarithm.
The Inden-Hillert-Qing-Xiong model for magnetism has been corrected
according to the paper 2001 by Qing and Sundman. It is now possible
to include this magnetic model as well as the Einstein low T heat
capacity model in TDB files. Up to know it was only possible to enter
these models interactively or from macro files.
2021.04.07 OC version 6.027: Finally it is possible to enter symbols
that include values of model parameter identifiers. This may not be
something everyone does every day and I had never tested it but
sometimes it may be useful. I have also fixed that one can use
conditions on constituent fractions in phases with ionic constituent.
I was surprised it was not already allowed but it is true I had never
had any reason to test it. A number of minor bugs fixed.
I have had a look at TQlib and slightly updated the crfe example.
Note that on Github there are several Python-OC libraries which may be
simpler to use for those not familiar with Fortran.
2021.04.02 OC version 6.026: Some new interest in the 3rd generation
unaries, I have fixed some problems with the composition dependent
THETA (the Einstein temperature) for the low T model.
I have also added some new facilities for plotting results from
isopleth calculations, previously one could not plot the phase
compositions, only the composition on the lines separating phase
regions in the plane of the calculation. Evidently such diagrams
(they are not phase diagrams!) can be useful in some cases.
2021.03.25 OC version 6.025: User guide (prerelease version 7) and
news-OC7 added. User Guide and online help system slightly improved
and help added for some new (sub)commands and questions.
An attempt has been made to fix several spurious bugs in the plotting
but as previously noted the step/map/plot routines are still very fragile.
A bug handling expressions used as conditions, for example
y(bcc,Al#2)-y(bcc,Al#3) used in macro map17 has been fixed.
2021.03.14 OC version 6.024: Some minor improvement of the
Scheil-Gulliver and paraequilibrium calculations and plotting made.
2021.03.14 OC version 6.023: A very fragile facility to calculate and
step paraequilibria has been implemented. This time it was mainly the
non-linear solver that caused problems, when eventually there was
something to plot there were no extra problems. Except to append a
plotfile that already contained an appended file. There is a new
macro "step-epz" which calculates a stable isopleth for the Fe-Mn-Si-C
system and then overlays that with a paraequilibrium section for
bcc/fcc and overlays that with a tzero line between bcc/fcc. It may
be useful to understand transformations in low alloyed steels. I am
grateful to Bengt Hallstedt who provided a new free steel database,
"iron4cd.TDB" intended for cast irons.
The calculate/step NPLE will be put on the shelf for a while, in the
macro testcond1 there is an example how to calculate a single NPLE
equilibria which can be more intructive than just mechanically repeat
set/calculate/step/plot.
2021.03.07 OC version 6.022: Finally I have implemented some new STEP
commands useful to simulate some limiting cases of phase transformations:
- STEP TZERO to calculate a curve where to phases have the same Gibbs
energy. Such a curve can be taken as a limit of a diffusionless
transformation.
- STEP SCHEIL_GULLIVER to calculate a solidification curve assuming no
diffusion in the solid phases and a homogeneous liquid.
One more step option will hopefully be implemented soon.
- STEP NPLE to calculate a "No Partitioning Local Equilibrium" line
which describe the limit of fast ferrite/austenite transformation in a
steel, assuming that only carbon can diffuse and the ferrite inherits
the alloy composition of the austenite.
Neither of these simulations describe an equilibrium situation and
must be used with care. There are new macros, step-tzero and
step-scheil explaining how to use tese commands. As always please
report problems.
A main problem I have with the diagams is the plotting because I wrote
most of the step-map-plot package some 5 years when I was learning the
new Fortan and knew nothing about GNUPLOT. Hopefully I will get time
to rewrite the whole graphical interface sometime, as well as update
documentation and help files. Luckily Chunhui Luo is working hard to
make OC more user friendly with the OC-CAE program.
2021.02.26 OC version 6.021: An attempt has been made to improve
mapping of phase diagram. As a first step several startpoints are
now allowed for a map calculation and in a second step automatic
startpoints will be generated. The phase diagram calculation is very
sensitive to the start points and any manipulation of the code for
mapping creates havoc in some diagrams.
The command to add a second or third start point is "SET AS_START"
after calculating the equilibrium with a new set of conditions.
Additionally one can invoke a global minimizer at regular intervals
during mapping with the command "SET ADVANCED MAP" followed by a
number. The global grid minimizer will check the equilibria along the
calculated lines at regular intervals according to this number and may
prevent metastable extrapolations.
2021.01.27 OC version 6.020: On request from a user I have added a new
list command, "LIST CSV-TABLE" which will generate a table with "Comma
Separated Values" (CSV) of the result of a STEP command. This can be
read by excel for further manipulations. The user can select the
independent variable and the property or properties to be tabulated in
the same way as for the PLOT command (note that the ocgnu.plt file,
generated by the PLOT command, has a similar table). The rows will be
in the order the equilibria were calculated, not sorted in order of
the independent variable value. Excel itself should have facilities
to handle that.
The implementation of the MQMQA model has progressed a bit and a new
method to enter and store the necessary data of the "cluster"
information has been created. Many of the clusters have fractional
stoichiometry and the listing of the species stoichiometry has been
modified to be max 6 digits (including a decimal point). Internally
the stoichiometry is stored as a 64 bit real number and should be
entered as exact as possible.
2020.12.14 OC version 6.019: Modified input/output of data for models
of phases to handle and list a bit more information. I have also
added a new wildcard, "#", to allow plotting the driving force, DGM,
of metastable phases. The wildcard "*", ignore metastable phases.
Still working on understanding the MQMQA quasichemical model (the -QA
suffix means including quadrupol clusters). A new model parameter
identifier, ZMQM, has been added to define the variable coordination
factor for the elements in the liquid but maybe it is not needed.
2020.11.19 OC version 6.018: Some more fixes for the TDB2DAT
facilities.
2020.11.13 OC version 6.017: The facility to write thermodynamic data
in the FactSage DAT file format has been improved and has been tested
for a fairly complex 21 component system.
GNUPLOT is a very nice software but also very complex and not until
now I have finaly figured out how to plot lines with symbols. In OC
the PLOT subcommand "EXTRA LINE-TYPE 2" plots a symbol at each
calculated point along each line. "EXTRA LINE 0" gives a dotted line,
and "EXTRA LINE 1" a full line without symbols. A number higher n>2
means every every (n-1)th calculated point has a symbol. See the
macro files step1 and map18 for an example. By giving the command
twice, once with n=0 and once n>1 one will dashed lines with sysmbols.
To have full lines back one must use n=1.
2020.11.08 OC version 6.016: Any inline argument provided when
starting OC has been extended to 256 characters to cater for long file
paths. The output from "list short p" do not longer include the quite
meaningless status bits, I will add some other useful information
later. A hidden option "list short d" mimics the old version. After
consulting Guillaume Vareille about problems opening a new file for
writing a small modification in tinyopen.c has been made.
The command AMEND PHASE name#set ADDITION GADDITION allows to shift a
Gibbs energy of the phase "name#set" by a constant value. This can be
used to represent a nucleation energy for example. From this version
of OC one can set a different GADDITION value for each composition set
of the phase. This simplifies when one wants to simulate nucleation
of an cubic carbide (MC) from austenite because they represent
different composition sets of the same FCC phase. And Joe Biden is
called as as president-elect in USA.
2020.10.26 OC version 6.015: In SMP2A I sudenly got a division by zero
error in the Fortran "mod" function using gfortran 10.2.0. If the second
argument of "mod" is 0 this means a division by zero. The part of the
code where the error occured is very old and it was my own fault as I
checked if the argument was 0 and used the mod in the same IF
statment. In Fortran there is no guarantee the arguments of an IF
statement are tested in the order they are written. Now I test for 0
in a separate IF before using mod.
Still working with the Toop/Kohler excess method. The data structure
works but the numerics are not correct but it can wait because I am
enjoying a vacation in Bretagne and writing a paper trying to explain
how the STEP and MAP procedures work in OC for multicomponent systems.
I added a new READ option SELECTED_PHASES which allows the user to
specify a subset of phases to be read from a TDB file. I also
corrected counting the number of parameters read from the file. I
have also introduced a check that the elements selected by the user
really exist in the database.
A problem plotting a "dot derivatve" such as H.T (heat capacity) from
a step/map calculation created a segmentation fault when the number of
composition sets are not the same for equilibria in different regions
(because new sets can be created when needed during step/map). To
calculate a dot derivate OC must create a matrix for each equilibrium
which has been calculated and in the "dynamic" memory of such an
equilibrium one may have less composition sets than in the "static"
memory (because the number of composition sets in the "static" memory
reflects the last calculation made). OC will now ignore non-existant
composition sets in the "dynamic" memory (which anyway would never
contribute) when calculating a dot derivative. Normally a
non-existant composition set would be a serious error but the plot
routine use a global variable¨"special_circumstances" to indicate this
calculation is for plotting.
The length of some character variables used for reading files has been
extended.
2020.09.23 OC version 6.014: Interaction with users always provides
information of bugs. Thanks Romain and Christine for testing a system
with an ionic liquid model without any vacancies which exposed a long
time bug calculating its Gibbs energy. Clement had also discovered
that the keyword DATABASE_INFO must not be abbreviated DATA_INFO in
TDB files ...
2020.09.22 OC version 6.013: A new version of the file browser
TINYFILEDIALOGS has been provided by by Guillaume Vareille because
the previous generated a lot of warnings when compiled with gcc-9.2
using MinGW32. Please give feedback if there are any problems.
The datastructure needed for using the Toop/Kohler method for ternary
extrapolations is now working but testing is still needed. A few more
errors calculating with the new unary models have been fixed.
2020.09.11 OC version 6.012: Several problems related to the
Equi-Entropy Criterion (EEC) has been solved. If a phase has higher
entropy than the liquid (the EEC) the routine which calculate G and
all its derivatives during an equilibrium calculation will replace the
values of G and all its derivatives with respect to fractions with an
ideal entroy expression with zero enthalpy. This will ensure the
phase is never stable but still allow it to have reasonable chemical
potentials. Just replacing the Gibbs energy with a high value created
convergence problems. But calculating and plotting Gibbs energy
curves may still be difficult in a T and composition ranges where the
EEC is active.
I had a message from Ebert Alvares about problems assessing data for a
sigma phase because OC crashed with segmentation fault. Looking into
this problem I found that when the sigma phase is modeled with a
disordered fraction set, the links between this disordered set and the
ordered phase was not set correctly when additional equilibrium
records are created, for example to assess experimental data. This
was the first time anyone had tried to assess such a phase and needed
to calculate equilibria in other equilibrium record than the first
"default" one. It took some time to find the error and actually there
were several. The initial bug was that no fraction records were
allocated for the disordered set and there were no result records
allocated during the equilibrium calculation. There were also
problems assigning records rather than assigning pointers to records,
this part of the code was written when I was learning the new Fortran.
But all of that has now hopefully been fixed. I also found and fixed
a bug entering a disordered fraction set interactively (reading from a
TDB worked). Feedback is important to find and fix such tings.
2020.08.06 OC version 6.011: Added an option to the liquid two-state
model allowing an element fixed G2 parameter (called GD in
Thermo-Calc). The composition dependence created problems when mixing
elements with very different G2 values such as Al-W. The command
AMEND PHASE LIQUID ADD TWOSTATE has an additional question if G2
should be composition independent. If you answer Y the G2 parameter
will be treated as composition dependent. Composition dependent THET
value (the Einstein temperature) is now implemented correctly. It
should also work to use THET parameters for phases when the number of
atoms/formula unit varies (for example when C dissolves interstitially
in FCC).
Work on the Kohler/Toop implementation is continuing.
2020.08.06 OC version 6.010: Corona virus times and a long time
without updates. I have stared implementing the Kohler and Toop
ternary extrapolation models. This require a minor extention of the
data structure which may cause some problems. A new subcommand,
TERNARY-EXTRAPOL has been added to the command AMEND PHASE. This is a
first step in adding the MQM model to OC but nothing works at the
moment.
The previously useless command SET ADVANCED WORKING-DIRECTORY has been
modified to use the file browser. This means you can use the browser
to a directory you want to use and if you select a TDB file the
working directory will be changed to the directory with this file.
Nothing will happen with the TDB file. The working directory is
important because by default any ocgnu.plt files will be written
there. You can also change this by the "output" subcommand in PLOT.
The code handling entering and listing of additions such as magnetic
has been slightly modified. For example if a phase had a
disordered¨fraction set (i.e. a separate phase) in a TDB file but the
ordered had not, in OC the ordered phase remained without this
addition whereas in TC the ordered were automatically also magnetic.
This is now corrected which required several minor modifications.
2020.06.18 OC version 6.009: A subtle bug in my modified version of
LMDIF fixed. It only appeared on the Mac version. Another subtle bug
was found decoding a constituent dependent model-parameter-identifier
such as MQ&O-2#2(C1,U+4:O-2,Va) where O-2, or rather any constituents
with "-" could not be found because "-" was treated as a "_". Some
additional changes were made for interactive entering of such
parameters.
2020.06.16 OC version 6.008: I have changed to use the firefox browser
for help on Windows. This involved some tricky handling of the double
quote needed to hide the space characters in the path when using the
intrinsic INQUIRE and EXECUTE_COMMNAD_LINE. I also reinstated saving
the date of linking which is listed when starting OC and fixed some
problem with the save/read unformatted files.
2020.05.29 OC version 6.007: Added a few changes in the model package
suggested by Clement Introini.
2020.05.08 OC version 6.006: A small bug fixed for the "output file"
option when plotting. When using the filebrowser, the extension .plt
is added if missing.
2020.05.07 OC version 6.005: Due to some confusion with subversion
numbering version 6.004 and 6.005 are the same.
2020.05.02 OC version 6.004: The first update of version 6. Guess
what ... a small fix in mapping to handle invariants in isopleths ...
************************
* This is OC version 6 *
************************
2020.04.30 OC version 6.003: In the isopleth phase diagrams the
invariats are finally calculated correctly and the map7 macro is
reasonable (even if parts of some lines sometimes are missing using a
single start point). Some corrections made in the new filestructure.
2020.04.10 OC version 6.002: The directory structure for OC has been
changed to be similar to other GNU software. Thanks to Peyman Davvalo
Khongar for the help with this. In the src/ directory the source code
and in examples/macros/ all the macro files for teseting and learning
to use OC can be found. The manual is in doc/manual/. The Makefile
for Linux and the "linkpara/linkmake" for Windows has been updataed
for this structure and the final executable will be found in the bin/
directory. The other directories are mainly of interest for those who
use OC in their own software.
2020.04.14 OC version 6.001: The Coronavirus epidemy is changing
the world as we know it.
An automatic installation of OC6 for Windows is now available on the
opencalphad.org website. This creates the directories and the OCHOME
environment variable and installs the executable, on-line help files,
macro files, the macro manual and an introduction. Many thanks to
Chunhui for the help with this. The macro manual and the informative
text has been updated.
The calculation of invariant equilibria for isopleths was added in the
previous version but the handling of the many exit lines was not
elaborated. This has been improved, for example in map7 and map16,
but there are still some problems to find the set of fix phases
defining each line exiting rom the invariant.
The "c n" (calculate no-global) actually called the grid minimizer
after the iterative calculation if the conditions did not allow using
the grid minimizer initially. Now "c n" never call the grid
minimizer.
I have also fixed that the STEP command can handle invariant
equilibria, previously it stopped there because it is necessary to add
and remove a phase at the same node. Now it should discover by itself
which phases to exchange. As always step and map are fragile and may
require several startpoints to be complete.
****************************************
* This is a prerelease of OC version 6 * 2020
****************************************
2020.03.15 OC version 6.000: Note the linkpara and Makefiles are
changed to use the name oc6p for the executable. I will update the
"stable" version on http://www.opencalphad.org soon. The handling of
isopleth diagrams has improved and now I have added colors to the
lines, indicating which phase has zero amount, i.e. becomes stable
along the line. The isopleth invariants are now calculated correctly
but there are still problems generating the correct set of stable
phases at the exit lines from the invariants. There is a new macro,
map16, featuring an isothermal invariant in the C-Cr-Fe system.
Macros 6 and 7 also features the colors but there are some incomplete
or missing lines.
I intend add automatic start points for phase diagram mapping but one
problem is that sometimes metastable lines are calculated. There are
also numerical problems when following a line and some lines may end
in the middle of nowhere. A complete diagram may require several
independent start points but such a routine may generate lines
representing metastable equilibria.
********************************************************************
2020.03.05 OC version 5.060: I am working on STEP/MAP and have made
several canges in the datastaructure and I want to save an
intermediary version not to blow up the whole thing. The invariants
for isopleths are just around the corner and the rest seems stable.
Some problems with the two-state liquid model has been fixed. All the
"additions" to the Gibbs energy are based on some physical model and
the equation used is normally for one mole of atoms. But the Gibbs
energy expression, to which they are added, is for one mole of
formally units. Many phases have a variable number of atoms/formula
units (for example vacancies or constituents with several atoms) and
thus the addition has to be multiplied with the actual number of atoms
in the phase. This is implemented in OC and there is a question for
the "AMEND PHASE <name> ADDITION" command. The derivative of the
addition with respect to the composition for the 2-state model has
also been corrected.
In the previous version of OC I added a macro, map17, where the first
calculated diagram is plotted with a dashed line (representing a
second order transition). Then the full phase diagram is calculated
(in several steps) but when the first diagram is appended to this all
lines became dashed. Now I have modified the "line types" (GNUPLOT
language) so an appended OC diagram will not have the same "line
types" as used for the currently calculated diagram.
2020.02.24 OC version 5.059: The next relase 6 of OC will soon be
reday, also on the http://opencalphad.org web page. I have spent more
than 2 years gradually improving version 5. But as usual the
documentation lags behind.
I am working on implementing all lines exiting from invariants when
mapping isopleths, at present only three of them are created (two of
which are wrong) but there should be 2*(number of stable phases)-1. I
hope to finish that in the release of version 6.
LOG files are useful to keep a record how to make a complicated
calculation and also to report errors or problems using OC to the
support team. There has been troubles opening a LOG file but that
should now be fixed.
It is now possible to select the font used for plotting. However,
only fonts supported by your GNUPLOT installation will work, other
fonts will be replaced by a default. I have also added a possibility
to draw dashed lines with the plot subcommand EXTRA LINE, see the new
macro map17.
As always, editing the ocgnu.plt file after plotting (do not forget to
rename it as it is overwritten each time you plot!) is necessary for
plots to be published. GNUPLOT has a lot of facilities that OC cannot
provide when used interactivly.
There are some updates in the TQlib/Cpp directory for those interested
in using OC as a library in an application software. I have tried to
update the Cpp/Scheil example. For Windows a new command file,
"makeocasi" has been added to create a library "libocasi.a" (excluding
the "tinyfilesialogs"). This library must be created before trying to
link the Scheil program. Probably a similar change is needed for
Linux but I cannot test that.
2020.02.04 OC version 5.058: Finally some improvement of mapping but
as always some diagrams are worse. There are many things still to fix.
A stronger check of ambiguous phase names in TDB files has been
introduced. At present only as a warning but in a future version
phase names that are not unique will cause errors. Do not forget to
change the phase name also in all parameters! There are several
changes related to database management that will be documented
sometime in the future. I working on a new database format which is
more flexible and less cryptic than the current TDB format.
2020.01.14 OC version 5.057: I am still trying to improve mapping of
binary and ternary diagrams with "tie-lines in the plane" as such
diagrams are the ones most frequently calculated by students and for
assessments but I have not managed to improve much. Calculating
multicomponent isopleths is usually much easier unless you have many
phases with fixed composition. But I have changed many things and I
want to update the github version as a backup if I make things even
worse.
For the future I have decided to abandon the "direct" format for
saving and is preparing to extend saving of step/map results on the
UNFORMATTED file, OC seems to cope with quite large results without
the need for intermediate storing on files.
I am changing the commands for plotting also but I have not yet
decided on a final set of command. Be careful with macro files!
I you need to set a logfile give the name of the file on the same line
as the command, for example "set log mylogfile.log". The file browser
does not always manage to open a file for writing.
The output during an equilibrium calclation has changed to give the
name of the phase that is added (+) or removed (-) at an iteration. I
hope it will make it easier to improve this tricky part of the code.
The routine to calculate the stability of a phase has changed (used in
macro step2).
2019.12.02 OC version 5.056: If you mainly use OC to calculate binary
and ternary phase diagram DO NOT INSTALL THIS VERSION. I have worked
with the equilibrium calculations to make them more stable and faster
but the step/map now fails in some cases, in particular when there are
several stoichiometric phases, for example the O-U phase diagram (map4
macro) or complex ordering (map13 macro).
The reason for these problem is that several additional features has
been added to calculate multicomponent (>10 elements) equilibria with
better convergence and speed. I will to work to improve the mapping
next but I have only two hands and one head so it may take same time.
The terminal "X11" has been added as optional GNUPLOT terminal for
Linux systems, you can select this in the Makefile. Some confusion in
pmon6/smp/smp2 source code about the plot devices has been sorted out.
I provide a special makefile for MacOS (because Apple has removed the
/usr/include directory) which I forgot in the last update.
One can remove stop in macros at "@&" with the command
"set advanced no_macro_stop Y". Anything else than Y will restore the
stop.
The linkocdate program has been removed as I can compile the date for
linking the program directly in the main program. This changes the
Makefiles and linkmake and linkpara on Windows.
A subtle problem is what reference state to use for integral
properties like H and G if the elements have different referaence
states. By default SER (the stable state at 298.15K and 1 bar) is
used as reerence state but often the reference state for C or O is set
to graphite or gas at the current T in order to have aa reasonable
chemical potential. But such a change should not affect the value of
the enthalpy, H. But if one has measured the enthalpy of mixing of a
phase in a binary system the reference state for all elements is set
to that phase. In OC I have now added that if the reference state is
different for the elements I use SER for the integral properties.
Only if all elements have the same reference state the values of an
integral properties like H will be relative to the pure elements in
that phase at the specified T.
Some problems with normallized state variables like NPM and BPW has
been fixed.
2019.11.07 OC version 5.055: After installing MacOS Catalina on my Mac
the Makefile I provide with OC broke. The GNU C compiler could not
find the necessary systems files /usr/include because Apple evidently
does not like software they do not provide themselves. So now there
is a special Makefile-MacOS which uses Apple's "cc" compiler.
For application software developers I have also updated some files in
the application directory TQ4lib/F90/. The liboctq.F90 now contains
two extra dummy modules that are used in the interactive program but
not needed for applications. The F90/crfe directory example is
updated, the other will be soon I hope. I am not able to update the
Cpp examples as I do not know C++, anyone who does is welcome to help.
The TQ3lib-clean has been removed.
2019.10.10 OC version 5.054: I have introduced a command DEBUG SYMBOL
<symbol> <value> used in my test macros to have a hard stop if the
value of a symbol is not the same (6 significant digits) as in
previous versions.
The set of stable phases is now restored after "step separate".