def add_atom_data(atom, atom2): """ Creates atom specific lines for equivalent atoms of different models. :param atom: Atom object from model 1. :param atom2: Atom object from model 2. :return: String ready to be written to a peanut input file. """ n = atom.get_name().lstrip(atom.get_element()) frac = atom.get_frac() adp = cart2frac_ADP(atom.adp[use], atom.molecule.get_cell()) eq = Uiso(adp) atomlines = '\n' \ ' ATCO {el:2s}{n:<6}{x:8.5f}{y:8.5f}{z:8.5f}{eq:8.5f}{oc:8.5f}{ox:8.5f}{s:>10}\n'\ .format(el=atom.get_element(), n=n, x=frac[0], y=frac[1], z=frac[2], eq=eq, oc=1, ox=0, s=2) atomlines += ' UIJ CAL {el:2s}{n:<6}{u11:8.5f}{u22:8.5f}{u33:8.5f}{u12:8.5f}{u13:8.5f}{u23:8.5f}\n'\ .format(el=atom.get_element(), n=n, u11=adp[0], u22=adp[1], u33=adp[2], u12=adp[3], u13=adp[4], u23=adp[5]) try: adp = atom2.adp['frac_meas'] except KeyError: adp = cart2frac_ADP(atom2.adp['cart_meas'], atom.molecule.get_cell()) atomlines += ' UIJ {el:2s}{n:<6}{u11:8.5f}{u22:8.5f}{u33:8.5f}{u12:8.5f}{u13:8.5f}{u23:8.5f}\n'\ .format(el=atom.get_element(), n=n, u11=adp[0], u22=adp[1], u33=adp[2], u12=adp[3], u13=adp[4], u23=adp[5]) atomlines += ' UIJE {el:2s}{n:<6}{u11:8.5f}{u22:8.5f}{u33:8.5f}{u12:8.5f}{u13:8.5f}{u23:8.5f}\n'\ .format(el=atom.get_element(), n=n, u11=0, u22=0, u33=0, u12=0, u13=0, u23=0) return atomlines
def set_adp_cart(self, value): if not value is None: value = cart2frac_ADP(value, self.cell) # =================================================================== # if self.get_element()=='H': # value=[10+i for i in value] #=================================================================== self.adp_frac = [value[0], value[1], value[2], value[5], value[4], value[3]] self.adp_updated = True else: self.adp_updated = False
def set_adp_cart(self, value): if not None is value: self.adp_frac = cart2frac_ADP(value, self.cell)
def set_adp_cart(self, name, value): self.adp_cart[name] = value frac = cart2frac_ADP(value, self.cell) self.adp_frac[name] = frac