* $Id: xnd_rvar.html,v 1.1.1.1 2000/00/24 11:26:00 berar Exp $ *>
xnd top | Next file | Previous file |
---|
The program is structured in order to have a starting input file of a simple form containing only a limited number of foundamental blocks having a simple form. Nevertheless, it is possible, as the refinement progresses, to add some more blocks or to modify the existent. This actually leads to an increased complexity of the block structures and to a growing number of blocks. We have already said that it is possible to introduce a depence on an external variable Temp in all the cristallographic parameters.
A new structure associated with a key takes place of the previous numerical code in xnd_1.1 which are still recognised.
Each variable has two parameters. The first is its order, it characterizes the allowed expansion along an internal parameter; it is the number of term in the polynomial expansion : if the variable does not depend on this parameter, its order is one. The second parameter is the size of the expansion, its allows complex linear dependance to be written. In this file, the name of the variable will be @VARIABLE, in the real file it should be @LAMBDA, @BACKGROUND, @CELL, @COORD, ... according to the real name of the variable. In the other files of this document all blocks the parameter of each variable will not be specified but the variable block has always the following structure.
@VARIABLE | key identifier for a variable named "VARIABLE"
ORDER | d | 1 | number of term in the polynomial expansion
| SIZE | d | 1 | size of the parameter space
| |
---|
order | size | example | |
---|---|---|---|
0 | The bloc is empty : used to read some blocks in which you can have no data (eg if no points are specified in the background) | ||
1 | 1 | No Dependance of Temp, that is a classical parameter | a=a(0) |
>1 | 1 | Polynomial expansion with Temp of power order(eg cell paramters with thermal expansiond) | a=a(0)+a(1)*Temp+a(2)*Temp^2 |
1 | n | No Dependance of Temp but a multidimensional linear expansion using internal parameters b, c ... | a=b(0)+c(0) |
>1 | n | Polynomial expansion with Temp of power -order and multidimensional linear expansion | a=b(0)+c(0)+Temp*(b(1)+c(1)) |
Caution, the value of order is limited when reading the file to the value given in the MaxOrder parameter specified in the file header. This has be done to detect some mistakes reading the file avoiding some nosense data.
order | size | content | |||||
---|---|---|---|---|---|---|---|
0 | |||||||
1 | 1 | Value(0) | RefCode(0) | ||||
2 | Value(0) | RefCode(0) | Value(1) | RefCode(1) | |||
3 | Value(0) | RefCode(0) | Value(1) | RefCode(1) | Value(2) | RefCode(2) | |
1 | 2 | Value(0) | RefCode(0,1) | RefCode(0,2) | |||
3 | Value(0) | RefCode(0,1) | RefCode(0,2) | RefCode(0,3) | |||
2 | 2 | Value(0) | RefCode(0,1) | RefCode(0,1) | Value(1) | RefCode(1,1) | RefCode(1,2) |
CodeWord | Coupling Coef. | meaning | |
---|---|---|---|
0 | fixed | ||
1..9 | 1 | not read | adjusted |
11..999 | f | to be read | |
-1..-9 | 1 | not read | fixed |
-11..-999 | f | to be read |
For the codewords between 11 and 999, the program creates an internal parameter with CodeWord as reference number and all the values refering the parameter are moved from this parameter multiplied by their coupling coefficient. Some specific rules appear in case where the ValidRef value in the general header is non zero, they will be described with alternate refinement.
The following example is a fixed size block corresponding to the setting of the instrument. There are 4 variables to read, only the first will be adjusted.
@SETTING 0.002 1 1.0 0 0.0 0 .20 -1Another simple example is found in a coordinates block, which contains x, y, z, occ and biso :
@COORD 0.123 1 0.25 0 0.432 1 1.0 0 0.70 1
@CELL 0.000 0 5.375 1 6.375 1 7.789 1 90.0 0 90.0 0 90.0 0
@CELL 0.000 0 5.1234 12 1.0 5.1234 12 1.0 8.2345 1 90 0 90 0 90 0
@CELL 0.000 0 1.234 11 1.0 1.234 11 1.0 1.234 11 1.0 90.0 0 90.0 0 90.0 0
@CELL ORDER=2 0.000 0 0.0 0 5.1234 12 1.0 0.002 13 1.0 5.1234 12 1.0 0.002 13 1.0 8.2345 1 0.004 1 90 0 0 0 90 0 0 0 120 0 0 0If a linear expansion is not enough, we can write a more complicated expansion :
@CELL ORDER=3 0.000 0 0.0 0 0.0 0 5.1234 12 1.0 0.002 13 1.0 0.0001 14 1.0 5.1234 12 1.0 0.002 13 1.0 0.0001 14 1.0 8.2345 1 0.004 1 0.0002 1 90 0 0 0 0 0 90 0 0 0 0 0 120 0 0 0 0 0
At1 FE 0 @COORD SIZE=2 0.25 0 0 X and Y are on special position 0.25 0 0 0.413 14 1.0 0 0 Z has to be the same for all atoms 0.700 15 0.5 16 1.0 t11 = p15 / 2 + p16 1.0 7 1.0 0 B common thermal factor At2 CO 0 @COORD SIZE=2 0.413 14 1.0 0 0 Z is the same for all atoms 0.100 15 0.5 16 -1.0 t12 = p15 / 2 - p16 ... At3 NI 0 @COORD SIZE=2 0.200 15 -1.0 0 0 t13 = -p15 ...If the substitution depend on the temperature, this will be more complicated to write but always possible as it can be seen on one of the preceeding atom.
At1 FE 0 -2 2 0.25 0 0 0 0 0 0.25 0 0 0 0 0 0.413 14 1.0 0 0 0.001 17 1.0 0 0.700 15 0.5 16 1.0 0.010 18 0.5 19 1.0 1.0 17 1.0 0 0.10 20 1.0 0This structure allows to write all linear relation between parameters. However in a block the number of terms in the expansion and the size of the relation is the same for all the variables.
ValidRef | code | coupling | refined if |
---|---|---|---|
1 | 1 | always used | |
2 .. 9 | |||
10 .. 199 | read | ||
200 ..999 | read | ||
2..9 | 1 | always used | |
2 | PrtNew % ValidRef == 0 | ||
3 | PrtNew % ValidRef == 1 | ||
9 | PrtNew % ValidRef == 7 | ||
10 .. 199 | read | always used | |
200 ..299 | read | PrtNew % ValidRef == 0 | |
300 ..399 | read | PrtNew % ValidRef == 1 | |
400 ..499 | read | PrtNew % ValidRef == 2 |
The following table represent the inside of a block and what append for ValidRef = 4. Note that ValidRef is restricted to values between 2 and 9 and that codeword are always lower than 1000.
value | code | coupling | refined if PrtNew is |
---|---|---|---|
0.105 | 1 | always used | |
0.251 | 2 | 0, 4, 8, ... | |
0.249 | 3 | 1, 5, 9, ... | |
0.413 | 11 | 1.0 | always used |
0.413 | 199 | 1.0 | always used |
0.700 | 200 | 1.0 | 0, 4, 8, ... |
0.700 | 201 | 1.0 | 0, 4, 8, ... |
0.700 | 300 | 1.0 | 1, 5, 9, ... |
xnd top | Next file | Previous file |
---|