33 #include <utility/vector1.hh>
197 if ( atom_type_name ==
"aroC" ||
198 atom_type_name ==
"Ntrp" ||
199 atom_type_name ==
"Nhis" ||
200 atom_type_name ==
"Oaro" ||
201 atom_type_name ==
"Haro" )
return true;
219 using namespace etable::count_pair;
224 CountPairFactory::create_count_pair_function( rsd1, rsd2,
CP_CROSSOVER_4 );
226 for (
Size i=1, i_end = rsd1.
natoms(); i<= i_end; ++i ) {
236 if ( i_charge == 0.0 )
continue;
239 for (
Size j=1, j_end = rsd2.
natoms(); j<= j_end; ++j ) {
244 if ( j_charge == 0.0 )
continue;
247 if ( cpfxn->count( i, j, weight, path_dist ) ) {
248 Real score = weight *
251 total_score += score;
271 ObjexxFCL::FArray2D< core::PackerEnergy > & energy_table
275 set1.
rotamer(1)->is_aromatic() && set2.
rotamer(1)->is_aromatic() ) {
307 using namespace etable::count_pair;
310 Size const pos1( atom_id.
rsd() );
314 if ( ! rsd1.is_aromatic() )
return;
316 Real const i_charge( rsd1.atomic_charge( i ) );
317 int const pos1_map( domain_map( pos1 ) );
318 bool const pos1_fixed( pos1_map != 0 );
320 if ( i_charge == 0.0 )
return;
328 EnergyGraph const & energy_graph( energies.energy_graph() );
336 iru = energy_graph.get_node( pos1 )->const_edge_list_begin(),
338 iru != irue; ++iru ) {
341 Size const pos2( (*iru)->get_other_ind( pos1 ) );
343 if ( pos1_fixed && pos1_map == domain_map( pos2 ) )
continue;
347 assert( pos2 != pos1 );
349 if ( rsd2.is_aromatic() ) {
370 using namespace etable::count_pair;
382 for (
Size j=1, j_end = rsd2.
natoms(); j<= j_end; ++j ) {
387 if ( j_charge == 0.0 )
continue;
391 if ( cpfxn->count( i, j, weight, path_dist ) ) {
393 Vector const f2( i_xyz - j_xyz );
394 Real const dis2( f2.length_squared() );
395 Real const dE_dr_over_r = weight *
398 if ( dE_dr_over_r != 0.0 ) {
399 Vector const f1( i_xyz.cross( j_xyz ) );