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.
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_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_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_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_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_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_save_evol
If true saves all evolution to be evaluated later through ncm_csq1d_eval_at() and
related methods.
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().
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_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.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().