Hi Mark
Interested to hear that you're working on this PSRK EOS. It would be a
very useful addition to ASCEND, so please do let us know how you go with
that (and please consider future participation with us via GSOC in
future, if you would like to).
Regarding the 'SUM' syntax, I think that the '0,' (with the comma) after
your 'SUM[' looks a little odd... is that what you mean? What is the
intention of the "0," stuff? I think it should work fine without the "0,".
Cheers
JP
On 24/08/15 19:52, Jones, Mark Nicholas wrote:
Hi there,
I'm working on the implementation of the EOS-PSRK model for ascend and
I'm stuck with the SUM[] function.
I'm trying to understand how the thermodynamics.a4l file is
calculating UNIFAC_mixture_g_excess[i] (LINE 985-1006) and how the
binary interaction parameters are accessed.
The problem I have is the following:
UNIFAC_mixture_g_excess[i]:
...
SUM[0,theta[k]*
(SUM[0,data[i].nu[m]*uc.Q[m]| m IN
data[i].subgroups*uc.sub[uc.group[k]]] +
SUM[0,SUM[0,data[i].nu[m] * uc.Q[m] *exp(-uc.a[g][uc.group[k]]/T)| m
IN data[i].subgroups*uc.sub[g]]| g IN data[i].groups -
[uc.group[k]]])/eta[k]| k IN subgroups]*T/data[i].Tc +
SUM[0,data[i].nu[k]*uc.Q[k]*lnm((SUM[0,data[i].nu[m]*uc.Q[m]| m IN
data[i].subgroups*uc.sub[uc.group[k]]] +
SUM[0,SUM[0, data[i].nu[m] * uc.Q[m] *exp(-uc.a[g][uc.group[k]]/T)| m
IN data[i].subgroups*uc.sub[g]]| g IN data[i].groups -
[uc.group[k]]])/eta[k])| k IN data[i].subgroups]*T/data[i].Tc;
What happens here?: SUM[0, ... | g IN data[i].groups - [uc.group[k]]]
with the binary interaction parameter given as: uc.a[g][uc.group[k]
-> SUM[0, uc.a[g][uc.group[k] | g IN data[i].groups - [uc.group[k]]]
As I understand data[i].groups are the maingroups for the component i,
but when I take a look at the data of various substances only
subgroups are documented. So actually data[i].groups needs to be an
array of the subgroups a component can be dissected to. But this
doesn't seem consistent with the declaration of groups :== [1..47] in
components.a4l where a comment also says: "uc.groups is the main group
list".
uc.group[k] is stated to be an "array, group, that lets us look up the
main group given a particular subgroup." in components.a4l.
And what happens when subtracting uc.group[k] from data[i].groups for
the index g which runs through the array to sum it up?
Same question for the multiplication: SUM[0, ...| m IN
data[i].subgroups*uc.sub[g]]
Would be very helpful if someone could explain the syntax of the SUM
function to me and how it handels the indexing. :-)
Cheers,
mark
------------------------------------------------------------------------------
_______________________________________________
Ascend-sim-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ascend-sim-users