def exercise_f_calc_map(): i = flex.miller_index(( (1,1,0), (-1,-1,0), (1,2,3), (3,2,1) )) f = flex.complex_double(( 1+1j, 2+2j, 3+3j, 4+4j )) f_map = miller.f_calc_map(i, f, anomalous_flag=True) assert f_map[(1,1,0)] == 1+1j assert f_map[(-1,-1,0)] == 2+2j assert f_map[(1,2,3)] == 3+3j assert f_map[(3,2,1)] == 4+4j assert f_map[(2,2,2)] == 0 f_map = miller.f_calc_map(i, f, anomalous_flag=False) assert f_map[(1,1,0)] == 2-2j assert f_map[(-1,-1,0)] == 2+2j assert f_map[(1,2,3)] == 3+3j assert f_map[(3,2,1)] == 4+4j assert f_map[(-1,-3,-5)] == 0
def __init__(self, miller_set, f_c_in_p1, x, compute_gradient=False): assert miller_set.unit_cell().is_similar_to(f_c_in_p1.unit_cell()) sssft = ext.symmetrised_shifted_structure_factors( miller_set.space_group(), miller_set.indices(), miller.f_calc_map(f_c_in_p1.indices(), f_c_in_p1.data(), miller_set.anomalous_flag()), x, compute_gradient) self.f_x = miller.array(miller_set, sssft.f_x) self.grad_f_x = sssft.grad_f_x