Source code for aiida_yambo.utils.parallel_namelists

# -*- coding: utf-8 -*-
"""helpers for many purposes"""
from __future__ import absolute_import
import numpy as np
from scipy.optimize import curve_fit
from matplotlib import pyplot as plt, style
import pandas as pd
import copy
import os

try:
    from aiida.orm import Dict, Str, List, load_node, KpointsData, RemoteData
    from aiida.plugins import CalculationFactory, DataFactory
    from aiida.engine import calcfunction 
except:
    pass

[docs]namelists = {'4.5':{'DIP':'_','X':'_','SE':'_'}, '4.1':{'DIP':'_','X':'_and_IO_','SE':'_'}, '5.x':{'DIP':'_','X':'_and_IO_','SE':'_'}, '5.0':{'DIP':'_','X':'_and_IO_','SE':'_'}, '5':{'DIP':'_','X':'_and_IO_','SE':'_'}, }
[docs]def check_para_namelists(params, version): new_params = {} for key in params.keys(): for level in namelists[version].keys(): if level in key and '_CPU' in key: if level+namelists[version][level]+'CPU' == key: pass else: new_params[level+namelists[version][level]+'CPU'] = params[key] if level in key and 'ROLEs' in key: if level+namelists[version][level]+'ROLEs' == key: pass else: new_params[level+namelists[version][level]+'ROLEs'] = params[key] if new_params == {}: return None else: return new_params
[docs]def check_variables(params): new_params = {} var = {'BndsRnXp':'BndsRnXs','NGsBlkXp':'NGsBlkXs','NGsBlkXs':'BSENGBlk'} if 'em1s' in params['arguments']: for k,v in var: if k in params['variables'].keys() and v not in params['variables'].keys(): new_params[v] = params['variables'].pop(k) if new_params == {}: return None else: return new_params