Source code for ccs_fit.scripts.ccs_fit

# ------------------------------------------------------------------------------#
#  CCS: Curvature Constrained Splines                                          #
#  Copyright (C) 2019 - 2023  CCS developers group                             #
#                                                                              #
#  See the LICENSE file for terms of usage and distribution.                   #
# ------------------------------------------------------------------------------#

"""
Functionality to fit curvature constraint splines.
"""


import logging
import argparse
import os

from ccs_fit.fitting.main import twp_fit

FILENAME = "CCS_input.json"


USAGE = """
A tool to fit two body potentials using constrained cubic splines.
"""


[docs]def main(cmdlineargs=None): """Main driver routine for ccs_fit. Args: cmdlineargs: list of command line arguments When None, arguments in sys.argv are parsed (default: None) """ try: size = os.get_terminal_size() c = size.columns txt = "-"*c print("") print(txt) import art txt = art.text2art('CCS:Fit') print(txt) except: pass args = parse_cmdline_args(cmdlineargs) ccs_fit(args) size = os.get_terminal_size() try: c = size.columns txt = "-"*c print(txt) print("") except: pass
[docs]def parse_cmdline_args(cmdlineargs=None): """Parses command line arguments. Args: cmdlineargs: list of command line arguments When None, arguments in sys.argv are parsed (default: None) """ parser = argparse.ArgumentParser(description=USAGE) msg = "Json file containing pairwise distances and energies. Defaults to structures.json" parser.add_argument("input", nargs="?", default=FILENAME, help=msg) msg = "Log level for debugging" parser.add_argument( "-d", "--debug", dest="loglvl", default=logging.INFO, const=logging.DEBUG, action="store_const", help=msg, ) args = parser.parse_args(cmdlineargs) fmt = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" logging.basicConfig(filename="CCS.log", format=fmt, level=args.loglvl) return args
[docs]def ccs_fit(args): """Reads desired output file and generates a structures.json file. Args: args: namespace of command line arguments """ logging.info("Started") twp_fit(args.input) logging.info("Ended")