示例#1
0
    def test_integral(self):
        g, d = setup_3d_grid()
        src_disc = source.Integral()
        lhs, rhs = src_disc.matrix_rhs(g, d)

        rhs_t = np.array([0, 0, 0, 0, 1, 0, 0, 0])
        assert src_disc.ndof(g) == g.num_cells
        assert np.all(rhs == rhs_t)
        assert lhs.shape == (8, 8)
        assert lhs.nnz == 0
示例#2
0
def main(N):
    Nx = Ny = N

    #g = structured.CartGrid([Nx, Ny], [1, 1])
    g = simplex.StructuredTriangleGrid([Nx, Ny], [1, 1])
    g.compute_geometry()

    # Assign parameters
    data = add_data(g)

    # Choose and define the solvers
    solver = mpfa.Mpfa('flow')
    A, b_flux = solver.matrix_rhs(g, data)
    _, b_source = source.Integral('flow').matrix_rhs(g, data)
    p = sps.linalg.spsolve(A, b_flux + b_source)

    diam = np.amax(g.cell_diameters())
    return diam, error_p(g, p)
示例#3
0
 def source_disc(self):
     'Discretization of source term, q'
     if self.is_GridBucket:
         return source.IntegralMixedDim(physics=self.physics)
     else:
         return source.Integral(physics=self.physics)
示例#4
0
 def source_disc(self):
     if self.is_GridBucket:
         return source.IntegralMixedDim(physics=self.physics, coupling=[None])
     else:
         return source.Integral(physics=self.physics)