Forum: Forums topas RSS
Fourier map in TOPAS doesn't match map in VESTA
DoubleK #1
Member since Aug 2017 · 2 posts
Group memberships: Members
Show profile · Link to this post
Subject: Fourier map in TOPAS doesn't match map in VESTA
I've created an FCF file using the FCF_Vesta macro by Martin (http://topas.dur.ac.uk/topaswiki/doku.php?id=fcf_vesta). Then in VESTA I'm able to import the FCF file using the Fourier Synthesis utility. Using this utility I'm able to calculate a Fourier difference map.

The issue is the map on VESTA doesn't match the map that TOPAS generates when using:
fourier_map 1
fourier_map_formula = Fobs - Fcalc;

Has anyone run into this issue before and if so how did you resolve it? I'm assuming either A or B is defined incorrectly and that's why the map on VESTA is different?
btrump1 #2
Member since Feb 2015 · 12 posts
Group memberships: Members
Show profile · Link to this post
I had noticed this as well, and created an updated version: http://topas.dur.ac.uk/unb/forum.php?req=thread&id=473

This updated version fixes it so the FCF_Vesta and fourier_map are similar. However, it seems to have other issues, namely it sometimes crashes the program and sometimes doesn't correctly plot the data/fit on output.
DoubleK #3
Member since Aug 2017 · 2 posts
Group memberships: Members
Show profile · Link to this post
Thanks for your response! I actually came across this when hunting through the forum for a solution. I tried your version and I can output the data and VESTA reads it no problem (I haven't had any issues with crashing).

Unfortunately it still doesn't result in the same Fourier difference map for me (regardless of swapping the assignments for Fobs and Fcalc). But the data/fit that is plotted is consistent each time in VESTA. I'm also using neutron TOF data so I'm not sure if that's what's causing the discrepancy.
btrump1 #4
Member since Feb 2015 · 12 posts
Group memberships: Members
Show profile · Link to this post
I also believe the VESTA macro is setup to report 2*Fobs-Fcalc, instead of the standard Fobs-Fcalc (which can changed) from the internal Fourier maps.
mfisch #5
Member since Sep 2011 · 112 posts · Location: University of Bern, Switzerland
Group memberships: Members
Show profile · Link to this post
That macro was made to compare ShelX Fourier maps to data generated with Topas, which is the reason for the factor of 2. I remember that the macro stopped working when switching from V5 to V6 - maybe, Alan can help here.

Cheers
Martin
DE #6
Member since Jul 2012 · 10 posts
Group memberships: Members
Show profile · Link to this post
Not sure if that helps, I have tested this one some years ago. F_000 has definitively to be adapted in VESTA but I have seen good results
Cheers
Dominique

macro Out_FCF(file)
{
   out file
      Out_String("\ndata_")
      Out_String("\n_shelx_refln_list_code          3")
      Out_String("\n_exptl_crystal_F_000         51")

      Out_String("\nloop_\n_symmetry_equiv_pos_as_xyz")
      Out(Get(sp_xyzs_txt),  "%s")    
     
Out(Get(a), "\n_cell_length_a %V")
      Out(Get(b), "\n_cell_length_b %V")
      Out(Get(c), "\n_cell_length_c %V")
      Out(Get(al), "\n_cell_angle_alpha %V")
      Out(Get(be), "\n_cell_angle_beta  %V")
      Out(Get(ga), "\n_cell_angle_gamma %V")



      Out_String("\nloop_")
      Out_String("\n_refln_index_h")
      Out_String("\n_refln_index_k")
      Out_String("\n_refln_index_l")
      Out_String("\n_refln_F_meas")
      Out_String("\n_refln_F_sigma")
      Out_String("\n_refln_A_calc")
      Out_String("\n_refln_B_calc")
         phase_out file append
         load out_record out_fmt out_eqn
         {
            "\n%4.0f" = H;
            "%4.0f" = K;
            "%4.0f" = L;
            "%11.5f" = Sqrt ((Iobs_no_scale_pks / M) / Get(scale));
            "%11.5f" = Sqrt ((Iobs_no_scale_pks_err / M) / Get(scale));
            "%11.5f" = If(Iobs_no_scale_pks >= 0.00001, A01,  0.00001 );
            "%11.5f" = B01;
         }
fourier_map 1
fourier_map_formula =  Fobs - Fcalc;
min_grid_spacing 0.1
correct_for_atomic_scattering_factors 0
}

macro Out_FCFwithanomr(file)
{
   out file
      Out_String("\ndata_")
      Out_String("\n_shelx_refln_list_code          3")
      Out_String("\n_exptl_crystal_F_000         50")

      Out_String("\nloop_\n_symmetry_equiv_pos_as_xyz")
      Out(Get(sp_xyzs_txt),  "%s")    
     
Out(Get(a), "\n_cell_length_a %V")
      Out(Get(b), "\n_cell_length_b %V")
      Out(Get(c), "\n_cell_length_c %V")
      Out(Get(al), "\n_cell_angle_alpha %V")
      Out(Get(be), "\n_cell_angle_beta  %V")
      Out(Get(ga), "\n_cell_angle_gamma %V")



      Out_String("\nloop_")
      Out_String("\n_refln_index_h")
      Out_String("\n_refln_index_k")
      Out_String("\n_refln_index_l")
      Out_String("\n_refln_F_meas")
      Out_String("\n_refln_F_sigma")
      Out_String("\n_refln_A_calc")
      Out_String("\n_refln_B_calc")
         phase_out file append
         load out_record out_fmt out_eqn
         {
            "\n%4.0f" = H;
            "%4.0f" = K;
            "%4.0f" = L;
            "%11.5f" = Sqrt ((Iobs_no_scale_pks / M) / Get(scale));
            "%11.5f" = Sqrt ((Iobs_no_scale_pks_err / M) / Get(scale));
            "%11.5f" = If(Iobs_no_scale_pks >= 0.00001, A01-B11,  0.00001 );
            "%11.5f" = A11+B01;
         }
fourier_map 1
fourier_map_formula =  Fobs - Fcalc;
min_grid_spacing 0.1
correct_for_atomic_scattering_factors 0
}
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Not logged in. · Lost password · Register
This board is powered by the Unclassified NewsBoard software, 20120620-dev, © 2003-2011 by Yves Goergen
Current time: 2020-01-24, 12:30:03 (UTC +00:00)