### Meson Build Setup and Install Source: https://github.com/crest-lab/crest/blob/master/README.md Set Fortran and C compilers, set the installation prefix, and then set up and install the build using Meson. This is primarily tested with Intel compilers. ```bash export FC=ifort CC=icc Meson setup _build --prefix=$PWD/_dist Meson install -C _build ``` -------------------------------- ### Install Project Include Directory Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Installs the project's source include directory to the installation prefix. ```cmake install( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) ``` -------------------------------- ### Execute CREST Example Script Source: https://github.com/crest-lab/crest/blob/master/examples/README.md To run any of the example scripts, navigate to the respective directory and execute the 'run.sh' script from the command line. Ensure that 'xtb' and 'crest' binaries are in your PATH. ```bash ./run.sh ``` -------------------------------- ### Install Build Include Directory Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Installs the project's build include directory to the installation prefix, with a subdirectory based on 'module-dir'. ```cmake install( DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${module-dir}" ) ``` -------------------------------- ### Install Targets (with Shared Library) Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Installs the static library, shared library, and executable targets, along with their associated export files and include directories. ```cmake install( TARGETS "lib-${PROJECT_NAME}-static" # "lib-${PROJECT_NAME}-shared" "${PROJECT_NAME}-exe" EXPORT "${PROJECT_NAME}-targets" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) ``` -------------------------------- ### Install Package License Files Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Installs license files to the specified destination directory. Ensure the destination path is correctly defined. ```cmake install( FILES "COPYING" "COPYING.LESSER" DESTINATION "${CMAKE_INSTALL_DATADIR}/licenses/${PROJECT_NAME}" ) ``` -------------------------------- ### Build CREST from Source (Meson/Intel) Source: https://context7.com/crest-lab/crest/llms.txt Build CREST from source using Meson with Intel compilers. Specify the installation prefix. ```bash export FC=ifort CC=icc meson setup _build --prefix=$PWD/_dist meson install -C _build ``` -------------------------------- ### CMake Build Setup Source: https://github.com/crest-lab/crest/blob/master/README.md Set Fortran and C compilers and configure the CMake build directory. Ensure LAPACK and OpenMP shared libraries are in the library path. ```bash export FC=gfortran CC=gcc cmake -B _build ``` -------------------------------- ### Install CREST using Precompiled Binary (Intel) Source: https://context7.com/crest-lab/crest/llms.txt Download and unpack the statically linked Intel build of CREST. Ensure the executable is added to your PATH. ```bash wget https://github.com/crest-lab/crest/releases/download/latest/crest-intel-2023.1.0-ubuntu-latest.tar.xz tar -xf crest-intel-2023.1.0-ubuntu-latest.tar.xz export PATH=$PWD:$PATH ``` -------------------------------- ### Solvated Conformational Search Workflow Source: https://context7.com/crest-lab/crest/llms.txt An end-to-end example of a conformational search for 1-propanol in water, followed by re-sorting with CREGEN. ```bash # 1. Run conformational search (GFN2-xTB, ALPB water, 8 threads) crest struc.xyz -gfn2 -alpb h2o -T 8 -ewin 6.0 # 2. Re-sort the ensemble with tighter thresholds using CREGEN standalone crest struc.xyz -cregen crest_conformers.xyz -ewin 4.0 -rthr 0.10 -ethr 0.03 # 3. Inspect the number of unique conformers grep -c '^\s*[0-9]' crest_ensemble.xyz || wc -l < crest_ensemble.xyz # 4. Split ensemble into individual directories for downstream QM refinement crest -splitfile crest_ensemble.xyz # Result structure: # ./SPLIT/ # STRUC1/ ... STRUCN/ <- one directory per conformer ``` -------------------------------- ### Install Targets (without Shared Library) Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Installs the static library and executable targets, along with their associated export files and include directories, when shared library is not built. ```cmake install( TARGETS "lib-${PROJECT_NAME}-static" "${PROJECT_NAME}-exe" EXPORT "${PROJECT_NAME}-targets" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) ``` -------------------------------- ### Install CREST using Precompiled Binary (GNU) Source: https://context7.com/crest-lab/crest/llms.txt Download and unpack the statically linked GNU build of CREST. Ensure the executable is added to your PATH. ```bash wget https://github.com/crest-lab/crest/releases/download/latest/crest-gnu-12-ubuntu-latest.tar.xz tar -xf crest-gnu-12-ubuntu-latest.tar.xz export PATH=$PWD:$PATH ``` -------------------------------- ### Install Exported Targets Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Installs the CMake export file for the project targets, defining a namespace for imported targets. ```cmake install( EXPORT "${PROJECT_NAME}-targets" NAMESPACE "${PROJECT_NAME}::" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) ``` -------------------------------- ### Xmol .xyz Input Format Example Source: https://context7.com/crest-lab/crest/llms.txt Example of the Xmol `.xyz` format for input structures. The first line is the atom count, the second is an optional comment, and subsequent lines specify element and coordinates. ```xyz 12 C 1.00510 -0.04436 0.07729 C 2.52196 -0.10014 0.05638 C 3.03386 -1.52959 -0.04885 O 4.45512 -1.53382 -0.04957 H 0.66450 0.99293 0.15400 H 0.60392 -0.59767 0.93240 H 0.58435 -0.47325 -0.83778 H 2.92490 0.36854 0.96213 H 2.90338 0.49174 -0.78421 H 2.68484 -2.01184 -0.96764 H 2.69552 -2.12845 0.80244 H 4.74911 -1.01511 -0.81774 ``` -------------------------------- ### Tautomer Screening in Solution Workflow Source: https://context7.com/crest-lab/crest/llms.txt Example workflow for screening guanine tautomers in implicit water, followed by sorting and RMSD calculation. ```bash # 1. Screen guanine tautomers in implicit water solvent crest guanine.xyz -tautomerize -alpb h2o -ewin 10.0 -T 4 # 2. Sort the tautomers further crest guanine.xyz -cregen tautomers.xyz -ewin 10.0 -notopo # 3. Calculate RMSD between the canonical tautomer and all others for i in $(seq 2 5); do crest -rmsd guanine.xyz SPLIT/STRUC${i}/struc.xyz done # Output: tautomers.xyz (5 structures within 10 kcal/mol for guanine) ``` -------------------------------- ### Unpack Precompiled Binary (Intel) Source: https://github.com/crest-lab/crest/blob/master/README.md Use this command to unpack the Intel build of the CREST binary. Ensure you have `tar` installed. ```bash tar -xf crest-intel-2023.1.0-ubuntu-latest.tar.xz ``` -------------------------------- ### Example tblite TOML Parameter File Source: https://context7.com/crest-lab/crest/llms.txt An excerpt from a tblite TOML parameter file, defining Hamiltonian and dispersion parameters for GFN2-xTB. ```toml # Example: excerpt from assets/tblite/gfn2.toml [meta] name = "GFN2-xTB" reference = "C. Bannwarth, S. Ehlert and S. Grimme., J. Chem. Theory Comput., 2019, 15, 1652-1671." version = 1 format = 1 [hamiltonian.xtb] wexp = 5.0e-1 # weighting exponent kpol = 2.0e0 # polarization constant enscale = 2.0e-2 # energy scaling [dispersion.d4] s6 = 1.0e0 s8 = 2.7e0 a1 = 5.2e-1 a2 = 5.0e0 [element.C] shells = [ "2s", "2p" ] levels = [ -1.397e+01, -1.006e+01 ] slater = [ 2.096e+00, 1.800e+00 ] gam = 5.380e-01 zeff = 4.231e+00 en = 2.55 ``` -------------------------------- ### Install CREST using Conda Source: https://context7.com/crest-lab/crest/llms.txt Install CREST via conda. It is recommended to set OPENBLAS_NUM_THREADS to 1 to avoid threading conflicts. ```bash conda install conda-forge::crest # Recommended: avoid OpenBLAS threading conflicts export OPENBLAS_NUM_THREADS=1 ``` -------------------------------- ### Unpack Precompiled Binary (GNU) Source: https://github.com/crest-lab/crest/blob/master/README.md Use this command to unpack the GNU build of the CREST binary. Ensure you have `tar` installed. ```bash tar -xf crest-gnu-12-ubuntu-latest.tar.xz ``` -------------------------------- ### Install CREST via Conda Source: https://github.com/crest-lab/crest/blob/master/README.md Install CREST from the conda-forge channel using the conda package manager. This method provides a dynamically linked CMake/GNU build. ```bash conda install conda-forge::crest ``` -------------------------------- ### Define Static Library Include Directories Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Specifies include directories for the static library, differentiating between build and install interfaces. ```cmake target_include_directories( "lib-${PROJECT_NAME}-static" PUBLIC $ $ $/${CMAKE_INSTALL_INCLUDEDIR}> ) ``` -------------------------------- ### Default Conformational Search (iMTD-GC) Source: https://context7.com/crest-lab/crest/llms.txt Execute the default iMTD-GC workflow for conformational searching. This produces unique conformers and all degenerate structures. Examples show basic usage, solvent inclusion, and different GFN levels. ```bash # Basic run: 1-propanol in gas phase, 2 kcal/mol energy window crest struc.xyz -ewin 2.0 # With GFN2-xTB in implicit H2O solvent, using 4 CPU threads crest struc.xyz -ewin 2.0 -g h2o -gfn2 -T 4 # Use GFN1-xTB instead of default GFN2-xTB crest struc.xyz -gfn1 # Use GFN-FF (force-field level, fast) crest struc.xyz -gfnff # Composite GFN2-xTB//GFN-FF (single-point GFN2 on GFN-FF geometries) crest struc.xyz -gfn2//gfnff # Outputs: # crest_conformers.xyz — unique conformers within -ewin window ``` -------------------------------- ### Configure OpenBLAS for Conda Installation Source: https://github.com/crest-lab/crest/blob/master/README.md If using OpenBLAS as a shared library backend with CREST installed via Conda, set this environment variable to 1 to avoid potential warnings in concurrent parallel code sections. ```bash export OPENBLAS_NUM_THREADS=1 ``` -------------------------------- ### Define Shared Library Include Directories Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Specifies include directories for the shared library, differentiating between build and install interfaces. ```cmake target_include_directories( "lib-${PROJECT_NAME}-shared" PUBLIC $ $ $/${CMAKE_INSTALL_INCLUDEDIR}> ) ``` -------------------------------- ### Set Unpaired Electrons (Spin) in CREST Source: https://context7.com/crest-lab/crest/llms.txt Specify the number of unpaired electrons using the -uhf option for radical species. For example, -uhf 1 sets a doublet radical. ```bash crest struc.xyz -uhf 1 ``` -------------------------------- ### Meson Build with GNU Compilers Source: https://github.com/crest-lab/crest/blob/master/README.md When building with gfortran and gcc using Meson, specify the MKL backend. Compatibility with GNU compilers may be limited. ```bash meson setup _build --prefix=$PWD/_dist -Dla_backend=mkl ``` -------------------------------- ### Dry Run: Inspect Settings Without Calculation Source: https://context7.com/crest-lab/crest/llms.txt Perform a dry run to preview settings and check for the `xtb` binary without executing any calculations. This is useful for verifying configurations. ```bash # Usage: crest -dry crest struc.xyz -dry # With a custom xtb binary name crest struc.xyz -dry -xnam xtb6.4 # Expected output (truncated): # ------------------------------------------------------- # Starting z-matrix sorting algorithm # CREST ensemble generation # ... # *No* calculation will be performed (dry run). ``` -------------------------------- ### Build CREST from Source (CMake) Source: https://context7.com/crest-lab/crest/llms.txt Clone the CREST repository, initialize and update submodules, then build using CMake with GNU compilers. An optional static build and test execution are also shown. ```bash # Clone and initialize subprojects (tblite, gfnff, gfn0, etc.) git clone https://github.com/crest-lab/crest.git cd crest git submodule init git submodule update # Build with GNU compilers export FC=gfortran CC=gcc cmake -B _build make -C _build # Optional: static build cmake -B _build -DSTATICBUILD=true make -C _build # Optional: run tests make test -C _build ``` -------------------------------- ### CMake Build and Test Source: https://github.com/crest-lab/crest/blob/master/README.md Build the CREST binary using make and optionally run tests. This command assumes the CMake build directory has been configured. ```bash make -C _build ``` ```bash make test -C _build ``` -------------------------------- ### Configure CREGEN Thresholds Source: https://context7.com/crest-lab/crest/llms.txt Fine-tune CREGEN's ensemble comparison using energy window (-ewin), RMSD (-rthr), energy (-ethr), rotational constant (-bthr), and population (-pthr) thresholds. Options -notopo and -nowr disable topology checks and writing new files, respectively. ```bash crest struc.xyz -cregen ensemble.xyz -ewin 4.0 ``` ```bash crest struc.xyz -cregen ensemble.xyz -rthr 0.200 ``` ```bash crest struc.xyz -cregen ensemble.xyz -ethr 0.10 ``` ```bash crest struc.xyz -cregen ensemble.xyz -bthr 0.02 ``` ```bash crest struc.xyz -cregen ensemble.xyz -pthr 0.10 ``` ```bash crest struc.xyz -cregen ensemble.xyz -notopo ``` ```bash crest struc.xyz -cregen ensemble.xyz -nowr ``` -------------------------------- ### Meson Static Build Default Source: https://github.com/crest-lab/crest/blob/master/README.md The Meson build by default creates a statically linked binary. No specific flag is needed for static linking. ```bash meson setup _build --prefix=$PWD/_dist ``` -------------------------------- ### Initialize Git Submodules Source: https://github.com/crest-lab/crest/blob/master/README.md Initialize and update git submodules before compiling. This is a prerequisite for building from source. ```bash git submodule init git submodule update ``` -------------------------------- ### Initialize and Update Git Submodules Source: https://github.com/crest-lab/crest/blob/master/subprojects/README.md Use these commands to initialize and update external projects managed as git submodules. ```bash git submodule init git submodule update ``` ```bash git submodule update --remote ``` -------------------------------- ### Tautomer Sampling with CREST Source: https://context7.com/crest-lab/crest/llms.txt Generate prototropic tautomers by combining protonation and deprotonation steps. Control the energy window, iteration count, and solvent model. ```bash # Tautomer screening of guanine with 10 kcal/mol window crest struc.xyz -tautomerize -ewin 10.0 # Output: tautomers.xyz (5 tautomers within 10 kcal/mol for guanine at GFN2-xTB) ``` ```bash # Reverse order: deprotonate first, then protonate crest struc.xyz -tautomerize -trev ``` ```bash # Set number of protonation/deprotonation cycles (default 2) crest struc.xyz -tautomerize -iter 3 ``` ```bash # In implicit solvent crest struc.xyz -tautomerize -alpb h2o -ewin 15.0 ``` -------------------------------- ### Structural Analysis Utilities with CREST Source: https://context7.com/crest-lab/crest/llms.txt Standalone tools for RMSD calculations, topology analysis, z-matrix sorting, thermochemical data, and file splitting. Use '-constrain' to write a sample constraint file. ```bash # Calculate RMSD between two structures (Angstroms) crest -rmsd struct1.xyz struct2.xyz ``` ```bash # Calculate heavy-atom RMSD only crest -rmsdheavy struct1.xyz struct2.xyz ``` ```bash # Analyze topology of a structure (connectivity, bond orders, etc.) crest -testtopo struc.xyz ``` ```bash # Sort z-matrix of input structure crest -zsort struc.xyz ``` ```bash # Calculate thermochemical data for a single structure # (requires 'vibspectrum' file with vibrational frequencies in TM format) crest -thermo struc.xyz ``` ```bash # Split a multi-structure ensemble into separate directories under ./SPLIT/ crest -splitfile ensemble.xyz ``` ```bash # Split only structures 5 through 20 crest -splitfile ensemble.xyz 5 20 ``` ```bash # Write sample constraint file for atoms 2,5,7 without running search crest -constrain 2,5,7 ``` -------------------------------- ### Protonation Site Sampling with CREST Source: https://context7.com/crest-lab/crest/llms.txt Enumerate protonation sites (protomers) of a molecule using LMO approach. Specify custom energy windows or create metal/ion adducts using '-swel'. ```bash # Protonation of uracil (gas phase, GFN2-xTB) crest struc.xyz -protonate # Output: protonated.xyz (default energy window: 30 kcal/mol) ``` ```bash # With a custom energy window crest struc.xyz -protonate -ewin 20.0 ``` ```bash # Create metal/ion adducts instead of protonation (e.g., Cs+) crest struc.xyz -protonate -swel Cs+ ``` ```bash # Other examples of -swel: crest struc.xyz -protonate -swel Na+ crest struc.xyz -protonate -swel Ca2+ crest struc.xyz -protonate -swel Li+ ``` ```bash # Deprotonation site sampling crest struc.xyz -deprotonate # Output: deprotonated.xyz ``` -------------------------------- ### Perform Quick Conformational Search in CREST Source: https://context7.com/crest-lab/crest/llms.txt The -quick option performs a reduced conformational search for a faster, rough ensemble. ```bash crest struc.xyz -quick ``` -------------------------------- ### Set Executable Properties Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Configures properties for the executable, including Fortran module directory, runtime output directory, and output name. ```cmake set_target_properties( ${PROJECT_NAME}-exe PROPERTIES Fortran_MODULE_DIRECTORY ${PROJECT_BINARY_DIR}/include RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} OUTPUT_NAME "${PROJECT_NAME}" ) ``` -------------------------------- ### MSREACT: Mass Spectra Fragment Generator with CREST Source: https://context7.com/crest-lab/crest/llms.txt Generate fragmentation products for mass spectrometry simulation by applying repulsive potentials. Control attractive potentials, shifts, bond distances, and output filtering. ```bash # Start MSREACT mode on an input structure crest struc.xyz -msreact ``` ```bash # Disable attractive H–LMO potential crest struc.xyz -msreact -msnoattrh ``` ```bash # Perform 10 optimizations with randomly shifted atom positions crest struc.xyz -msreact -msnshifts 10 ``` ```bash # Maximum bond distance for repulsive potential (default 3 bonds) crest struc.xyz -msreact -msnbonds 2 ``` ```bash # Print only 50 random fragments crest struc.xyz -msreact -msnfrag 50 ``` ```bash # Print only non-dissociated structures (isomers only) crest struc.xyz -msreact -msiso ``` ```bash # Print only dissociated structures (no isomers) crest struc.xyz -msreact -msnoiso ``` ```bash # Deduplicate by InChI codes (requires obabel in PATH) crest struc.xyz -msreact -msinchi ``` -------------------------------- ### Apply Cartesian Constraints in CREST Source: https://context7.com/crest-lab/crest/llms.txt Generate a sample constraint file using -constrain, then run the constrained search with -cinp. Custom force constants can be set with -fc. ```bash crest struc.xyz -constrain 1-4 # Creates: .xcontrol.sample ``` ```bash crest struc.xyz -cinp .xcontrol.sample ``` ```bash # The .xcontrol.sample file looks like: # $constrain # atoms: 1-4 # force constant=0.5 # $end ``` ```bash crest struc.xyz -cinp .xcontrol.sample -fc 1.0 ``` -------------------------------- ### Enable Unit Tests Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Configures and enables unit testing if the WITH_TESTS option is set. This typically involves adding a subdirectory for test sources. ```cmake if (WITH_TESTS) enable_testing() add_subdirectory("test") endif() ``` -------------------------------- ### Use CREST v4 iMTD-sMTD Workflow Source: https://context7.com/crest-lab/crest/llms.txt The -v4 flag enables the iMTD-sMTD workflow, serving as an alternative to the default iMTD-GC method. ```bash crest struc.xyz -v4 ``` -------------------------------- ### Define Executable Include Directories Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Specifies include directories for the executable, differentiating between private and build interfaces. ```cmake target_include_directories( ${PROJECT_NAME}-exe PRIVATE ${PROJECT_SOURCE_DIR}/include $ ) ``` -------------------------------- ### CMake Static Build Option Source: https://github.com/crest-lab/crest/blob/master/README.md Configure a static build with CMake by setting the STATICBUILD option to true. This is an alternative to the default dynamic build. ```bash cmake -B _build -DSTATICBUILD=true ``` -------------------------------- ### Set Energy Window for Fragment Sorting Source: https://context7.com/crest-lab/crest/llms.txt Adjust the energy window for fragment sorting. The default is 200 kcal/mol. ```bash crest struc.xyz -msreact -ewin 150.0 ``` -------------------------------- ### Configure Parallel Execution and MD Time Step in CREST Source: https://context7.com/crest-lab/crest/llms.txt Use -T to set the number of threads for parallel execution and -tstep to define the MD time step in femtoseconds. ```bash crest struc.xyz -T 8 -tstep 5 ``` -------------------------------- ### Create Test Executable in CMake Source: https://github.com/crest-lab/crest/blob/master/test/CMakeLists.txt Adds an executable target for running tests. It compiles the specified test source files and links them against the project's static library and the test-drive library. ```cmake add_executable( "${PROJECT_NAME}-tester" "${test-srcs}" ) target_link_libraries( "${PROJECT_NAME}-tester" PRIVATE "lib-${PROJECT_NAME}-static" "test-drive::test-drive" ) ``` -------------------------------- ### Set Static Library Properties Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Configures properties for the static library, such as the Fortran module directory, archive output location, and position-independent code. ```cmake set_target_properties( "lib-${PROJECT_NAME}-static" PROPERTIES Fortran_MODULE_DIRECTORY "${PROJECT_BINARY_DIR}/include" ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}" POSITION_INDEPENDENT_CODE ON OUTPUT_NAME "${PROJECT_NAME}" ) ``` -------------------------------- ### Optimize Trajectory Frames with CREST Source: https://context7.com/crest-lab/crest/llms.txt Optimize every structure in an existing MD trajectory or ensemble file without performing a new conformational search. Use '-screen' for multilevel optimization with progressive thresholds and sorting. ```bash # Optimize every frame in a trajectory (no sorting) crest -mdopt xtb.trj # Output: crest_ensemble.xyz (optimized frames, unsorted) ``` ```bash # Multilevel optimization with progressive thresholds + sorting after each step crest -screen ensemble.xyz # Output: crest_ensemble.xyz (sorted, deduplicated) ``` ```bash # With a custom xtb binary crest -mdopt xtb.trj -xnam xtb6.4 ``` -------------------------------- ### Ensemble Comparison with CREST Source: https://context7.com/crest-lab/crest/llms.txt Compare two independently generated ensembles to quantify overlap and equivalences. Ensure structures have the same atom ordering. Limit comparison to a specific number of conformers. ```bash # Compare ensemble1.xyz and ensemble2.xyz (must have same atom ordering) crest struc.xyz -compare ensemble1.xyz ensemble2.xyz ``` ```bash # Limit comparison to the 5 lowest conformers from each ensemble crest struc.xyz -compare ensemble1.xyz ensemble2.xyz -maxcomp 5 ``` ```bash # Compare NMR-equivalent nuclei in a rotamer ensemble crest struc.xyz -eqv crest struc.xyz -nmr ``` -------------------------------- ### Configure Static Library Linking Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Defines linking for the static library, including OpenMP support and conditional linking of various optional libraries based on build flags. ```cmake set(LINK_OpenMP FALSE) if(WITH_OpenMP AND NOT STATICBUILD) set(LINK_OpenMP TRUE) endif() target_link_libraries( "lib-${PROJECT_NAME}-static" PUBLIC ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} $<$:OpenMP::OpenMP_Fortran> $<$:tblite::tblite> $<$:gfn0::gfn0> $<$:gfnff::gfnff> $<$:pvol::pvol> $<$:toml-f::toml-f> $<$:lwoniom::lwoniom> $<$:-static> ) ``` -------------------------------- ### Link Executable to Static Library Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Links the executable target to the static library and conditionally links the '-static' flag. ```cmake target_link_libraries( ${PROJECT_NAME}-exe PRIVATE "lib-${PROJECT_NAME}-static" $<$:-static> ) ``` -------------------------------- ### Apply Implicit Solvation in CREST Source: https://context7.com/crest-lab/crest/llms.txt Use -g for GBSA solvation (e.g., chloroform) or -alpb for ALPB solvation (e.g., water), which is generally more accurate. ```bash crest struc.xyz -g chcl3 ``` ```bash crest struc.xyz -alpb h2o ``` -------------------------------- ### Set Geometry Optimization Level in CREST Source: https://context7.com/crest-lab/crest/llms.txt Control the optimization level for xTB calculations using the -opt flag. Available options include vloose, loose, normal, tight, and vtight (default). ```bash crest struc.xyz -opt tight ``` -------------------------------- ### Deduplicate by MolBar Codes Source: https://context7.com/crest-lab/crest/llms.txt Use this command to deduplicate structures based on MolBar codes. Requires molbar to be in the system's PATH. ```bash crest struc.xyz -msreact -msmolbar ``` -------------------------------- ### Apply Automatic Bond Constraints in CREST Source: https://context7.com/crest-lab/crest/llms.txt Use -cbonds to apply automatic bond constraints derived from the topology, useful for GFN-FF. Use -nocbonds to disable this feature. ```bash crest struc.xyz -cbonds ``` ```bash crest struc.xyz -nocbonds ``` -------------------------------- ### Conformational Entropy Calculation with CREST Source: https://context7.com/crest-lab/crest/llms.txt Compute conformational entropy and molecular heat capacity using the msRRHO approximation. Adjust temperature range, frequency scaling, and thresholds for accuracy. ```bash # Entropy calculation using the iMTD-sMTD workflow crest struc.xyz -entropy ``` ```bash # Temperature range for entropy evaluation (default: 280-380 K in 10 K steps) crest struc.xyz -entropy -trange 250 400 10 ``` ```bash # Frequency scaling factor (default 1.0) crest struc.xyz -entropy -fscal 0.9 ``` ```bash # Vibrational/rotational entropy interpolation threshold (default 25.0 cm^-1) crest struc.xyz -entropy -sthr 30.0 ``` ```bash # Imaginary mode inversion cutoff (default -50.0 cm^-1) crest struc.xyz -entropy -ithr -100.0 ``` ```bash # Population coverage threshold for msRRHO average (default 0.9 = 90%) crest struc.xyz -entropy -ptot 0.95 ``` -------------------------------- ### Sort Ensemble with CREGEN Source: https://context7.com/crest-lab/crest/llms.txt Use CREGEN to deduplicate and rank ensembles or MD trajectories. Specify the reference structure, trajectory file, and optionally energy window, RMSD, and energy thresholds. ```bash crest struc.xyz -cregen xtb.trj -ewin 100.0 ``` ```bash crest struc.xyz -cregen ensemble.xyz ``` ```bash crest struc.xyz -cregen ensemble.xyz -rthr 0.125 -ethr 0.05 ``` ```bash crest struc.xyz -cregen ensemble.xyz -temp 298.15 ``` ```bash crest struc.xyz -cregen ensemble.xyz -cluster 5 ``` -------------------------------- ### Set Shared Library Properties Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Configures properties for the shared library, such as module directory, library output location, versioning, and output name. ```cmake set_target_properties( "lib-${PROJECT_NAME}-shared" PROPERTIES Fortran_MODULE_DIRECTORY "${PROJECT_BINARY_DIR}/include" LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}" OUTPUT_NAME "${PROJECT_NAME}" VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}" ) ``` -------------------------------- ### Define Executable Target Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Adds an executable target to the build, specifying its source files. ```cmake add_executable( ${PROJECT_NAME}-exe ${prog} ) ``` -------------------------------- ### Configure Shared Library Linking Source: https://github.com/crest-lab/crest/blob/master/CMakeLists.txt Defines linking for the shared library, including OpenMP support and conditional linking of various optional libraries. ```cmake target_link_libraries( "lib-${PROJECT_NAME}-shared" PUBLIC ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} $<$:OpenMP::OpenMP_Fortran> $<$:tblite::tblite> $<$:gfn0::gfn0> $<$:gfnff::gfnff> $<$:pvol::pvol> $<$:toml-f::toml-f> $<$:lwoniom::lwoniom> ) ``` -------------------------------- ### Set Molecular Dynamics Length in CREST Source: https://context7.com/crest-lab/crest/llms.txt Control the total length of the MD simulation using -mdlen. It can be set to a specific value in picoseconds or as a multiplier of the default. ```bash crest struc.xyz -mdlen 10 ``` ```bash crest struc.xyz -mdlen x1.5 ``` -------------------------------- ### Perform NCI Sampling in CREST Source: https://context7.com/crest-lab/crest/llms.txt The -nci flag initiates Non-Covalent Interaction sampling for complexes. The -wscal option scales the ellipsoidal wall potential. ```bash crest struc.xyz -nci ``` ```bash crest struc.xyz -nci -wscal 1.2 ``` -------------------------------- ### Control Parallel Threads in CREST Source: https://context7.com/crest-lab/crest/llms.txt Set the total number of threads for OpenMP parallelism using the -T option or the OMP_NUM_THREADS environment variable. For OpenBLAS builds, set OPENBLAS_NUM_THREADS to 1 to prevent conflicts. ```bash crest struc.xyz -T 16 ``` ```bash export OMP_NUM_THREADS=16 crest struc.xyz ``` ```bash export OPENBLAS_NUM_THREADS=1 crest struc.xyz -T 8 ``` -------------------------------- ### Set Molecular Charge in CREST Source: https://context7.com/crest-lab/crest/llms.txt Use the -chrg option to specify the molecular charge for calculations. This is useful for ionic species. ```bash crest struc.xyz -chrg 1 ``` -------------------------------- ### Add Tests to CTest in CMake Source: https://github.com/crest-lab/crest/blob/master/test/CMakeLists.txt Registers each defined test with CTest. This allows tests to be discovered and run using the CTest command-line tool. ```cmake foreach(t IN LISTS tests) add_test("${PROJECT_NAME}/${t}" "${PROJECT_NAME}-tester" "${t}") endforeach() ``` -------------------------------- ### Define Test Names in CMake Source: https://github.com/crest-lab/crest/blob/master/test/CMakeLists.txt Sets a list of test names that will be used to generate test executables and CTest entries. These names are converted to C identifiers for use in the build system. ```cmake set( tests "tblite" "gfnff" "gfn0" "gfn0occ" "CN" "optimization" ) set( test-srcs "testmol.f90" "helpers.f90" "main.f90" ) foreach(t IN LISTS tests) string(MAKE_C_IDENTIFIER ${t} t) list(APPEND test-srcs "test_${t}.F90") endforeach() ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.