tensor_network Module

!!!!!!!!!!!!!!!!!!!!!!! info !!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!! Dynamic lattice !!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!! Output Info !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!! Used in tn_tensor !!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!! Group !!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!path!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Uses


Contents


Derived Types

type, public :: lattice

Type-Bound Procedures

procedure, public :: initialize
procedure, public :: clean
procedure, public :: mirror_con
procedure, public :: copy_line
procedure, public :: copy_line_ten
procedure, public :: copy_line_link
generic, public :: set_bond_as => set_bond_as_pure, set_bond_as_cluster, set_bond_as_path
procedure, public :: draw_l
procedure, public :: draw_tn
generic, public :: draw => draw_l, draw_tn
generic, public :: add => add_from_ten, add_from_lat_pos
generic, public :: delete => delete_pos, delete_name
generic, public :: move => move_pos, move_name
procedure, public :: move_row
procedure, public :: move_column
generic, public :: rename => rename_pos, rename_name
generic, public :: back_up => back_up_pos, back_up_name
generic, public :: restore => restore_pos, restore_name
generic, public :: get_tensor => get_tensor_pos, get_tensor_name
generic, public :: get_tensor_link => get_tensor_link_pos, get_tensor_link_name
generic, public :: get_env_link => get_env_link_pos, get_env_link_name
generic, public :: get_env_bond => get_env_bond_pos
generic, public :: set_env_bond => set_env_bond_pos
generic, public :: update_tensor => update_tensor_pos, update_tensor_name
generic, public :: set_tensor => set_tensor_pos, set_tensor_name
generic, public :: point_info => point_info_pos, point_info_name, point_info_lat
generic, public :: set_bond => set_bond_pos, set_bond_name
generic, public :: get_bond => get_bond_pos, get_bond_name
generic, public :: get_bonds => get_bonds_pos, get_bonds_name
generic, public :: get_bond_no => get_bond_no_pos, get_bond_no_name
generic, public :: remove_bond => remove_bond_pos, remove_bond_name
generic, public :: invert_bond => invert_bond_pos, invert_bond_name
generic, public :: get_nb_num => get_nb_num_pos, get_nb_num_name
procedure, public :: get_max_nb_num
procedure, public :: absorb
procedure, public :: get_size
procedure, public :: get_range
generic, public :: get_name => get_name_whole, get_name_site
procedure, public :: get_pos
generic, public :: set_name => set_name_lat
procedure, public :: ind_name
procedure, public :: check_boundary
procedure, public :: get_contag_pos
procedure, public :: get_contag_name
generic, public :: get_contag => get_contag_pos, get_contag_name
generic, public :: set_contag => set_contag_pos, set_contag_name
procedure, public :: cut_bonds
procedure, public :: max_cut_bonds
procedure, public :: get_empty_tag
generic, public :: check_exist => check_exist_pos, check_exist_name
generic, public :: check_exist_bond => check_exist_bond_pos, check_exist_bond_name
generic, public :: bonds_num => bonds_num_pos, bonds_num_name
generic, public :: check_empty => check_empty_whole, check_empty_site_pos, check_empty_site_name
generic, public :: check_unempty => check_unempty_whole, check_unempty_site_pos, check_unempty_site_name
procedure, public :: write
procedure, public :: read
procedure, public :: generate_ten
procedure, public :: generate_env
generic, public :: absorb_env => absorb_env_whole
generic, public :: absorb_env_bond => absorb_env_pos_bond, absorb_env_name_bond
generic, public :: absorb_env_site => absorb_env_pos_site
generic, public :: tensor_absorb_env => tensor_absorb_env_pos
generic, public :: spit_env => spit_env_whole
generic, public :: spit_env_bond => spit_env_pos_bond, spit_env_name_bond
generic, public :: assignment(=) => copy_lat
procedure, public :: transpose_lat
generic, public :: insert_info => dinsert_info_whole, dinsert_info_pos, dinsert_info_name, zinsert_info_whole, zinsert_info_pos, zinsert_info_name, iinsert_info_whole, iinsert_info_pos, iinsert_info_name, linsert_info_whole, linsert_info_pos, linsert_info_name, ainsert_info_whole, ainsert_info_pos, ainsert_info_name, tinsert_info_whole, tinsert_info_pos, tinsert_info_name
procedure, public :: tget_info_whole
procedure, public :: aget_info_whole
procedure, public :: lget_info_whole
procedure, public :: iget_info_whole
procedure, public :: zget_info_whole
procedure, public :: dget_info_whole
procedure, public :: tget_info_pos
procedure, public :: aget_info_pos
procedure, public :: lget_info_pos
procedure, public :: iget_info_pos
procedure, public :: zget_info_pos
procedure, public :: dget_info_pos
procedure, public :: tget_info_name
procedure, public :: aget_info_name
procedure, public :: lget_info_name
procedure, public :: iget_info_name
procedure, public :: zget_info_name
procedure, public :: dget_info_name
generic, public :: get_info => dget_info_whole, dget_info_pos, dget_info_name, zget_info_whole, zget_info_pos, zget_info_name, iget_info_whole, iget_info_pos, iget_info_name, lget_info_whole, lget_info_pos, lget_info_name, aget_info_whole, aget_info_pos, aget_info_name, tget_info_whole, tget_info_pos, tget_info_name
procedure, public :: tset_info_whole
procedure, public :: aset_info_whole
procedure, public :: lset_info_whole
procedure, public :: iset_info_whole
procedure, public :: zset_info_whole
procedure, public :: dset_info_whole
procedure, public :: tset_info_pos
procedure, public :: aset_info_pos
procedure, public :: lset_info_pos
procedure, public :: iset_info_pos
procedure, public :: zset_info_pos
procedure, public :: dset_info_pos
procedure, public :: tset_info_name
procedure, public :: aset_info_name
procedure, public :: lset_info_name
procedure, public :: iset_info_name
procedure, public :: zset_info_name
procedure, public :: dset_info_name
generic, public :: set_info => dset_info_whole, dset_info_pos, dset_info_name, zset_info_whole, zset_info_pos, zset_info_name, iset_info_whole, iset_info_pos, iset_info_name, lset_info_whole, lset_info_pos, lset_info_name, aset_info_whole, aset_info_pos, aset_info_name, tset_info_whole, tset_info_pos, tset_info_name

type, public :: group

Type-Bound Procedures

procedure, public :: get_info
generic, public :: get_name => get_name_grp
generic, public :: set_name => set_name_grp
generic, public :: draw => draw_grp
generic, public :: empty => empty_grp
procedure, public :: check_can_take
generic, public :: take => take_pos, take_name, take_group
generic, public :: check_contain => check_contain_grp_pos, check_contain_grp_name
generic, public :: belong => belong_group
generic, public :: assignment(=) => copy_grp
procedure, public :: get_names
generic, public :: get_num => get_num_group
procedure, public :: point_lat
generic, public :: invert_bond => invert_bond_grp
procedure, public :: get_dangle_inds
generic, public :: get_lattice_link => get_lattice_link_grp

type, public :: path

Type-Bound Procedures

generic, public :: get_name => get_name_path
generic, public :: set_name => set_name_path
generic, public :: belong => belong_path
generic, public :: add => add_name, add_pos
generic, public :: get_next => get_next_name, get_next_pos
generic, public :: get_order => get_order_name, get_order_pos
generic, public :: get_name => get_name_order
generic, public :: get_pos => get_pos_order
generic, public :: get_num => get_num_path
generic, public :: iterate => iterate_pos, iterate_name
generic, public :: assignment(=) => copy_path
generic, public :: inverse => inverse_path
generic, public :: clean => clean_path
generic, public :: generate => generate_path
generic, public :: draw => draw_path
generic, public :: get_lattice_link => get_lattice_link_path
generic, public :: check_contain => check_contain_path_pos, check_contain_path_name

Subroutines

public subroutine lat_absorb_tensor(fn_tensor, ori_tensor, G, pos)

Arguments

Type IntentOptional AttributesName
type(tensor), intent(inout), target:: fn_tensor
type(tensor), intent(inout), target:: ori_tensor
type(group), intent(inout) :: G
integer, intent(in) :: pos(2)

public subroutine lat_absorb_env(fn_tensor, ori_tensor, G, pos)

Arguments

Type IntentOptional AttributesName
type(tensor), intent(inout), target:: fn_tensor
type(tensor), intent(inout), target:: ori_tensor
type(group), intent(inout) :: G
integer, intent(in) :: pos(2)

public subroutine lat_contract_type(Tout, T1, T2, G1, G2)

Arguments

Type IntentOptional AttributesName
type(tensor), intent(inout) :: Tout
type(tensor), intent(inout) :: T1
type(tensor), intent(inout) :: T2
type(group), intent(inout) :: G1
type(group), intent(inout) :: G2