コード例 #1
0
    def load_paw(cls, **kwargs):
        '''
        py:method:: load_paw([family=None][, element=None][, symbol=None])
        Load PawData nodes from the databank. Use kwargs to filter.

        :return: a list of PawData instances
        :rtype: list
        :key str family: Filter by family
        :key str element: Filter by chemical symbol
        :key str symbol: Filter by PAW symbol (example: As vs. As_d)
        :raises ValueError: if no PAWs are found
        '''
        usage_msg = 'use import_family or from_folder to import PAWs'
        error_msg = 'no PAWs found for the given kwargs!\n'+usage_msg
        group = kwargs.pop('group', None)
        family = kwargs.pop('family', None)
        silent = kwargs.pop('silent', None)
        if not (group or family):
            q = QueryTool()
            q.set_class(cls)
            for k, v in kwargs.iteritems():
                q.add_attr_filter(k, '=', v)
            res = list(q.run_query())
        else:
            if family:
                group, created = cls.get_or_create_famgroup(family)
            elif group:
                created = not group._is_stored
            try:
                paw_filter = cls._node_filter(**kwargs)
                res = filter(paw_filter, group.nodes)
            except ValueError as e:
                if silent:
                    res = []
                elif created:
                    raise NotExistent('No family with that name exists')
                else:
                    raise e

        if not res and not silent:
            raise ValueError(error_msg)
        return res
コード例 #2
0
def get_cifs_with_name(filename):
    q = QueryTool()
    q.set_class(DataFactory('cif'))
    q.add_attr_filter('filename', '=', filename)
    return q.run_query()
コード例 #3
0
from aiida.orm.querytool import QueryTool
from aiida.orm.data.structure import StructureData
from aiida.orm.data.parameter import ParameterData
from aiida.orm import Group
import os, sys, stat

structure_grp = 'test_structures' # 'Cottenier_structures',

struct_q = QueryTool()
struct_q.set_class(StructureData)
struct_q.set_group(structure_grp, exclude=False)

symbols = []
for node in struct_q.run_query():
    for s in node.get_symbols_set():
        if not s in symbols: symbols.append(s) 

fout = open("run.x", "w")
for s in symbols:
    t = sys.argv[1] if len(sys.argv) >= 2 else " --type=lo1+lo2+lo3+LO1"
    fout.write("./atom --symbol=" + s + t + "\n");
fout.close()
os.chmod("run.x", os.stat("run.x").st_mode | stat.S_IEXEC)
コード例 #4
0
    if queue is not None:
        calc.set_queue_name(queue)

    calc.use_structure(struct)
    calc.use_parameters(parameters)

    from aiida.orm.querytool import QueryTool
    for e in elements:
        fname = None
        for name in sssp_names:
            if name.lower().startswith("{}.".format(e.lower())):
                fname = name
            if name.lower().startswith("{}_".format(e.lower())):
                fname = name

        q = QueryTool()
        q.set_class(UpfData)
        q.add_attr_filter('filename', 'exact', fname)
        upf = q.run_query().next()
        calc.use_pseudo(upf, kind=e)

    calc.use_kpoints(kpoints)

    if settings is not None:
        calc.use_settings(settings)

    from aiida.common.exceptions import InputValidationError

    try:
        if submit_test:
            subfolder, script_filename = calc.submit_test()
コード例 #5
0
ファイル: potpaw.py プロジェクト: quanshengwu/aiida-vasp
 def load_paw(cls, **kwargs):
     q = QueryTool()
     q.set_class(cls)
     for k, v in kwargs.iteritems():
         q.add_attr_filter(k, '=', v)
     return list(q.run_query())
コード例 #6
0
ファイル: test_v5.py プロジェクト: quanshengwu/aiida-vasp
from aiida.orm.calculation.job.vasp.maker import VaspMaker
import sys

cifname = sys.argv[1]
mkcalc = VaspMaker(structure=cifname)
mkcalc.code = Code.get_from_string('asevasp@monch')
mkcalc.kpoints.set_kpoints_mesh([8, 8, 8])
mkcalc.add_settings(system=mkcalc.structure.filename, npar=8)
mkcalc.recipe = 'test_sc'

mkcalc.computer = Computer.get('monch')
mkcalc.queue = 'dphys_compute'

v5 = mkcalc.new()
v5.set_resources({'num_machines': 8, 'num_mpiprocs_per_machine': 2})
# ~ v5.set_max_memory_kb(8000000)

tag = sys.argv[2]
q = QueryTool()
q.set_class(mkcalc.calc_cls)
q.add_extra_filter('tag', '=', tag)
ql = map(lambda c: c.get_extra('test-nr'), q.run_query())

last_tn = ql and max(ql) or 0

v5.store_all()

v5.set_extras({'tag': tag, 'test-nr': last_tn + 1})
print 'pk: {}, test-nr: {}'.format(v5.pk, last_tn + 1)
v5.submit()
コード例 #7
0
def get_eligible_scf():
    from aiida.orm.querytool import QueryTool
    from aiida.orm import Calculation
    q = QueryTool()
    q.set_class(Calculation)
    return filter(has_scf_output, q.run_query())
コード例 #8
0
from aiida.orm.querytool import QueryTool
from aiida.orm.data.structure import StructureData
from aiida.orm.data.parameter import ParameterData
from aiida.orm import Group
import os, sys, stat

structure_grp = 'test_structures'  # 'Cottenier_structures',

struct_q = QueryTool()
struct_q.set_class(StructureData)
struct_q.set_group(structure_grp, exclude=False)

symbols = []
for node in struct_q.run_query():
    for s in node.get_symbols_set():
        if not s in symbols: symbols.append(s)

fout = open("run.x", "w")
for s in symbols:
    t = sys.argv[1] if len(sys.argv) >= 2 else " --type=lo1+lo2+lo3+LO1"
    fout.write("./atom --symbol=" + s + t + "\n")
fout.close()
os.chmod("run.x", os.stat("run.x").st_mode | stat.S_IEXEC)