19 def __init__(self, shape,spacing, origin=None):
20 """
21 @param shape: tupla con el numero de puntos en cada direccion (nx , [ny],[nz] ).
22 @param spacing: tupla con el tamaño de la celda (dx, [dy], [dz]).
23 @param origin: punto de inicio de la malla (default: centrado en 0)
24 """
25
26
27 self.shape = shape
28
29
30 self.dim = len(shape)
31
32
33 if isinstance(spacing, (float, int)):
34 """
35 @brief Se genera un espaciado igual en todas las direcciones
36 """
37 self.spacing = (spacing,)*self.dim
38 else:
39 """
40 @brief Se genera un espaciado diferente en cada direccion de la fomra "En 3D (self.dim=3): (spacing,) * 3 → (0.1, 0.1, 0.1)"
41 """
42 self.spacing = tuple(spacing)
43
44
45 if origin is None:
46 """
47 @brief Por defecto se define el limite negativo en cada eje, dejando el centrop de la malla en O.
48 """
49 self.origin = tuple(-0.5 * (n-1) * dx for n, dx in zip(shape, self.spacing) )
50 else:
51 """
52 @brief se toman llos valores de la tupla (x,y,z)
53 """
54 self.origin = tuple(origin)
55
56
57 self.c = c
58 self.hbar = hbar
59
60
61 self.coords = self._generate_coords()
62