33 #include <basic/Tracer.hh>
36 #include <utility/vector1.hh>
42 namespace interaction_graph {
44 using namespace graph;
45 using namespace scoring;
47 static basic::Tracer
TR(
"core.pack.interaction_graph.SimpleInteractionGraph");
50 Node( owner, node_id ),
53 current_one_body_energy_(0),
54 alternate_one_body_energy_(0)
107 SimpleEdge* current_edge(static_cast< SimpleEdge *>(*edge_itr));
155 SimpleEdge* current_edge(static_cast< SimpleEdge *>(*edge_itr));
167 TR.Debug <<
"setting res " <<
alternate_residue_->type().name() <<
" to new-res: " << res->type().name() << std::endl;
181 SimpleEdge* current_edge(static_cast< SimpleEdge *>(*edge_itr));
203 SimpleEdge* current_edge(static_cast< SimpleEdge *>(*edge_itr));
261 runtime_assert( ig );
273 assert( dynamic_cast< SimpleInteractionGraph const * >(
Node::get_owner()) );
328 Edge( owner, res1, res2 ),
329 long_range_energies_exist_( false ),
334 for (
Size ii = 0; ii < 3; ++ii ) {
335 for (
Size jj = 0; jj < 3; ++jj ) {
367 bool use_current_node1 =
true;
368 bool use_current_node2 =
true;
369 if ( node1->
moved() ) {
370 use_current_node1 =
false;
372 if ( node2->
moved() ) {
373 use_current_node2 =
false;
390 assert( node1 && node2 );
396 Vector r1sc_centroid, r2sc_centroid;
397 Real r1sc_rad, r2sc_rad;
401 if ( !use_current_node1 ) {
413 if ( !use_current_node2 ) {
432 assert( dynamic_cast< SimpleInteractionGraph const * >(this->
get_owner()) );
450 if ( use_current_node1 && use_current_node2 ) {
482 using namespace chemical;
493 return ind1 <= 2 && ind2 <= 2;
522 return bb_bbE_[ ind1 ][ ind2 ];
529 accumulated_ediff_(0)
542 TR.Debug <<
"calling initialize on pose " << std::endl;
545 runtime_assert(
pose_ );
550 for (
Size res_i = 1; res_i <=
pose_->total_residue(); res_i++ ) {
552 runtime_assert( newnode );
557 for (
Size ii = 1; ii <=
pose_->total_residue(); ii++) {
558 for (
Size jj = 1; jj < ii; jj++) {
560 if (
sfxn_->are_they_neighbors( *
pose_, jj, ii ) ) {
586 for (
Size res_i = 1; res_i <=
pose_->total_residue(); res_i++ ) {
588 runtime_assert( newnode );
610 Real current_energy = 0.0;
617 SimpleEdge* current_edge(static_cast< SimpleEdge *>(*edge_itr));
624 Real alternate_energy = 0.0;
628 SimpleEdge* current_edge(static_cast< SimpleEdge *> (*edge_itr));
632 return (current_energy - alternate_energy);
640 for(
Size node_itr = 1; node_itr <=
pose_->total_residue(); node_itr++){
645 residue_energy += (
static_cast< SimpleEdge *
>( *edge_iter ))->get_current_energy();
648 total_energy += residue_energy;
659 return new SimpleEdge(
this, index1, index2 );