forked from ericchansen/q2mm
-
Notifications
You must be signed in to change notification settings - Fork 9
Add JSON input file #67
Copy link
Copy link
Open
Labels
Description
Many parameters i.e. input settings are hard coded in constants.py.
- Type of Gaussian energy to use (up for debate---might not be important enough to move).
Lines 7 to 8 in 32307ab
#GAUSSIAN_ENERGIES = ['HF', 'ZeroPoint'] GAUSSIAN_ENERGIES = ['HF'] - Log settings (also up for debate).
Lines 14 to 62 in 32307ab
LOG_SETTINGS = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'bare': {'format': '%(message)s'}, 'basic': {'format': '%(name)s %(message)s'}, 'simple': {'format': '%(asctime)s:%(name)s:%(levelname)s %(message)s'} }, 'handlers': { 'console': { 'class': 'logging.StreamHandler', 'formatter': 'bare', 'level': 'NOTSET'}, # 'class': 'logging.StreamHandler', 'formatter': 'basic', # 'level': 'NOTSET'}, 'root_file_handler': { 'class': 'logging.FileHandler', 'filename': 'root.log', 'formatter': 'bare', 'level': 'NOTSET'} # 'class': 'logging.FileHandler', 'filename': 'root.log', # 'formatter': 'basic', 'level': 'NOTSET'} }, 'loggers': {'__main__': {'level': 5, 'propagate': True}, 'calculate': {'level': 20, 'propagate': True}, 'compare': {'level': 10, 'propagate': True}, 'constants': {'level': 20, 'propagate': True}, 'datatypes': {'level': 20,' propagate': True}, 'filetypes': {'level': 20, 'propagate': True}, 'gradient': {'level': 20, 'propagate': True}, 'loop': {'level': 5, 'propagate': True}, 'opt': {'level': 5, 'propagate': True}, 'parameters': {'level': 20, 'propagate': True}, 'simplex': {'level': 5, 'propagate': True} }, # 'loggers': {'__main__': {'level': 'NOTSET', 'propagate': True}, # 'calculate': {'level': 'NOTSET', 'propagate': True}, # 'compare': {'level': 'NOTSET', 'propagate': True}, # 'constants': {'level': 'NOTSET', 'propagate': True}, # 'datatypes': {'level': 'NOTSET',' propagate': True}, # 'filetypes': {'level': 'NOTSET', 'propagate': True}, # 'gradient': {'level': 'NOTSET', 'propagate': True}, # 'loop': {'level': 'NOTSET', 'propagate': True}, # 'opt': {'level': 'NOTSET', 'propagate': True}, # 'parameters': {'level': 'NOTSET', 'propagate': True}, # 'simplex': {'level': 'NOTSET', 'propagate': True} # }, 'root': { 'level': 'NOTSET', 'propagate': True, 'handlers': ['console', 'root_file_handler']} } - Step sizes.
Lines 77 to 90 in 32307ab
STEPS = {'ae': 1.0, 'af': 0.1, 'be': 0.02, 'bf': 0.1, 'df': 0.1, 'imp1': 0.2, 'imp2': 0.2, 'op_b': 0.2, 'sb': 0.2, 'q': 0.1, 'q_p': 0.05, 'vdwr': 0.1, 'vdwfc': 0.02 } - Data weights.
Lines 93 to 115 in 32307ab
WEIGHTS = {'a': 2.00, 'b': 100.00, 't': 1.00, 'h': 0.031, 'h12': 0.031, 'h13': 0.031, 'h14': 0.31, 'eig_i': 0.00, # Weight of 1st eigenvalue. 'eig_d_low': 0.10, # Weight of low mode diagonal elements 'eig_d_high': 0.10, # Weight of high mode diagonal elemetns 'eig_o': 0.05, # Weight of off diagonals in eigenmatrix. 'e': 20.00, 'e1': 20.00, 'eo': 100.00, 'e1o': 100.00, 'ea': 20.00, 'eao': 100.00, 'q': 10.00, 'qh': 10.00, 'qa': 10.00, 'esp': 10.00, 'p': 10.00 }
The values mentioned here are all adjustable and should be thought about by the user before executing an optimization. In order to encourage this behavior, I think that we should create a JSON input file for Q2MM.
It would be nice to be able to specify QM vs MM data here as well.
Key features to add below.
- A means to provide a JSON input file to start an optimization procedure.
- Reads JSON.
- Validates JSON.
- Examples of various JSON inputs and an associated README.md.
- I think it would really be nice if we restructured our base README.md to read more like a book.
Reactions are currently unavailable