33 #include <ObjexxFCL/FArray3D.hh>
81 coarse_etable_( coarse_etable_in )
83 if ( coarse_etable_in ) {
84 coarse_etable_in->check_atomset_compatibility( etable_in.
atom_set() );
86 utility_exit_with_message(
"coarse etable not present ");
109 utility_exit_with_message(
"Illegal attempt to score with non-identical atom set between pose and etable " );
181 conformation::Atom const & atom1,
182 conformation::Atom const & atom2,
183 EnergyMap const & weights,
190 defines_intrares_energy( EnergyMap const & weights ) const
197 eval_intrares_energy(
198 conformation::Residue const &,
200 ScoreFunction const &,
205 coarse::CoarseEtableCAP coarse_etable_;
213 CoarseEtableEnergy::atom_pair_energy_(
214 conformation::Atom const & atom1,
215 conformation::Atom const & atom2,
223 // std::cerr << __FILE__<< ' ' << __LINE__ << std::endl;
224 if ( coarse_etable_->handles( atom1, atom2 ) ) {
227 if (interpolate_bins( atom1, atom2, d2, disbin, frac )) {
228 coarse_etable_->atom_pair_energy( disbin, frac, atom1, atom2, bb);
229 atr = rep = solv = 0.0;
232 parent::atom_pair_energy_( atom1, atom2, weight, atr, rep, solv, bb, d2);
241 CoarseEtableEnergy::eval_dE_dR_over_r_(
242 conformation::Atom const & atom1,
243 conformation::Atom const & atom2,
244 EnergyMap const & weights,
249 if ( coarse_etable_->handles(atom1,atom2) ) {
250 f1 = atom1.xyz().cross( atom2.xyz() );
251 f2 = atom1.xyz() - atom2.xyz();
254 if (interpolate_bins(atom1,atom2,d2,disbin,frac)) {
255 return coarse_etable_->eval_dE_dR(disbin,frac,atom1,atom2,weights);
260 return parent::eval_dE_dR_over_r_(atom1,atom2,weights,f1,f2);
269 CoarseEtableEnergy::pair_energy_H_(
270 conformation::Atom const & atom1,
271 conformation::Atom const & atom2,
280 if ( coarse_etable_->handles( atom1, atom2) ) {
281 Real d2,frac; int disbin;
282 if ( interpolate_bins( atom1, atom2, d2, disbin, frac) ) {
283 coarse_etable_->atom_pair_energy( disbin, frac, atom1, atom2, bb);
284 atr = rep = solv = 0.0;
287 parent::pair_energy_H_( atom1, atom2, weight, atr, rep, solv, bb );