|
Rosetta 3.5
|
#include <DoubleDensePDInteractionGraph.hh>


Public Member Functions | |
| DoubleDensePDNode (InteractionGraphBase *owner, int node_id, int num_states) | |
| main constructor, no default or copy constructors More... | |
| virtual | ~DoubleDensePDNode () |
| destructor More... | |
| virtual void | print () const |
| prints a description of the node and all of it's one-body energies More... | |
| void | update_one_body_energy (int state, core::PackerEnergy energy) |
| update energy to the one-body energy for state More... | |
| virtual void | update_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &energies) |
| set all the one-body energies for this node More... | |
| void | add_to_one_body_energy (int state, core::PackerEnergy energy) |
| adds energy to the one-body energy for state state More... | |
| virtual void | add_to_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &energies) |
| adds all the energies in energies to the one-body energies for this node More... | |
| virtual void | zero_one_body_energies () |
| sets all of the one-body energies for this node to zero More... | |
| core::PackerEnergy | get_one_body_energy (int state) |
| returns the one body energy for a state More... | |
| virtual void | prepare_for_simulated_annealing () |
| prepares node for simulated annealing More... | |
| void | assign_zero_state () |
| assigns node's state to it's zero, or "unassigned" state. More... | |
| virtual bool | state_unassigned () const |
| void | assign_state (int new_state) |
| assigns node a new_state More... | |
| int | get_current_state () const |
| returns the state the node is currently assigned More... | |
| core::PackerEnergy | get_one_body_energy_current_state () |
| returns the one body energy for the state the node is currently assigned More... | |
| core::PackerEnergy | project_deltaE_for_substitution (int alternate_state, core::PackerEnergy &prev_node_energy) |
| returns the change in energy that would be induced by switching this node from its current state into another state More... | |
| void | commit_considered_substitution () |
| tells the node that it should change its state to the last state it was asked to consider (from a call to project_deltaE_for_substitution) More... | |
| void | acknowledge_neighbors_state_substitution (int edge_to_altered_neighbor, core::PackerEnergy new_edge_energy, int other_node_new_state) |
| updates bookkeeping arrays for when a neighbor has changed its state More... | |
| void | print_internal_energies () const |
| outputs to standard error the bookkeeping energies for the node in its current state assignment More... | |
| void | update_internal_energy_sums () |
| removes numerical drift long stretches of efficient bookkeeping produces More... | |
| virtual unsigned int | count_static_memory () const |
| If DoubleDensePDNode is the most-derived class being used, then this function will be called and will return the amount of memory statically allocated by a single DoubleDensePDNode. More... | |
| virtual unsigned int | count_dynamic_memory () const |
| Called either by the IGBase if the DoubleDensePDNode is the most-derived class, or called recursively by a derived class. Called to account for the dynamically allocated memory that this node uses. More... | |
Public Member Functions inherited from core::pack::interaction_graph::PrecomputedPairEnergiesNode | |
| virtual | ~PrecomputedPairEnergiesNode () |
| PrecomputedPairEnergiesNode (InteractionGraphBase *owner, int node_id, int num_states) | |
Public Member Functions inherited from core::pack::interaction_graph::FixedBBNode | |
| virtual | ~FixedBBNode () |
| FixedBBNode (InteractionGraphBase *owner, int node_id, int num_states) | |
Public Member Functions inherited from core::pack::interaction_graph::NodeBase | |
| virtual | ~NodeBase () |
| virtual destructor More... | |
| NodeBase (InteractionGraphBase *, int node_id, int num_states) | |
| Main constructor, no default constructor nor copy constructor. More... | |
| int | get_num_states () const |
| returns the number of states for this node More... | |
| std::list< EdgeBase * >::iterator | add_edge (EdgeBase *edge_ptr) |
| adds edge pointer to edge list; returns an iterator to the new list element More... | |
| void | drop_edge (std::list< EdgeBase * >::iterator edge_iterator) |
| removes an edge iterator from the node's edge list More... | |
| void | drop_all_edges () |
| deletes all edges incident upon this node More... | |
| EdgeBase * | find_edge (int other_node_index) const |
| a slow (linear) search for an edge. The edge is identified by the index of the node to which the edge connects this node. Returns NULL when there is no such connecting edge. More... | |
| void | depth_first_connected_component_counting () |
| performs a depth first traversal of the graph. Each node informs the graph that the traversal resulted in arriving at the node. More... | |
| std::list< EdgeBase * > ::const_iterator | edge_list_begin () |
| std::list< EdgeBase * > ::const_iterator | edge_list_end () |
| int | get_node_index () const |
| int | get_num_incident_edges () const |
| int | get_num_edges_to_smaller_indexed_nodes () const |
| int | get_num_edges_to_larger_indexed_nodes () const |
| EdgeBase const * | get_incident_edge (int index) const |
| These functions are public for the sake of writing good unit tests. More... | |
| EdgeBase * | get_incident_edge (int index) |
| int | get_index_of_adjacent_node (int index) const |
| NodeBase const * | get_adjacent_node (int index) const |
| NodeBase * | get_adjacent_node (int index) |
Protected Member Functions | |
| void | update_internal_vectors () |
| updates bookkeeping arrays that correspond to edge-list. More... | |
Private Member Functions | |
| DoubleDensePDEdge * | get_incident_dpd_edge (int index) const |
| DoubleDensePDNode * | get_adjacent_dpd_node (int index) const |
| DoubleDensePDInteractionGraph * | get_dpdig_owner () const |
| DoubleDensePDNode () | |
| DoubleDensePDNode (DoubleDensePDNode const &) | |
| DoubleDensePDNode & | operator= (DoubleDensePDNode const &) |
Private Attributes | |
| std::vector< core::PackerEnergy > | one_body_energies_ |
| std::vector< int > | neighbors_curr_state_ |
| std::vector< int > | neighbors_curr_state_plus_offset_ |
| std::vector< int > | neighbors_num_states_ |
| std::vector< int > | neighbors_rotindex_offset_ |
| ObjexxFCL::FArray2D < core::PackerEnergy > | rotamer_energies_ |
| int | current_state_ |
| core::PackerEnergy | curr_state_one_body_energy_ |
| core::PackerEnergy | curr_state_total_energy_ |
| std::vector< core::PackerEnergy > | curr_state_two_body_energies_ |
| int | alternate_state_ |
| core::PackerEnergy | alternate_state_one_body_energy_ |
| core::PackerEnergy | alternate_state_total_energy_ |
| std::vector< core::PackerEnergy > | alternate_state_two_body_energies_ |
| bool | alternate_state_is_being_considered_ |
Definition at line 46 of file DoubleDensePDInteractionGraph.hh.
| core::pack::interaction_graph::DoubleDensePDNode::DoubleDensePDNode | ( | InteractionGraphBase * | owner, |
| int | node_id, | ||
| int | num_states | ||
| ) |
main constructor, no default or copy constructors
allocates one-body energy array and initializes it to zero.
Definition at line 56 of file DoubleDensePDInteractionGraph.cc.
|
virtual |
destructor
not responsible for any dynamically allocated memory, so node does nothing it's member variables, of course, are implicitly destructed
Definition at line 67 of file DoubleDensePDInteractionGraph.cc.
|
private |
Referenced by count_static_memory().
|
private |
|
inline |
updates bookkeeping arrays for when a neighbor has changed its state
| edge_to_altered_neighbor | - [in] - the index for the edge that connects this node to the node that just changed its state |
| new_edge_energ | - [in] - the pair energy between this node in its current state and the new state of the node that just changed its state |
| other_node_new_state | - [in] - the state the neighbor just adopted |
Definition at line 393 of file DoubleDensePDInteractionGraph.hh.
References curr_state_total_energy_, curr_state_two_body_energies_, neighbors_curr_state_, neighbors_curr_state_plus_offset_, and neighbors_rotindex_offset_.
Referenced by core::pack::interaction_graph::DoubleDensePDEdge::acknowledge_state_zeroed().
|
virtual |
adds all the energies in energies to the one-body energies for this node
| energies | - [in] - the array of energies. Must hold num_states_ entries |
Implements core::pack::interaction_graph::NodeBase.
Definition at line 121 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::NodeBase::get_num_states(), and one_body_energies_.
|
virtual |
adds energy to the one-body energy for state state
| state | - [in] - one-based index of the state |
| energy | - [in] - the energy that should be added. |
Implements core::pack::interaction_graph::NodeBase.
Definition at line 112 of file DoubleDensePDInteractionGraph.cc.
References one_body_energies_.
| void core::pack::interaction_graph::DoubleDensePDNode::assign_state | ( | int | new_state) |
assigns node a new_state
node updates its curr_state one and two body energies
| new_state | - [in] - the new state the node should be assigned |
Definition at line 195 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::DoubleDensePDEdge::acknowledge_state_change(), alternate_state_is_being_considered_, assign_zero_state(), curr_state_one_body_energy_, curr_state_total_energy_, curr_state_two_body_energies_, current_state_, get_incident_dpd_edge(), core::pack::interaction_graph::NodeBase::get_node_index(), core::pack::interaction_graph::NodeBase::get_num_incident_edges(), core::pack::interaction_graph::NodeBase::get_num_states(), and one_body_energies_.
Referenced by core::pack::interaction_graph::DoubleDensePDInteractionGraph::set_network_state(), and core::pack::interaction_graph::DoubleDensePDInteractionGraph::set_state_for_node().
|
virtual |
assigns node's state to it's zero, or "unassigned" state.
zeros the edge-energy array, informs neighbors that it's in its unassigned state
Implements core::pack::interaction_graph::NodeBase.
Definition at line 161 of file DoubleDensePDInteractionGraph.cc.
References alternate_state_, alternate_state_is_being_considered_, curr_state_one_body_energy_, curr_state_total_energy_, curr_state_two_body_energies_, current_state_, get_incident_dpd_edge(), core::pack::interaction_graph::NodeBase::get_node_index(), and core::pack::interaction_graph::NodeBase::get_num_incident_edges().
Referenced by assign_state(), and core::pack::interaction_graph::DoubleDensePDInteractionGraph::blanket_assign_state_0().
| void core::pack::interaction_graph::DoubleDensePDNode::commit_considered_substitution | ( | ) |
tells the node that it should change its state to the last state it was asked to consider (from a call to project_deltaE_for_substitution)
updates edge energy vector, iterates across neighbors having them update their edge energies. Bookkeeping recaptures performance lost by leaving energy2b structure
Definition at line 240 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::DoubleDensePDEdge::acknowledge_substitution(), alternate_state_, alternate_state_is_being_considered_, alternate_state_one_body_energy_, alternate_state_total_energy_, alternate_state_two_body_energies_, curr_state_one_body_energy_, curr_state_total_energy_, curr_state_two_body_energies_, current_state_, get_incident_dpd_edge(), core::pack::interaction_graph::NodeBase::get_node_index(), and core::pack::interaction_graph::NodeBase::get_num_incident_edges().
|
virtual |
Called either by the IGBase if the DoubleDensePDNode is the most-derived class, or called recursively by a derived class. Called to account for the dynamically allocated memory that this node uses.
Reimplemented from core::pack::interaction_graph::NodeBase.
Definition at line 364 of file DoubleDensePDInteractionGraph.cc.
References alternate_state_two_body_energies_, core::pack::interaction_graph::NodeBase::count_dynamic_memory(), curr_state_two_body_energies_, neighbors_curr_state_, neighbors_curr_state_plus_offset_, neighbors_num_states_, neighbors_rotindex_offset_, one_body_energies_, and rotamer_energies_.
|
virtual |
If DoubleDensePDNode is the most-derived class being used, then this function will be called and will return the amount of memory statically allocated by a single DoubleDensePDNode.
Implements core::pack::interaction_graph::NodeBase.
Definition at line 355 of file DoubleDensePDInteractionGraph.cc.
References DoubleDensePDNode().
|
inlineprivate |
Definition at line 138 of file DoubleDensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_adjacent_node().
Referenced by update_internal_vectors().
| int core::pack::interaction_graph::DoubleDensePDNode::get_current_state | ( | ) | const |
returns the state the node is currently assigned
Definition at line 224 of file DoubleDensePDInteractionGraph.cc.
References current_state_.
Referenced by core::pack::interaction_graph::DoubleDensePDInteractionGraph::print_current_state_assignment().
|
inlineprivate |
Definition at line 144 of file DoubleDensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_owner().
|
inlineprivate |
Definition at line 132 of file DoubleDensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_incident_edge().
Referenced by assign_state(), assign_zero_state(), commit_considered_substitution(), update_internal_energy_sums(), and update_internal_vectors().
| core::PackerEnergy core::pack::interaction_graph::DoubleDensePDNode::get_one_body_energy | ( | int | state) |
returns the one body energy for a state
| state | - [in] |
Definition at line 143 of file DoubleDensePDInteractionGraph.cc.
References one_body_energies_.
Referenced by core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_one_body_energy_for_node_state().
| core::PackerEnergy core::pack::interaction_graph::DoubleDensePDNode::get_one_body_energy_current_state | ( | ) |
returns the one body energy for the state the node is currently assigned
Definition at line 230 of file DoubleDensePDInteractionGraph.cc.
References curr_state_one_body_energy_.
Referenced by core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_energy_sum_for_vertex_group().
|
private |
|
virtual |
prepares node for simulated annealing
updates internal edge vector + other vectorized edge information
Implements core::pack::interaction_graph::NodeBase.
Definition at line 151 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::NodeBase::get_edge_vector_up_to_date(), and update_internal_vectors().
|
virtual |
prints a description of the node and all of it's one-body energies
Implements core::pack::interaction_graph::NodeBase.
Definition at line 71 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::NodeBase::get_node_index(), core::pack::interaction_graph::NodeBase::get_num_states(), and one_body_energies_.
| void core::pack::interaction_graph::DoubleDensePDNode::print_internal_energies | ( | ) | const |
outputs to standard error the bookkeeping energies for the node in its current state assignment
Definition at line 322 of file DoubleDensePDInteractionGraph.cc.
References curr_state_one_body_energy_, curr_state_total_energy_, curr_state_two_body_energies_, current_state_, core::pack::interaction_graph::NodeBase::get_index_of_adjacent_node(), and core::pack::interaction_graph::NodeBase::get_num_incident_edges().
Referenced by core::pack::interaction_graph::DoubleDensePDInteractionGraph::print_current_state_assignment().
|
inline |
returns the change in energy that would be induced by switching this node from its current state into another state
iterates across the incident edges for a node in two phases: in the first phase, it examines edges leading to higher-indexed nodes in the second phase, it examines edges leading to smaller-indexed nodes. for cache efficiency, all of the amino-acid-neighbor-offset information that each edge calculates is stored on the nodes themselves. The edges are never touched; rather, their private information is stored on the nodes and handed to static member functions of the DoubleDensePDEdge class. This "store edge information on the nodes" strategy gives me performance equivalent to the previous energy2b lookup tables.
| alternate_state | - [in] - the alternate state to consider |
| previous_energy_for_node | - [out] - the old energy1b/energy2b sum for this node; used by simulate annealing. |
Definition at line 345 of file DoubleDensePDInteractionGraph.hh.
References alternate_state_, alternate_state_is_being_considered_, alternate_state_one_body_energy_, alternate_state_total_energy_, alternate_state_two_body_energies_, curr_state_total_energy_, core::pack::interaction_graph::NodeBase::get_num_incident_edges(), neighbors_curr_state_plus_offset_, one_body_energies_, and rotamer_energies_.
|
inlinevirtual |
Implements core::pack::interaction_graph::NodeBase.
Definition at line 64 of file DoubleDensePDInteractionGraph.hh.
References current_state_.
| void core::pack::interaction_graph::DoubleDensePDNode::update_internal_energy_sums | ( | ) |
removes numerical drift long stretches of efficient bookkeeping produces
Definition at line 338 of file DoubleDensePDInteractionGraph.cc.
References curr_state_one_body_energy_, curr_state_total_energy_, core::pack::interaction_graph::DoubleDensePDEdge::get_current_two_body_energy(), core::pack::interaction_graph::NodeBase::get_edge_vector_up_to_date(), get_incident_dpd_edge(), and core::pack::interaction_graph::NodeBase::get_num_incident_edges().
|
protected |
updates bookkeeping arrays that correspond to edge-list.
calls base class update_edge_vector function, and then proceeds to create appropriate bookkeeping arrays used in simulated annealing
Definition at line 276 of file DoubleDensePDInteractionGraph.cc.
References alternate_state_two_body_energies_, curr_state_two_body_energies_, get_adjacent_dpd_node(), get_incident_dpd_edge(), core::pack::interaction_graph::NodeBase::get_num_edges_to_smaller_indexed_nodes(), core::pack::interaction_graph::NodeBase::get_num_incident_edges(), core::pack::interaction_graph::NodeBase::get_num_states(), core::pack::interaction_graph::DoubleDensePDEdge::get_two_body_energy(), neighbors_curr_state_, neighbors_curr_state_plus_offset_, neighbors_num_states_, neighbors_rotindex_offset_, rotamer_energies_, and core::pack::interaction_graph::NodeBase::update_edge_vector().
Referenced by prepare_for_simulated_annealing().
|
virtual |
set all the one-body energies for this node
| energies | - [in] - the array of energies. Must hold num_states_ entries |
Definition at line 98 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::NodeBase::get_num_states(), and one_body_energies_.
|
virtual |
update energy to the one-body energy for state
| state | - [in] - one-based index of the state |
| energy | - [in] - the energy that should be set. |
Implements core::pack::interaction_graph::NodeBase.
Definition at line 89 of file DoubleDensePDInteractionGraph.cc.
References one_body_energies_.
|
virtual |
sets all of the one-body energies for this node to zero
Implements core::pack::interaction_graph::NodeBase.
Definition at line 132 of file DoubleDensePDInteractionGraph.cc.
References core::pack::interaction_graph::NodeBase::get_num_states(), and one_body_energies_.
|
private |
Definition at line 162 of file DoubleDensePDInteractionGraph.hh.
Referenced by assign_zero_state(), commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 167 of file DoubleDensePDInteractionGraph.hh.
Referenced by assign_state(), assign_zero_state(), commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 163 of file DoubleDensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 164 of file DoubleDensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 165 of file DoubleDensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), count_dynamic_memory(), project_deltaE_for_substitution(), and update_internal_vectors().
|
private |
Definition at line 158 of file DoubleDensePDInteractionGraph.hh.
Referenced by assign_state(), assign_zero_state(), commit_considered_substitution(), get_one_body_energy_current_state(), print_internal_energies(), and update_internal_energy_sums().
|
private |
Definition at line 159 of file DoubleDensePDInteractionGraph.hh.
Referenced by acknowledge_neighbors_state_substitution(), assign_state(), assign_zero_state(), commit_considered_substitution(), print_internal_energies(), project_deltaE_for_substitution(), and update_internal_energy_sums().
|
private |
Definition at line 160 of file DoubleDensePDInteractionGraph.hh.
Referenced by acknowledge_neighbors_state_substitution(), assign_state(), assign_zero_state(), commit_considered_substitution(), count_dynamic_memory(), print_internal_energies(), and update_internal_vectors().
|
private |
Definition at line 157 of file DoubleDensePDInteractionGraph.hh.
Referenced by assign_state(), assign_zero_state(), commit_considered_substitution(), get_current_state(), print_internal_energies(), and state_unassigned().
|
private |
Definition at line 151 of file DoubleDensePDInteractionGraph.hh.
Referenced by acknowledge_neighbors_state_substitution(), count_dynamic_memory(), and update_internal_vectors().
|
private |
Definition at line 152 of file DoubleDensePDInteractionGraph.hh.
Referenced by acknowledge_neighbors_state_substitution(), count_dynamic_memory(), project_deltaE_for_substitution(), and update_internal_vectors().
|
private |
Definition at line 153 of file DoubleDensePDInteractionGraph.hh.
Referenced by count_dynamic_memory(), and update_internal_vectors().
|
private |
Definition at line 154 of file DoubleDensePDInteractionGraph.hh.
Referenced by acknowledge_neighbors_state_substitution(), count_dynamic_memory(), and update_internal_vectors().
|
private |
Definition at line 149 of file DoubleDensePDInteractionGraph.hh.
Referenced by add_to_one_body_energies(), add_to_one_body_energy(), assign_state(), count_dynamic_memory(), get_one_body_energy(), print(), project_deltaE_for_substitution(), update_one_body_energies(), update_one_body_energy(), and zero_one_body_energies().
|
private |
Definition at line 155 of file DoubleDensePDInteractionGraph.hh.
Referenced by count_dynamic_memory(), project_deltaE_for_substitution(), and update_internal_vectors().
1.8.4