Skip to content

Add JSON input file #67

@ericchansen

Description

@ericchansen

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).
    #GAUSSIAN_ENERGIES = ['HF', 'ZeroPoint']
    GAUSSIAN_ENERGIES = ['HF']
  • Log settings (also up for debate).

    q2mm/q2mm/constants.py

    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.

    q2mm/q2mm/constants.py

    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.

    q2mm/q2mm/constants.py

    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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions