NcmQMProp

NcmQMProp — Numerical QM propagator object

Properties

gdouble abstol Read / Write / Construct
gdouble lambda Read / Write / Construct
guint nknots Read / Write / Construct
gboolean noboundary Read / Write / Construct
guint np Read / Write / Construct
gdouble reltol Read / Write / Construct

Types and Values

Object Hierarchy

    GBoxed
    ├── NcmQMPropExp
    ╰── NcmQMPropGauss
    GObject
    ╰── NcmQMProp

Description

FIXME

Functions

NcmQMPropPsi ()

void
(*NcmQMPropPsi) (gpointer psi_data,
                 const gdouble x,
                 gdouble *psi);

Wave-function

Parameters

psi_data

object pointer

 

x

eval point $x$

 

psi

$\psi$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_gauss_new ()

NcmQMPropGauss *
ncm_qm_prop_gauss_new (const gdouble mean,
                       const gdouble alpha,
                       const gdouble sigma,
                       const gdouble Hi);

Creates a new Gaussian wave function.

Parameters

mean

gaussian mean

 

alpha

power-law

 

sigma

Gaussian width

 

Hi

linear imaginary phase

 

Returns

a new NcmQMPropGauss.

[transfer full]


ncm_qm_prop_gauss_dup ()

NcmQMPropGauss *
ncm_qm_prop_gauss_dup (NcmQMPropGauss *qm_gauss);

Duplicates qm_gauss .

Parameters

qm_gauss

a NcmQMPropGauss

 

Returns

a duplicate of qm_gauss .

[transfer full]


ncm_qm_prop_gauss_free ()

void
ncm_qm_prop_gauss_free (NcmQMPropGauss *qm_gauss);

Frees qm_gauss .

Parameters

qm_gauss

a NcmQMPropGauss

 

ncm_qm_prop_gauss_eval ()

void
ncm_qm_prop_gauss_eval (NcmQMPropGauss *qm_gauss,
                        const gdouble x,
                        gdouble *psi);

Evaluates qm_gauss at x .

Parameters

qm_gauss

a NcmQMPropGauss

 

x

the point where to evaluate $\psi(x)$

 

psi

$\psi$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_gauss_eval_hermit ()

void
ncm_qm_prop_gauss_eval_hermit (NcmQMPropGauss *qm_gauss,
                               const gdouble x,
                               gdouble *psi);

Evaluates qm_gauss at x removing the Hemite weight.

Parameters

qm_gauss

a NcmQMPropGauss

 

x

the point where to evaluate $\psi(x)$

 

psi

$\psi$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_gauss_eval_RS ()

void
ncm_qm_prop_gauss_eval_RS (NcmQMPropGauss *qm_gauss,
                           const gdouble x,
                           gdouble *RS);

Evaluates qm_gauss at x .

Parameters

qm_gauss

a NcmQMPropGauss

 

x

the point where to evaluate $\psi(x)$

 

RS

$R$ and $S$ in $\psi = Re^{iS}$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_exp_new ()

NcmQMPropExp *
ncm_qm_prop_exp_new (const gdouble n,
                     const gdouble V,
                     const gdouble pV);

Creates a new Exponential wave function.

Parameters

n

power-law

 

V

Volume

 

pV

Volume momentum

 

Returns

a new NcmQMPropExp.

[transfer full]


ncm_qm_prop_exp_dup ()

NcmQMPropExp *
ncm_qm_prop_exp_dup (NcmQMPropExp *qm_exp);

Duplicates qm_exp .

Parameters

qm_exp

a NcmQMPropExp

 

Returns

a duplicate of qm_exp .

[transfer full]


ncm_qm_prop_exp_free ()

void
ncm_qm_prop_exp_free (NcmQMPropExp *qm_exp);

Frees qm_exp .

Parameters

qm_exp

a NcmQMPropExp

 

ncm_qm_prop_exp_eval ()

void
ncm_qm_prop_exp_eval (NcmQMPropExp *qm_exp,
                      const gdouble x,
                      gdouble *psi);

Evaluates qm_exp at x .

Parameters

qm_exp

a NcmQMPropExp

 

x

the point where to evaluate $\psi(x)$

 

psi

$psi$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_exp_eval_RS ()

void
ncm_qm_prop_exp_eval_RS (NcmQMPropExp *qm_exp,
                         const gdouble x,
                         gdouble *RS);

Evaluates qm_exp at x .

Parameters

qm_exp

a NcmQMPropExp

 

x

the point where to evaluate $\psi(x)$

 

RS

$R$ and $S$ in $\psi = Re^{iS}$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_new ()

NcmQMProp *
ncm_qm_prop_new (void);

Creates a new NcmQMProp object.

Returns

a new NcmQMProp.


ncm_qm_prop_ref ()

NcmQMProp *
ncm_qm_prop_ref (NcmQMProp *qm_prop);

Increase the reference of qm_prop by one.

Parameters

qm_prop

a NcmQMProp

 

Returns

qm_prop .

[transfer full]


ncm_qm_prop_free ()

void
ncm_qm_prop_free (NcmQMProp *qm_prop);

Decrease the reference count of qm_prop by one.

Parameters

qm_prop

a NcmQMProp

 

ncm_qm_prop_clear ()

void
ncm_qm_prop_clear (NcmQMProp **qm_prop);

Decrease the reference count of qm_prop by one, and sets the pointer *qm_prop to NULL.

Parameters

qm_prop

a NcmQMProp

 

ncm_qm_prop_set_nknots ()

void
ncm_qm_prop_set_nknots (NcmQMProp *qm_prop,
                        const guint nknots);

Sets the initial number of knots to be used in the wave function mesh.

Parameters

qm_prop

a NcmQMProp

 

nknots

number of knots

 

ncm_qm_prop_get_nknots ()

guint
ncm_qm_prop_get_nknots (NcmQMProp *qm_prop);

Gets the current number of knots used in the wave function mesh.

Parameters

qm_prop

a NcmQMProp

 

Returns

the current number of knots used in the wave function mesh.


ncm_qm_prop_eval ()

void
ncm_qm_prop_eval (NcmQMProp *qm_prop,
                  const gdouble x,
                  const gdouble y,
                  const gdouble t,
                  gdouble *G);

Calculates the propagator at $G (x,\;y;\;t)$.

Parameters

qm_prop

a NcmQMProp

 

t

time difference

 

x

$x$ coordinate

 

y

$y$ coordinate

 

G

$G$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_eval_array ()

void
ncm_qm_prop_eval_array (NcmQMProp *qm_prop,
                        const gdouble x,
                        const gdouble *ya,
                        gsize n,
                        const gdouble t,
                        gdouble *G);

Calculates the propagator at $G (x,\;y;\;t)$.

Parameters

qm_prop

a NcmQMProp

 

x

$x$ coordinate

 

ya

$y$ coordinate

 

n

number of elements

 

t

time difference

 

G

$G$

 

ncm_qm_prop_gauss_ini ()

void
ncm_qm_prop_gauss_ini (NcmQMProp *qm_prop,
                       const gdouble mean,
                       const gdouble alpha,
                       const gdouble sigma,
                       const gdouble Hi);

Calculates the propagator at $G (x,\;y;\;t)$.

Parameters

qm_prop

a NcmQMProp

 

mean

Gaussian mean

 

alpha

power-law

 

sigma

standard deviation

 

Hi

Initial $H(t_i) = H_i$

 

ncm_qm_prop_propto ()

void
ncm_qm_prop_propto (NcmQMProp *qm_prop,
                    const gdouble x,
                    const gdouble t,
                    gdouble *psi);

Calculates the propagator at $G (x,\;y;\;t)$.

Parameters

qm_prop

a NcmQMProp

 

x

FIXME

 

t

FIXME

 

psi

$G$.

[out caller-allocates][array fixed-size=2][element-type gdouble]

ncm_qm_prop_propto_norm ()

gdouble
ncm_qm_prop_propto_norm (NcmQMProp *qm_prop,
                         const gdouble t);

Calculates the propagator at $G (x,\;y;\;t)$.

Parameters

qm_prop

a NcmQMProp

 

t

FIXME

 

ncm_qm_prop_set_init_cond ()

void
ncm_qm_prop_set_init_cond (NcmQMProp *qm_prop,
                           NcmQMPropPsi psi0_RS,
                           gpointer psi_data,
                           const gdouble xi,
                           const gdouble xf);

Sets the initial condition using psi0 , it calculates the best mesh for the initial condition using the real part of psi0 .

Parameters

qm_prop

a NcmQMProp

 

psi0_RS

Initial wave-function in polar form.

[scope call]

psi_data

Initial wave-function data

 

xi

initial point

 

xf

final point

 

ncm_qm_prop_set_init_cond_gauss ()

void
ncm_qm_prop_set_init_cond_gauss (NcmQMProp *qm_prop,
                                 NcmQMPropGauss *qm_gauss,
                                 const gdouble xi,
                                 const gdouble xf);

Sets the initial condition using psi0 and ncm_qm_prop_gauss_eval(), it calculates the best mesh for the initial condition using the real part of psi0 .

Parameters

qm_prop

a NcmQMProp

 

qm_gauss

Initial wave-function data

 

xi

initial point

 

xf

final point

 

ncm_qm_prop_set_init_cond_exp ()

void
ncm_qm_prop_set_init_cond_exp (NcmQMProp *qm_prop,
                               NcmQMPropExp *qm_exp,
                               const gdouble xi,
                               const gdouble xf);

Sets the initial condition using psi0 and ncm_qm_prop_exp_eval(), it calculates the best mesh for the initial condition using the real part of psi0 .

Parameters

qm_prop

a NcmQMProp

 

qm_exp

Initial wave-function data

 

xi

initial point

 

xf

final point

 

ncm_qm_prop_evolve ()

void
ncm_qm_prop_evolve (NcmQMProp *qm_prop,
                    const gdouble tf);

Evolve the wave-function to tf .

Parameters

qm_prop

a NcmQMProp

 

tf

final time

 

ncm_qm_prop_evolve_spec ()

void
ncm_qm_prop_evolve_spec (NcmQMProp *qm_prop,
                         const gdouble t);

Evolves the system using spectral methods.

Parameters

qm_prop

a NcmQMProp

 

t

final time

 

ncm_qm_prop_eval_psi ()

GArray *
ncm_qm_prop_eval_psi (NcmQMProp *qm_prop,
                      const gdouble *x,
                      const guint len);

Evaluates $\psi$ in the array x .

Parameters

qm_prop

a NcmQMProp

 

x

array of points.

[array length=len][element-type gdouble]

len

array length

 

Returns

array of length 2*len containing the real and imaginary parts of $\psi$.

[transfer full][array][element-type gdouble]


ncm_qm_prop_eval_rho ()

GArray *
ncm_qm_prop_eval_rho (NcmQMProp *qm_prop,
                      const gdouble *x,
                      const guint len);

Evaluates $\rho$ in the array x .

Parameters

qm_prop

a NcmQMProp

 

x

array of points.

[array length=len][element-type gdouble]

len

array length

 

Returns

array of length len containing $\rho$.

[transfer full][array][element-type gdouble]


ncm_qm_prop_eval_dS ()

GArray *
ncm_qm_prop_eval_dS (NcmQMProp *qm_prop,
                     const gdouble *x,
                     const guint len);

Evaluates $\partial_x S$ in the array x .

Parameters

qm_prop

a NcmQMProp

 

x

array of points.

[array length=len][element-type gdouble]

len

array length

 

Returns

array of length len containing $\partial_x S$.

[transfer full][array][element-type gdouble]


ncm_qm_prop_peek_rho_s ()

NcmSpline *
ncm_qm_prop_peek_rho_s (NcmQMProp *qm_prop);

Peeks the current $\rho(x)$ NcmSpline.

Parameters

qm_prop

a NcmQMProp

 

Returns

$\rho(x)$ NcmSpline.

[transfer none]

Types and Values

struct NcmQMPropGauss

struct NcmQMPropGauss {
};

Gaussian wave-function.


struct NcmQMPropExp

struct NcmQMPropExp {
};

Exponential wave-function.

Property Details

The “abstol” property

  “abstol”                   gdouble

absolute tolerance.

Flags: Read / Write / Construct

Allowed values: >= 0

Default value: 1e-50


The “lambda” property

  “lambda”                   gdouble

\lambda.

Flags: Read / Write / Construct

Allowed values: >= 0

Default value: 0.5


The “nknots” property

  “nknots”                   guint

n_k.

Flags: Read / Write / Construct

Allowed values: >= 6

Default value: 50


The “noboundary” property

  “noboundary”               gboolean

no boundary condition at x_f.

Flags: Read / Write / Construct

Default value: TRUE


The “np” property

  “np”                       guint

n_p.

Flags: Read / Write / Construct

Allowed values: >= 10

Default value: 20000


The “reltol” property

  “reltol”                   gdouble

relative tolerance.

Flags: Read / Write / Construct

Allowed values: [0,1]

Default value: 1e-09