def test_poisson_solver_spherical(): """test the poisson solver on Polar grids""" for grid in [SphericalSymGrid(4, 8), SphericalSymGrid([2, 4], 8)]: for bc_val in ["auto_periodic_neumann", {"value": 1}]: bcs = grid.get_boundary_conditions(bc_val) d = ScalarField.random_uniform(grid) d -= d.average # balance the right hand side sol = solve_poisson_equation(d, bcs) test = sol.laplace(bcs) np.testing.assert_allclose( test.data, d.data, err_msg=f"bcs={bc_val}, grid={grid}", rtol=1e-6 )
def test_poisson_solver_polar(): """test the poisson solver on Polar grids""" for grid in [PolarSymGrid(4, 8), PolarSymGrid([2, 4], 8)]: for bc_val in ["natural", {"value": 1}]: bcs = grid.get_boundary_conditions(bc_val) d = ScalarField.random_uniform(grid) d -= d.average # balance the right hand side sol = solve_poisson_equation(d, bcs) test = sol.laplace(bcs) msg = f"grid={grid}, bcs={bc_val}" np.testing.assert_allclose(test.data, d.data, err_msg=msg, rtol=1e-6)
""" Solving Poisson's equation in 1d ================================ This example shows how to solve a 1d Poisson equation with boundary conditions. """ from pde import CartesianGrid, ScalarField, solve_poisson_equation grid = CartesianGrid([[0, 1]], 32, periodic=False) field = ScalarField(grid, 1) result = solve_poisson_equation(field, bc=[{"value": 0}, {"derivative": 1}]) result.plot()
""" Solving Poisson's equation in 1d ================================ This example shows how to solve a 1d Poisson equation with boundary conditions. """ from pde import CartesianGrid, ScalarField, solve_poisson_equation grid = CartesianGrid([[0, 1]], 32, periodic=False) field = ScalarField(grid, 1) result = solve_poisson_equation(field, bc=[{'value': 0}, {'derivative': 1}]) result.plot()