Пример #1
0
def gen_properties(**kwargs):

    if 'systype' not in kwargs:
        error('systype is a required input','gen_properties')
    #end if
    systype = kwargs['systype']
    del kwargs['systype']

    if systype=='molecule_qmc':
        text = molecule_text
    elif systype=='periodic_qmc':
        text = periodic_text
    else:
        error('invalid systype encountered\nsystype provided: {0}\nvalid options are: molecule_qmc, periodic_qmc'.format(systype))
    #end if

    sim_args,inp_args = Simulation.separate_inputs(kwargs)
    if len(inp_args)>0:
        error('invalid arguments encountered\ninvalid keywords: {0}'.format(sorted(inp_args.keys())),'gen_properties')
    #end if
    if not 'input' in sim_args:
        sim_args.input = input_template_dev(text=text.strip())
    #end if
    prop = Properties_1(**sim_args)
    return prop
Пример #2
0
def gen_properties(**kwargs):

    if 'systype' not in kwargs:
        error('systype is a required input', 'gen_properties')
    #end if
    systype = kwargs['systype']
    del kwargs['systype']

    if systype == 'molecule_qmc':
        text = molecule_text
    elif systype == 'periodic_qmc':
        text = periodic_text
    else:
        error(
            'invalid systype encountered\nsystype provided: {0}\nvalid options are: molecule_qmc, periodic_qmc'
            .format(systype))
    #end if

    sim_args, inp_args = Simulation.separate_inputs(kwargs)
    if len(inp_args) > 0:
        error(
            'invalid arguments encountered\ninvalid keywords: {0}'.format(
                sorted(inp_args.keys())), 'gen_properties')
    #end if
    if not 'input' in sim_args:
        sim_args.input = input_template_dev(text=text.strip())
    #end if
    prop = Properties_1(**sim_args)
    return prop
Пример #3
0
def gen_crystal_molecule_sim(
    identifier='crystal',
    path=None,
    job=None,
    title='atom',
    system=None,
    pseudos=None,
    occupations=None,
    formats=None,
    theory=None,
    levshift=None,
    maxcycle=None,
):
    required = obj(path=path,
                   system=system,
                   pseudos=pseudos,
                   occupations=occupations,
                   formats=formats,
                   theory=theory,
                   job=job)
    for k, v in required.iteritems():
        if v is None:
            error(k + ' is a required input', 'gen_crystal_molecule_sim')
        #end if
    #end for
    pseudos_in = pseudos
    pseudos = []
    for pp in pseudos_in:
        pseudos.append(os.path.join(nexus_noncore.pseudo_dir, pp))
    #end for

    crys_input = input_template_dev()
    crys_input.read_text(
        write_geometry(title=title, bcond='molecule', system=system) +
        write_basis(
            pseudos=pseudos,
            occupations=occupations,
            formats=formats,
        ) + write_hamiltonian(
            theory=theory, system=system, levshift=levshift, maxcycle=maxcycle)
    )

    #crys = generate_simulation(
    #    identifier = identifier,
    #    path       = path,
    #    job        = job(cores=1,serial=True,app_command='crystal<{0}.d12>&{0}.out&'.format(identifier)),
    #    input      = crys_input,
    #    infile     = '{0}.d12'.format(identifier),
    #    outfile    = '{0}.out'.format(identifier),
    #    )

    crys = Crystal_1(
        identifier=identifier,
        path=path,
        job=job,
        input=crys_input,
    )

    return crys
Пример #4
0
def gen_crystal_molecule_sim(
    identifier  = 'crystal',
    path        = None,
    job         = None,
    title       = 'atom',
    system      = None,
    pseudos     = None,
    occupations = None,
    formats     = None,
    theory      = None,
    levshift    = None,
    maxcycle    = None,
    ):
    required = obj(path=path,system=system,pseudos=pseudos,occupations=occupations,formats=formats,theory=theory,job=job)
    for k,v in required.iteritems():
        if v is None:
            error(k+' is a required input','gen_crystal_molecule_sim')
        #end if
    #end for
    pseudos_in = pseudos
    pseudos = []
    for pp in pseudos_in:
        pseudos.append(os.path.join(nexus_noncore.pseudo_dir,pp))
    #end for

    crys_input = input_template_dev()
    crys_input.read_text(
        write_geometry(
            title = title,
            bcond = 'molecule',
            system = system
            )+
        write_basis(
            pseudos     = pseudos,
            occupations = occupations,
            formats     = formats,
            )+
        write_hamiltonian(
            theory   = theory,
            system   = system,
            levshift = levshift,
            maxcycle = maxcycle
            )
        )

    #crys = generate_simulation(
    #    identifier = identifier,
    #    path       = path,
    #    job        = job(cores=1,serial=True,app_command='crystal<{0}.d12>&{0}.out&'.format(identifier)),
    #    input      = crys_input,
    #    infile     = '{0}.d12'.format(identifier),
    #    outfile    = '{0}.out'.format(identifier),
    #    )


    crys = Crystal_1(
        identifier = identifier,
        path       = path,
        job        = job,
        input      = crys_input,
        )


    return crys