base class for calculating solvent accessible surface areas of target particles derived classes implement specific neighbour search algorithms
More...
#include <sasa.h>
|
|
double | calcSASAOfParticle (const Space &spc, const Particle &particle) const |
| |
| template<typename TBegin , typename TEnd > |
| double | calcSASA (const Space &spc, TBegin begin, TEnd end) const |
| | calculates total sasa of either particles or groups between given iterators More...
|
| |
|
template<typename TSpecies > |
| double | calcSASAOf (const Space &spc, const TSpecies &species) const |
| |
| void | updateSASA (const std::vector< SASABase::Neighbours > &neighbours_data, const std::vector< index_type > &target_indices) |
| | updates sasa of target particles More...
|
| |
|
virtual void | init (const Space &spc)=0 |
| |
|
virtual std::vector< SASABase::Neighbours > | calcNeighbourData (const Space &spc, const std::vector< index_type > &target_indices) const =0 |
| |
|
virtual SASABase::Neighbours | calcNeighbourDataOfParticle (const Space &spc, index_type target_index) const =0 |
| |
|
virtual void | update (const Space &spc, const Change &change)=0 |
| |
|
const std::vector< double > & | getAreas () const |
| |
| | SASABase (const Space &spc, double probe_radius, int slices_per_atom) |
| |
| template<> |
| double | calcSASAOf (const Space &spc, const Group &group) const |
| | calculates total sasa of a group More...
|
| |
| template<> |
| double | calcSASAOf (const Space &spc, const Particle &particle) const |
| | calculates total sasa of a particle More...
|
| |
|
|
bool | needs_syncing = false |
| | flag indicating if syncing of cell_lists is needed this is important in case there is a particle insertion which is rejected due to containerOverlap, because the sasa->update is not called
|
| |
|
|
double | probe_radius = 1.4 |
| | radius of the probe sphere
|
| |
|
std::vector< double > | areas |
| | vector holding SASA area of each atom
|
| |
|
std::vector< double > | sasa_radii |
| | Radii buffer for all particles.
|
| |
|
int | slices_per_atom = 20 |
| | number of slices of each sphere in SASA calculation
|
| |
|
const double | two_pi = 2.0 * std::numbers::pi |
| |
|
const Particle * | first_particle |
| |
base class for calculating solvent accessible surface areas of target particles derived classes implement specific neighbour search algorithms
◆ SASABase()
| Faunus::SASA::SASABase::SASABase |
( |
const Space & |
spc, |
|
|
double |
probe_radius, |
|
|
int |
slices_per_atom |
|
) |
| |
- Parameters
-
| spc | |
| probe_radius | in angstrom |
| slices_per_atom | number of slices of each sphere in sasa calculations |
◆ calcSASA()
template<typename TBegin , typename TEnd >
| double Faunus::SASA::SASABase::calcSASA |
( |
const Space & |
spc, |
|
|
TBegin |
begin, |
|
|
TEnd |
end |
|
) |
| const |
|
inline |
calculates total sasa of either particles or groups between given iterators
- Parameters
-
| spc | |
| begin | iterator to either a first particle or group in a range |
| end | iterator to either end of particle or group in a range |
- Template Parameters
-
◆ calcSASAOf() [1/2]
template<>
| double Faunus::SASA::SASABase::calcSASAOf |
( |
const Space & |
spc, |
|
|
const Group & |
group |
|
) |
| const |
calculates total sasa of a group
- Parameters
-
- Returns
- total sasa of a given group
◆ calcSASAOf() [2/2]
template<>
| double Faunus::SASA::SASABase::calcSASAOf |
( |
const Space & |
spc, |
|
|
const Particle & |
particle |
|
) |
| const |
calculates total sasa of a particle
- Parameters
-
- Returns
- total sasa of a given particle
◆ calcSASAOfParticle()
| double Faunus::SASA::SASABase::calcSASAOfParticle |
( |
const Neighbours & |
neighbour | ) |
const |
|
protected |
Calcuates SASA of a single particle defined by NeighbourData object.
cuts a sphere in z-direction, for each slice, radius of circle_i in the corresponding z-plane is calculated then for each neighbour, calculate the overlaping part of circle_i with neighbouring circle_j and add these arcs into vector, finally from this vector, calculate the exposed part of circle_i
- Parameters
-
| neighbour | NeighbourData object of given particle |
◆ exposedArcLength()
| double Faunus::SASA::SASABase::exposedArcLength |
( |
std::vector< std::pair< double, double >> & |
arcs | ) |
const |
|
protected |
Calcuates total arc length in radians of overlapping arcs defined by two angles.
- Parameters
-
| vector | of arcs, defined by a pair (first angle, second angle) |
◆ indexOf()
| index_type Faunus::SASA::SASABase::indexOf |
( |
const Particle & |
particle | ) |
const |
|
inlineprotected |
first particle in ParticleVector
returns absolute index of particle in ParticleVector
- Parameters
-
◆ updateSASA()
| void Faunus::SASA::SASABase::updateSASA |
( |
const std::vector< SASABase::Neighbours > & |
neighbours_data, |
|
|
const std::vector< index_type > & |
target_indices |
|
) |
| |
updates sasa of target particles
- Parameters
-
| neighbours | array of NeighbourData objects |
| target_indices | absolute indicies of target particles in ParticleVector |
The documentation for this class was generated from the following files: