This is an old revision of the document!


Alan Coelho 2017/08/28 04:08

/*

 Rigid Body - Matching to a known fragment
 Determining rotation and translation parameters for a known fragment
 The known-fragment is in fractional coordinates.
 Doing the same for a fragment in cartezian coordinates is trivial from here.

*/

only_penalties continue_after_convergence

yobs_eqn !aac.xy = 1; min 10 max 20 del 0.02

 STR(p1)
    a       6.54131
    b       7.75969
    c       9.13579
    al     96.18524
    be    107.23760
    ga    101.40126
    view_structure
    ' Known Fragment
    site Al1  x  0.24949` y  0.20782` z  0.41049` occ Al+3 1 beq 1
    site O1   x  0.54370` y  0.19252` z  0.43481` occ O-2  1 beq 1
    site O2   x -0.04471` y  0.22313` z  0.38619` occ O-2  1 beq 1
    site O3   x  0.25944` y  0.35365` z  0.25728` occ O-2  1 beq 1
    site O4   x  0.23953` y  0.06199` z  0.56370` occ O-2  1 beq 1
    site O5   x  0.35706` y  0.41500` z  0.56828` occ O-2  1 beq 1
    site O6   x  0.14191` y  0.00063` z  0.25270` occ O-2  1 beq 1
    ' Rigid body to fit to known fragment
    site wAl1  x 0 y 0 z 0 occ Zr 1  beq 1
    site wO1   x 0 y 0 z 0 occ C  1  beq 1
    site wO2   x 0 y 0 z 0 occ C  1  beq 1
    site wO3   x 0 y 0 z 0 occ C  1  beq 1
    site wO4   x 0 y 0 z 0 occ C  1  beq 1
    site wO5   x 0 y 0 z 0 occ C  1  beq 1
    site wO6   x 0 y 0 z 0 occ C  1  beq 1
    rigid
       Octahedra(wAl1, wO1, wO2, wO3, wO4, wO5, wO6, 1.9)
       macro VA { val_on_continue = Rand(-180, 180);  }
       rotate @ 0 VA qa 1
       rotate @ 0 VA qb 1
       rotate @ 0 VA qc 1
       translate
          ta @  0
          tb @  0
          tc @  0
    ' Probably not necessary to include all of these
    Distance_Restrain(Al1 wAl1, 0,0,0,1)
    Distance_Restrain(O1 wO1, 0,0,0,1)
    Distance_Restrain(O2 wO2, 0,0,0,1)
    Distance_Restrain(O3 wO3, 0,0,0,1)
    Distance_Restrain(O4 wO4, 0,0,0,1)
    Distance_Restrain(O5 wO5, 0,0,0,1)
    Distance_Restrain(O6 wO6, 0,0,0,1)

Personal Tools