Conformal Field Theory Data
TNRKit provides extensive tools for calculating conformal field theory data. Details about the implementation can be found in the TNRKit paper (arxiv/2604.06922).
The core idea behind calculating the central charge, scaling dimensions, and conformal spins, is to calculate the spectrum of the fixed point tensor on a tube geometry. There are different ways to put fixed point tensors on a tube and the geometry of this tube is characterised by 3 parameters: $[h, L, x]$ Where $h$ is the height of the tube, $L$ is the circumference, and $x$ is the horizontal shift. The higher the ratio $\frac{L}{h}$, the higher the resolution but also the more expensive the calculation.
To calculate cft data we provide the CFTData struct which can be used in the following ways:
CFTData(scheme; shape=[h, L, x])
CFTData(T::TensorMap; kwargs...) # 1 fixed point tensor
CFTData(TA::TensorMap, TB::TensorMap; kwargs...) # 2x2 checkerboard unitcellThe shapes we provide are: $[1, 1, 0]$, $[\sqrt{2}, 2\sqrt{2}, 0]$, $[1, 4, 1]$, $[1, 8, 1]$, $[\frac{4}{\sqrt{10}}, 2 \sqrt{10}, \frac{2}{\sqrt{10}}]$
The last two of which require intermediate truncation steps, the parameters of which can be tuned by:
CFTData(scheme; shape=[1, 8, 1], trunc = trunc1, truncentanglement=trunc2)CFTData struct
The CFTData struct has two fields:
central_chargescaling_dimensions
The central_charge can be either missing (when using the $[1, 1, 0]$ shape), or a number. The scaling_dimensions field is a SectorVector from TensorKit.jl.
The scaling_dimensions can be indexed like an AbstractVector (i.e. with scalars, slices, ...), or with sectors (e.g. Z2Irrep(0)), which will provide the scaling dimensions associated with that sector/charge. To check which sectors you can index the scaling_dimensions with you can use keys(scaling_dimensions).