Rosetta 3.4
Public Member Functions | Protected Member Functions | Friends
core::pack::interaction_graph::InteractionGraphBase Class Reference

#include <InteractionGraphBase.hh>

Inheritance diagram for core::pack::interaction_graph::InteractionGraphBase:
Inheritance graph
[legend]
Collaboration diagram for core::pack::interaction_graph::InteractionGraphBase:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~InteractionGraphBase ()
 destructor
 InteractionGraphBase (int num_nodes)
 main constructor
virtual int get_num_nodes_v () const
int get_num_nodes () const
virtual void initialize (rotamer_set::RotamerSetsBase const &rot_sets)=0
void set_num_states_for_node (int node, int num_states)
 sets the number of states for a node of a particular index NEW REQUIREMENT: Nodes must have their num-states set in ascending order by node index; that is, node 1 must go first, node 2 next, and so on.
int get_num_states_for_node (int node) const
 returns the number of states for a particular node
int get_num_total_states () const
virtual core::PackerEnergy get_one_body_energy_for_node_state (int node, int state)=0
void add_edge (int node1, int node2)
 creates a new edge between nodes index1 and index2. Nodes do not have to be listed in order
bool get_edge_exists (int node1, int node2)
 returns true if an edge between node1 and node2 exists
void drop_all_edges_for_node (int node)
 deletes all edges adjacent to the node specified
void print_vertices () const
 calls print() on each of the nodes in the graph
virtual void print () const
void output_connectivity (std::ostream &os) const
 writes out a list of all the edges in the graph
void output_dimacs (std::ostream &os) const
 writes out a connectivity description of the graph in the famous dimacs format. (where the first column "DIMACS:" should be sed'ed out)
virtual void prepare_for_simulated_annealing ()
 iterate across edges and nodes and allow them to prepare for simulated annealing
virtual void blanket_assign_state_0 ()=0
virtual core::PackerEnergy set_state_for_node (int node_ind, int new_state)=0
virtual core::PackerEnergy set_network_state (ObjexxFCL::FArray1_int &node_states)=0
virtual void consider_substitution (int node_ind, int new_state, core::PackerEnergy &delta_energy, core::PackerEnergy &prev_energy_for_node)=0
virtual core::PackerEnergy commit_considered_substitution ()=0
virtual core::PackerEnergy get_energy_current_state_assignment ()=0
void set_edge_weight (int node1, int node2, Real edge_weight)
Real get_edge_weight (int node1, int node2) const
virtual int get_edge_memory_usage () const =0
virtual void print_current_state_assignment () const =0
virtual void set_errorfull_deltaE_threshold (core::PackerEnergy deltaE)=0
bool any_vertex_state_unassigned () const
 Returns true if any node in the graph is in state 0, the unassigned state.
void add_to_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &one_body_energies)
void update_one_body_energies (ObjexxFCL::FArray1< core::PackerEnergy > &old_energy1b, ObjexxFCL::FArray1< core::PackerEnergy > &new_energy1b)
void zero_one_body_energies_for_node (int node)
void add_to_nodes_one_body_energy (int node_ind, utility::vector1< core::PackerEnergy > const &one_body_energies)
void add_to_nodes_one_body_energy (int node_ind, ObjexxFCL::FArray1< core::PackerEnergy > const &one_body_energies)
void add_to_nodes_one_body_energy (int node_ind, int state_id, core::PackerEnergy const one_body_energy)
 interface to PrecomputedPairEnergiesNode::add_to_nodes_one_body_energy
void set_number_of_energy_sum_vertex_groups (int num_groups)
 a user may define subsets of the vertex set for which they would like to know the internal energy sum. For instance in a graph with 6 vertices, {a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.)
void set_vertex_member_of_group (int vertex, int group)
 a user may define subsets of the vertex set for which they would like to know the internal energy sum. For instance in a graph with 6 vertices, {a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.)
void print_vertex_groups ()
virtual core::PackerEnergy get_energy_sum_for_vertex_group (int group_id)=0
int count_connected_components_and_initialize_vertex_groups ()
 makes a depth first traversal of the graph, counting the number of connected components, and initializes the vertex group memberships to reflect the connected components. Returns the number of connected components in the graph.
void note_vertex_reached (int node_index)
 marks a vertex as belonging to the connected component currently being traversed in the depth first traversal.
bool vertex_already_reached (int node_index)
 used by class NodeBase during the depth-first traversal to determine the number of connected components in the graph. returns true if the dft has already reached the node.
bool get_vertex_member_of_energy_sum_group (int node_index, int group_id)
virtual unsigned int getTotalMemoryUsage () const
void reset_edge_list_iterator_for_node (int node_index) const
 set the Graph's (single) edge list iterator to the beginning of the edge list for a particular node
void increment_edge_list_iterator () const
 increment the (single) edge list iterator to the next element
bool edge_list_iterator_at_end () const
 test: have we arrived at the edge list end?
EdgeBase const & get_edge () const
 return a const reference to an edge pointed at by the list iterator

Protected Member Functions

virtual unsigned int count_static_memory () const =0
virtual unsigned int count_dynamic_memory () const
void drop_edge (std::list< EdgeBase * >::iterator edge)
 removes edge from edge list at iterator iter
EdgeBase const * find_edge (int node1, int node2) const
 returns the edge connecting node1 and node2
EdgeBasefind_edge (int node1, int node2)
virtual NodeBasecreate_new_node (int node_index, int num_states)=0
virtual EdgeBasecreate_new_edge (int index1, int index2)=0
NodeBaseget_node (int index) const
int get_num_edges () const
std::list< EdgeBase * >::iterator get_edge_list_begin ()
std::list< EdgeBase * >
::const_iterator 
get_edge_list_begin () const
std::list< EdgeBase * >
::const_iterator 
get_edge_list_end () const
int get_node_state_offset (int index) const
bool mine (EdgeBase const *edge) const

Friends

class NodeBase
class EdgeBase

Constructor & Destructor Documentation

core::pack::interaction_graph::InteractionGraphBase::~InteractionGraphBase ( ) [virtual]

destructor

InteractionGraphBase::~InteractionGraphBase

Detailed: deletes each edge in the graph and deletes each node
Parameters:
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:
core::pack::interaction_graph::InteractionGraphBase::InteractionGraphBase ( int  num_ig_nodes)

main constructor

InteractionGraphBase::InteractionGraphBase

Detailed: no default or copy constructors provided.
Parameters:
num_ig_nodes- [in] - number of nodes that this graph will contain
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

Member Function Documentation

void core::pack::interaction_graph::InteractionGraphBase::add_edge ( int  index1,
int  index2 
)

creates a new edge between nodes index1 and index2. Nodes do not have to be listed in order

InteractionGraphBase::add_edge

Detailed: uses factory method create_new_edge and adds
the created edge to the graph's edge list.
Parameters:
index1- [in] - index of one of the two nodes the edge is to connect
index2- [in] - index of the second of the two nodes the edge is to connect
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

Reimplemented in core::pack::interaction_graph::PDInteractionGraph.

References create_new_edge(), and core::pack::interaction_graph::EdgeBase::set_pos_in_owners_list().

Referenced by protocols::flexpack::rotamer_set::FlexbbRotamerSets::compute_one_body_energies_for_otf_ig().

void core::pack::interaction_graph::InteractionGraphBase::add_to_nodes_one_body_energy ( int  node_ind,
ObjexxFCL::FArray1< core::PackerEnergy > const &  one_body_energies 
)
void core::pack::interaction_graph::InteractionGraphBase::add_to_nodes_one_body_energy ( int  node_ind,
int  state_id,
core::PackerEnergy const  one_body_energy 
)

interface to PrecomputedPairEnergiesNode::add_to_nodes_one_body_energy

Parameters:
node_ind- [in] - the index of the node in question
state_id- [in] - the state in question
one_body_energy- [in] - the energy to be added
void core::pack::interaction_graph::InteractionGraphBase::add_to_nodes_one_body_energy ( int  node_ind,
utility::vector1< core::PackerEnergy > const &  one_body_energies 
)
Parameters:
node_ind- [in] - the node in question
one_body_energies- [in] - the energies to be added to the one-body energies on that node. One entry per state.
void core::pack::interaction_graph::InteractionGraphBase::add_to_one_body_energies ( ObjexxFCL::FArray1< core::PackerEnergy > &  one_body_energies)
bool core::pack::interaction_graph::InteractionGraphBase::any_vertex_state_unassigned ( ) const

Returns true if any node in the graph is in state 0, the unassigned state.

InteractionGraphBase::output_dimacs

Detailed:
Useful for debugging. If simulated annealing completes, and any vertex remains in state 0, then the state assignment is not meaningful nor is the energy for that assignment. The cases in which state-0 problems turn up are from passing an annealer a list of states to restrict itself to wherein some vertex has no states listed. Such cases are bugs; this subroutine helps identify them.
Parameters:
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

References get_node(), get_num_nodes(), and core::pack::interaction_graph::NodeBase::state_unassigned().

Referenced by protocols::flexpack::interaction_graph::OTFFlexbbInteractionGraph::debug_note_projected_deltaE_of_considered_substitution().

virtual void core::pack::interaction_graph::InteractionGraphBase::blanket_assign_state_0 ( ) [pure virtual]
virtual core::PackerEnergy core::pack::interaction_graph::InteractionGraphBase::commit_considered_substitution ( ) [pure virtual]
virtual void core::pack::interaction_graph::InteractionGraphBase::consider_substitution ( int  node_ind,
int  new_state,
core::PackerEnergy delta_energy,
core::PackerEnergy prev_energy_for_node 
) [pure virtual]
int core::pack::interaction_graph::InteractionGraphBase::count_connected_components_and_initialize_vertex_groups ( )

makes a depth first traversal of the graph, counting the number of connected components, and initializes the vertex group memberships to reflect the connected components. Returns the number of connected components in the graph.

InteractionGraphBase:: count_connected_components_and_initialize_vertex_groups

Detailed:
Parameters:
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

References vertex_already_reached().

unsigned int core::pack::interaction_graph::InteractionGraphBase::count_dynamic_memory ( ) const [protected, virtual]
virtual unsigned int core::pack::interaction_graph::InteractionGraphBase::count_static_memory ( ) const [protected, pure virtual]
virtual EdgeBase* core::pack::interaction_graph::InteractionGraphBase::create_new_edge ( int  index1,
int  index2 
) [protected, pure virtual]
virtual NodeBase* core::pack::interaction_graph::InteractionGraphBase::create_new_node ( int  node_index,
int  num_states 
) [protected, pure virtual]
void core::pack::interaction_graph::InteractionGraphBase::drop_all_edges_for_node ( int  node)

deletes all edges adjacent to the node specified

InteractionGraphBase::drop_all_edges_for_node

Detailed:
Parameters:
node- [in] - index of the node
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

References core::pack::interaction_graph::NodeBase::drop_all_edges(), and get_node().

void core::pack::interaction_graph::InteractionGraphBase::drop_edge ( std::list< EdgeBase * >::iterator  iter) [protected]

removes edge from edge list at iterator iter

InteractionGraphBase::drop_edge

Detailed:
each edge keeps track of its position in its owner's graph's edge list so it can efficiently delete itself should it need to.
Parameters:
iter- [in] - the iterator pointing at the edge that's deleting itself
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

Referenced by core::pack::interaction_graph::EdgeBase::~EdgeBase().

bool core::pack::interaction_graph::InteractionGraphBase::edge_list_iterator_at_end ( ) const

test: have we arrived at the edge list end?

EdgeBase const * core::pack::interaction_graph::InteractionGraphBase::find_edge ( int  node1,
int  node2 
) const [protected]
EdgeBase * core::pack::interaction_graph::InteractionGraphBase::find_edge ( int  node1,
int  node2 
) [protected]
EdgeBase const & core::pack::interaction_graph::InteractionGraphBase::get_edge ( ) const

return a const reference to an edge pointed at by the list iterator

bool core::pack::interaction_graph::InteractionGraphBase::get_edge_exists ( int  node1,
int  node2 
)

returns true if an edge between node1 and node2 exists

InteractionGraphBase::get_edge_exists

Detailed:
Parameters:
node1- [in] - index of the one of the nodes node2 - [in] - index of the other node
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

References find_edge().

Referenced by protocols::flexpack::rotamer_set::FlexbbRotamerSets::compute_one_body_energies_for_otf_ig().

std::list< EdgeBase* >::iterator core::pack::interaction_graph::InteractionGraphBase::get_edge_list_begin ( ) [inline, protected]

Referenced by protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::PDInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::LinearMemoryInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::LazyInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::FASTERInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::DoubleLazyInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::DensePDInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::FASTERInteractionGraph::get_energy_following_relaxation(), protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::PDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::LinearMemoryInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::LazyInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::FASTERInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DoubleLazyInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DensePDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::FASTERInteractionGraph::prepare_for_FASTER(), prepare_for_simulated_annealing(), core::pack::interaction_graph::DoubleLazyInteractionGraph::prepare_for_simulated_annealing(), core::pack::interaction_graph::LinearMemoryInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::LazyInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::DoubleLazyInteractionGraph::print_current_state_assignment(), protocols::flexpack::interaction_graph::FlexbbInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::PDInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::LinearMemoryInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::LazyInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::FASTERInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DoubleLazyInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DensePDInteractionGraph::update_internal_energy_totals(), and core::pack::interaction_graph::DoubleLazyInteractionGraph::~DoubleLazyInteractionGraph().

std::list< EdgeBase* >::const_iterator core::pack::interaction_graph::InteractionGraphBase::get_edge_list_begin ( ) const [inline, protected]
std::list< EdgeBase* >::const_iterator core::pack::interaction_graph::InteractionGraphBase::get_edge_list_end ( ) const [inline, protected]

Referenced by protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::PDInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::LinearMemoryInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::LazyInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::FASTERInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::DoubleLazyInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::DensePDInteractionGraph::get_edge_memory_usage(), core::pack::interaction_graph::FASTERInteractionGraph::get_energy_following_relaxation(), protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::PDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::LinearMemoryInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::LazyInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::FASTERInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DoubleLazyInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DensePDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::FASTERInteractionGraph::prepare_for_FASTER(), prepare_for_simulated_annealing(), core::pack::interaction_graph::DoubleLazyInteractionGraph::prepare_for_simulated_annealing(), core::pack::interaction_graph::LinearMemoryInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::LazyInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::DoubleLazyInteractionGraph::print_current_state_assignment(), protocols::flexpack::interaction_graph::FlexbbInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::PDInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::LinearMemoryInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::LazyInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::FASTERInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DoubleLazyInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DensePDInteractionGraph::update_internal_energy_totals(), and core::pack::interaction_graph::DoubleLazyInteractionGraph::~DoubleLazyInteractionGraph().

virtual int core::pack::interaction_graph::InteractionGraphBase::get_edge_memory_usage ( ) const [pure virtual]
Real core::pack::interaction_graph::InteractionGraphBase::get_edge_weight ( int  node1,
int  node2 
) const

returns 0 if edge is not part of the graph

References core::pack::interaction_graph::EdgeBase::edge_weight(), and find_edge().

virtual core::PackerEnergy core::pack::interaction_graph::InteractionGraphBase::get_energy_current_state_assignment ( ) [pure virtual]
virtual core::PackerEnergy core::pack::interaction_graph::InteractionGraphBase::get_energy_sum_for_vertex_group ( int  group_id) [pure virtual]
NodeBase* core::pack::interaction_graph::InteractionGraphBase::get_node ( int  index) const [inline, protected]
int core::pack::interaction_graph::InteractionGraphBase::get_node_state_offset ( int  index) const [inline, protected]
int core::pack::interaction_graph::InteractionGraphBase::get_num_edges ( ) const [inline, protected]
int core::pack::interaction_graph::InteractionGraphBase::get_num_nodes ( ) const [inline]

Referenced by any_vertex_state_unassigned(), core::pack::interaction_graph::FASTERInteractionGraph::assign_BMEC(), protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::PDInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::LinearMemoryInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::LazyInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::FASTERInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::DoubleLazyInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::DensePDInteractionGraph::blanket_assign_state_0(), core::pack::interaction_graph::FASTERInteractionGraph::commit_relaxation(), protocols::flexpack::interaction_graph::FlexbbInteractionGraph::get_accessible_states(), core::pack::interaction_graph::FASTERInteractionGraph::get_current_network_state(), core::pack::interaction_graph::FASTERInteractionGraph::get_energy_following_relaxation(), protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::PDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::LinearMemoryInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::LazyInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::FASTERInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DoubleLazyInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::get_energy_sum_for_vertex_group(), core::pack::interaction_graph::DensePDInteractionGraph::get_energy_sum_for_vertex_group(), get_num_nodes_v(), core::pack::interaction_graph::PDInteractionGraph::get_weighted_energy(), protocols::flexpack::interaction_graph::OTFFlexbbInteractionGraph::initialize(), protocols::flexpack::interaction_graph::FlexbbInteractionGraph::initialize(), core::pack::interaction_graph::FASTERInteractionGraph::prepare_for_FASTER(), prepare_for_simulated_annealing(), protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::PDInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::LinearMemoryInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::LazyInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::FASTERInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::DoubleLazyInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::print_current_state_assignment(), core::pack::interaction_graph::DensePDInteractionGraph::print_current_state_assignment(), print_vertex_groups(), core::pack::interaction_graph::FASTERInteractionGraph::probabilistically_commit_relaxation(), core::pack::interaction_graph::FASTERInteractionGraph::relax_in_current_context(), core::pack::interaction_graph::LinearMemoryInteractionGraph::set_network_state(), core::pack::interaction_graph::LazyInteractionGraph::set_network_state(), core::pack::interaction_graph::DoubleLazyInteractionGraph::set_network_state(), protocols::flexpack::interaction_graph::MinimalistFlexbbInteractionGraph::set_network_state(), protocols::flexpack::interaction_graph::OTFFlexbbInteractionGraph::set_pose(), protocols::flexpack::interaction_graph::FlexbbInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::PDInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::LinearMemoryInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::LazyInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::FASTERInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DoubleLazyInteractionGraph::update_internal_energy_totals(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::update_internal_energy_totals(), and core::pack::interaction_graph::DensePDInteractionGraph::update_internal_energy_totals().

virtual int core::pack::interaction_graph::InteractionGraphBase::get_num_nodes_v ( ) const [inline, virtual]

References get_num_nodes().

int core::pack::interaction_graph::InteractionGraphBase::get_num_states_for_node ( int  node_index) const

returns the number of states for a particular node

InteractionGraphBase::get_num_states_for_node

Detailed:
Parameters:
node_index- [in] - the index of the node in question
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:
int core::pack::interaction_graph::InteractionGraphBase::get_num_total_states ( ) const [inline]
virtual core::PackerEnergy core::pack::interaction_graph::InteractionGraphBase::get_one_body_energy_for_node_state ( int  node,
int  state 
) [pure virtual]
bool core::pack::interaction_graph::InteractionGraphBase::get_vertex_member_of_energy_sum_group ( int  node_index,
int  group_id 
) [inline]
unsigned int core::pack::interaction_graph::InteractionGraphBase::getTotalMemoryUsage ( ) const [virtual]
void core::pack::interaction_graph::InteractionGraphBase::increment_edge_list_iterator ( ) const

increment the (single) edge list iterator to the next element

virtual void core::pack::interaction_graph::InteractionGraphBase::initialize ( rotamer_set::RotamerSetsBase const &  rot_sets) [pure virtual]
bool core::pack::interaction_graph::InteractionGraphBase::mine ( EdgeBase const *  edge) const [inline, protected]
void core::pack::interaction_graph::InteractionGraphBase::note_vertex_reached ( int  node_index)

marks a vertex as belonging to the connected component currently being traversed in the depth first traversal.

InteractionGraphBase::note_vertex_reached

Detailed:
Parameters:
node_index- [in] - the index of the node invoking this method.
Global Read:
Global Write:
Remarks:
This method should be used by the NodeBase class only.
References:
Authors:
apl
Last Modified:

Referenced by core::pack::interaction_graph::NodeBase::depth_first_connected_component_counting().

void core::pack::interaction_graph::InteractionGraphBase::output_connectivity ( std::ostream &  os) const

writes out a list of all the edges in the graph

InteractionGraphBase::output_connectivity

Detailed:
Parameters:
os- [in] - the output stream to write to
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:
void core::pack::interaction_graph::InteractionGraphBase::output_dimacs ( std::ostream &  os) const

writes out a connectivity description of the graph in the famous dimacs format. (where the first column "DIMACS:" should be sed'ed out)

InteractionGraphBase::output_dimacs

Detailed:
Parameters:
os- [in] - the output stream to write to
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:
void core::pack::interaction_graph::InteractionGraphBase::prepare_for_simulated_annealing ( ) [virtual]

iterate across edges and nodes and allow them to prepare for simulated annealing

Edges may decide to delete themselves during this subroutine; therefore edges are prepared first. Afterwards, the nodes must update their edge vector representation.

Reimplemented in core::pack::interaction_graph::DoubleLazyInteractionGraph, and core::pack::interaction_graph::LinearMemoryInteractionGraph.

References get_edge_list_begin(), get_edge_list_end(), get_node(), get_num_nodes(), and core::pack::interaction_graph::NodeBase::prepare_for_simulated_annealing().

virtual void core::pack::interaction_graph::InteractionGraphBase::print ( ) const [inline, virtual]

Referenced by print_vertices().

virtual void core::pack::interaction_graph::InteractionGraphBase::print_current_state_assignment ( ) const [pure virtual]
void core::pack::interaction_graph::InteractionGraphBase::print_vertex_groups ( )

References get_num_nodes().

void core::pack::interaction_graph::InteractionGraphBase::print_vertices ( ) const

calls print() on each of the nodes in the graph

InteractionGraphBase::print_vertices

Detailed:
Parameters:
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

References print().

void core::pack::interaction_graph::InteractionGraphBase::reset_edge_list_iterator_for_node ( int  node_index) const

set the Graph's (single) edge list iterator to the beginning of the edge list for a particular node

Methods for iterating across edges of the interaction graph. Protected access since the raw edge lists contain non-const pointers.

void core::pack::interaction_graph::InteractionGraphBase::set_edge_weight ( int  node1,
int  node2,
Real  edge_weight 
)

invokes polymorphic method of EdgeBase class; no-op if edge is not part of the graph.

References find_edge(), and core::pack::interaction_graph::EdgeBase::set_edge_weight().

virtual void core::pack::interaction_graph::InteractionGraphBase::set_errorfull_deltaE_threshold ( core::PackerEnergy  deltaE) [pure virtual]
virtual core::PackerEnergy core::pack::interaction_graph::InteractionGraphBase::set_network_state ( ObjexxFCL::FArray1_int &  node_states) [pure virtual]
void core::pack::interaction_graph::InteractionGraphBase::set_num_states_for_node ( int  node_index,
int  num_states 
)

sets the number of states for a node of a particular index NEW REQUIREMENT: Nodes must have their num-states set in ascending order by node index; that is, node 1 must go first, node 2 next, and so on.

InteractionGraphBase::set_num_states_for_node

Detailed: once the graph knows how many states a node has, it instantiates
a new node using the NodeBase(int) constructor through the graph's factory method create_new_node()
Parameters:
node_index- [in] - the index of the node
num_states- [in] - the number of states for that node
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:

Referenced by protocols::flexpack::interaction_graph::FlexbbInteractionGraph::initialize(), core::pack::interaction_graph::PDInteractionGraph::initialize(), core::pack::interaction_graph::OnTheFlyInteractionGraph::initialize(), core::pack::interaction_graph::FASTERInteractionGraph::initialize(), core::pack::interaction_graph::DoubleDensePDInteractionGraph::initialize(), and core::pack::interaction_graph::DensePDInteractionGraph::initialize().

void core::pack::interaction_graph::InteractionGraphBase::set_number_of_energy_sum_vertex_groups ( int  num_groups)

a user may define subsets of the vertex set for which they would like to know the internal energy sum. For instance in a graph with 6 vertices, {a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.)

InteractionGraphBase::set_number_of_energy_sum_vertex_groups

First you must declare how many groups you are interested in. Do that with this method. Second you must declare which node is a member of each group. Only tell the graph which node is a member, do not tell the graph if a node is not a member. Third, when you want to know the energy sum for the group in the graph's current state assignment, call get_energy_sum_for_vertex_group( group_id)

Detailed:
Parameters:
num_groups- [in] - the number of groups; set this at most once.
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:
virtual core::PackerEnergy core::pack::interaction_graph::InteractionGraphBase::set_state_for_node ( int  node_ind,
int  new_state 
) [pure virtual]
void core::pack::interaction_graph::InteractionGraphBase::set_vertex_member_of_group ( int  vertex,
int  group 
)

a user may define subsets of the vertex set for which they would like to know the internal energy sum. For instance in a graph with 6 vertices, {a,b,c,d,e,f} a user may be interested in the sum of the one- and two-body energies for vertices {a,b,c}. The graph will return sum of the one body energies for vertices a b and c and also any two-body energies for the edges in the subgraph induced by a,b, and c. (In this case, edges {a,b}, {a,c} and {b,c} if these edges are part of the graph. The edge {a,d} will not be counted if it is part of the graph.)

InteractionGraphBase::set_vertex_member_of_group

Detailed:
tell the graph which vertices you want to be part of which groups
Parameters:
vertex- [in] - the index of the vertex you wish to include in the group group - [in] - the group index you wish to add the vertex to.
Global Read:
Global Write:
Remarks:
References:
Authors:
apl
Last Modified:
void core::pack::interaction_graph::InteractionGraphBase::update_one_body_energies ( ObjexxFCL::FArray1< core::PackerEnergy > &  old_energy1b,
ObjexxFCL::FArray1< core::PackerEnergy > &  new_energy1b 
)
bool core::pack::interaction_graph::InteractionGraphBase::vertex_already_reached ( int  node_index)

used by class NodeBase during the depth-first traversal to determine the number of connected components in the graph. returns true if the dft has already reached the node.

InteractionGraphBase:: vertex_already_reached

Detailed:
Parameters:
node_index- [in] - the index of the node calling the method.
Global Read:
Global Write:
Remarks:
This method should be used by the NodeBase class only.
References:
Authors:
apl
Last Modified:

Referenced by count_connected_components_and_initialize_vertex_groups(), and core::pack::interaction_graph::NodeBase::depth_first_connected_component_counting().

void core::pack::interaction_graph::InteractionGraphBase::zero_one_body_energies_for_node ( int  node)

Friends And Related Function Documentation

friend class EdgeBase [friend]
friend class NodeBase [friend]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines