Version 2 (modified by 15 years ago) ( diff ) | ,
---|
Where is what in the code
On this page we want to list all the stuff the MoleCuilder code can do and where to find it.
Functionality
- Linked Cell: Linked Cell is a technique where a given domain is split up into sectors and atoms inside these spatial sectors are put into linked lists. Hence, the linked lists of each sector contains references to all atoms in this sector. This speeds up neighbour search as one does not have to look through all atoms anymore. See molecuilder/src/linkedcell.hpp.
- Manipulating vectors: Vectors can be scaled, added, subtracted. Norms, distances, angles, scalar products can be calculated. Matrix transformation can be applied. And there is much more. See molecuilder/src/vector.hpp.
- Solving linear equations: A wrapper for the [GSL http://www.gnu.org/software/gsl] library for solving (small) linear equations. See molecuilder/src/gslvector.hpp, molecuilder/src/gslmatrix.hpp and molecuilder/src/linearsystemofequations.hpp,
- Principal Axis system: The principal axis system of a molecule can be calculated and rotation to align with this system may be applied. See molecuilder/src/molecule_geometry.cpp.
- Centering/Duplicating/Mirroring molecules: The simulation domain along with molecules can be duplicated or mirrored. See [source:molecuilder/src/
- Analysing bonding structure of a molecular system: Bonds can be detected in a given molecular system either by van-der-Waals-radii criteria or by mean bond distances between two elements from a parsed bond length table. The System can be split up into disconnected molecules (i.e. we regard the atoms as the nodes of a graph and the bonds as connecting edges). One may travel from atom to bonded neighbours and much more. See molecuilder/src/bondgraph.hpp, molecuilder/src/bond.hpp, molecuilder/src/graph.hpp,
- Time integration: A basic Verlet time integration is implemented. Actually, this was only incorporated for the forces evaluated by a ab initio calculation for use in time integration. See molecuilder/src/molecule_dynamics.cpp.
- Fragmentening a molecular system: The system may be split up into overlapping fragments, allowing for faster computation of ground state energies by quantum chemistry packages such as PCP contained in ESPACK or [MPQC http://www.mpqc.org/]. See molecuilder/src/molecule_fragmentation.cpp.
- Reading and writing many different formats: Parsers for formats such as xyz, pdb, TREMOLO's .data, mpqc are included and can be written. See molecuilder/src/config.hpp.
- Memory allocation wrappers : Wrappers allow for checking the amount of memory allocated and ensuring that everything is free'd on exit. See molecuilder/src/memoryusageobserver.hpp,molecuilder/src/memoryallocator.hpp,
- General parsing of files: Parsing of key value pairs in files is supported by a quite general parser routine. See molecuilder/src/config.hpp.
- General parsing of matrices: Parsing of matrices stored as tab- and newline-separated file is included. See molecuilder/src/parser.hpp.
- Period table information: A period table along with database for atoms from Z=1 to 80 is included with information such as mass, atomic number, name, symbol but also a color code for displaying. See molecuilder/src/periodentafel.hpp.
- Tesselation of molecules: The surface of a molecule can be tesselated, such that one receives a closed triangle mesh. The triangle mesh can be manipulated in various ways. See molecuilder/src/tesselation.hpp, molecuilder/src/tesselationhelpers.hpp and molecuilder/src/boundary.hpp.
Note:
See TracWiki
for help on using the wiki.