|
Rosetta 3.5
|
#include <DensePDInteractionGraph.hh>


Public Member Functions | |
| DensePDNode (InteractionGraphBase *owner, int node_id, int num_states) | |
| main constructor, no default or copy constructors More... | |
| virtual | ~DensePDNode () |
| 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 DensePDNode 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 DensePDNode. More... | |
| virtual unsigned int | count_dynamic_memory () const |
| Called either by the IGBase if the DensePDNode 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 | |
| DensePDEdge * | get_incident_dpd_edge (int index) |
| DensePDEdge const * | get_incident_dpd_edge (int index) const |
| DensePDNode * | get_adjacent_dpd_node (int index) |
| DensePDNode const * | get_adjacent_dpd_node (int index) const |
| DensePDInteractionGraph * | get_dpdig_owner () |
| DensePDInteractionGraph const * | get_dpdig_owner () const |
| DensePDNode () | |
| DensePDNode (DensePDNode const &) | |
| DensePDNode & | operator= (DensePDNode const &) |
Private Attributes | |
| std::vector< core::PackerEnergy > | one_body_energies_ |
| std::vector< int > | neighbors_curr_state_ |
| std::vector < ObjexxFCL::FArray2A < core::PackerEnergy > > | edge_matrix_ptrs_ |
| 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 51 of file DensePDInteractionGraph.hh.
| core::pack::interaction_graph::DensePDNode::DensePDNode | ( | 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 DensePDInteractionGraph.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 72 of file DensePDInteractionGraph.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 433 of file DensePDInteractionGraph.hh.
References curr_state_total_energy_, curr_state_two_body_energies_, and neighbors_curr_state_.
Referenced by core::pack::interaction_graph::DensePDEdge::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 127 of file DensePDInteractionGraph.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 118 of file DensePDInteractionGraph.cc.
References one_body_energies_.
| void core::pack::interaction_graph::DensePDNode::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 201 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDEdge::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::DensePDInteractionGraph::set_network_state(), and core::pack::interaction_graph::DensePDInteractionGraph::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 167 of file DensePDInteractionGraph.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::DensePDInteractionGraph::blanket_assign_state_0().
| void core::pack::interaction_graph::DensePDNode::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 246 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::DensePDEdge::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 DensePDNode 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 346 of file DensePDInteractionGraph.cc.
References alternate_state_two_body_energies_, core::pack::interaction_graph::NodeBase::count_dynamic_memory(), curr_state_two_body_energies_, edge_matrix_ptrs_, neighbors_curr_state_, and one_body_energies_.
|
virtual |
If DensePDNode 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 DensePDNode.
Implements core::pack::interaction_graph::NodeBase.
Definition at line 337 of file DensePDInteractionGraph.cc.
References DensePDNode().
|
inlineprivate |
Definition at line 384 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_adjacent_node().
|
inlineprivate |
Definition at line 390 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_adjacent_node().
| int core::pack::interaction_graph::DensePDNode::get_current_state | ( | ) | const |
returns the state the node is currently assigned
Definition at line 230 of file DensePDInteractionGraph.cc.
References current_state_.
Referenced by core::pack::interaction_graph::DensePDInteractionGraph::print_current_state_assignment().
|
inlineprivate |
Definition at line 396 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_owner().
|
inlineprivate |
Definition at line 402 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_owner().
|
inlineprivate |
Definition at line 373 of file DensePDInteractionGraph.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().
|
inlineprivate |
Definition at line 378 of file DensePDInteractionGraph.hh.
References core::pack::interaction_graph::NodeBase::get_incident_edge().
| core::PackerEnergy core::pack::interaction_graph::DensePDNode::get_one_body_energy | ( | int | state) |
returns the one body energy for a state
| state | - [in] |
Definition at line 149 of file DensePDInteractionGraph.cc.
References one_body_energies_.
Referenced by core::pack::interaction_graph::DensePDInteractionGraph::get_one_body_energy_for_node_state().
| core::PackerEnergy core::pack::interaction_graph::DensePDNode::get_one_body_energy_current_state | ( | ) |
returns the one body energy for the state the node is currently assigned
Definition at line 236 of file DensePDInteractionGraph.cc.
References curr_state_one_body_energy_.
Referenced by core::pack::interaction_graph::DensePDInteractionGraph::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 157 of file DensePDInteractionGraph.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 76 of file DensePDInteractionGraph.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::DensePDNode::print_internal_energies | ( | ) | const |
outputs to standard error the bookkeeping energies for the node in its current state assignment
Definition at line 304 of file DensePDInteractionGraph.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::DensePDInteractionGraph::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 DensePDEdge 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 518 of file DensePDInteractionGraph.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_, edge_matrix_ptrs_, core::pack::interaction_graph::DensePDEdge::get_alternate_state_energy(), core::pack::interaction_graph::NodeBase::get_num_edges_to_smaller_indexed_nodes(), core::pack::interaction_graph::NodeBase::get_num_incident_edges(), neighbors_curr_state_, and one_body_energies_.
|
inlinevirtual |
Implements core::pack::interaction_graph::NodeBase.
Definition at line 69 of file DensePDInteractionGraph.hh.
References current_state_.
| void core::pack::interaction_graph::DensePDNode::update_internal_energy_sums | ( | ) |
removes numerical drift long stretches of efficient bookkeeping produces
Definition at line 320 of file DensePDInteractionGraph.cc.
References curr_state_one_body_energy_, curr_state_total_energy_, core::pack::interaction_graph::DensePDEdge::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 282 of file DensePDInteractionGraph.cc.
References alternate_state_two_body_energies_, curr_state_two_body_energies_, edge_matrix_ptrs_, get_incident_dpd_edge(), core::pack::interaction_graph::NodeBase::get_num_incident_edges(), neighbors_curr_state_, 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 104 of file DensePDInteractionGraph.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 95 of file DensePDInteractionGraph.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 138 of file DensePDInteractionGraph.cc.
References core::pack::interaction_graph::NodeBase::get_num_states(), and one_body_energies_.
|
private |
Definition at line 155 of file DensePDInteractionGraph.hh.
Referenced by assign_zero_state(), commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 170 of file DensePDInteractionGraph.hh.
Referenced by assign_state(), assign_zero_state(), commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 156 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 157 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), and project_deltaE_for_substitution().
|
private |
Definition at line 158 of file DensePDInteractionGraph.hh.
Referenced by commit_considered_substitution(), count_dynamic_memory(), project_deltaE_for_substitution(), and update_internal_vectors().
|
private |
Definition at line 151 of file DensePDInteractionGraph.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 152 of file DensePDInteractionGraph.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 153 of file DensePDInteractionGraph.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 150 of file DensePDInteractionGraph.hh.
Referenced by assign_state(), assign_zero_state(), commit_considered_substitution(), get_current_state(), print_internal_energies(), and state_unassigned().
|
private |
Definition at line 148 of file DensePDInteractionGraph.hh.
Referenced by count_dynamic_memory(), project_deltaE_for_substitution(), and update_internal_vectors().
|
private |
Definition at line 147 of file DensePDInteractionGraph.hh.
Referenced by acknowledge_neighbors_state_substitution(), count_dynamic_memory(), project_deltaE_for_substitution(), and update_internal_vectors().
|
private |
Definition at line 145 of file DensePDInteractionGraph.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().
1.8.4