def main(args=None): """The CLI main entry point function. The optional argument args, can be used to directly supply command line argument like $ catmap <args> otherwise args will be taken from STDIN. """ from glob import glob options, args, parser = get_options(args, get_parser=True) if not args[0] in usage.keys(): args[0] = match_keys(args[0], usage, parser) elif args[0] == 'import': if len(args) < 2: parser.error('mkm filename expected.') from catmap import ReactionModel mkm_file = args[1] global model model = ReactionModel(setup_file=mkm_file) sh(banner= 'Note: model = catmap.ReactionModel(setup_file=\'%s\')\n# do model.run()\nfor a fully initialized model.' % args[1])
def main(args=None): """The CLI main entry point function. The optional argument args, can be used to directly supply command line argument like $ catmap <args> otherwise args will be taken from STDIN. """ from glob import glob options, args, parser = get_options(args, get_parser=True) if not args[0] in usage.keys(): args[0] = match_keys(args[0], usage, parser) elif args[0] == 'import': if len(args) < 2: parser.error('mkm filename expected.') from catmap import ReactionModel mkm_file = args[1] global model model = ReactionModel(setup_file=mkm_file) sh(banner= 'Note: model = catmap.ReactionModel(setup_file=\'%s\')\n# do model.run()\nfor a fully initialized model.' % args[1]) elif args[0] == 'graphviz': import catmap.analyze.mechanism import catmap.model if len(args) < 2: parser.error('mkm filename expected.') mkm_file = args[1] seed = mkm_file.split('.')[0] model = catmap.model.ReactionModel(setup_file=mkm_file) mechanism = catmap.analyze.mechanism.MechanismAnalysis(model) graph = mechanism.create_graph() graph.render(seed)
from catmap import ReactionModel mkm_file = 'CO_oxidation.mkm' model = ReactionModel(setup_file=mkm_file) scaler_variables = ['rxn_parameter', 'frequency', 'electronic_energy', 'free_energy', 'zero_point_energy', 'enthalpy', 'entropy'] # Warning: adding 'rate_control' or 'selectivity_control' to # output_variables increases calculation time significantly solver_variables = ['production_rate', 'rate_control', 'coverage', 'rate', 'consumption_rate', 'selectivity', 'rxn_direction', 'rate_constant', 'equilibrium_constant', 'carbon_selectivity', 'selectivity_control', 'rxn_order', 'apparent_activation_energy', 'interacting_energy', 'directional_rates', 'forward_rate', 'reverse_rate', 'forward_rate_constant', 'reverse_rate_constant'] two_dim_variables = ['rate_control', 'selectivity_control', 'rxn_order', 'frequency'] one_dim_variables = list(set(scaler_variables + solver_variables) - set(two_dim_variables)) model.output_variables += solver_variables + scaler_variables model.run() from catmap import analyze vm = analyze.VectorMap(model) vm.log_scale = True # not necessarily the right choice of parameters for all output_variables vm.min = 1e-25 vm.max = 1e3 vm.threshold = 1e-25 vm.unique_only = False for out_var in one_dim_variables: vm.plot_variable = out_var fig = vm.plot(save=out_var + '.pdf') fig.clf()
#SBATCH --time=1:00:00 #default is 20 hours #SBATCH --nodes=1 ##SBATCH --mem-per-cpu=4000 #SBATCH --mail-type=END,FAIL #get emailed about job BEGIN, END, or FAIL #SBATCH [email protected] ##SBATCH --ntasks-per-node=16 #task to run per node; each node has 16 cores import catmap import numpy as np import os from catmap import ReactionModel from catmap import analyze from matplotlib import pyplot as plt #mkm_file = [f for f in os.listdir('.') if f.endswith('.mkm')][0] model = ReactionModel(setup_file='mechanism.mkm') model.output_variables.append('production_rate') model.output_variables.append('free_energy') #model.output_variables.append('interaction_matrix') model.run() vm = analyze.VectorMap(model) vm.model_name = 'CH3OH' vm.plot_variable = 'free_energy' vm.log_scale = False vm.plot(save=vm.plot_variable + '.pdf') vm.plot_variable = 'coverage' vm.min = 0 vm.max = 1 vm.plot(save=vm.plot_variable + '.pdf')
from catmap import ReactionModel import sys from string import Template model = ReactionModel(setup_file='HER.mkm') model.output_variables += [ 'production_rate', 'free_energy', 'selectivity', 'directional_rates' ] model.run() from catmap import analyze vm = analyze.VectorMap(model) vm.plot_variable = 'rate' vm.log_scale = True vm.min = 1e-10 vm.max = 1e6 fig = vm.plot(save='rate.png') vm.plot_variable = 'production_rate' vm.log_scale = True vm.min = 1e-10 vm.max = 1e6 fig = vm.plot(save='production_rate.png') vm.plot_variable = 'coverage' vm.min = 0 vm.max = 1 vm.log_scale = False fig = vm.plot(save='coverage.png')