VolterraBasis
.Pos_gle¶
- class VolterraBasis.Pos_gle(*args, **kwargs)[source]¶
The main class for the position dependent memory extraction, holding all data and the extracted memory kernels.
Create an instance of the Pos_gle class.
- Parameters:
- xva_argxarray dataset ([‘time’, ‘x’, ‘v’, ‘a’]) or list of datasets.
Use compute_va() or see its output for format details. The timeseries to analyze. It should be either a xarray timeseries or a listlike collection of them.
- basisscikit-learn transformer to get the element of the basis
This class should implement, basis() and deriv() function and deal with periodicity of the data. If a fit() method is defined, it will be called at initialization
- saveallbool, default=True
Whether to save all output functions.
- prefixstr
Prefix for the saved output functions.
- verbosebool, default=True
Set verbosity.
- kTfloat, default=2.494
Numerical value for kT.
- truncfloat, default=1.0
Truncate all correlation functions and the memory kernel after this time value.
- __init__(*args, **kwargs)[source]¶
Create an instance of the Pos_gle class.
- Parameters:
- xva_argxarray dataset ([‘time’, ‘x’, ‘v’, ‘a’]) or list of datasets.
Use compute_va() or see its output for format details. The timeseries to analyze. It should be either a xarray timeseries or a listlike collection of them.
- basisscikit-learn transformer to get the element of the basis
This class should implement, basis() and deriv() function and deal with periodicity of the data. If a fit() method is defined, it will be called at initialization
- saveallbool, default=True
Whether to save all output functions.
- prefixstr
Prefix for the saved output functions.
- verbosebool, default=True
Set verbosity.
- kTfloat, default=2.494
Numerical value for kT.
- truncfloat, default=1.0
Truncate all correlation functions and the memory kernel after this time value.
- basis_vector(xva, compute_for='corrs')[source]¶
From one trajectory compute the basis element. This is the main method that should be implemented by children class. It take as argument a trajectory and should return the value of the basis function depending of the wanted case. There is three case that should be implemented.
“force”: for the evaluation and computation of the mean force.
“pmf”: for evaluation of the pmf using integration of the mean force
“kernel”: for the evaluation of the kernel.
“corrs”: for the computation of the correlation function.
- compute_corrs_w_noise(xva, left_op=None)¶
Compute correlation between noise and left_op
- Parameters:
- xvaxarray dataset ([‘time’, ‘x’, ‘v’, ‘a’]) .
Use compute_va() or see its output for format details. Input trajectory to compute noise.
- compute_noise(xva, trunc_kernel=None, start_point=0, end_point=None)¶
From a trajectory get the noise.
- Parameters:
- xvaxarray dataset ([‘time’, ‘x’, ‘v’, ‘a’]) .
Use compute_va() or see its output for format details. Input trajectory to compute noise.
- trunc_kernelint
Number of datapoint of the kernel to consider. Can be used to remove unphysical divergence of the kernel or shortten execution time.
- evolve_volterra(G0, lenTraj, method='trapz', trunc_ind=None)¶
Evolve in time the integro-differential equation. This assume that the GLE is a linear GLE (i.e. the set of basis function is on the left and right of the equality)
- Parameters:
- G0array
Initial value of the correlation
- lenTrajint
Length of the time evolution
- methodstr, default=”trapz”
Method that is used to discretize the continuous Volterra equations
- trunc_ind: int, default= self.trunc_ind
Truncate the length of the memory to this value
- flux_from_volterra(corrs_force, corrs_kernel=None, force_coeff=None, kernel=None, method='trapz', trunc_ind=None)¶
From a solution of the Volterra equation, compute the flux term. That allow to compute decomposition of the flux
- force_eval(x, coeffs=None)¶
Evaluate the force at given points x. If coeffs is given, use provided coefficients instead of the force
- inv_mass_eval(x, coeffs=None, set_zero=True)¶
Compute free energy via integration of the mean force at points x. This assume that the effective mass is independent of the position. If coeffs is given, use provided coefficients instead of the force coefficients.
- kernel_eval(x, coeffs_ker=None)¶
Evaluate the kernel at given points x. If coeffs_ker is given, use provided coefficients instead of the kernel
- laplace_transform_kernel(s_start=0.0, s_end=None, n_points=None)¶
Compute the Laplace transform of the kernel matrix
- classmethod load_model(basis, coeffs, **kwargs)¶
Create a model from a save
- pmf_eval(x, coeffs=None, kT=1.0, set_zero=True)¶
Compute free energy via integration of the mean force at points x. This assume that the effective mass is independent of the position. If coeffs is given, use provided coefficients instead of the force coefficients.
- pmf_num_int_eval(x, kT=1.0, set_zero=True)¶
Compute free energy via integration of the mean force at points x. This take into accound the position dependent mass, but the integration is numeric
- save_model()¶
Return DataSet version of the model than can be save to file
Examples using VolterraBasis.Pos_gle
¶
Checking solution of volterra equation
Kernel Estimation for 2D observable