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

Implementación flexible de un potencial escalar definido por el usuario. Más...

#include <ScalarPotential.h>

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

Métodos públicos

 ScalarPotential (std::function< double(const std::vector< double > &)> func)
 Constructor que acepta una función escalar arbitraria.
 
double evaluate (const std::vector< double > &r) const override
 Evalúa el potencial escalar en una posición dada.
 
std::string get_name () const override
 Devuelve el nombre simbólico de la clase.
 
- Métodos públicos heredados de Potential
virtual ~Potential ()=default
 

Descripción detallada

Implementación flexible de un potencial escalar definido por el usuario.

Esta clase permite definir un potencial arbitrario a partir de una función escalar proporcionada por el usuario, ya sea desde C++ o desde Python (gracias a la interoperabilidad con pybind11).

La función debe tener la forma:

double f(const std::vector<double>& r);

donde r es el vector de coordenadas espaciales.

Ejemplo (en Python)

import numpy as np
from dirac_solver_core import ScalarPotential
def harmonic_potential(r):
x, y, z = r
return 0.5 * (x**2 + y**2 + z**2)
V = ScalarPotential(harmonic_potential)
print(V.evaluate([1.0, 0.0, 0.0])) # 0.5
Implementación flexible de un potencial escalar definido por el usuario.
Definition ScalarPotential.h:39
Ver también
Potential, CoulombPotential, FreeParticle

Documentación de constructores y destructores

◆ ScalarPotential()

ScalarPotential::ScalarPotential ( std::function< double(const std::vector< double > &)>  func)
inline

Constructor que acepta una función escalar arbitraria.

Parámetros
funcFunción que define el valor del potencial en un punto r.

La función func puede ser un lambda de C++ o una función de Python si el módulo fue expuesto con pybind11.

Nota
La evaluación se realiza directamente en cada llamada a evaluate, por lo que funciones muy complejas podrían impactar en el rendimiento.
55 : func_(func) {}

Documentación de funciones miembro

◆ evaluate()

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

Evalúa el potencial escalar en una posición dada.

Parámetros
rVector de coordenadas espaciales.
Devuelve
Valor escalar del potencial.
Nota
La función interna func_ se invoca directamente con el vector r.

Implementa Potential.

66 {
67 return func_(r);
68 }

◆ get_name()

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

Devuelve el nombre simbólico de la clase.

Devuelve
Cadena "ScalarPotential".

Implementa Potential.

75 {
76 return "ScalarPotential";
77 }

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