Esempio n. 1
0
def main():
    NUCS = DATA['nucs']
    nucs = ['K40']
    system = CodeBlock(*list(map(gennuc, nucs)))

    sigma_map = sigma_symbol_to_indexed()
    nuc_map = nuc_symbol_to_indexed()
    # nuc_map = {}

    system = system.xreplace({**sigma_map, **nuc_map})

    sigma_array = generate_sigma_array()

    code = sympy.ccode(system, order='none')

    generated_code = TEMPLATE

    input_data = [0.0]*len(sigma_array)

    input_data[NUCS.index("K39")] = 1.0
    input_time = 81.0

    for val, repl in {
        "I": len(sigma_array),
        "T": input_time,
        "PHI": 4e-10,
        "SIGMA_ARRAY": str(sigma_array).replace('[', '{').replace(']', '}'),
        "CODE": textwrap.indent(code, '    '),
        # For testing
        "N0": str(input_data).replace('[', '{').replace(']', '}'),
    }.items():
        generated_code = generated_code.replace("%%" + val + "%%", str(repl))

    with open("sigma_array.txt", 'w') as f:
        f.write('[' + ',\n'.join(map(str, sigma_array)) + ']\n')

    # with open('system.txt', 'w') as f:
    #     for eq in system.args:
    #         f.write(str(eq) + '\n')

    with open('system-C.txt', 'w') as f:
        f.write(code)

    with open('transmute.c', 'w') as f:
        f.write(generated_code)