Skip to content

Latest commit

 

History

History
54 lines (42 loc) · 1.56 KB

README.md

File metadata and controls

54 lines (42 loc) · 1.56 KB

SymbolicQuantumFieldTheory.jl

Build Status

Symbolic Quantum Field Theory in Julia

This package is in active development and is not production ready. Feel free to reach out with suggestions/issues.

Documentation is under construction. See test.ipynb for LaTeX printing and more example usage.

Basic Syntax

using QFT
using Symbolics
@operator ScalarField a
@syms p q

where a is the name of the operator and p and q are the momenta.

We can use these objects with

comm(a(p),a(q)')
normalorder(a(p) * a(q)')
a(p)'^2 * a(q)' * vacuum()
ℋ = E(q) * a(q)' * a(q)
integrate(ℋ * a(p)', q)

which returns $2\pi * E(p) a_p^\dagger \ket{0}$ in a Jupyter notebook and 2π*E(p)a_p^†|0⟩ otherwise.

Defining a Custom Commutation Relation

We can define a custom commutation relation between operators in a field using a natural syntax with the @comm macro.

Note. To do this we need to

import QFT.comm

as the comm function will be overloaded with your custom relation.

Then,

@field YourField
@operators YourField b c
@comm [b(p), c(q)'] = f(p,q)

for any f(p,q). This defines the commutation relation such that the commutator is now given by

@syms k l 
comm(b(k), c(l)') # returns f(k,l)

where Julia has replaced p and q with k and l appropriately. Multiple indices are also supported with @comm [b(p,q), c(r,s)'] = f(p,q,r,s).