Package: clancyLab-squid
Squid is an open-source molecular simulation codebase developed by the Clancy Lab at the Johns Hopkins University. The codebase includes simplified Molecular Dynamics (MD) and Density Functional Theory (DFT) simulation submission, as well as other utilities such as file I/O and post-processing.InstallingFor most, the easiest way to install squid is to use pip install:[user@local]~%pipinstallclancylab-squidIf you wish, you may also clone the repository though:[user@local]~%cd~;gitclonehttps://github.com/ClancyLab/squid.gitNote, you will need various additional software to fully take advantage of squid.  We include some helper scripts to aid you in setting up these files; however, these are not robust and we do encourage you to setup your own development environment.  Nevertheless, if you so choose, the following information may be of use:Setup on UbuntuEnsure that your system is up-to-date with relevant softare.  The following commands will help.[user@local]~%sudoapt-getupdate[user@local]~%sudoapt-getupgrade[user@local]~%sudoapt-getinstallbuild-essentialmakecmakeg++gitswigmpichlmodAs the above line installs lmod, we have found that there may be a bug in the default install.  If you find that when you open a terminal you are getting a weird error about posix not existing, this is a bug in lua install. Simply put, take the path it wants and make a simlink to point to posix_c.so.  An example of how to do this is as follows (note, your lua version and directories may or may not be the same).[user@local]~%sudoln-s/usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so/usr/lib/x86_64-linux-gnu/lua/5.2/posix.soSetup your directories.  In this case, we want all programs installed to the~/programs folder, and all modules installed to~/.modules.[user@local]~%mkdir~/programs;mkdir~/.modulesSetup a default environment file for lmod.  In this case, we are making an empty one.[user@local]~%touch~/.modules/StdEnv.luaEnsure that lmod is setup.  This can be done by ensuring that the~/.bashrcis updated accordingly.  Note, do not blindly copy, but understand what the following lines of code do!# LMOD Setupif[-f/usr/share/lmod/6.6/init/bash];then./usr/share/lmod/6.6/init/bashfimoduleuse/home/$USER/.modulesif[-z"$__Init_Default_Modules"];thenexport__Init_Default_Modules=1;LMOD_SYSTEM_DEFAULT_MODULES=${LMOD_SYSTEM_DEFAULT_MODULES:-"StdEnv"}exportLMOD_SYSTEM_DEFAULT_MODULESmodule--initial_load--no_redirectrestoreelsemodulerefreshfiInstall as much as possible from squid.  This can be done by running the following command:importosfromsquid.installersimport*# Get relevant path informationhome_folder=os.path.expanduser("~")program_folder="%s/programs"%home_foldermodule_folder="%s/.modules"%home_folderifnotos.path.exists(program_folder):os.makedirs(program_folder,exist_ok=True)ifnotos.path.exists(module_folder):os.makedirs(module_folder,exist_ok=True)# As we plan to get orca/4.2.0, we need openmpi/3.1.4openmpi_installer(program_folder,"3.1.4",module_folder)Note, because you may want some programs for others, it is recommended that you first setup openmpi, as above, then return to install the others.  This requires that you also load the openmpi module before compiling the next programs.importosfromsquid.installersimport*# Get relevant path informationhome_folder=os.path.expanduser("~")program_folder="%s/programs"%home_foldermodule_folder="%s/.modules"%home_folderifnotos.path.exists(program_folder):os.makedirs(program_folder,exist_ok=True)ifnotos.path.exists(module_folder):os.makedirs(module_folder,exist_ok=True)# LAMMPS has many install options.  Here we simplify things.# Note, we can only choose between mpi or serial.# Note, "16Mar18_mpi" is the name of the module in the lammps# submodule folder.  Be unique!lammps_installer(program_folder,"16Mar18","mpi","16Mar18_mpi",compiler="mpicxx",extra_lammps_packages=["RIGID","PYTHON","REPLICA","USER-MISC","USER-REAXC"],smrff_path=None,MODULEDIR=module_folder)# Install packmolpackmol_installer(program_folder,module_folder)# Install nloptnlopt_installer(program_folder,"2.6.1",module_folder)Download Orca fromhttps://orcaforum.kofo.mpg.de/app.php/dlext/(note, you’ll have to register), and make your own orca module.  An example is listed below (it would be saved in the modules folder as a .lua file.)help([[Fordetailedinstructions,goto:https://orcaforum.cec.mpg.de/]])whatis("Version: 4.2.0")whatis("Keywords: Orca 4")whatis("URL: https://orcaforum.cec.mpg.de/")whatis("Description: Orca 4")load("openmpi/3.1.4")prepend_path("PATH","/home/username/programs/orca/4.2.0")prepend_path("LD_LIBRARY_PATH","/home/username/programs/orca/4.2.0")ContributingIf you would like to be an active developer within the Clancy Group, please contact the project maintainer to be added as a collaborator on the project.  Otherwise, you are welcome to submit pull requests as you see fit, and they will be addressed.DocumentationDocumentation is necessary, and the following steps MUST be followed during contribution of new code:SetupDownloadSphinx.  This can be done simply if you havepipinstalled viapip install -U SphinxWherever you havesquidinstalled, you want another folder calledsquid-docs(NOT as a subfolder of squid).[user@local]~%cd~;mkdirsquid-docs;cdsquid-docs;gitclone-bgh-pagesgit@github.com:clancylab/squid.githtmlForever more just ignore that directory (don’t delete it though)Adding DocumentationDocumentation is done usingReStructuredTextformat docstrings, theSphinxpython package, and indices with autodoc extensions.  To add more documentation, first add the file to be included indocs/source/conf.pyunderos.path.abspath(‘example/dir/to/script.py’).  Secondly, ensure that you have proper docstrings in the python file, and finally runmake fullto re-generate the documentation and commit it to your local branch, as well as the gitgh-pagesbranch.For anymore information on documentation, the tutorial follwed can be foundhere.