def submodel_vp_colored(m,sm,rotated=None): """ m is the full model with the VP's already calculated sm is the submodel that we will save. it is modified and likely otherwise unusable - be careful """ if( rotated == None ): vpcoloredmodel = Model('vp colored atoms',m.lx,m.ly,m.lz,sm.atoms) else: vpcoloredmodel = Model('vp colored atoms',m.lx,m.ly,m.lz,rotated.atoms) for i,atom in enumerate(vpcoloredmodel.atoms): atomi = m.atoms[m.atoms.index(sm.atoms[i])] if(atomi.vp.type == 'Full-icosahedra'): sm.atoms[i].vp = atomi.vp.copy() if( rotated != None ): rotated.atoms[i].vp = atomi.vp.copy() atom.z = 1 # Dark blue elif(atomi.vp.type == 'Icosahedra-like'): sm.atoms[i].vp = atomi.vp.copy() if( rotated != None ): rotated.atoms[i].vp = atomi.vp.copy() atom.z = 2 # Light blue elif(atomi.vp.type == 'Mixed'): sm.atoms[i].vp = atomi.vp.copy() if( rotated != None ): rotated.atoms[i].vp = atomi.vp.copy() atom.z = 3 # Orange elif(atomi.vp.type == 'Crystal-like'): sm.atoms[i].vp = atomi.vp.copy() if( rotated != None ): rotated.atoms[i].vp = atomi.vp.copy() atom.z = 4 # Red elif(atomi.vp.type == 'Undef'): sm.atoms[i].vp = atomi.vp.copy() if( rotated != None ): rotated.atoms[i].vp = atomi.vp.copy() atom.z = 5 # Grey vpcoloredmodel.write_real_xyz('vpcolored.xyz')