dirac_solver 0.0.1
A Dirac ecuation Solver
Cargando...
Buscando...
Nada coincide
Referencia de la clase dirac_solver.initial_state.ConstantSpinor

Métodos públicos

 __init__ (self, spin_polarization=[0, 0, 1], spin_superposition=[1+0j, 0+0j], momentum=[1, 0, 0], mass=electron_mass)
 

Atributos públicos

 spin_polarization
 
 spin_superposition
 
 momentum
 
 mass
 
 chi_up
 
 chi_down
 
 pauli_spinor
 
 constant_spinor
 

Métodos protegidos

 _base (self)
 
 _pauli_spinor (self)
 
 _constant_spinor (self)
 

Documentación de constructores y destructores

◆ __init__()

dirac_solver.initial_state.ConstantSpinor.__init__ (   self,
  spin_polarization = [0,0,1],
  spin_superposition = [1 + 0j, 0 + 0j],
  momentum = [1,0,0],
  mass = electron_mass 
)
@brief se normaliza el vector (al necesitarse un vector unitario)
19 def __init__(self, spin_polarization=[0,0,1], spin_superposition=[1 + 0j, 0 + 0j], momentum=[1,0,0], mass=electron_mass):
20
21 """
22 @brief se normaliza el vector (al necesitarse un vector unitario)
23 """
24 norm_n = np.linalg.norm(spin_polarization)
25 self.spin_polarization = np.array(spin_polarization) / norm_n if norm_n > 0 else np.array([0,0,1])
26
27 """
28 @brief se comprueba que la suma del modulo al cuadrado sea 1
29 """
30 norm_s = np.linalg.norm(spin_superposition)
31 self.spin_superposition = np.array(spin_superposition, dtype=np.complex128) / norm_s if norm_s > 0 else np.array([1,0])
32
33 self.momentum = np.array(momentum)
34 self.mass = mass
35
36 self._base()
37
38 self._pauli_spinor()
39
40 self._constant_spinor()
41

Documentación de funciones miembro

◆ _base()

dirac_solver.initial_state.ConstantSpinor._base (   self)
protected
42 def _base(self):
43 theta = np.arccos(self.spin_polarization[2])
44 phi = np.arctan2(self.spin_polarization[1],self.spin_polarization[0])
45
46
47 """
48 @brief Construcción base (vector columna 2x1) del spinor de Pauli
49 """
50 self.chi_up = np.array([
51 [np.cos(theta /2)],
52 [np.exp(1j * phi) * np.sin(theta / 2)]
53 ], dtype=np.complex128)
54
55 self.chi_down = np.array([
56 [np.sin(theta /2)],
57 [-np.exp(1j * phi) * np.cos(theta / 2)]
58 ], dtype=np.complex128)
59
60

◆ _constant_spinor()

dirac_solver.initial_state.ConstantSpinor._constant_spinor (   self)
protected
69 def _constant_spinor(self):
70
71
72 #proyeccion del spin en la direccion del momentum
73 norm_momentum = np.linalg.norm(self.momentum)
74
75 if norm_momentum == 0:
76 proyection_spin = np.zeros((2,2), dtype=np.complex128)
77 else:
78 proyection_spin = ((self.momentum[0] * sigma_1 +
79 self.momentum[1] * sigma_2 +
80 self.momentum[2] * sigma_3) / norm_momentum)
81
82 # Energía relativista
83 energy = np.sqrt((norm_momentum)**2 + (self.mass)**2)
84
85 # Partes superior e inferior del spinor
86 upper_part = np.sqrt(energy + self.mass) * self.pauli_spinor
87 lower_part = np.sqrt(energy - self.mass) * (proyection_spin @ self.pauli_spinor)
88 """
89 @brief Construcción del spinor constante (por partes)
90 """
91 self.constant_spinor = np.vstack((upper_part, lower_part))
92
93
94"""
95@brief Clase que construye el estado inicial como un paquete de ondas gausianas
96"""

◆ _pauli_spinor()

dirac_solver.initial_state.ConstantSpinor._pauli_spinor (   self)
protected
@brief Construcción del spinor de pauli
61 def _pauli_spinor(self):
62 """
63 @brief Construcción del spinor de pauli
64 """
65 alpha = self.spin_superposition[0]
66 beta = self.spin_superposition[1]
67 self.pauli_spinor = (alpha * self.chi_up) + (beta * self.chi_down)
68

Documentación de datos miembro

◆ chi_down

dirac_solver.initial_state.ConstantSpinor.chi_down

◆ chi_up

dirac_solver.initial_state.ConstantSpinor.chi_up

◆ constant_spinor

dirac_solver.initial_state.ConstantSpinor.constant_spinor

◆ mass

dirac_solver.initial_state.ConstantSpinor.mass

◆ momentum

dirac_solver.initial_state.ConstantSpinor.momentum

◆ pauli_spinor

dirac_solver.initial_state.ConstantSpinor.pauli_spinor

◆ spin_polarization

dirac_solver.initial_state.ConstantSpinor.spin_polarization

◆ spin_superposition

dirac_solver.initial_state.ConstantSpinor.spin_superposition

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