Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::scoring::etable::Etable Class Reference

jk Class definition for Etable More...

#include <Etable.hh>

Inheritance diagram for core::scoring::etable::Etable:
Inheritance graph
[legend]
Collaboration diagram for core::scoring::etable::Etable:
Collaboration graph
[legend]

Public Member Functions

virtual ~Etable ()
 Automatically generated virtual destructor for class deriving directly from ReferenceCount. More...
 
 Etable (chemical::AtomTypeSetCAP atom_set_in, EtableOptions const &options, std::string const alternate_parameter_set="")
 constructor More...
 
Size n_atomtypes () const
 
ObjexxFCL::FArray3D< Real > const & ljatr () const
 const access to the arrays More...
 
ObjexxFCL::FArray3D< Real > const & ljrep () const
 
ObjexxFCL::FArray3D< Real > const & solv1 () const
 
ObjexxFCL::FArray3D< Real > const & solv2 () const
 
ObjexxFCL::FArray3D< Real > const & dljatr () const
 const access to the deriv arrays More...
 
ObjexxFCL::FArray3D< Real > const & dljrep () const
 
ObjexxFCL::FArray3D< Real > const & dsolv1 () const
 return the solvation derivative table for the desolvation of atom1 by atom2 More...
 
ObjexxFCL::FArray3D< Real > const & dsolv () const
 return the solvation derivative table that combines atom1 and atom2's desolvations More...
 
Real max_dis () const
 
Real get_safe_max_dis2 () const
 
int get_bins_per_A2 () const
 
chemical::AtomTypeSetCAP atom_set () const
 
Real hydrogen_interaction_cutoff2 () const
 
Real max_heavy_heavy_cutoff () const
 
Real max_heavy_hydrogen_cutoff () const
 
Real max_hydrogen_hydrogen_cutoff () const
 
Real nblist_dis2_cutoff_XX () const
 
Real nblist_dis2_cutoff_XH () const
 
Real nblist_dis2_cutoff_HH () const
 
Real max_non_hydrogen_lj_radius () const
 Returns the maximum lj radius for any non-hydrogen atom as defined by the atom-type-set used to create this Etable. More...
 
Real max_hydrogen_lj_radius () const
 Returns the maximum lj radius for any hydrogen atom as defined by the input atom-type-set used to create this Etable. More...
 
Real lj_radius (int const i) const
 set these up in the ctor More...
 
Real lj_wdepth (int const i) const
 
Real lk_dgfree (int const i) const
 
Real lk_volume (int const i) const
 
Real lk_lambda (int const i) const
 
void interpolated_analytic_etable_evaluation (conformation::Atom const &at1, conformation::Atom const &at2, Real &lj_atrE, Real &lj_repE, Real &fa_solE, Real &d2) const
 use the analytic_etable_evaluation function, but evaluate the function at the old grid points and then interpolate. Useful for comparing the original etable evaluation with the analytic evaluation. More...
 
void analytic_etable_evaluation (conformation::Atom const &at1, conformation::Atom const &at2, Real &lj_atrE, Real &lj_repE, Real &fa_solE, Real &d2) const
 Use an analytic functional form of the etable to evaluate an atom-pair energy without reading from the enormous and uncachable tables. More...
 
void analytic_etable_derivatives (conformation::Atom const &at1, conformation::Atom const &at2, Real &dljatrE_ddis, Real &dljrepE_ddis, Real &dfasolE_ddis, Real &inv_d) const
 

Static Public Member Functions

static Real eval_spline (Real const x, Real const xlo, Real const xhi, SplineParameters const &sp)
 
static Real spline_deriv (Real const x, Real const xlo, Real const xhi, SplineParameters const &sp)
 
static Real eval_spline (Real const x, Real const xlo, Real const xhi, Real const width, Real const invwidth, SplineParameters const &sp)
 
static Real spline_deriv (Real const x, Real const xlo, Real const xhi, Real const width, Real const invwidth, SplineParameters const &sp)
 

Private Member Functions

void dimension_etable_arrays ()
 Use an analytic functional form of the etable to evaluate an atom-pair energy without reading from the enormous and uncachable tables. This version is reserved for interactions with hydrogens (hydorgen/hydrogen and hydrogen heavyatom) More...
 
void initialize_from_input_atomset (chemical::AtomTypeSetCAP atom_set_in)
 
void calculate_nblist_distance_thresholds (EtableOptions const &options)
 
void read_alternate_parameter_set (chemical::AtomTypeSetCAP atom_set_in, std::string const alternate_parameter_set)
 
void calculate_hydrogen_atom_reach ()
 
void initialize_carbontypes_to_linearize_fasol ()
 
Real analytic_ljrep_linearized (Real const dis, EtableParamsOnePair const &p) const
 
Real analytic_lj_generic_form (Real const dis2, Real const inv_dis2, EtableParamsOnePair const &p) const
 
Real analytic_ljatr_spline_ramp_to_zero (Real const dis, EtableParamsOnePair const &p) const
 
Real analytic_ljatr_spline_ramp_to_zero_deriv (Real const dis, EtableParamsOnePair const &p) const
 
void output_etable (ObjexxFCL::FArray3D< Real > &etable, std::string label, std::ostream &out)
 output an etable data file in the same format used in input_etable More...
 
void input_etable (ObjexxFCL::FArray3D< Real > &etable, const std::string label, std::istream &in)
 read in etable from a datafile More...
 
EtableParamsOnePair const & analytic_params_for_pair (Size atype1, Size atype2) const
 
EtableParamsOnePairanalytic_params_for_pair (Size atype1, Size atype2)
 
chemical::AtomType const & atom_type (int const type)
 
void make_pairenergy_table ()
 calculate fast lookup arrays for vdw and solvation energy More...
 
int calculate_normal_disbins () const
 
void damp_long_range (int const normal_disbins, ObjexxFCL::FArray1A< Real > ljatr, ObjexxFCL::FArray1A< Real > dljatr, ObjexxFCL::FArray1A< Real > ljrep, ObjexxFCL::FArray1A< Real > dljrep, ObjexxFCL::FArray1A< Real > fasol1, ObjexxFCL::FArray1A< Real > fasol2, ObjexxFCL::FArray1A< Real > dfasol, ObjexxFCL::FArray1A< Real > dfasol1)
 
void modify_pot_one_pair (Size atype1, Size atype2, ObjexxFCL::FArray1A< Real > ljatr, ObjexxFCL::FArray1A< Real > dljatr, ObjexxFCL::FArray1A< Real > ljrep, ObjexxFCL::FArray1A< Real > dljrep, ObjexxFCL::FArray1A< Real > fasol1, ObjexxFCL::FArray1A< Real > fasol2, ObjexxFCL::FArray1A< Real > dfasol, ObjexxFCL::FArray1A< Real > dfasol1)
 modify Etable to better treat 0-0, C-C, and H-H interactions More...
 
void assign_parameters_to_full_etables (Size atype1, Size atype2, ObjexxFCL::FArray1A< Real > ljatr, ObjexxFCL::FArray1A< Real > dljatr, ObjexxFCL::FArray1A< Real > ljrep, ObjexxFCL::FArray1A< Real > dljrep, ObjexxFCL::FArray1A< Real > fasol1, ObjexxFCL::FArray1A< Real > fasol2, ObjexxFCL::FArray1A< Real > dfasol, ObjexxFCL::FArray1A< Real > dfasol1)
 
void smooth_etables_one_pair (Size atype1, Size atype2, ObjexxFCL::FArray1A< Real > ljatr, ObjexxFCL::FArray1A< Real > dljatr, ObjexxFCL::FArray1A< Real > ljrep, ObjexxFCL::FArray1A< Real > dljrep, ObjexxFCL::FArray1A< Real > fasol1, ObjexxFCL::FArray1A< Real > fasol2, ObjexxFCL::FArray1A< Real > dfasol, ObjexxFCL::FArray1A< Real > dfasol1)
 
void zero_hydrogen_and_water_ljatr_one_pair (Size atype1, Size atype2, ObjexxFCL::FArray1A< Real > ljrep, ObjexxFCL::FArray1A< Real > ljatr, ObjexxFCL::FArray1A< Real > dljatr, ObjexxFCL::FArray1A< Real > fasol1, ObjexxFCL::FArray1A< Real > fasol2, ObjexxFCL::FArray1A< Real > dfasol, ObjexxFCL::FArray1A< Real > dfasol1)
 
void precalc_etable_coefficients (ObjexxFCL::FArray2< Real > &lj_sigma, ObjexxFCL::FArray2< Real > &lj_r6_coeff, ObjexxFCL::FArray2< Real > &lj_r12_coeff, ObjexxFCL::FArray2< Real > &lj_switch_intercept, ObjexxFCL::FArray2< Real > &lj_switch_slope, ObjexxFCL::FArray1< Real > &lk_inv_lambda2, ObjexxFCL::FArray2< Real > &lk_coeff, ObjexxFCL::FArray2< Real > &lk_min_dis2sigma_value)
 precalculate non-distance dependent coefficients of energy functions More...
 
void calc_etable_value (Real dis2, int &atype1, int &atype2, Real &atrE, Real &d_atrE, Real &repE, Real &d_repE, Real &solvE1, Real &solvE2, Real &dsolvE1, Real &dsolvE2, ObjexxFCL::FArray2< Real > &lj_sigma, ObjexxFCL::FArray2< Real > &lj_r6_coeff, ObjexxFCL::FArray2< Real > &lj_r12_coeff, ObjexxFCL::FArray2< Real > &lj_switch_intercept, ObjexxFCL::FArray2< Real > &lj_switch_slope, ObjexxFCL::FArray1< Real > &lk_inv_lambda2, ObjexxFCL::FArray2< Real > &lk_coeff, ObjexxFCL::FArray2< Real > &lk_min_dis2sigma_value)
 calc all etable values given a distance and atom-type pair More...
 

Private Attributes

chemical::AtomTypeSetCAP atom_set_
 
int const n_atomtypes_
 
Real const max_dis_
 
int const bins_per_A2
 
Real const Wradius
 
Real const lj_switch_dis2sigma
 
Real const max_dis2
 
int const etable_disbins
 
bool const lj_use_lj_deriv_slope
 
Real const lj_slope_intercept
 
bool const lj_use_hbond_radii
 
Real const lj_hbond_OH_donor_dis
 
Real const lj_hbond_dis
 
Real const lj_hbond_hdis
 
Real const lj_hbond_accOch_dis
 
Real const lj_hbond_accOch_hdis
 
bool const lj_use_water_radii
 
Real const lj_water_dis
 
Real const lj_water_hdis
 
Real const lk_min_dis2sigma
 
Real const min_dis
 
Real const min_dis2
 
bool const add_long_range_damping
 
Real const long_range_damping_length
 
Real const epsilon
 
Real const safe_max_dis2
 
Real hydrogen_interaction_cutoff2_
 
Real max_heavy_hydrogen_cutoff_
 
Real max_hydrogen_hydrogen_cutoff_
 
Real nblist_dis2_cutoff_XX_
 
Real nblist_dis2_cutoff_XH_
 
Real nblist_dis2_cutoff_HH_
 
Real max_non_hydrogen_lj_radius_
 
Real max_hydrogen_lj_radius_
 
Real lj_switch_sigma2dis
 
Real lj_switch_value2wdepth
 
Real lj_switch_slope_sigma2wdepth
 
ObjexxFCL::FArray2D< Reallj_sigma_
 
ObjexxFCL::FArray2D< Reallj_r6_coeff_
 
ObjexxFCL::FArray2D< Reallj_r12_coeff_
 
ObjexxFCL::FArray2D< Reallj_switch_intercept_
 
ObjexxFCL::FArray2D< Reallj_switch_slope_
 
ObjexxFCL::FArray1D< Reallk_inv_lambda2_
 
ObjexxFCL::FArray2D< Reallk_coeff_
 
ObjexxFCL::FArray2D< Reallk_min_dis2sigma_value_
 
Real ljatr_spline_xlo
 Data needed to describe the splines for the ljatr term. More...
 
Real ljatr_spline_xhi
 
Real ljatr_spline_diff_xhi_xlo
 
Real ljatr_spline_diff_xhi_xlo_inv
 
Real fasol_spline_far_xlo
 Add extra repulsion, if desired, for certain atom pair interactions. More...
 
Real fasol_spline_far_xhi
 
Real fasol_spline_far_diff_xhi_xlo
 
Real fasol_spline_far_diff_xhi_xlo_inv
 
utility::vector1< Reallj_radius_
 
utility::vector1< Reallj_wdepth_
 
utility::vector1< Reallk_dgfree_
 
utility::vector1< Reallk_volume_
 
utility::vector1< Reallk_lambda_
 
ObjexxFCL::FArray3D< Realljatr_
 
ObjexxFCL::FArray3D< Realljrep_
 
ObjexxFCL::FArray3D< Realsolv1_
 
ObjexxFCL::FArray3D< Realsolv2_
 
ObjexxFCL::FArray3D< Realdljatr_
 
ObjexxFCL::FArray3D< Realdljrep_
 
ObjexxFCL::FArray3D< Realdsolv_
 
ObjexxFCL::FArray3D< Realdsolv1_
 
utility::vector1< Sizecarbon_types
 
utility::vector1
< EtableParamsOnePair
analytic_parameters
 

Detailed Description

jk Class definition for Etable

Constructor & Destructor Documentation

core::scoring::etable::Etable::~Etable ( )
virtual

Automatically generated virtual destructor for class deriving directly from ReferenceCount.

Auto-generated virtual destructor

core::scoring::etable::Etable::Etable ( chemical::AtomTypeSetCAP  atom_set_in,
EtableOptions const &  options,
std::string const  alternate_parameter_set = "" 
)

Member Function Documentation

void core::scoring::etable::Etable::analytic_etable_derivatives ( conformation::Atom const &  at1,
conformation::Atom const &  at2,
Real dljatrE_ddis,
Real dljrepE_ddis,
Real dfasolE_ddis,
Real inv_d 
) const
inline
void core::scoring::etable::Etable::analytic_etable_evaluation ( conformation::Atom const &  at1,
conformation::Atom const &  at2,
Real lj_atrE,
Real lj_repE,
Real fa_solE,
Real d2 
) const
inline
Real core::scoring::etable::Etable::analytic_lj_generic_form ( Real const  dis2,
Real const  inv_dis2,
EtableParamsOnePair const &  p 
) const
inlineprivate

: evaluate the standard Lennard-Jones 6-12 functional form. Only call this function if the square distance is in the range sqrt( p.ljrep_linear_ramp_d2_cutoff ) < dis < p.ljatr_spline_xhi

References core::scoring::etable::EtableParamsOnePair::lj_r12_coeff, core::scoring::etable::EtableParamsOnePair::lj_r6_coeff, core::scoring::etable::EtableParamsOnePair::ljatr_spline_xhi, and core::scoring::etable::EtableParamsOnePair::ljrep_linear_ramp_d2_cutoff.

Referenced by analytic_etable_evaluation().

Real core::scoring::etable::Etable::analytic_ljatr_spline_ramp_to_zero ( Real const  dis,
EtableParamsOnePair const &  p 
) const
inlineprivate

: evaluate the attractive component of the LJ term as it ramps to zero. Only call this function if the square distance is in the range p.ljatr_spline_xlo < dis < p.ljatr_spline_xhi

References eval_spline(), core::scoring::etable::EtableParamsOnePair::ljatr_spline_parameters, core::scoring::etable::EtableParamsOnePair::ljatr_spline_xhi, and core::scoring::etable::EtableParamsOnePair::ljatr_spline_xlo.

Referenced by analytic_etable_evaluation().

Real core::scoring::etable::Etable::analytic_ljatr_spline_ramp_to_zero_deriv ( Real const  dis,
EtableParamsOnePair const &  p 
) const
inlineprivate

: evaluate the derivative for the attractive component of the LJ term as it ramps to zero. Only call this function if the square distance is in the range p.ljatr_spline_xlo < dis < p.ljatr_spline_xhi

References core::scoring::etable::EtableParamsOnePair::ljatr_spline_parameters, core::scoring::etable::EtableParamsOnePair::ljatr_spline_xhi, core::scoring::etable::EtableParamsOnePair::ljatr_spline_xlo, and spline_deriv().

Referenced by analytic_etable_derivatives().

Real core::scoring::etable::Etable::analytic_ljrep_linearized ( Real const  dis,
EtableParamsOnePair const &  p 
) const
inlineprivate
EtableParamsOnePair const & core::scoring::etable::Etable::analytic_params_for_pair ( Size  atype1,
Size  atype2 
) const
inlineprivate
EtableParamsOnePair & core::scoring::etable::Etable::analytic_params_for_pair ( Size  atype1,
Size  atype2 
)
inlineprivate
void core::scoring::etable::Etable::assign_parameters_to_full_etables ( Size  atype1,
Size  atype2,
ObjexxFCL::FArray1A< Real ljatr,
ObjexxFCL::FArray1A< Real dljatr,
ObjexxFCL::FArray1A< Real ljrep,
ObjexxFCL::FArray1A< Real dljrep,
ObjexxFCL::FArray1A< Real fasol1,
ObjexxFCL::FArray1A< Real fasol2,
ObjexxFCL::FArray1A< Real dfasol,
ObjexxFCL::FArray1A< Real dfasol1 
)
private
chemical::AtomTypeSetCAP core::scoring::etable::Etable::atom_set ( ) const
inline
chemical::AtomType const& core::scoring::etable::Etable::atom_type ( int const  type)
inlineprivate
void core::scoring::etable::Etable::calc_etable_value ( Real  dis2,
int atype1,
int atype2,
Real atrE,
Real d_atrE,
Real repE,
Real d_repE,
Real solvE1,
Real solvE2,
Real dsolvE1,
Real dsolvE2,
ObjexxFCL::FArray2< Real > &  lj_sigma,
ObjexxFCL::FArray2< Real > &  lj_r6_coeff,
ObjexxFCL::FArray2< Real > &  lj_r12_coeff,
ObjexxFCL::FArray2< Real > &  lj_switch_intercept,
ObjexxFCL::FArray2< Real > &  lj_switch_slope,
ObjexxFCL::FArray1< Real > &  lk_inv_lambda2,
ObjexxFCL::FArray2< Real > &  lk_coeff,
ObjexxFCL::FArray2< Real > &  lk_min_dis2sigma_value 
)
private

calc all etable values given a distance and atom-type pair

calc_etable_value

Detailed:

given a pair of atom types and the squared inter-atomic separation distance (and a whole bunch of pre-computed coeffecients), this returns the value of the lennard-jones and lk solvation potentials and their derivatives w.r.t. the separation distance

Parameters
[in]dis2- in - atomic separation distance squared
[in]atype1- in - chemical type of atom 1
[in]atype2- in - chemical type of atom 2
[out]atrE- out - atractive lj energy
[out]d_atrE- out - d(atrE)/d(dis)
[out]repE- out - repulsive lj energy
[out]d_repE- out - d(repE)/d(dis)
[out]solvE1- out - lk solvation energy
[out]solvE2- out - lk solvation energy
[out]dsolvE- out - d(solvE1+solvE2)/d(dis)
[in]lj_sigma- in - for atomtypes i and j: (radius_i+radius_j)
[in]lj_r6_coeff- in - precalced coefficient on the (1/dis)**6 term in lj
[in]lj_r12_coeff- in - precalced coefficient on the (1/dis)**12 term in lj
[in]lj_switch_intercept- in - for close contacts calculate lj from a line with this intercept
[in]lj_switch_slope- in - for close contacts calculate lj from a line with this slope
[in]lk_inv_lambda2- in - surprise! it's the 1/(lambda)**2 term in the lk equation
[in]lk_coeff- in - precalculation of all non-distance dependent terms outside of the exponential in the lk equation
[in]lk_min_dis2sigma_value- in - below the min dis2sigma ratio for lk, this value is assigned to the solvation
Global Read:

pdbstatistics_pack.h etable.h

Global Write:
Remarks
References:
Authors
ctsa 10-2003
Last Modified:

References epsilon, lj_radius(), lj_switch_dis2sigma, lk_min_dis2sigma, max_dis2, and min_dis2.

Referenced by make_pairenergy_table().

void core::scoring::etable::Etable::calculate_hydrogen_atom_reach ( )
private
void core::scoring::etable::Etable::calculate_nblist_distance_thresholds ( EtableOptions const &  options)
private
int core::scoring::etable::Etable::calculate_normal_disbins ( ) const
private
void core::scoring::etable::Etable::damp_long_range ( int const  normal_disbins,
ObjexxFCL::FArray1A< Real ljatr,
ObjexxFCL::FArray1A< Real dljatr,
ObjexxFCL::FArray1A< Real ljrep,
ObjexxFCL::FArray1A< Real dljrep,
ObjexxFCL::FArray1A< Real fasol1,
ObjexxFCL::FArray1A< Real fasol2,
ObjexxFCL::FArray1A< Real dfasol,
ObjexxFCL::FArray1A< Real dfasol1 
)
private
void core::scoring::etable::Etable::dimension_etable_arrays ( )
private

Use an analytic functional form of the etable to evaluate an atom-pair energy without reading from the enormous and uncachable tables. This version is reserved for interactions with hydrogens (hydorgen/hydrogen and hydrogen heavyatom)

References analytic_parameters, dljatr_, dljrep_, dsolv1_, dsolv_, etable_disbins, lj_r12_coeff_, lj_r6_coeff_, lj_radius_, lj_sigma_, lj_switch_intercept_, lj_switch_slope_, lj_wdepth_, ljatr_, ljrep_, lk_coeff_, lk_dgfree_, lk_inv_lambda2_, lk_lambda_, lk_min_dis2sigma_value_, lk_volume_, n_atomtypes_, solv1_, and solv2_.

Referenced by Etable().

ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::dljatr ( ) const
inline
ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::dljrep ( ) const
inline
ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::dsolv ( ) const
inline

return the solvation derivative table that combines atom1 and atom2's desolvations

References dsolv_.

ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::dsolv1 ( ) const
inline

return the solvation derivative table for the desolvation of atom1 by atom2

References dsolv1_.

Real core::scoring::etable::Etable::eval_spline ( Real const  x,
Real const  xlo,
Real const  xhi,
SplineParameters const &  sp 
)
inlinestatic
Real core::scoring::etable::Etable::eval_spline ( Real const  x,
Real const  xlo,
Real const  xhi,
Real const  width,
Real const  invwidth,
SplineParameters const &  sp 
)
inlinestatic
int core::scoring::etable::Etable::get_bins_per_A2 ( ) const
inline

References bins_per_A2.

Real core::scoring::etable::Etable::get_safe_max_dis2 ( ) const
inline

References safe_max_dis2.

Real core::scoring::etable::Etable::hydrogen_interaction_cutoff2 ( ) const
inline
void core::scoring::etable::Etable::initialize_carbontypes_to_linearize_fasol ( )
private

References atom_set_, and carbon_types.

Referenced by Etable().

void core::scoring::etable::Etable::initialize_from_input_atomset ( chemical::AtomTypeSetCAP  atom_set_in)
private
void core::scoring::etable::Etable::input_etable ( ObjexxFCL::FArray3D< Real > &  etable,
const std::string  label,
std::istream &  in 
)
private

read in etable from a datafile

input_etable

Detailed:
$$$ file first line is <etable> <etable_disbins> $$$ other lines are <atom type 1> <atomtype 1> <eval bin 1> <eval bin 2>...
Global Read:
pdbstatistics_pack.h: ljatr, dljatr, ljrep, dljrep, solv1,solv2,dsolv
Global Write:
pdbstatistics_pack.h: ljatr, dljatr, ljrep, dljrep, solv1,solv2,dsolv
Remarks
References:
Authors
sheffler mar 19 2006
Last Modified:

References etable_disbins, and core::scoring::TR().

Referenced by make_pairenergy_table().

void core::scoring::etable::Etable::interpolated_analytic_etable_evaluation ( conformation::Atom const &  at1,
conformation::Atom const &  at2,
core::Real lj_atrE,
core::Real lj_repE,
core::Real fa_solE,
Real d2 
) const

use the analytic_etable_evaluation function, but evaluate the function at the old grid points and then interpolate. Useful for comparing the original etable evaluation with the analytic evaluation.

References analytic_etable_evaluation(), bins_per_A2, and core::conformation::Atom::xyz().

Real core::scoring::etable::Etable::lj_radius ( int const  i) const
inline
Real core::scoring::etable::Etable::lj_wdepth ( int const  i) const
inline

References lj_wdepth_.

Referenced by precalc_etable_coefficients().

ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::ljatr ( ) const
inline
ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::ljrep ( ) const
inline
Real core::scoring::etable::Etable::lk_dgfree ( int const  i) const
inline

References lk_dgfree_.

Referenced by precalc_etable_coefficients().

Real core::scoring::etable::Etable::lk_lambda ( int const  i) const
inline

References lk_lambda_.

Referenced by precalc_etable_coefficients().

Real core::scoring::etable::Etable::lk_volume ( int const  i) const
inline

References lk_volume_.

Referenced by precalc_etable_coefficients().

void core::scoring::etable::Etable::make_pairenergy_table ( )
private

calculate fast lookup arrays for vdw and solvation energy

Etable::make_pairenergy_table

Detailed:

Several energies are precomputed when fullatom mode is initialized and stored in lookup tables to speed fullatom calculation. Currently pre-computed values are the Lennard-Jones van der Waals approximation (lj) and the Lazaridis-Karplus implicit solvation function (lk). For each of these energies the derivative w.r.t. atom pair separation distance is calculated and stored as well. Note that the lj energy is artificially divided into atractive and repulsive components.

Global Read:

pdbstatistics_pack.h: several threshold distances energy.h: just about everything should be used in the tree of etable functions

Global Write:

the etable: ljatr,dljatr,ljrep,dljrep,solvE

Remarks
References:
Authors
ctsa 10-2003
Last Modified:

References add_long_range_damping, analytic_params_for_pair(), assign_parameters_to_full_etables(), atom_type(), bins_per_A2, calc_etable_value(), calculate_normal_disbins(), damp_long_range(), dljatr(), dljatr_, dljrep(), dljrep_, dsolv1_, dsolv_, etable_disbins, input_etable(), core::scoring::etable::EtableParamsOnePair::lj_r12_coeff, lj_r12_coeff_, core::scoring::etable::EtableParamsOnePair::lj_r6_coeff, lj_r6_coeff_, lj_sigma_, lj_switch_dis2sigma, core::scoring::etable::EtableParamsOnePair::lj_switch_intercept, lj_switch_intercept_, lj_switch_sigma2dis, core::scoring::etable::EtableParamsOnePair::lj_switch_slope, lj_switch_slope_, lj_switch_slope_sigma2wdepth, lj_switch_value2wdepth, ljatr(), ljatr_, ljrep(), ljrep_, core::scoring::etable::EtableParamsOnePair::ljrep_linear_ramp_d2_cutoff, core::scoring::etable::EtableParamsOnePair::lk_coeff1, core::scoring::etable::EtableParamsOnePair::lk_coeff2, lk_coeff_, lk_inv_lambda2_, core::scoring::etable::EtableParamsOnePair::lk_min_dis2sigma_value, lk_min_dis2sigma_value_, core::scoring::etable::EtableParamsOnePair::maxd2, modify_pot_one_pair(), n_atomtypes_, output_etable(), precalc_etable_coefficients(), safe_max_dis2, smooth_etables_one_pair(), solv1_, solv2_, core::scoring::TR(), and zero_hydrogen_and_water_ljatr_one_pair().

Referenced by Etable().

Real core::scoring::etable::Etable::max_dis ( ) const
inline
Real core::scoring::etable::Etable::max_heavy_heavy_cutoff ( ) const
inline

References max_dis_.

Real core::scoring::etable::Etable::max_heavy_hydrogen_cutoff ( ) const
inline
Real core::scoring::etable::Etable::max_hydrogen_hydrogen_cutoff ( ) const
inline
Real core::scoring::etable::Etable::max_hydrogen_lj_radius ( ) const

Returns the maximum lj radius for any hydrogen atom as defined by the input atom-type-set used to create this Etable.

References max_hydrogen_lj_radius_.

Real core::scoring::etable::Etable::max_non_hydrogen_lj_radius ( ) const

Returns the maximum lj radius for any non-hydrogen atom as defined by the atom-type-set used to create this Etable.

References max_non_hydrogen_lj_radius_.

void core::scoring::etable::Etable::modify_pot_one_pair ( Size  atype1,
Size  atype2,
ObjexxFCL::FArray1A< Real ljatr,
ObjexxFCL::FArray1A< Real dljatr,
ObjexxFCL::FArray1A< Real ljrep,
ObjexxFCL::FArray1A< Real dljrep,
ObjexxFCL::FArray1A< Real fasol1,
ObjexxFCL::FArray1A< Real fasol2,
ObjexxFCL::FArray1A< Real dfasol,
ObjexxFCL::FArray1A< Real dfasol1 
)
private

modify Etable to better treat 0-0, C-C, and H-H interactions

modify_pot

Detailed:
$$$ the Etables are modified in three ways: $$$ (1) the LK solvation energy is set to a constant below 4.2A to avoid shifting the position $$$ of the minimum on the LJatr potential. in refined decoys the peak in the C C pair $$$ distribution function shifts to around 3.8 A from ~4.0A in native structures; the LJatr $$$ potential has a minimum at 4.0A but this shifts towards smaller values because of the LK $$$ solvation term, which became increasingly favorable at shorter distances $$$ (2) the backbone carbonyl oxygen-carbonyl oxygen LJrep term has been modified to become $$$ moderately repulsive at distances less than 3.6A. this is to counteract the favorable $$$ LJatr between the atoms (which have radii of ~1.4A and so a minimum at ~2.8A; very few $$$ counts are observed in the pdb until around 3.2A) which leads to a significant shift in the $$$ O O pair distribution function towards smaller values in refined decoys. the repulsion is $$$ a temporary proxy for the lack of explicit electrostatic repulsion in the current force $$$ field. $$$ (3) a third soft repulsion between non polar hydrogens that was also based on comparison of $$$ refined decoy to native pdf's is currently commented out as the effects on packing have not $$$ been tested. it was observed that the protons tend to pile up at just beyond the point $$$ where the repulsion becomes strong, perhaps due to a general tendency to overcontraction $$$ because of long range LJatr interactions not compensated by interactions with solvent $$$ (which are of course missing)

Comments from DB: db the following function call modifies the potential in three ways: db (1) the solvation energy for nonpolar atoms is held constant below db 4.2A to avoid shifting the minimum in the LJ potential. db (2) a short range repulsion is added between backbone oxygens which are db otherwise brought too close together by the LJatr. db (3) the range of the repulsive interaction between non polar hydrogens is db increased slightly. (this is currently commented out because the effects db on design have not been tested)

Global Read:
pdbstatistics_pack.h: ljatr,dljatr,ljrep, dljrep, solv1,solv2,dsolv
Global Write:
pdbstatistics_pack.h: ljatr,dljatr,ljrep, dljrep, solv1,solv2,dsolv
Remarks
References:
Authors
ctsa 10-2003
Last Modified:

References analytic_params_for_pair(), atom_set_, bins_per_A2, core::pack::dunbrack::c, carbon_types, dljatr(), dljrep(), etable_disbins, core::scoring::etable::ExtraQuadraticRepulsion::extrapolated_slope, core::scoring::etable::EtableParamsOnePair::fasol_final_weight, core::scoring::etable::EtableParamsOnePair::lj_minimum, ljatr(), core::scoring::etable::EtableParamsOnePair::ljatr_final_weight, ljrep(), core::scoring::etable::EtableParamsOnePair::ljrep_extra_repulsion, core::scoring::etable::EtableParamsOnePair::ljrep_from_negcrossing, core::scoring::etable::EtableParamsOnePair::maxd2, core::scoring::etable::ExtraQuadraticRepulsion::slope, core::scoring::TR(), core::scoring::etable::ExtraQuadraticRepulsion::xhi, core::scoring::etable::ExtraQuadraticRepulsion::xlo, and core::scoring::etable::ExtraQuadraticRepulsion::ylo.

Referenced by make_pairenergy_table().

Size core::scoring::etable::Etable::n_atomtypes ( ) const
inline
Real core::scoring::etable::Etable::nblist_dis2_cutoff_HH ( ) const
inline
Real core::scoring::etable::Etable::nblist_dis2_cutoff_XH ( ) const
inline
Real core::scoring::etable::Etable::nblist_dis2_cutoff_XX ( ) const
inline
void core::scoring::etable::Etable::output_etable ( ObjexxFCL::FArray3D< Real > &  etable,
std::string  label,
std::ostream &  out 
)
private

output an etable data file in the same format used in input_etable

output_etable

Detailed:
$$$ file first line is <etable> <etable_disbins> $$$ other lines are <atom type 1> <atomtype 1> <eval bin 1> <eval bin 2>...
Global Read:
pdbstatistics_pack.h: ljatr, dljatr, ljrep, dljrep, solv1,solv2,dsolv
Remarks
References:
Authors
sheffler mar 19 2006
Last Modified:

References etable_disbins, and n_atomtypes_.

Referenced by make_pairenergy_table().

void core::scoring::etable::Etable::precalc_etable_coefficients ( ObjexxFCL::FArray2< Real > &  lj_sigma,
ObjexxFCL::FArray2< Real > &  lj_r6_coeff,
ObjexxFCL::FArray2< Real > &  lj_r12_coeff,
ObjexxFCL::FArray2< Real > &  lj_switch_intercept,
ObjexxFCL::FArray2< Real > &  lj_switch_slope,
ObjexxFCL::FArray1< Real > &  lk_inv_lambda2,
ObjexxFCL::FArray2< Real > &  lk_coeff,
ObjexxFCL::FArray2< Real > &  lk_min_dis2sigma_value 
)
private

precalculate non-distance dependent coefficients of energy functions

precalc_etable_coefficients

Detailed:
Parameters
[out]lj_sigma- out - for atomtypes i and j: (radius_i+radius_j)
[out]lj_r6_coeff- out - precalced coefficient on the (1/dis)**6 term in lj
[out]lj_r12_coeff- out - precalced coefficient on the (1/dis)**12 term in lj
[out]lj_switch_intercept- out - for close contacts calculate lj from a line with this intercept
[out]lj_switch_slope- out - for close contacts calculate lj from a line with this slope
[out]lk_inv_lambda2- out - surprise! it's the 1/(lambda)**2 term in the lk equation
[out]lk_coeff- out - precalculation of all non-distance dependent terms outside of the exponential in the lk equation
[out]lk_min_dis2sigma_value- out - below the min dis2sigma ratio for lk, this value is assigned to the solvation
Global Read:
Global Write:
Remarks
References:
Authors
ctsa 10-2003
Last Modified:

References atom_type(), core::chemical::AtomType::is_acceptor(), core::chemical::AtomType::is_donor(), core::chemical::AtomType::is_h2o(), core::chemical::AtomType::is_polar_hydrogen(), lj_hbond_dis, lj_hbond_hdis, lj_hbond_OH_donor_dis, lj_radius(), lj_slope_intercept, lj_switch_dis2sigma, lj_switch_sigma2dis, lj_switch_slope_sigma2wdepth, lj_switch_value2wdepth, lj_use_hbond_radii, lj_use_lj_deriv_slope, lj_use_water_radii, lj_water_dis, lj_water_hdis, lj_wdepth(), lk_dgfree(), lk_lambda(), lk_min_dis2sigma, lk_volume(), n_atomtypes_, core::chemical::AtomType::name(), and Wradius.

Referenced by make_pairenergy_table().

void core::scoring::etable::Etable::read_alternate_parameter_set ( chemical::AtomTypeSetCAP  atom_set_in,
std::string const  alternate_parameter_set 
)
private
void core::scoring::etable::Etable::smooth_etables_one_pair ( Size  atype1,
Size  atype2,
ObjexxFCL::FArray1A< Real ljatr,
ObjexxFCL::FArray1A< Real dljatr,
ObjexxFCL::FArray1A< Real ljrep,
ObjexxFCL::FArray1A< Real dljrep,
ObjexxFCL::FArray1A< Real fasol1,
ObjexxFCL::FArray1A< Real fasol2,
ObjexxFCL::FArray1A< Real dfasol,
ObjexxFCL::FArray1A< Real dfasol1 
)
private
ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::solv1 ( ) const
inline

References solv1_.

ObjexxFCL::FArray3D< Real > const& core::scoring::etable::Etable::solv2 ( ) const
inline

References solv2_.

Real core::scoring::etable::Etable::spline_deriv ( Real const  x,
Real const  xlo,
Real const  xhi,
SplineParameters const &  sp 
)
inlinestatic
Real core::scoring::etable::Etable::spline_deriv ( Real const  x,
Real const  xlo,
Real const  xhi,
Real const  width,
Real const  invwidth,
SplineParameters const &  sp 
)
inlinestatic
void core::scoring::etable::Etable::zero_hydrogen_and_water_ljatr_one_pair ( Size  atype1,
Size  atype2,
ObjexxFCL::FArray1A< Real ljrep,
ObjexxFCL::FArray1A< Real ljatr,
ObjexxFCL::FArray1A< Real dljatr,
ObjexxFCL::FArray1A< Real fasol1,
ObjexxFCL::FArray1A< Real fasol2,
ObjexxFCL::FArray1A< Real dfasol,
ObjexxFCL::FArray1A< Real dfasol1 
)
private

Member Data Documentation

bool const core::scoring::etable::Etable::add_long_range_damping
private
utility::vector1< EtableParamsOnePair > core::scoring::etable::Etable::analytic_parameters
private
chemical::AtomTypeSetCAP core::scoring::etable::Etable::atom_set_
private
int const core::scoring::etable::Etable::bins_per_A2
private
utility::vector1< Size > core::scoring::etable::Etable::carbon_types
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::dljatr_
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::dljrep_
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::dsolv1_
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::dsolv_
private
Real const core::scoring::etable::Etable::epsilon
private
int const core::scoring::etable::Etable::etable_disbins
private
Real core::scoring::etable::Etable::fasol_spline_far_diff_xhi_xlo
private
Real core::scoring::etable::Etable::fasol_spline_far_diff_xhi_xlo_inv
private
Real core::scoring::etable::Etable::fasol_spline_far_xhi
private
Real core::scoring::etable::Etable::fasol_spline_far_xlo
private

Add extra repulsion, if desired, for certain atom pair interactions.

Data needed to describe the splines for the fasol term: There are two splines needed: one to smooth the transition to where the fasol term goes flat as the distance becomes less than the sum of the van der Waals radii (the "close" spline), and a second to smooth the transition where the distance goes to the fa_max_dis and the energy goes to 0 (the far spline). In between the close and far values, the exponential form of the energy function is used.

Referenced by analytic_etable_derivatives(), analytic_etable_evaluation(), and smooth_etables_one_pair().

Real core::scoring::etable::Etable::hydrogen_interaction_cutoff2_
private
Real const core::scoring::etable::Etable::lj_hbond_accOch_dis
private
Real const core::scoring::etable::Etable::lj_hbond_accOch_hdis
private
Real const core::scoring::etable::Etable::lj_hbond_dis
private
Real const core::scoring::etable::Etable::lj_hbond_hdis
private
Real const core::scoring::etable::Etable::lj_hbond_OH_donor_dis
private
ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lj_r12_coeff_
private
ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lj_r6_coeff_
private
utility::vector1< Real > core::scoring::etable::Etable::lj_radius_
private

Should the repulsive component start at ljatr+ljrep = 0 (true) or when ljatr reaches its minimum (false ) Data to turn off portions of the interactions between certain atom pairs e.g. Hydrogen atoms are repulsive, only, as are the REPLONLY atoms.

Referenced by dimension_etable_arrays(), initialize_from_input_atomset(), lj_radius(), and read_alternate_parameter_set().

ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lj_sigma_
private
Real const core::scoring::etable::Etable::lj_slope_intercept
private
Real const core::scoring::etable::Etable::lj_switch_dis2sigma
private
ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lj_switch_intercept_
private
Real core::scoring::etable::Etable::lj_switch_sigma2dis
private
ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lj_switch_slope_
private
Real core::scoring::etable::Etable::lj_switch_slope_sigma2wdepth
private
Real core::scoring::etable::Etable::lj_switch_value2wdepth
private
bool const core::scoring::etable::Etable::lj_use_hbond_radii
private
bool const core::scoring::etable::Etable::lj_use_lj_deriv_slope
private
bool const core::scoring::etable::Etable::lj_use_water_radii
private
Real const core::scoring::etable::Etable::lj_water_dis
private
Real const core::scoring::etable::Etable::lj_water_hdis
private
utility::vector1< Real > core::scoring::etable::Etable::lj_wdepth_
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::ljatr_
private
Real core::scoring::etable::Etable::ljatr_spline_diff_xhi_xlo
private
Real core::scoring::etable::Etable::ljatr_spline_diff_xhi_xlo_inv
private
Real core::scoring::etable::Etable::ljatr_spline_xhi
private
Real core::scoring::etable::Etable::ljatr_spline_xlo
private

Data needed to describe the splines for the ljatr term.

OK: these values reflect the grid point with the lowest energy, which could be different from the sum of the lj radii or the lj well depths. These vals define the switch point from attractive to repulsive. Repulsive interactions start counting at the lj_minima

ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::ljrep_
private
ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lk_coeff_
private
utility::vector1< Real > core::scoring::etable::Etable::lk_dgfree_
private
ObjexxFCL::FArray1D< Real > core::scoring::etable::Etable::lk_inv_lambda2_
private
utility::vector1< Real > core::scoring::etable::Etable::lk_lambda_
private
Real const core::scoring::etable::Etable::lk_min_dis2sigma
private
ObjexxFCL::FArray2D< Real > core::scoring::etable::Etable::lk_min_dis2sigma_value_
private
utility::vector1< Real > core::scoring::etable::Etable::lk_volume_
private
Real const core::scoring::etable::Etable::long_range_damping_length
private
Real const core::scoring::etable::Etable::max_dis2
private
Real const core::scoring::etable::Etable::max_dis_
private
Real core::scoring::etable::Etable::max_heavy_hydrogen_cutoff_
private
Real core::scoring::etable::Etable::max_hydrogen_hydrogen_cutoff_
private
Real core::scoring::etable::Etable::max_hydrogen_lj_radius_
private
Real core::scoring::etable::Etable::max_non_hydrogen_lj_radius_
private
Real const core::scoring::etable::Etable::min_dis
private
Real const core::scoring::etable::Etable::min_dis2
private
int const core::scoring::etable::Etable::n_atomtypes_
private
Real core::scoring::etable::Etable::nblist_dis2_cutoff_HH_
private
Real core::scoring::etable::Etable::nblist_dis2_cutoff_XH_
private
Real core::scoring::etable::Etable::nblist_dis2_cutoff_XX_
private
Real const core::scoring::etable::Etable::safe_max_dis2
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::solv1_
private
ObjexxFCL::FArray3D< Real > core::scoring::etable::Etable::solv2_
private
Real const core::scoring::etable::Etable::Wradius
private

The documentation for this class was generated from the following files: