示例#1
0
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
示例#2
0
    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
示例#3
0
 def set_adp_cart(self, value):
     if not None is value:
         self.adp_frac = cart2frac_ADP(value, self.cell)
示例#4
0
 def set_adp_cart(self, name, value):
     self.adp_cart[name] = value
     frac = cart2frac_ADP(value, self.cell)
     self.adp_frac[name] = frac