Kagome iPESS from lin. combination

Specialized sub-class of ipeps.ipess_kagome.IPESS_KAGOME_PG, with iPESS tensors built as linear combination of a set of basis tensors e

\[t = \sum_i \lambda_i e^i,\]

where \(\vec{\lambda}\) is a vector of real coefficients, which are the variatonal parameters of this ansatz. Both trivalent tensors 'T_u', 'T_d' and bond tensors 'B_a', 'B_b', 'B_c' are defined in this way.

class ipeps.ipess_kagome.IPESS_KAGOME_PG_LC(T_u, B_c, T_d=None, B_a=None, B_b=None, SYM_UP_DOWN=True, SYM_BOND_S=True, pgs=None, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]

Bases: IPESS_KAGOME_PG

Parameters:
  • T_u (tuple(torch.tensor, list(tuple(dict,torch.tensor)))) – tuple of vector with real coefficients and list of basis tensors defining trivalent tensor as linear combination

  • B_c (tuple(torch.tensor, list(tuple(dict,torch.tensor)))) – tuple of vector with real coefficients and list of basis tensors defining bond tensor as linear combination

  • T_d – analogous to T_u

  • B_a (tuple(torch.tensor, list(tuple(dict,torch.tensor)))) – analogous to B_c

  • B_b (tuple(torch.tensor, list(tuple(dict,torch.tensor)))) – analogous to B_c

  • SYM_UP_DOWN (bool) – is up triangle equivalent to down triangle

  • SYM_BOND_S (bool) – are bond tensors equivalent to each other

  • pgs (dict[str : str]) – dictionary assigning point-group irreps to basis tensors

  • peps_args (PEPSARGS) – ipeps configuration

  • global_args (GLOBALARGS) – global configuration

Single unit-cell iPESS ansatz (3 sites per unit cell) for Kagome lattice with elementary tensors built as linear combination of supplied basis tensors.

Each basis tensor is described by a dict:

T_u= (torch.Tensor, [
    ...,
    ({"meta": {"pg": "A_1"}, ...}, torch.Tensor),
    ...,
])

where the value of “pg” (specified inside dict “meta”) is either “A_1” or “A_2” for trivalent tensors 'T_u', 'T_d' and “A” or “B” for bond tensors 'B_a', 'B_b', 'B_c'.

Coefficients and basis tensors can be accessed in member dictionaries coeffs and basis_t respectively.

If SYM_UP_DOWN, then T_d trivalent tensor is taken to be identical to T_u. The choice of the contraction guarantees the same (direction of) chirality on up and down triangles.

If SYM_BOND_S, then B_a and B_b bond tensors are taken to be identical to B_c.

The pgs specifies point-group irreps for elementary tensors, see IPESS_KAGOME_PG. Only basis tensors of selected point-group irrep are used to construct ipess tensors.

add_noise(noise)[source]
Parameters:

noise (float) – magnitude of noise

Add uniform random noise to coefficients of linear combinations.

build_elem_tensors()[source]
Returns:

elementary tensors

Return type:

dict[str: torch.Tensor]

Construct elementary tensors 'T_u', 'B_c' and optionally 'T_d', 'B_a', 'B_b' as linear combinations of basis tensors with real coefficients.

get_checkpoint()[source]
Returns:

all data necessary to reconstruct the state. In this case dict containing members coeffs and basis_t

Return type:

dict[str: dict[str: torch.Tensor], str: dict[str: list(tuple(dict,torch.Tensor))]]

This function is called by optimizer to create checkpoints during the optimization process.

get_parameters()[source]
Returns:

variational parameters of IPESS_KAGOME_PG_LC

Return type:

iterable

This function is called by optimizer to access variational parameters of the state. In this case member coeffs.

load_checkpoint(checkpoint_file)[source]
Parameters:

checkpoint_file (str) – path to checkpoint file

Initializes the state according to the supplied checkpoint file.

Note

The vertexToSite mapping function is not a part of checkpoint and must be provided either when instantiating IPEPS_ABELIAN or afterwards.

update_()[source]

Update parent classes IPESS_KAGOME_PG, IPESS_KAGOME_GENERIC, and IPEPS_KAGOME. First, invoking reconstruction of elementary tensors by build_elem_tensors() and then construct rank-5 iPEPS by build_onsite_tensors().

write_to_file(outputfile, tol=1e-14, normalize=False)[source]

See write_ipess_kagome_pg_lc().

ipeps.ipess_kagome.read_ipess_kagome_pg_lc(jsonfile, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • jsonfile (str or Path object) – input file describing IPESS_KAGOME_PG_LC in json format

  • peps_args (PEPSARGS) – ipeps configuration

  • global_args (GLOBALARGS) – global configuration

Returns:

wavefunction

Return type:

IPESS_KAGOME_PG_LC

Read IPESS_KAGOME_PG_LC state from file.

ipeps.ipess_kagome.write_ipess_kagome_pg_lc(state, outputfile, tol=1e-14, normalize=False)[source]
Parameters:
  • state (IPESS_KAGOME_PG_LC) – wavefunction to write out in json format

  • outputfile – target file

  • tol (float) – minimum magnitude of tensor elements which are written out

  • normalize (bool) – if True, on-site tensors are normalized before writing

Write state to file.