ICAMS / python-ace

Other
57 stars 15 forks source link

number_of_functions_per_element #37

Open mikejwaters opened 1 year ago

mikejwaters commented 1 year ago

When using this tag, how are the functions truncated?

yury-lysogorskiy commented 1 year ago

Functions are ordered in so-called "power-order" code and then are uniformly taken from each species interaction block.

Power-order (from PRM 6, 013804 (2022)):

In the so-called power-order scheme, pacemaker adds batches
of basis functions in sequential order, but within the limits
of maximum angular and radial basis functions specified for
each body order by the user.
zfan2016 commented 1 year ago

For better understanding, could you list the 62 nlm or nlL for Cu in Table II of PRM 6, 013804 (2022)? In other words, I'd like to know the specific tuple n, l, m (for A in equation B6) and tuple n, l, L (for B in equation B5) of each of the 62 basis functions of Cu. When there are multiple elements in a system, like the HEA, what are the possible tuple \mu for each basis function? Thank you.

yury-lysogorskiy commented 1 year ago

You can find the list of functions (B-basis (eq B5) and C-tilde basis (eq B6) in corresponding potential files: B-basis: Cu-II.yaml C-tilde (converted with pace_yaml2yace Cu-II.yaml): Cu-II.yace Regarding HEA, here is the file: HEA.yaml

functions are grouped into blocks, which are characterized by central atom type (mu_0) and alphabetically ordered list of unique elements. All these elements must be presented in mu-tuple. Example, for speciesblock: Co Cr Fe, mu tuple = Cr Fe, Co Cr Fe, Cr Cr Fe, Cr Fe Fe, etc.

zfan2016 commented 1 year ago

Thank you, Yury, for your reply. Now I have better understanding on it. But can I ask more questions below:

The range of the elements in n-tuple, l-tuple, m-tuple are [1, n_max], [0, l_max], [-l_max, l_max], respectively, right?

In B-basis of Cu-II.yaml file, nr and nl are n-tuple and l-tuple, respectively, right? But what is lint? when order v < 3, why is there no lint? What is the way of determining the possible value of lint? When nr = [1, 1], why is there no nl = [0, 1], [0, 2] or [1, 2]? Similarly, when nr = [1, 1, 1], why is there no nl = [0, 0, 1], [0, 0, 2], [0, 1, 2] or [1, 2, 2]? In the line for each B-basis, c: [float, float] are the specific coefficients, there are two values because two atomic properties phi_i are used, right?

In the line of Cu-II.yace for each C-tilde, ndensity, mus, ns, ls, ctiledes are for number of atomic properties phi_i, mu-tuple, n-tuple, l-tuple and specific coefficients, right? But what are num_ms_combs and ms_combs? Is ms_combs related to m-tuple? And how to determine and iterate possible m-tuple? The number of values in ctiledes seems to be the product of ndensity and num_ms_combs? what is the reason for it?

For HEA, in table II of your 2022 PRM paper, the #func./element for HEA are 75/300/300/10/35. But I found there seems to be 5200 B-baisis in HEA.yaml, which is greater than 720x5 ? When v = 4, there are 50 B-baisis, which is consistent to my expectation, 10x5. But when v = 5, there are 275 B-baisis, > 35x5. I'm confused for it. Could you provide some explanations? Thank you!

jhung12 commented 1 year ago

In B-basis of Cu-II.yaml file, nr and nl are n-tuple and l-tuple, respectively, right? But what is lint? when order v < 3, why is there no lint? What is the way of determining the possible value of lint?

v is the order of interaction, when v is less than 3 you can not get intermediate Lint.

When nr = [1, 1], why is there no nl = [0, 1], [0, 2] or [1, 2]? Similarly, when nr = [1, 1, 1], why is there no nl = [0, 0, 1], [0, 0, 2], [0, 1, 2] or [1, 2, 2]?

because of symmetry, we need sum of l to be zero and sum of m to be zero (rotational, invariant and permutation) however for nl=[0,2] i think it is the subset of nl=[2,2]

In the line for each B-basis, c: [float, float] are the specific coefficients, there are two values because two atomic properties phi_i are used, right?

yes, in the 2022 PRM equation B8

But what are num_ms_combs and ms_combs? Is ms_combs related to m-tuple?

for ls: [1, 1] you can have l_1=0 ,1 and l_2 =0,1 which means m_1=-1 ,0 1 , and m_2=-1 , 0 ,1 the sum of m and l need to be zero which m=[0,0] and m=[-1,1] so num_ms_combs: 2 thats why you have 4 coef for that line.

zfan2016 commented 1 year ago

seems I understand the sum of m is zero. But could you explain what the sum of l being zero mean?

jhung12 commented 1 year ago

we are fitting to energy. energy is a scalar. rotational invariant of a scalar is l=0. (vector ,l=1; tensor, l=2 and so on) we need l=0. and m=0 is the consequence of it. quantum mechanics text book have it in detail, then they talk about spherical harmonics, clebsch gordan coefficients.

zfan2016 commented 1 year ago

Thank you for your explanation.