This is an old revision of the document!
Response function
The ResponseFunction object in Quanty defines (linear) response functions. For Hamiltonian H, ground-state |ψ0⟩ and a list of transition operators Ti with i∈[1,n] we define the response function G(ω,Γ) as giving an n by n matrix for each value of ω and Γ. The elements of this matrix are given as Gi,j(ω,Γ)=⟨ψ0|T†i1ω−H+iΓ/2+E0T†j|ψ0⟩, with E0=⟨ψ0|H|ψ0⟩. One can calculate response functions using the Quanty function CreateSpectra. This function returns two objects. At the first position a spectra object that contains the intensity for given values of ω and one specific value of Γ on a grid. At the second position CreateSpectra returns a ResponseFunction object.
ResponseFunctions are objects that can be evaluated at any frequency or imaginary onset. For example:
- Example.Quanty
H = Matrix.ToOperator( Matrix.Diagonal({1,2,3,4,5}) ) psi = NewWavefunction(5,0,{{"00000",1}}) T = {} for i=0,4 do T[i+1] = NewOperator(5,0,{{i,1}}) end S, G = CreateSpectra(H,T,psi) omega = 1.1 gamma = 0.01 print(G[1](omega,gamma))
returns
(9.9750623441396 - 0.49875311720698 I)
i.e. the value of the response function for the first transition operator defined at ω=1.1 and Γ=0.01.
Besides single complex valued functions we can generate a response function that returns a matrix for each value of ω. For example
- Example.Quanty
H = Matrix.ToOperator( Matrix.Diagonal({1,2,3,4,5}) ) psi = NewWavefunction(5,0,{{"00000",1}}) T = {} for i=0,4 do T[i+1] = NewOperator(5,0,{{i,1}}) end S, G = CreateSpectra(H,T,psi,{{"Tensor",true}}) omega = 1.1 gamma = 0.01 print(G(omega,gamma))
returns
{ { (9.9750623441396 - 0.49875311720698 I) , 0 , 0 , 0 , 0 } , { 0 , (-1.1110768186167 - 0.0061726489923151 I) , 0 , 0 , 0 } , { 0 , 0 , (-0.52631214465274 - 0.0013850319596125 I) , 0 , 0 } , { 0 , 0 , 0 , (-0.34482656115767 - 0.00059452855372011 I) , 0 } , { 0 , 0 , 0 , 0 , (-0.25640983496082 - 0.00032873055764208 I) } }