Massively Parallel Trotter-Suzuki Solver
1.6.2
|
This class defines the quantum state. More...
#include <trottersuzuki.h>
Public Member Functions | |
State (Lattice *grid, int angular_momentum=0, double *p_real=0, double *p_imag=0) | |
State (const State &obj) | |
Copy constructor: copy the state object. More... | |
~State () | |
Destructor. | |
void | init_state (complex< double >(*ini_state)(double x)) |
Write the wave function from a C++ function to p_real and p_imag matrices in 1D. More... | |
void | init_state (complex< double >(*ini_state)(double x, double y)) |
Write the wave function from a C++ function to p_real and p_imag matrices in 2D. More... | |
void | loadtxt (char *file_name) |
Load the wave function from a file to p_real and p_imag matrices. | |
void | imprint (complex< double >(*function)(double x)) |
Multiply the wave function of the state by the function provided in 1D. More... | |
void | imprint (complex< double >(*function)(double x, double y)) |
Multiply the wave function of the state by the function provided in 2D. More... | |
double * | get_particle_density (double *density=0) |
Return a matrix storing the squared norm of the wave function. More... | |
double * | get_phase (double *phase=0) |
Return a matrix storing the phase of the wave function. More... | |
double | get_expected_value (string _operator) |
Return the expected value of the operator, given as argument. | |
double | get_squared_norm (void) |
Return the squared norm of the quantum state. | |
double | get_mean_x (void) |
Return the expected value of the X operator. | |
double | get_mean_xx (void) |
Return the expected value of the X^2 operator. | |
double | get_mean_y (void) |
Return the expected value of the Y operator. | |
double | get_mean_yy (void) |
Return the expected value of the Y^2 operator. | |
double | get_mean_px (void) |
Return the expected value of the P_x operator. | |
double | get_mean_pxpx (void) |
Return the expected value of the P_x^2 operator. | |
double | get_mean_py (void) |
Return the expected value of the P_y operator. | |
double | get_mean_pypy (void) |
Return the expected value of the P_y^2 operator. | |
double | get_mean_angular_momentum (void) |
Return the expected value of the L_z operator. | |
void | write_to_file (string fileprefix) |
Write to a file the wave function. More... | |
void | write_particle_density (string fileprefix) |
Write to a file the squared norm of the wave function. More... | |
void | write_phase (string fileprefix) |
Write to a file the phase of the wave function. More... | |
Public Attributes | |
double * | p_real |
Real part of the wave function. | |
double * | p_imag |
Imaginary part of the wave function. | |
Lattice * | grid |
Object that defines the lattice structure. | |
int | angular_momentum |
Angular momentum when cylindrical coordinates are used. | |
bool | expected_values_updated |
Whether the expected values of the state object are updated with respect to the last evolution. | |
Protected Member Functions | |
void | calculate_expected_values (void) |
Calculate squared norm and expected values. | |
Protected Attributes | |
bool | self_init |
Whether the p_real and p_imag matrices have been initialized from the State constructor or not. | |
double | mean_X |
double | mean_XX |
Expected values of the X and X^2 operators. | |
double | mean_Y |
double | mean_YY |
Expected values of the Y and Y^2 operators. | |
double | mean_Px |
double | mean_PxPx |
Expected values of the P_x and P_x^2 operators. | |
double | mean_Py |
double | mean_PyPy |
Expected values of the P_y and P_y^2 operators. | |
double | mean_angular_momentum |
Expected value of the L_z operator. | |
double | norm2 |
Squared norm of the state. | |
This class defines the quantum state.
State::State | ( | Lattice * | grid, |
int | angular_momentum = 0 , |
||
double * | p_real = 0 , |
||
double * | p_imag = 0 |
||
) |
Construct the state from given matrices if they are provided, otherwise construct a state with null wave function, initializing p_real and p_imag.
[in] | grid | Lattice object. |
[in] | angular_momentum | Angular momentum (only for cylindrical coordinates). |
[in] | p_real | Pointer to the real part of the wave function. |
[in] | p_imag | Pointer to the imaginary part of the wave function. |
State::State | ( | const State & | obj | ) |
Copy constructor: copy the state object.
[in] | obj | State object. |
double * State::get_particle_density | ( | double * | density = 0 | ) |
Return a matrix storing the squared norm of the wave function.
[out] | density | matrix storing the squared norm of the wave function. |
double * State::get_phase | ( | double * | phase = 0 | ) |
Return a matrix storing the phase of the wave function.
[out] | phase | matrix storing the phase of the wave function. |
void State::imprint | ( | complex< double >(*)(double x) | function | ) |
Multiply the wave function of the state by the function provided in 1D.
function | Pointer to a function |
void State::imprint | ( | complex< double >(*)(double x, double y) | function | ) |
Multiply the wave function of the state by the function provided in 2D.
function | Pointer to a function |
void State::init_state | ( | complex< double >(*)(double x) | ini_state | ) |
Write the wave function from a C++ function to p_real and p_imag matrices in 1D.
ini_state | Pointer to a wave function |
void State::init_state | ( | complex< double >(*)(double x, double y) | ini_state | ) |
Write the wave function from a C++ function to p_real and p_imag matrices in 2D.
ini_state | Pointer to a wave function |
void State::write_particle_density | ( | string | fileprefix | ) |
Write to a file the squared norm of the wave function.
[in] | fileprefix | prefix name of the file |
void State::write_phase | ( | string | fileprefix | ) |
Write to a file the phase of the wave function.
[in] | fileprefix | prefix name of the file |
void State::write_to_file | ( | string | fileprefix | ) |
Write to a file the wave function.
[in] | fileprefix | prefix name of the file |