Massively Parallel Trotter-Suzuki Solver  1.6.2
State Class Reference

This class defines the quantum state. More...

#include <trottersuzuki.h>

Inheritance diagram for State:

## 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...

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.

## Detailed Description

This class defines the quantum state.

## Constructor & Destructor Documentation

 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.

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

Parameters
 [in] obj State 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] 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.

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

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

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

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

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

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

Write to a file the phase of the wave function.

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

Write to a file the wave function.

Parameters
 [in] fileprefix prefix name of the file

The documentation for this class was generated from the following files:
• /home/pwittek/trotter-suzuki-mpi/src/trottersuzuki.h
• /home/pwittek/trotter-suzuki-mpi/src/model.cpp