dirac_solver 0.0.1
A Dirac ecuation Solver
Cargando...
Buscando...
Nada coincide
Referencia de la clase dirac_solver.geometry.Grid

Métodos públicos

 __init__ (self, shape, spacing, origin=None)
 
 dv (self)
 
 courant_limit (self)
 

Atributos públicos

 shape
 
 dim
 
 spacing
 
 origin
 
 c
 
 hbar
 
 coords
 

Métodos protegidos

 _generate_coords (self)
 

Descripción detallada

@brief lase que representa una malla espacial (1D ,2D ,3D).

Documentación de constructores y destructores

◆ __init__()

dirac_solver.geometry.Grid.__init__ (   self,
  shape,
  spacing,
  origin = None 
)
@param shape: tupla con el numero de puntos en cada direccion (nx , [ny],[nz] ).
@param  spacing: tupla con el tamaño de la celda (dx, [dy], [dz]).
@param origin: punto de inicio de la malla (default: centrado en 0)
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 # self.shape guarda el numero de puntos en cada direccion del espacio
27 self.shape = shape
28
29 # self.dim almacena cuantas dimensiones tiene la malla (1, 2 o 3), en este caso la cantidad de entradas de shape.
30 self.dim = len(shape)
31
32 # self.spacing, guarda el tamaño de la celda en cada dirección, en funcion de la dimension definida.
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 # self.origin guarda el punto inicial desde el cual se construye la malla. (coordenada minima en cada eje).
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 # Constantes físicas en unidades naturales
57 self.c = c
58 self.hbar = hbar
59
60 # self.coods guarda toda la información de las coordenadas de la malla en un arreglo Numpy con la fomra (nx, [ny], [nz], dim)
61 self.coords = self._generate_coords()
62

Documentación de funciones miembro

◆ _generate_coords()

dirac_solver.geometry.Grid._generate_coords (   self)
protected
@brief construye las coordenadas de la malla en funcíon de la dimensiión.
63 def _generate_coords(self):
64 """
65 @brief construye las coordenadas de la malla en funcíon de la dimensiión.
66 """
67 axes = [self.origin[i] + np.arange(self.shape[i]) * self.spacing[i] for i in range(self.dim)]
68 grids = np.meshgrid(*axes, indexing="ij")
69
70 # self.coords se construyó en __init__ llamando a esta función.
71 coords = np.stack(grids, axis=-1) # shape: (nx, [ny], [nz], dim)
72 return coords
73

◆ courant_limit()

dirac_solver.geometry.Grid.courant_limit (   self)
@brief Calcula el paso de tiempo máximo por condición de estabilidad de Courant.
86 def courant_limit(self):
87 """
88 @brief Calcula el paso de tiempo máximo por condición de estabilidad de Courant.
89 """
90 # self.spacing guarda (dx,dy,dz) → usamos cada valor para la fórmula
91 # self.c es la velocidad de la luz en las unidades seleccionadas
92 inv_sq = sum((1.0/dx)**2 for dx in self.spacing)
93 return 1.0 / (self.c * np.sqrt(inv_sq))

◆ dv()

dirac_solver.geometry.Grid.dv (   self)
@brief Elemento de volumen (dx * dy * dz).
75 def dv(self):
76 """
77 @brief Elemento de volumen (dx * dy * dz).
78 """
79 # self.spacing contiene los espaciamientos en cada dirección
80 # se multiplican para obtener el volumen elemental ΔV.
81 dv = 1.0
82 for dx in self.spacing:
83 dv *= dx
84 return dv
85

Documentación de datos miembro

◆ c

dirac_solver.geometry.Grid.c

◆ coords

dirac_solver.geometry.Grid.coords

◆ dim

dirac_solver.geometry.Grid.dim

◆ hbar

dirac_solver.geometry.Grid.hbar

◆ origin

dirac_solver.geometry.Grid.origin

◆ shape

dirac_solver.geometry.Grid.shape

◆ spacing

dirac_solver.geometry.Grid.spacing

La documentación de esta clase está generada del siguiente archivo: