.. highlight:: none Usage of ``tenes_std`` -------------------------------- ``tenes_std`` is a tool to calculate imaginary time evolution operators :math:`\exp \left( -\tau \mathcal{H}_{ij} \right)` from a given Hamiltonian :math:`\mathcal{H}` and an imaginary time step :math:`\tau`, and to generate an input file for ``tenes``. .. code:: bash $ tenes_std std.toml - Takes input files as arguments - Multiple input files can be specified - When parameters are duplicated, ``tenes_std`` stops with an error - Sections that can be specified multiple times, such as ``[[observable.onesite]]``, can be specified in multiple input files simultaneously - In this case, the sections in the latter input file are appended to those in the former input file - Output an input file for ``tenes`` - Command line options are as follows - ``--help`` - Show help message - ``--version`` - Show version number - ``--output=filename`` - Specify the output file name ``filename`` - Default is ``input.toml`` - File name cannot be the same as the input file name By making and editing input files, users can simulate on other models and lattices than predefined ones. See :ref:`sec-std-format` for details of the input file. Below, a sample file for the S=1/2 Heisenberg model on the square lattice is shown. :: [parameter] [parameter.general] is_real = true # limit tensors as real-valued ones [parameter.simple_update] num_step = 1000 # number of steps tau = 0.01 # imaginary time step [parameter.full_update] num_step = 0 # number of steps tau = 0.01 # imaginary time step [parameter.ctm] dimension = 9 # bond dimension [tensor] type = "square lattice" L_sub = [2, 2] # unitcell size skew = 0 # boundary condition # tensors in unitcell [[tensor.unitcell]] index = [0, 3] # index of tensors physical_dim = 2 # physical bond dimension virtual_dim = [3, 3, 3, 3] # virtual bond dimension noise = 0.01 # noise in initial tensor initial_state = [1.0, 0.0] # initial state [[tensor.unitcell]] index = [1, 2] physical_dim = 2 virtual_dim = [3, 3, 3, 3] noise = 0.01 initial_state = [0.0, 1.0] # (bond) hamiltonian [[hamiltonian]] dim = [2, 2] # physical bond dimensions bonds = """ # bond information 0 1 0 # first: index of one site 1 1 0 # second: x coord of the other 2 1 0 # third: y coord of the other 3 1 0 0 0 1 1 0 1 2 0 1 3 0 1 """ elements = """ # nonzero elements of tensor 0 0 0 0 0.25 0.0 # first: initial state of one site 1 0 1 0 -0.25 0.0 # second: initial state of the other 0 1 1 0 0.5 0.0 # third: final state of one site 1 0 0 1 0.5 0.0 # fourth: final state of the other 0 1 0 1 -0.25 0.0 # fifth: real part 1 1 1 1 0.25 0.0 # sixth: imag part """ # observables [observable] [[observable.onesite]] name = "Sz" # name group = 0 # index sites = [] # sites to be acted dim = 2 # dimension elements = """ # nonzero elements 0 0 0.5 0.0 1 1 -0.5 0.0 """ [[observable.twosite]] name = "hamiltonian" group = 0 dim = [2, 2] bonds = """ 0 1 0 1 1 0 2 1 0 3 1 0 0 0 1 1 0 1 2 0 1 3 0 1 """ elements = """ 0 0 0 0 0.25 0.0 1 0 1 0 -0.25 0.0 0 1 1 0 0.5 0.0 1 0 0 1 0.5 0.0 0 1 0 1 -0.25 0.0 1 1 1 1 0.25 0.0 """ [[observable.twosite]] name = "SzSz" group = 1 dim = [2, 2] bonds = """ 0 1 0 1 1 0 2 1 0 3 1 0 0 0 1 1 0 1 2 0 1 3 0 1 """ ops = [0, 0] # index of onesite operators