Source code for molsysmt.form.molsysmt_Structures.set

from molsysmt._private.digestion import digest
from molsysmt._private.variables import is_all
from molsysmt import pyunitwizard as puw
import numpy as np

###### Set

## Atom

[docs] @digest(form='molsysmt.Structures') def set_coordinates_to_atom(item, indices='all', structure_indices='all', value=None, skip_digestion=False): if is_all(indices): if is_all(structure_indices): item.coordinates = value item.n_structures = value.shape[0] item.n_atoms = value.shape[1] if item.box is not None: if item.box.shape[0]!=item.n_structures: if item.box.shape[0]==1: item.box = puw.utils.numpy.repeat(item.box, item.n_structures, axis=0, value_type='numpy.ndarray') else: raise ValueError("The number of boxes is different than the number of frames") else: item.coordinates[structure_indices,:,:] = value[:,:,:] else: if is_all(structure_indices): item.coordinates[:,indices,:] = value[:,:,:] else: item.coordinates[np.ix_(structure_indices, indices)]=value[:,:,:] pass
[docs] @digest(form='molsysmt.Structures') def set_velocities_to_atom(item, indices='all', structure_indices='all', value=None, skip_digestion=False): if is_all(indices): if is_all(structure_indices): item.velocities = value item.n_structures = value.shape[0] item.n_atoms = value.shape[1] else: item.velocities[structure_indices,:,:] = value[:,:,:] else: if is_all(structure_indices): item.velocities[:,indices,:] = value[:,:,:] else: item.velocities[np.ix_(structure_indices, indices)]=value[:,:,:] pass
[docs] @digest(form='molsysmt.Structures') def set_occupancy_to_atom(item, indices='all', structure_indices='all', value=None, skip_digestion=False): if is_all(indices): if is_all(structure_indices): item.occupancy = value else: item.occupancy[structure_indices,:] = value[:,:] else: if is_all(structure_indices): item.occupancy[:,indices] = value[:,:] else: item.occupancy[np.ix_(structure_indices, indices)]=value[:,:] pass
[docs] @digest(form='molsysmt.Structures') def set_b_factor_to_atom(item, indices='all', structure_indices='all', value=None, skip_digestion=False): if is_all(indices): if is_all(structure_indices): item.b_factor = value else: item.b_factor[structure_indices,:] = value[:,:] else: if is_all(structure_indices): item.b_factor[:,indices] = value[:,:] else: item.b_factor[np.ix_(structure_indices, indices)]=value[:,:] pass
## System
[docs] @digest(form='molsysmt.Structures') def set_structure_id_to_system(item, structure_indices='all', value=None, skip_digestion=False): if is_all(structure_indices): item.structure_id = value else: item.structure_id[structure_indices,:,:] = value[:,:,:] pass
[docs] @digest(form='molsysmt.Structures') def set_time_to_system(item, structure_indices='all', value=None, skip_digestion=False): if is_all(structure_indices): item.time = value else: item.time[structure_indices,:,:] = value[:,:,:] pass
[docs] @digest(form='molsysmt.Structures') def set_box_to_system(item, structure_indices='all', value=None, skip_digestion=False): if is_all(structure_indices): item.box = value else: item.box[structure_indices,:,:] = value[:,:,:] pass
[docs] @digest(form='molsysmt.Structures') def set_coordinates_to_system(item, indices='all', structure_indices='all', value=None, skip_digestion=False): return set_coordinates_to_atom(item, indices='all', structure_indices=structure_indices, value=value, skip_digestion=True)
[docs] @digest(form='molsysmt.Structures') def set_velocities_to_system(item, indices='all', structure_indices='all', value=None, skip_digestion=False): return set_velocities_to_atom(item, indices='all', structure_indices=structure_indices, value=value, skip_digestion=True)