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

Implementación concreta de un potencial de Coulomb regularizado. Más...

#include <CoulombPotential.h>

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

Métodos públicos

 CoulombPotential (double Z, double epsilon=1e-6)
 Constructor principal del potencial de Coulomb.
 
double evaluate (const std::vector< double > &r) const override
 Evalúa el potencial en un punto espacial.
 
std::string get_name () const override
 Devuelve el nombre simbólico del potencial.
 
- Métodos públicos heredados de Potential
virtual ~Potential ()=default
 

Descripción detallada

Implementación concreta de un potencial de Coulomb regularizado.

Esta clase deriva de la clase abstracta Potential y define un potencial electrostático tipo Coulomb con una regularización en el origen (r = 0) para evitar singularidades numéricas.

La expresión implementada es:

\[ V(r) = -\frac{Z}{\|r\| + \epsilon} \]

donde:

  • \( Z \) es la carga nuclear o constante de acoplamiento.
  • \( \epsilon \) es un parámetro de regularización pequeño para estabilizar el cálculo.
Nota
Este potencial puede emplearse tanto en simulaciones 1D, 2D o 3D.
Atención
Si se usa un valor de epsilon_ demasiado pequeño, el integrador podría experimentar inestabilidad numérica en r≈0.
Ver también
Potential

Documentación de constructores y destructores

◆ CoulombPotential()

CoulombPotential::CoulombPotential ( double  Z,
double  epsilon = 1e-6 
)
inline

Constructor principal del potencial de Coulomb.

Parámetros
ZCarga efectiva del centro (p. ej. número atómico).
epsilonParámetro de regularización para evitar división por cero. Por defecto se usa 1e-6.
Nota
En la práctica, epsilon controla la suavidad del potencial cerca del origen. Valores mayores suavizan más la singularidad.
43 : Z_(Z), epsilon_(epsilon) {}

Documentación de funciones miembro

◆ evaluate()

double CoulombPotential::evaluate ( const std::vector< double > &  r) const
inlineoverridevirtual

Evalúa el potencial en un punto espacial.

Parámetros
rVector de posición (1D, 2D o 3D).
Devuelve
Valor escalar del potencial \( V(r) \).

Calcula la norma euclidiana \( \|r\| \) del vector r y devuelve el valor regularizado del potencial de Coulomb: \( -Z / (\|r\| + \epsilon) \).

Atención
No se asume normalización previa del vector r.

Implementa Potential.

58 {
59 double r_norm = 0.0;
60 for (double val : r) {
61 r_norm += val * val;
62 }
63 r_norm = std::sqrt(r_norm);
64
65 // Regularizar el potencial en r=0
66 return -Z_ / (r_norm + epsilon_);
67 }

◆ get_name()

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

Devuelve el nombre simbólico del potencial.

Devuelve
Cadena con el nombre "CoulombPotential".
Nota
Útil para registro o introspección de tipos de potenciales.

Implementa Potential.

76 {
77 return "CoulombPotential";
78 }

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