Massively Parallel Trotter-Suzuki Solver  1.6.1
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
State Class Reference

This class defines the quantum state. More...

#include <trottersuzuki.h>

Inheritance diagram for State:
ExponentialState GaussianState SinusoidState

Public Member Functions

 State (Lattice *grid, 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_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.
 
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.
 

Detailed Description

This class defines the quantum state.

Constructor & Destructor Documentation

State::State ( Lattice *  grid,
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.

Parameters
[in]gridLattice object.
[in]p_realPointer to the real part of the wave function.
[in]p_imagPointer to the imaginary part of the wave function.
State::State ( const State obj)

Copy constructor: copy the state object.

Parameters
[in]objState object.

Member Function Documentation

double * State::get_particle_density ( double *  density = 0)

Return a matrix storing the squared norm of the wave function.

Parameters
[out]densitymatrix 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.

Parameters
[out]phasematrix 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.

Parameters
functionPointer 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.

Parameters
functionPointer 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.

Parameters
ini_statePointer 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.

Parameters
ini_statePointer to a wave function
void State::write_particle_density ( string  fileprefix)

Write to a file the squared norm of the wave function.

Parameters
[in]fileprefixprefix name of the file
void State::write_phase ( string  fileprefix)

Write to a file the phase of the wave function.

Parameters
[in]fileprefixprefix name of the file
void State::write_to_file ( string  fileprefix)

Write to a file the wave function.

Parameters
[in]fileprefixprefix name of the file

The documentation for this class was generated from the following files: