g-andres / dev-lichem Goto Github PK
View Code? Open in Web Editor NEWGroup development repo for LICHEM.
Group development repo for LICHEM.
At the end of the DFP log, you only get the final QM/MM energy.
| Opt. step: 4 | Energy: -1234.5678910111 a.u. | RMS dev: 0.012345 Å
QMMM relaxation satisfactory.
Optimization complete.
################# Usage Statistics #################
Total wall time: 39.369 hours
Wall time for QM Wrappers: 36.246 hours
Wall time for MM Wrappers: 3.0722 hours
Wall time for LICHEM: 0.0505 hours
####################################################
Done.
The end of an SP log, however, prints this information and also gives it in kcal/mol:
QM energy: -1000.000000111 a.u.
MM energy: -234.5678909000 a.u.
QMMM energy: -1234.5678910111 a.u. | -774703.6972884 kcal
################# Usage Statistics #################
Total wall time: 1.0641 hours
Wall time for QM Wrappers: 1.0347 hours
Wall time for MM Wrappers: 0.0291 hours
Wall time for LICHEM: 0.0002 hours
####################################################
Done.
It'd be helpful to have a final printout with the breakdown into QM and MM in the LICHEM log from DFP.
Ex:
| Opt. step: 4 | Energy: -1234.5678910111 a.u. | RMS dev: 0.012345 Å
QMMM relaxation satisfactory.
Optimization complete.
Final optimization step:
QM energy: -1000.000000111 a.u.
MM energy: -234.5678909000 a.u.
QMMM energy: -1234.5678910111 a.u. | -774703.6972884 kcal
################# Usage Statistics #################
Total wall time: 39.369 hours
Wall time for QM Wrappers: 36.246 hours
Wall time for MM Wrappers: 3.0722 hours
Wall time for LICHEM: 0.0505 hours
####################################################
Done.
As of right now, TINKER.cpp is hardcoded to pull a file labeled tinker.key
when using TINKER.
//Open generic key file
inFile.open("tinker.key",ios_base::in);
if (!inFile.good())
{
//Exit if files do not exist
logFile << "Error: Missing tinker.key file.";
logFile << '\n';
logFile.flush();
exit(0);
}
There should be a command flag to specify the key file input name, and if none given, use tinker.key
by default. This way users who need to keep things explicitly labeled, instead of using confusing generics, can do so.
So, something like:
## -n number of processors
## -x input xyz
## -c connectivity file
## -r regions file
## -k tinker key file
## -o output xyz file
## -l output log file
lichem -n 20 -x xyzfile.xyz -c connect.inp -r regions.inp -k system.key -o out.xyz -l lichem.log
A traditional XYZ allows users to have a comment line between the natom and coordinates. An SP or DFP optimization will fail with this line in there.
Currently fails (what to support):
86000
generated from VMD
N 18.93700 14.21400 -10.50300
Currently Works:
86000
N 18.93700 14.21400 -10.50300
When receiving results from any external program call, we need to check if the external program encountered a fatal error before using the results to continue.
For example, in a DFP calculation, Tinker returns an error which is interpreted as some absurd amount of positive energy (in the trillions of eVs or higher). Rather than letting LiCHEM continue on and spend more cycles, the whole lichem job should come to a stop. This is especially important when we want LiCHEM to be used on HPCs, as wasted allocations are never ideal.
Checks should include looking for "Normal Termination" or "Error termination" in the Gaussian outputs, and "Unable to Continue" from the TINKER outputs, to name a few.
Currently, lichem -h
writes the following to a file titled LICHEM.err
:
Usage: lichem -n Ncpus -x Input.xyz -c Connectivity.inp -r Regions.inp -o Output.xyz
Command line arguments:
-n Number of CPUs used for the QM calculation.
-x Input xyz file.
-c Connectivity and force field input file.
-r Information about how the system is subdivided
into QM, MM, and pseudo-atom regions.
-o Output xyz file for the optimized structures.
Nothing prints to the Terminal, so if you don't know to look for that file, it looks like there's no help.
Additionally, this -h
or --help
option does not explain any of the conversion tools, which is where a lot of errors arise.
Basically, expand the -h
information to include all lichem
options, and consider printing an alert to the Terminal that the info is in LICHEM.err
(since conversion is typical interactive).
This appears to be in src/input_reader.cpp
dev-LICHEM/src/Input_reader.cpp
Line 35 in d2a2a4a
Tasks:
master
branch to literally anything else (ex: deployment
, base
, project
, main
)
main
main
is the way to goA declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.