13def test_1d_simulation():
14 """
15 Tests a simple 1D simulation of a free particle with periodic boundaries.
16 """
17 py_grid =
Grid(shape=(100,), spacing=(0.1,))
18 constant_spinor = ConstantSpinor(momentum=[5.0, 0, 0])
19 initial_state = GaussianPacket(constant_spinor, center=[0.0, 0, 0])
20
21 potential = _core.FreeParticle()
22 boundary_condition = _core.PeriodicBoundary()
23
24 problem = (
25 DiracProblemBuilder()
26 .set_grid(py_grid)
27 .set_initial_state(initial_state)
28 .set_potential(potential)
29 .set_boundary_condition(boundary_condition)
30 .set_time_parameters(time_step=0.001, total_time=0.1)
31 .build()
32 )
33
34 solver = DiracSolver(problem)
35 solver.run_simulation()
36
37 psi_final = solver.get_psi()
38
39 expected_shape = (py_grid.shape[0], 4)
40 assert psi_final.shape == expected_shape, f"Final psi has incorrect shape: {psi_final.shape}, expected {expected_shape}"
41
42 norm = np.linalg.norm(psi_final)
43 assert norm > 1e-9, f"Final wave function appears to be zero (norm = {norm:.4f})."
Representa una malla espacial (1D, 2D o 3D) para la simulación.
Definition Grid.h:16