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

Implementa condiciones de borde periódicas. Más...

#include <PeriodicBoundary.h>

+ Diagrama de herencia de PeriodicBoundary
+ Diagrama de colaboración de PeriodicBoundary:

Métodos públicos

void apply (std::vector< Dirac::Spinor > &psi, const Grid &grid) const override
 Aplica condiciones de borde periódicas al campo. En el esquema FDTD, esto generalmente se maneja en el propio bucle de actualización, donde el vecino del punto 0 es N-1, y el vecino de N-1 es 0. Esta función de aplicación explícita se puede usar si el bucle principal no lo maneja, por ejemplo, para forzar la condición en los puntos de borde después de un paso. Para nuestra implementación FDTD actual, la lógica se integrará directamente en la función step por eficiencia.
 
std::string get_name () const override
 Devuelve el nombre de la estrategia de condición de borde.
 
- Métodos públicos heredados de BoundaryCondition
virtual ~BoundaryCondition ()=default
 

Descripción detallada

Implementa condiciones de borde periódicas.

Esta estrategia trata la malla como un toro, donde el valor al inicio de un eje está vinculado al valor al final. Para una malla 1D, esto significa que psi[0] está vinculado a psi[N-1].

Documentación de funciones miembro

◆ apply()

void PeriodicBoundary::apply ( std::vector< Dirac::Spinor > &  psi,
const Grid grid 
) const
inlineoverridevirtual

Aplica condiciones de borde periódicas al campo. En el esquema FDTD, esto generalmente se maneja en el propio bucle de actualización, donde el vecino del punto 0 es N-1, y el vecino de N-1 es 0. Esta función de aplicación explícita se puede usar si el bucle principal no lo maneja, por ejemplo, para forzar la condición en los puntos de borde después de un paso. Para nuestra implementación FDTD actual, la lógica se integrará directamente en la función step por eficiencia.

Parámetros
psiUna referencia al vector de espinores (el campo).
gridLa malla de simulación.

Implementa BoundaryCondition.

27 {
28 if (psi.size() < 2) return; // No aplicable para mallas con menos de 2 puntos.
29
30 // En un caso simple, copiaríamos los valores, por ejemplo:
31 // psi.front() = psi.back();
32 // Pero para una malla escalonada, esta lógica es más compleja y se maneja mejor
33 // dentro del bucle numérico. Esta función sirve como un marcador de posición
34 // y confirmación de la implementación del patrón de estrategia.
35 }

◆ get_name()

std::string PeriodicBoundary::get_name ( ) const
inlineoverridevirtual

Devuelve el nombre de la estrategia de condición de borde.

Devuelve
La cadena "PeriodicBoundary".

Implementa BoundaryCondition.

41 {
42 return "PeriodicBoundary";
43 }

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