Ejemplo n.º 1
0
def run(nodefile, elefile, matfile, eq_type, eigenvalue, source, name):
    # Setup Problem
    grid = FEGrid(nodefile, elefile)
    mats = Materials(matfile)
    if eq_type == 'NDA':
        op = NDA(grid, mats)
        ua_bool = False
    elif eq_type == 'TGNDA':
        op = NDA(grid, mats)
        ua_bool = True
    elif eq_type == 'SAAF':
        op = SAAF(grid, mats)
    elif eq_type == 'Diffusion':
        op = Diffusion(grid, mats)
    else:
        raise Exception("Equation type not supported.")
    solver = Solver(op)

    if eq_type == 'NDA' or eq_type == 'TGNDA':
        fluxes = solver.solve(source, ua_bool=ua_bool, eigenvalue=eigenvalue)
    else:
        fluxes = solver.solve(source, eigenvalue=eigenvalue)

    # Print Eigenvalue
    if eigenvalue:
        print("Eigenvalue: ", fluxes['k'])

    # Save Fluxes
    phis = fluxes['Phi']
    np.savetxt(eq_type + "_" + name + ".out", phis)

    # Plot Everything
    for g in range(mats.get_num_groups()):
        scalar_flux = phis[g]
        plot(grid, scalar_flux, name + "_scalar_flux" + "_group" + str(g))
Ejemplo n.º 2
0
 def setup_class(cls):
     cls.stdnode = "test/test_inputs/std.node"
     cls.stdele = "test/test_inputs/std.ele"
     cls.stdgrid = FEGrid(cls.stdnode, cls.stdele)
     cls.fissionfile = "test/test_inputs/fissiontest.mat"
     cls.fissionmat = Materials(cls.fissionfile)
     cls.fissop = Diffusion(cls.stdgrid, cls.fissionmat)
     cls.solver = Solver(cls.fissop)
     cls.symnode = "test/test_inputs/symmetric_fine.node"
     cls.symele = "test/test_inputs/symmetric_fine.ele"
     cls.symgrid = FEGrid(cls.symnode, cls.symele)
     cls.symfissop = Diffusion(cls.symgrid, cls.fissionmat)
     cls.symsolver = Solver(cls.symfissop)
     cls.orignode = "test/test_inputs/origin_centered10_fine.node"
     cls.origele = "test/test_inputs/origin_centered10_fine.ele"
     cls.origrid = FEGrid(cls.orignode, cls.origele)
     cls.twoscatfile = "test/test_inputs/scattering2g.mat"
     cls.twoscatmat = Materials(cls.twoscatfile)
     cls.twop = Diffusion(cls.origrid, cls.twoscatmat)
     cls.twosolv = Solver(cls.twop)
     cls.onescatfile = "test/test_inputs/scattering1g.mat"
     cls.onescatmat = Materials(cls.onescatfile)
     cls.oneop = Diffusion(cls.symgrid, cls.onescatmat)
     cls.onesolv = Solver(cls.oneop)
     cls.noscatfile = "test/test_inputs/noscatter.mat"
     cls.noscatmat = Materials(cls.noscatfile)
     cls.nop = Diffusion(cls.symgrid, cls.noscatmat)
     cls.nosolv = Solver(cls.nop)
Ejemplo n.º 3
0
def to_problem(mesh, mat, filename):
    nodefile = "../test_inputs/" + mesh + ".node"
    elefile = "../test_inputs/" + mesh + ".ele"
    matfile = "../test_inputs/" + mat + ".mat"
    grid = FEGrid(nodefile, elefile)
    mats = Materials(matfile)
    n_elements = grid.num_elts
    num_groups = mats.get_num_groups()
    op = NDA(grid, mats)
    solver = Solver(op)
    return Problem(op=op, mats=mats, grid=grid, solver=solver, filename=filename)
Ejemplo n.º 4
0
 def setup_class(cls):
     cls.nodefile = "test/test_inputs/box_source.node"
     cls.elefile = "test/test_inputs/box_source.ele"
     cls.matfile = "test/test_inputs/box_source.mat"
     cls.fegrid = FEGrid(cls.nodefile, cls.elefile)
     cls.materials = Materials(cls.matfile)
     cls.operator = Diffusion(cls.fegrid, cls.materials)
Ejemplo n.º 5
0
 def setup_class(cls):
     cls.nodefile = "test/test_inputs/std3.node"
     cls.elefile = "test/test_inputs/std3.ele"
     cls.matfile = "test/test_inputs/noscatter.mat"
     cls.fegrid = FEGrid(cls.nodefile, cls.elefile)
     cls.mats = Materials(cls.matfile)
     cls.op = NDA(cls.fegrid, cls.mats)
Ejemplo n.º 6
0
 def setup_class(cls):
     cls.stdnode = "test/test_inputs/std.node"
     cls.stdele = "test/test_inputs/std.ele"
     cls.stdgrid = FEGrid(cls.stdnode, cls.stdele)
     cls.fissionfile = "test/test_inputs/fissiontest.mat"
     cls.fissionmat = Materials(cls.fissionfile)
     cls.fissop = Diffusion(cls.stdgrid, cls.fissionmat)
     cls.helper = Helper(cls.stdgrid, cls.fissionmat)
Ejemplo n.º 7
0
    def setup_class(cls):
        cls.nodefile = "test/test_inputs/mesh0.node"
        cls.elefile = "test/test_inputs/mesh0.ele"
        cls.matfile = "test/test_inputs/mesh0_test.mat"
        cls.fegrid = FEGrid(cls.nodefile, cls.elefile)
        cls.mats = Materials(cls.matfile)
        cls.op = SAAF(cls.fegrid, cls.mats)

        cls.node2file = "test/test_inputs/mesh2.node"
        cls.ele2file = "test/test_inputs/mesh2.ele"
        cls.mat2file = "test/test_inputs/mesh2_test.mat"
        cls.fe2grid = FEGrid(cls.node2file, cls.ele2file)
        cls.mats2 = Materials(cls.mat2file)
        cls.op2 = SAAF(cls.fe2grid, cls.mats2)

        cls.stdnode = "test/test_inputs/std.node"
        cls.stdele = "test/test_inputs/std.ele"
        cls.stdmatfile = "test/test_inputs/std_test.mat"
        cls.stdmats = Materials(cls.stdmatfile)
        cls.stdgrid = FEGrid(cls.stdnode, cls.stdele)
        cls.stdop = SAAF(cls.stdgrid, cls.stdmats)

        cls.std3node = "test/test_inputs/std3.node"
        cls.std3ele = "test/test_inputs/std3.ele"
        cls.std3matfile = "test/test_inputs/std3_test.mat"
        cls.std3mats = Materials(cls.std3matfile)
        cls.std3grid = FEGrid(cls.std3node, cls.std3ele)
        cls.std3op = SAAF(cls.std3grid, cls.std3mats)

        cls.nsnode = "test/test_inputs/nonstd.1.node"
        cls.nsele = "test/test_inputs/nonstd.1.ele"
        cls.nsmatfile = "test/test_inputs/nonstd_test.mat"
        cls.nsmats = Materials(cls.nsmatfile)
        cls.nsgrid = FEGrid(cls.nsnode, cls.nsele)
        cls.nsop = SAAF(cls.nsgrid, cls.nsmats)

        cls.smnode = "test/test_inputs/D.node"
        cls.smele = "test/test_inputs/D.ele"
        cls.smgrid = FEGrid(cls.smnode, cls.smele)
        cls.smop = SAAF(cls.smgrid, cls.mats)

        cls.symnode = "test/test_inputs/symmetric_fine.node"
        cls.symele = "test/test_inputs/symmetric_fine.ele"
        cls.symmatfile = "test/test_inputs/symmetricfine_test.mat"
        cls.symmat = Materials(cls.symmatfile)
        cls.symgrid = FEGrid(cls.symnode, cls.symele)
        cls.symop = SAAF(cls.symgrid, cls.symmat)

        cls.scatmatfile = "test/test_inputs/scattering1g.mat"
        cls.scatmat = Materials(cls.scatmatfile)
        cls.scatop = SAAF(cls.stdgrid, cls.scatmat)
        cls.scat3op = SAAF(cls.std3grid, cls.scatmat)

        cls.fissionmatfile = "test/test_inputs/fissiontest.mat"
        cls.fissionmat = Materials(cls.fissionmatfile)
        cls.fissionop = SAAF(cls.stdgrid, cls.fissionmat)
Ejemplo n.º 8
0
 def setup_class(cls):
     cls.nodefile = "test/test_inputs/symmetric.node"
     cls.elefile = "test/test_inputs/symmetric.ele"
     cls.matfile = "test/test_inputs/3gtest.mat"
     cls.fegrid = FEGrid(cls.nodefile, cls.elefile)
     cls.mats = Materials(cls.matfile)
     cls.op = NDA(cls.fegrid, cls.mats)
     cls.num_groups = cls.mats.get_num_groups
     cls.upscatter_accelerator = UA(cls.op)
Ejemplo n.º 9
0
 def setup_class(cls):
     cls.nodefile = "test/test_inputs/std3.node"
     cls.elefile = "test/test_inputs/std3.ele"
     cls.matfile = "test/test_inputs/noscatter.mat"
     cls.fegrid = FEGrid(cls.nodefile, cls.elefile)
     cls.mats = Materials(cls.matfile)
     cls.op = NDA(cls.fegrid, cls.mats)
     cls.symnode = "test/test_inputs/symmetric_fine.node"
     cls.symele = "test/test_inputs/symmetric_fine.ele"
     cls.symgrid = FEGrid(cls.symnode, cls.symele)
     cls.nop = NDA(cls.symgrid, cls.mats)
     cls.nosolv = Solver(cls.nop)
     cls.onescatfile = "test/test_inputs/scattering1g.mat"
     cls.onescatmat = Materials(cls.onescatfile)
     cls.oneop = NDA(cls.symgrid, cls.onescatmat)
     cls.onesolv = Solver(cls.oneop)
     cls.orignode = "test/test_inputs/origin_centered10_fine.node"
     cls.origele = "test/test_inputs/origin_centered10_fine.ele"
     cls.origrid = FEGrid(cls.orignode, cls.origele)
     cls.twomatfile = "test/test_inputs/scattering2g.mat"
     cls.twoscatmat = Materials(cls.twomatfile)
     cls.twop = NDA(cls.origrid, cls.twoscatmat)
     cls.twosolv = Solver(cls.twop)
Ejemplo n.º 10
0
 def setup_class(cls):
     cls.filename = "test/test_inputs/test.mat"
     cls.materials = Materials(cls.filename)
     cls.multigroup = "test/test_inputs/multigroup_test.mat"
Ejemplo n.º 11
0
    def setup_class(cls):
        cls.nodefile = "test/test_inputs/mesh0.node"
        cls.elefile = "test/test_inputs/mesh0.ele"
        cls.matfile = "test/test_inputs/mesh0_test.mat"
        cls.fegrid = FEGrid(cls.nodefile, cls.elefile)
        cls.mats = Materials(cls.matfile)
        cls.op = SAAF(cls.fegrid, cls.mats)

        cls.node2file = "test/test_inputs/mesh2.node"
        cls.ele2file = "test/test_inputs/mesh2.ele"
        cls.mat2file = "test/test_inputs/mesh2_test.mat"
        cls.fe2grid = FEGrid(cls.node2file, cls.ele2file)
        cls.mats2 = Materials(cls.mat2file)
        cls.op2 = SAAF(cls.fe2grid, cls.mats2)
        cls.solv2 = Solver(cls.op2)

        cls.stdnode = "test/test_inputs/std.node"
        cls.stdele = "test/test_inputs/std.ele"
        cls.stdmatfile = "test/test_inputs/std_test.mat"
        cls.stdmats = Materials(cls.stdmatfile)
        cls.stdgrid = FEGrid(cls.stdnode, cls.stdele)
        cls.stdop = SAAF(cls.stdgrid, cls.stdmats)

        cls.std3node = "test/test_inputs/std3.node"
        cls.std3ele = "test/test_inputs/std3.ele"
        cls.std3matfile = "test/test_inputs/std3_test.mat"
        cls.std3mats = Materials(cls.std3matfile)
        cls.std3grid = FEGrid(cls.std3node, cls.std3ele)
        cls.std3op = SAAF(cls.std3grid, cls.std3mats)

        cls.nsnode = "test/test_inputs/nonstd.1.node"
        cls.nsele = "test/test_inputs/nonstd.1.ele"
        cls.nsmatfile = "test/test_inputs/nonstd_test.mat"
        cls.nsmats = Materials(cls.nsmatfile)
        cls.nsgrid = FEGrid(cls.nsnode, cls.nsele)
        cls.nsop = SAAF(cls.nsgrid, cls.nsmats)

        cls.smnode = "test/test_inputs/D.node"
        cls.smele = "test/test_inputs/D.ele"
        cls.smgrid = FEGrid(cls.smnode, cls.smele)
        cls.smop = SAAF(cls.smgrid, cls.mats)


        cls.symnode = "test/test_inputs/symmetric_fine.node"
        cls.symele = "test/test_inputs/symmetric_fine.ele"
        cls.symmatfile = "test/test_inputs/noscatter.mat"
        cls.symmat = Materials(cls.symmatfile)
        cls.symgrid = FEGrid(cls.symnode, cls.symele, sn_ord=2)
        cls.symop = SAAF(cls.symgrid, cls.symmat)
        cls.symsolv = Solver(cls.symop)

        cls.scatmatfile = "test/test_inputs/scattering1g.mat"
        cls.scatmat = Materials(cls.scatmatfile)
        cls.scatop = SAAF(cls.stdgrid, cls.scatmat)
        cls.scat3op = SAAF(cls.std3grid, cls.scatmat)

        cls.oneop = SAAF(cls.symgrid, cls.scatmat)
        cls.onesolv = Solver(cls.oneop)

        cls.orignode = "test/test_inputs/origin_centered10_fine.node"
        cls.origele = "test/test_inputs/origin_centered10_fine.ele"
        cls.origrid = FEGrid(cls.orignode, cls.origele)
        cls.twomatfile = "test/test_inputs/scattering2g.mat"
        cls.twoscatmat = Materials(cls.twomatfile)
        cls.twop = SAAF(cls.origrid, cls.twoscatmat)
        cls.twosolv = Solver(cls.twop)

        cls.fissionmatfile = "test/test_inputs/fissiontest.mat"
        cls.fissionmat = Materials(cls.fissionmatfile)
        cls.fissionop = SAAF(cls.symgrid, cls.fissionmat)
        cls.fissolv = Solver(cls.fissionop)