MolecularDataType

Description

The MolecularDataType is the data type that carry molecular information between modules. It is composed by the following objects:

group MolecularDataType {
                  
   int      num_atoms;                 // total number of atoms
   int      atom_z[.num_atoms];        // atomic numbers list
   string   atom_name[.num_atoms];     // atom names as read from the file
   string   residue_name[.num_atoms];  // residue names
   int      residue_id[.num_atoms];    // residue number as read from the file
   float    xyz_lst[.num_atoms][3];    // atom coordinates
   float    charge_lst[.num_atoms];    // atom charge (or any other scalar parameter associated to the atom)

   int      num_bonds;                 // number of bonds
   int      connect_lst[2*.num_bonds]; // connection list
   int      bond_type_lst[.num_bonds]; // type of bond; the values are defined in mol_type.h

   float    offset_lst[.num_atoms][3]; // atom offset vector provided by some formats

   group unit_cell {                   // info on unit cell placement (some info are redundant, but keep here for convenience)
      float    side_vectors[3][3];     // vectors defining the three unit cell sides (first vector (0, 0, 0) means no unit cell available)
      float    angles[3];              // angles between unit cell sides (as defined in the PDB format)
      float    origin[3];              // the origin of the unit cell
   };
   
   group symmetry {                    // info on atom symmetries
      string   space_group;            // the Hermann-Mauguin space group symmetry code (eg. P 21 21 21)
   };
};