Warning: Trying to access array offset on value of type null in /home/site/wwwroot/lib/plugins/move/action/rename.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/actions.php on line 38
rigid_body_-_matching_to_a_known_fragment [topas wiki]

User Tools

Site Tools


rigid_body_-_matching_to_a_known_fragment

Alan Coelho 2017/08/28 04:08

The following example runs stand-alone; ie. no data files necessary. The rotation and translation coordinates are determined in one refinement Cycle.

Atoms types given for occupancy is for display purposes.

/*
   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 Cartesian coordinates is possible by changing the lattice angles to 90 degrees and adjusting the lattice parameter lengths.
*/

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)

The following should be seen from the GUI after running the above:

rigid-match.jpg

rigid_body_-_matching_to_a_known_fragment.txt · Last modified: 2022/11/03 15:08 by 127.0.0.1