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
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
andbasis_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, seeIPESS_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
andbasis_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
, andIPEPS_KAGOME
. First, invoking reconstruction of elementary tensors bybuild_elem_tensors()
and then construct rank-5 iPEPS bybuild_onsite_tensors()
.
- 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:
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.