Changeset 475

Show
Ignore:
Timestamp:
10/05/2009 07:14:53 PM (3 years ago)
Author:
powell
Message:

Polynomial coefficients are now temperature-dependent.

Location:
trunk/matml/src/ternary
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/matml/src/ternary/freenergy.c

    r471 r475  
    8585  /* This adds the polynomials */ 
    8686  for (i=0; i<eparams->n_poly; i++) 
    87     ret += (eparams->poly) [i].coeff * pow (C1, (eparams->poly) [i].n1) * 
     87    ret += ((eparams->poly) [i].coeff + (eparams->poly) [i].coeff * T) * 
     88      pow (C1, (eparams->poly) [i].n1) * 
    8889      pow (C2, (eparams->poly) [i].n2) * pow (C3, (eparams->poly) [i].n3); 
    8990 
     
    157158 
    158159  for (i=0; i<eparams->n_poly; i++) 
    159     ret += (eparams->poly) [i].coeff * pow (C1, (eparams->poly) [i].n1-1) * 
     160    ret += ((eparams->poly) [i].coeff + (eparams->poly) [i].coeff * T) * 
     161      pow (C1, (eparams->poly) [i].n1-1) * 
    160162      pow (C2, (eparams->poly) [i].n2-1) * pow (C3, (eparams->poly) [i].n3) * 
    161163      ((eparams->poly) [i].n2 * C1 - (eparams->poly) [i].n1 * C2); 
     
    223225 
    224226  for (i=0; i<eparams->n_poly; i++) 
    225     ret += (eparams->poly) [i].coeff * pow (C1, (eparams->poly) [i].n1-1) * 
     227    ret += ((eparams->poly) [i].coeff + (eparams->poly) [i].coeff * T) * 
     228      pow (C1, (eparams->poly) [i].n1-1) * 
    226229      pow (C2, (eparams->poly) [i].n2) * pow (C3, (eparams->poly) [i].n3-1) * 
    227230      ((eparams->poly) [i].n3 * C1 - (eparams->poly) [i].n1 * C3); 
     
    287290 
    288291  for (i=0; i<eparams->n_poly; i++) 
    289     ret += (eparams->poly) [i].coeff * pow (C1, (eparams->poly) [i].n1-2) * 
     292    ret += ((eparams->poly) [i].coeff + (eparams->poly) [i].coeff * T) * 
     293      pow (C1, (eparams->poly) [i].n1-2) * 
    290294      pow (C2, (eparams->poly) [i].n2-2) * pow (C3, (eparams->poly) [i].n3) * 
    291295      ((eparams->poly) [i].n2 * ((eparams->poly) [i].n2 - 1) * C1 * C1 
     
    355359 
    356360  for (i=0; i<eparams->n_poly; i++) 
    357     ret += (eparams->poly) [i].coeff * pow (C1, (eparams->poly) [i].n1-2) * 
     361    ret += ((eparams->poly) [i].coeff + (eparams->poly) [i].coeff * T) * 
     362      pow (C1, (eparams->poly) [i].n1-2) * 
    358363      pow (C2, (eparams->poly) [i].n2) * pow (C3, (eparams->poly) [i].n3-2) * 
    359364      ((eparams->poly) [i].n3 * ((eparams->poly) [i].n3 - 1) * C1 * C1 
     
    423428 
    424429  for (i=0; i<eparams->n_poly; i++) 
    425     ret += (eparams->poly) [i].coeff * pow (C1, (eparams->poly) [i].n1-2) * 
     430    ret += ((eparams->poly) [i].coeff + (eparams->poly) [i].coeff * T) * 
     431      pow (C1, (eparams->poly) [i].n1-2) * 
    426432      pow (C2, (eparams->poly) [i].n2-1) * pow (C3, (eparams->poly) [i].n3-1) * 
    427433      ((eparams->poly) [i].n2 * (eparams->poly) [i].n3 * C1 * C1 
  • trunk/matml/src/ternary/freenergy.h

    r471 r475  
    5050 
    5151typedef struct { 
    52   double coeff; /*+ Coefficient +*/ 
     52  double coeff; /*+ Coefficient at 0 temperature +*/ 
     53  double dcdT;  /*+ Temperature derivative of coefficient +*/ 
    5354  double n1;    /*+ C1 exponent +*/ 
    5455  double n2;    /*+ C2 exponent +*/ 
  • trunk/matml/src/ternary/ternary.c

    r471 r475  
    3636  visual_point *tpoints=NULL; 
    3737  phase_boundary solid_spinodal, *allbounds=NULL; 
    38   energy_polynomial squarer = { -2., 1., 3., 2. }; 
     38  energy_polynomial squarer = { -2., 0.5, 1., 3., 2. }; 
    3939  /* eparams: name, R,T0, G1@T0,G2,G3, C1,C2,C3, S1,S2,S3,S4,S5, 
    4040     O12,O13,O23, O123,O234,O235,O245,O345,O2345 gauss ptr, gauss number */