Quandary
Loading...
Searching...
No Matches
Public Attributes | List of all members
MatShellCtx Struct Reference

Matrix shell context containing data needed for applying the right-hand-side (RHS) system matrix to a vector. More...

#include <mastereq.hpp>

Collaboration diagram for MatShellCtx:
Collaboration graph
[legend]

Public Attributes

PetscInt dim
 Dimension of full vectorized system: N^2 if Lindblad, N if Schroedinger.
 
std::vector< size_t > nlevels
 Number of levels per oscillator.
 
IS * isu
 
IS * isv
 Vector strides for accessing real and imaginary parts.
 
Oscillator ** oscil_vec
 Array of pointers to the oscillators.
 
std::vector< double > crosskerr
 Cross-Kerr coupling coefficients.
 
std::vector< double > Jkl
 Dipole-dipole coupling strength.
 
std::vector< double > eta
 Frequency differences of the rotating frames.
 
DecoherenceType decoherence_type
 Type of Lindblad operators to include.
 
bool addT1
 
bool addT2
 Flags for T1 decay and T2 dephasing.
 
std::vector< double > control_Re
 Real parts of control pulse \(p(t)\).
 
std::vector< double > control_Im
 Imaginary parts of control pulse \(q(t)\).
 
std::vector< Mat > Ac_vec
 Vector of real parts of control matrices per oscillator.
 
std::vector< Mat > Bc_vec
 Vector of imaginary parts of control matrices per oscillator.
 
Mat * Ad
 Real parts of time-independent system matrix.
 
Mat * Bd
 Imaginary parts of time-independent system matrix.
 
std::vector< Mat > Ad_vec
 Vector of real parts of dipole-dipole coupling system matrices.
 
std::vector< Mat > Bd_vec
 Vector of imaginary parts of dipole-dipole coupling system matrices.
 
std::vector< double > Bd_coeffs
 
std::vector< double > Ad_coeffs
 
Vec * aux
 Auxiliary vector for computations.
 
double time
 Current time.
 

Detailed Description

Matrix shell context containing data needed for applying the right-hand-side (RHS) system matrix to a vector.

This structure holds all the necessary data for applying the real-valued and vectorized system matrix to a state vector.

Member Data Documentation

◆ Ac_vec

std::vector<Mat> MatShellCtx::Ac_vec

Vector of real parts of control matrices per oscillator.

◆ Ad

Mat* MatShellCtx::Ad

Real parts of time-independent system matrix.

◆ Ad_coeffs

std::vector<double> MatShellCtx::Ad_coeffs

◆ Ad_vec

std::vector<Mat> MatShellCtx::Ad_vec

Vector of real parts of dipole-dipole coupling system matrices.

◆ addT1

bool MatShellCtx::addT1

◆ addT2

bool MatShellCtx::addT2

Flags for T1 decay and T2 dephasing.

◆ aux

Vec* MatShellCtx::aux

Auxiliary vector for computations.

◆ Bc_vec

std::vector<Mat> MatShellCtx::Bc_vec

Vector of imaginary parts of control matrices per oscillator.

◆ Bd

Mat* MatShellCtx::Bd

Imaginary parts of time-independent system matrix.

◆ Bd_coeffs

std::vector<double> MatShellCtx::Bd_coeffs

◆ Bd_vec

std::vector<Mat> MatShellCtx::Bd_vec

Vector of imaginary parts of dipole-dipole coupling system matrices.

◆ control_Im

std::vector<double> MatShellCtx::control_Im

Imaginary parts of control pulse \(q(t)\).

◆ control_Re

std::vector<double> MatShellCtx::control_Re

Real parts of control pulse \(p(t)\).

◆ crosskerr

std::vector<double> MatShellCtx::crosskerr

Cross-Kerr coupling coefficients.

◆ decoherence_type

DecoherenceType MatShellCtx::decoherence_type

Type of Lindblad operators to include.

◆ dim

PetscInt MatShellCtx::dim

Dimension of full vectorized system: N^2 if Lindblad, N if Schroedinger.

◆ eta

std::vector<double> MatShellCtx::eta

Frequency differences of the rotating frames.

◆ isu

IS* MatShellCtx::isu

◆ isv

IS * MatShellCtx::isv

Vector strides for accessing real and imaginary parts.

◆ Jkl

std::vector<double> MatShellCtx::Jkl

Dipole-dipole coupling strength.

◆ nlevels

std::vector<size_t> MatShellCtx::nlevels

Number of levels per oscillator.

◆ oscil_vec

Oscillator** MatShellCtx::oscil_vec

Array of pointers to the oscillators.

◆ time

double MatShellCtx::time

Current time.


The documentation for this struct was generated from the following file: