Class

NumCosmoMathCSQ1D

Description [src]

class NumCosmoMath.CSQ1D : GObject.Object
{
  /* No available fields */
}

Abstract class for one-dimensional harmonic-oscillator evolution using the complex-structure formalism.

This class evolves a one-dimensional time-dependent oscillator in the canonical variables $\phi$ and $P_\phi$: \begin{align} \phi^\prime &= \frac{P_\phi}{m}, \ P_\phi^\prime &= -m\nu^2\phi. \end{align}

It uses the auxiliary quantities $\xi = \ln(m\nu)$ and $\gamma = \delta\gamma + \xi$, and evolves adiabatic variables $(\alpha,\delta\gamma)$ together with the residual phase $\delta\theta$. The full mode phase is \begin{equation} \theta(t) = \int_{t_i}^{t}\nu(t’)\,\mathrm{d}t’ + \delta\theta(t). \end{equation}

For derivations, complete equations of motion, and mode-function formulas, see the theoretical background page: CSQ1D Formalism.

Ancestors

Functions

ncm_csq1d_clear

Decreases the reference count of csq1d and sets the pointer csq1d to NULL.

Instance methods

ncm_csq1d_change_frame

Changes the frame of the state object to the given frame. The state object must be a valid state object, it cannot be NULL. The state object is updated in place.

ncm_csq1d_compute_H

Computes the Hamiltonian vector state of the original frame at $t$. The result is stored in the state object in the frame NCM_CSQ1D_FRAME_ORIG. Use ncm_csq1d_change_frame() to change the frame.

ncm_csq1d_compute_adiab

Computes the value of the adiabatic approximation of the variables $\alpha$ and $\Delta\gamma$ at $t$. This method computes the adiabatic approximation using the adiabatic series up to the order 2 or 4, depending on the value of the property max-order-2. The result is stored in the state object in the frame NCM_CSQ1D_FRAME_ADIAB1. Use ncm_csq1d_change_frame() to change the frame.

ncm_csq1d_compute_adiab_frame

As ncm_csq1d_compute_adiab(), but changes the frame of the result to frame.

ncm_csq1d_compute_nonadiab

Computes the value of the non-adiabatic VDC order two in the variables $\chi$ and $U$ at $t$. The result is stored in the state object in the frame NCM_CSQ1D_FRAME_NONADIAB1. Use ncm_csq1d_change_frame() to change the frame.

ncm_csq1d_compute_prop_vector
No description available.

ncm_csq1d_eval_F1
No description available.

ncm_csq1d_eval_F2
No description available.

ncm_csq1d_eval_at

Computes the system state at $t$, the result is stored in the state object in the frame NCM_CSQ1D_FRAME_ORIG. Use ncm_csq1d_change_frame() to change the frame.

ncm_csq1d_eval_at_frame

Computes the system state at $t$, the result is stored in the state object in the frame frame.

ncm_csq1d_eval_delta_theta_at

Returns the accumulated residual phase shift $\delta\theta(t)$ computed during the last call to ncm_csq1d_prepare().

ncm_csq1d_eval_int_1_m
No description available.

ncm_csq1d_eval_int_mnu2
No description available.

ncm_csq1d_eval_int_nu

Computes the integral $\int_{t_i}^{t} \nu(t’) \mathrm{d}t’$. If not overridden by a subclass, a default implementation based on NcmOdeSpline is used. You must call ncm_csq1d_prepare_phase_splines() after ncm_csq1d_prepare() before using this function.

ncm_csq1d_eval_int_q2mnu2
No description available.

ncm_csq1d_eval_int_qmnu2
No description available.

ncm_csq1d_eval_m
No description available.

ncm_csq1d_eval_nu
No description available.

ncm_csq1d_eval_nu2
No description available.

ncm_csq1d_eval_xi
No description available.

ncm_csq1d_evolve_prop_vector

Uses the propagator to evolve the state vector initial_state to time $t$ and at frame frame.

ncm_csq1d_find_adiab_max

Computes the time $t_\mathrm{min}$ that minimizes $F_1(t)$. Also computes the border values $t_{B,\mathrm{lower}}$ and $t_{B,\mathrm{upper}}$ such that $|F_1(t_{B,\mathrm{lower}}) - F_1(t_\mathrm{min})| = \epsilon$ for $t_{B,\mathrm{lower}} < t_\mathrm{min}$ and $|F_1(t_{B,\mathrm{upper}}) - F_1(t_\mathrm{min})| = \epsilon$ for $t_{B,\mathrm{upper}} > t_\mathrm{min}$.

ncm_csq1d_find_adiab_time_limit

Computes the time upper limit $t_i \in [t_0, t_1]$ where the adiabatic approximation is satisfied up to reltol. If both times are adiabatic, the time closer to the adiabatic limit is chosen. If both times are non-adiabatic, the function returns FALSE.

ncm_csq1d_free

Decreases the reference count of csq1d.

ncm_csq1d_get_abstol
No description available.

ncm_csq1d_get_adiab_threshold
No description available.

ncm_csq1d_get_initial_condition_type
No description available.

ncm_csq1d_get_prop_threshold
No description available.

ncm_csq1d_get_reltol
No description available.

ncm_csq1d_get_save_evol
No description available.

ncm_csq1d_get_tf
No description available.

ncm_csq1d_get_tf_prop
No description available.

ncm_csq1d_get_ti
No description available.

ncm_csq1d_get_time_array
No description available.

ncm_csq1d_get_vacuum_max_time
No description available.

ncm_csq1d_get_vacuum_reltol
No description available.

ncm_csq1d_prepare

Prepares the object using model. It integrates the system from the initial time to the final time. If the NcmCSQ1DInitialStateType is set to

NCM_CSQ1D_INITIAL_CONDITION_TYPE_AD_HOC, the initial conditions must be set using

ncm_csq1d_set_init_cond(). Otherwise, the initial conditions are automatically set using the chosen method. See ncm_csq1d_set_initial_condition_type().

ncm_csq1d_prepare_phase_splines

Prepares the phase-related splines (int_nu and delta_theta) for evaluation. This method computes and caches the integrated phase splines, which are used by ncm_csq1d_eval_int_nu() and ncm_csq1d_eval_delta_theta_at().

ncm_csq1d_prepare_prop

Computes the propagator for the given csq1d and model from ti to tf. The propagator is computed using the integral approximation time tii. The propagator is stored in the csq1d object and can be used to compute the propagator a state from ti to any time between tii and tf.

ncm_csq1d_ref

Increases the reference count of csq1d.

ncm_csq1d_set_abstol

Sets the absolute tolerance to abstol.

ncm_csq1d_set_adiab_threshold

Sets the adiabatic threshold $A_t$.

ncm_csq1d_set_init_cond

Sets the values of the initial conditions to initial_state. Depending on the value of evol_state, the initial conditions are set in the adiabatic frame 1 if evol_state is #NCM_CSQ1D_EVOL_STATE_ADIABATIC, or in the original frame when using the $U_+$ or $U_-$ parametrization.

ncm_csq1d_set_init_cond_adiab

Sets the values of the initial conditions at $t_i$. This method also updates the value of $t_i$.

ncm_csq1d_set_initial_condition_type

Sets the initial condition type to initial_condition_type. The initial condition type is used to determine the initial state state when preparing the object using ncm_csq1d_prepare().

ncm_csq1d_set_prop_threshold

Sets the propagator threshold $P_t$.

ncm_csq1d_set_reltol

Sets the relative tolerance to reltol.

ncm_csq1d_set_save_evol

If true saves all evolution to be evaluated later through ncm_csq1d_eval_at() and related methods.

ncm_csq1d_set_tf

Sets the initial time $t_f$ to tf.

ncm_csq1d_set_ti

Sets the initial time $t_i$ to ti.

ncm_csq1d_set_vacuum_max_time

Sets the maximum time for the vacuum search. This time is used to determine the vacuum state when preparing the object using ncm_csq1d_prepare().

ncm_csq1d_set_vacuum_reltol

Sets the relative tolerance for the vacuum definition. This tolerance is used to determine the vacuum state when preparing the object using ncm_csq1d_prepare().

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Properties

NumCosmoMath.CSQ1D:abstol
No description available.

NumCosmoMath.CSQ1D:adiab-threshold
No description available.

NumCosmoMath.CSQ1D:prop-threshold
No description available.

NumCosmoMath.CSQ1D:reltol
No description available.

NumCosmoMath.CSQ1D:save-evol
No description available.

NumCosmoMath.CSQ1D:tf
No description available.

NumCosmoMath.CSQ1D:ti
No description available.

NumCosmoMath.CSQ1D:vacuum-max-time
No description available.

NumCosmoMath.CSQ1D:vacuum-reltol
No description available.

NumCosmoMath.CSQ1D:vacuum-type
No description available.

Signals

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct NumCosmoMathCSQ1DClass {
  gdouble (* eval_xi) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_nu) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_nu2) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_m) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_int_1_m) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_int_mnu2) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_int_qmnu2) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_int_q2mnu2) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_int_nu) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_F1) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  gdouble (* eval_F2) (
    NcmCSQ1D* csq1d,
    NcmModel* model,
    const gdouble t
  );
  void (* prepare) (
    NcmCSQ1D* csq1d,
    NcmModel* model
  );
  
}

No description available.

Class members
eval_xi: gdouble (* eval_xi) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_nu: gdouble (* eval_nu) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_nu2: gdouble (* eval_nu2) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_m: gdouble (* eval_m) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_int_1_m: gdouble (* eval_int_1_m) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_int_mnu2: gdouble (* eval_int_mnu2) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_int_qmnu2: gdouble (* eval_int_qmnu2) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_int_q2mnu2: gdouble (* eval_int_q2mnu2) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_int_nu: gdouble (* eval_int_nu) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_F1: gdouble (* eval_F1) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

eval_F2: gdouble (* eval_F2) ( NcmCSQ1D* csq1d, NcmModel* model, const gdouble t )

No description available.

prepare: void (* prepare) ( NcmCSQ1D* csq1d, NcmModel* model )

No description available.

Virtual methods

NumCosmoMath.CSQ1DClass.eval_F1
No description available.

NumCosmoMath.CSQ1DClass.eval_F2
No description available.

NumCosmoMath.CSQ1DClass.eval_int_1_m
No description available.

NumCosmoMath.CSQ1DClass.eval_int_mnu2
No description available.

NumCosmoMath.CSQ1DClass.eval_int_nu

Computes the integral $\int_{t_i}^{t} \nu(t’) \mathrm{d}t’$. If not overridden by a subclass, a default implementation based on NcmOdeSpline is used. You must call ncm_csq1d_prepare_phase_splines() after ncm_csq1d_prepare() before using this function.

NumCosmoMath.CSQ1DClass.eval_int_q2mnu2
No description available.

NumCosmoMath.CSQ1DClass.eval_int_qmnu2
No description available.

NumCosmoMath.CSQ1DClass.eval_m
No description available.

NumCosmoMath.CSQ1DClass.eval_nu
No description available.

NumCosmoMath.CSQ1DClass.eval_nu2
No description available.

NumCosmoMath.CSQ1DClass.eval_xi
No description available.

NumCosmoMath.CSQ1DClass.prepare

Prepares the object using model. It integrates the system from the initial time to the final time. If the NcmCSQ1DInitialStateType is set to

NCM_CSQ1D_INITIAL_CONDITION_TYPE_AD_HOC, the initial conditions must be set using

ncm_csq1d_set_init_cond(). Otherwise, the initial conditions are automatically set using the chosen method. See ncm_csq1d_set_initial_condition_type().