Documentation for module tmc_tree_search

tree nodes search etc.

source: tmc_tree_search.F
Loading...

public Subroutines/Functions:

counts the number of existing nodes in global and subtrees
searches for created configurations in all subtrees
get the changed element of the actual global tree element and its related last accepted parent
search most probable end in global tree to create a new tree node using the acceptance probabilities for each move type of each temperature routine distinguishes the search for most probable node for energy and most probable node with open end for new configuration In case of searching open end: routine stops in branch with canceled NMC, using this a one possibility
searches in all branches down below the entered global tree element for elements to cancel, if prob is present start searching at the related tree child node
searches last element on trajectory, until where the sides of the tree are deleted (of global tree) also found the last accepted element before
SUBROUTINE RECURSIVE
search_end_of_clean_tree (tree_ptr, last_acc)
searches last element on trajectory, until where the sides of the tree are deleted (in sub tree) also found the last accepted element before. searches the last element which at least have ONE (not calculated) node in the tree branch
gt_head head of the global tree
SUBROUTINE RECURSIVE
search_next_gt_element_to_check (ptr, found)
search the next global element in the Markov Chain to check
FUNCTION
TYPE(tree_type) RECURSIVE
search_parent_element (current)
searching the parent element (last accepted configuration before)

SUBROUTINEcount_nodes_in_trees(global_tree_ptr, end_of_clean_trees, counters, head_elements_nr)

counts the number of existing nodes in global and subtrees

Arguments:
POINTER
:: global_tree_ptr pointer to one global tree element
POINTER
:: end_of_clean_trees(:) points to the last elements of the clean sub trees
INTEGER,
POINTER
:: counters(:) array returning the counters for each subtree
INTEGER,
POINTER
:: head_elements_nr(:) node number of the existing global and sub tree heads

SUBROUTINEcount_prepared_nodes_in_trees(global_tree_ptr, counters)

searches for created configurations in all subtrees

Arguments:
INTENT(in),
POINTER
:: global_tree_ptr pointer to one global tree element
INTEGER,
POINTER
:: counters(:) array returning the counters for each subtree

SUBROUTINEget_subtree_elements_to_check(gt_act_elem, elem1, elem2)

get the changed element of the actual global tree element and its related last accepted parent

Arguments:
POINTER
:: gt_act_elem actual global tree element
TYPE(tree_type),
INTENT(out),
POINTER
:: elem1 two subtree elements which should be compared
TYPE(tree_type),
INTENT(out),
POINTER
:: elem2 two subtree elements which should be compared

RECURSIVE SUBROUTINEmost_prob_end(global_tree_elem, prob, n_acc, search_energy_node)

search most probable end in global tree to create a new tree node using the acceptance probabilities for each move type of each temperature routine distinguishes the search for most probable node for energy and most probable node with open end for new configuration In case of searching open end: routine stops in branch with canceled NMC, using this a one possibility

Arguments:
POINTER
:: global_tree_elem starting point for search
REAL(dp),
INTENT(out)
:: prob return value, the probability of reaching the tree node
LOGICAL,
INTENT(inout)
:: n_acc drection of branch the next tree node should extend
LOGICAL,
OPTIONAL
:: search_energy_node ...

RECURSIVE SUBROUTINEsearch_canceling_elements(pt_elem_in, prob, tmc_env)

searches in all branches down below the entered global tree element for elements to cancel, if prob is present start searching at the related tree child node

Arguments:
INTENT(in),
POINTER
:: pt_elem_in start search point
REAL(dp),
OPTIONAL
:: prob the acceptance probability of the tree element to define the direction to start with
POINTER
:: tmc_env TMC environment

RECURSIVE SUBROUTINEsearch_end_of_clean_g_tree(last_acc, tree_ptr)

searches last element on trajectory, until where the sides of the tree are deleted (of global tree) also found the last accepted element before

Arguments:
POINTER
:: last_acc returns last accepted element in cleaned tree part
POINTER
:: tree_ptr end point of search

RECURSIVE SUBROUTINEsearch_end_of_clean_tree(tree_ptr, last_acc)

searches last element on trajectory, until where the sides of the tree are deleted (in sub tree) also found the last accepted element before. searches the last element which at least have ONE (not calculated) node in the tree branch

Arguments:
TYPE(tree_type),
POINTER
:: tree_ptr ...
TYPE(tree_type),
INTENT(in),
POINTER
:: last_acc ...

SUBROUTINEsearch_next_energy_calc(gt_head, new_gt_elem, stat, react_count)

gt_head head of the global tree

Arguments:
POINTER
:: gt_head ...
POINTER
:: new_gt_elem return value the energy should be calculated for
INTEGER
:: stat routine status return value
INTEGER
:: react_count reactivation counter

RECURSIVE SUBROUTINEsearch_next_gt_element_to_check(ptr, found)

search the next global element in the Markov Chain to check

Arguments:
POINTER
:: ptr start point for search, should be on the known Markov Chain
LOGICAL
:: found flag if routine was successful

RECURSIVE FUNCTIONsearch_parent_element(current)

searching the parent element (last accepted configuration before)

Return Value ::
TYPE(tree_type)
parent tree element (last accepted one)
Arguments:
TYPE(tree_type),
POINTER
:: current actual tree element