PeTar
N-body code for collisional gravitational systems
|
AR interaction clas. More...
#include <ar_interaction.hpp>
Public Types | |
typedef H4::ParticleH4< PtclHard > | H4Ptcl |
Public Member Functions | |
ARInteraction () | |
bool | checkParams () |
(Necessary) check whether publicly initialized parameters are correctly set More... | |
void | print (std::ostream &_fout) const |
print parameters More... | |
Float | calcInnerAccPotAndGTKickInvTwo (AR::Force &_f1, AR::Force &_f2, Float &_epot, const PtclHard &_p1, const PtclHard &_p2) |
(Necessary) calculate inner member acceleration, potential and inverse time transformation function gradient and factor for kick (two-body case) More... | |
Float | calcInnerAccPotAndGTKickInv (AR::Force *_force, Float &_epot, const PtclHard *_particles, const int _n_particle) |
calculate inner member acceleration, potential and inverse time transformation function gradient and factor for kick More... | |
void | calcAccPert (AR::Force *_force, const PtclHard *_particles, const int _n_particle, const H4Ptcl &_particle_cm, const ARPerturber &_perturber, const Float _time) |
(Necessary) calculate acceleration from perturber and the perturbation factor for slowdown calculation More... | |
Float | calcAccPotAndGTKickInv (AR::Force *_force, Float &_epot, const PtclHard *_particles, const int _n_particle, const H4Ptcl &_particle_cm, const ARPerturber &_perturber, const Float _time) |
(Necessary) calculate acceleration from internal members and perturbers More... | |
Float | calcPertFromForce (const Float *_force, const Float _mp, const Float _mpert) |
calculate perturbation from c.m. acceleration More... | |
template<class Tparticle > | |
int | modifyOneParticle (Tparticle &_p, const Float &_time_now, const Float &_time_end) |
(Necessary) modify one particle function More... | |
int | modifyAndInterruptIter (AR::InterruptBinary< PtclHard > &_bin_interrupt, AR::BinaryTree< PtclHard > &_bin) |
(Necessary) modify the orbits and interrupt check More... | |
Float | calcGTDriftInv (Float _ekin_minus_etot) |
(Necessary) calcualte the inverse time transformation factor for drift More... | |
Float | calcH (Float _ekin_minus_etot, Float _epot) |
(Necessary) calculate the time transformed Hamiltonian More... | |
void | writeBinary (FILE *_fp) const |
write class data to file with binary format More... | |
void | readBinary (FILE *_fin) |
read class data to file with binary format More... | |
Static Public Member Functions | |
static Float | calcPertFromBinary (const COMM::Binary &_bin) |
calculate perturbation from binary tree More... | |
static Float | calcPertFromMR (const Float _r, const Float _mp, const Float _mpert) |
calculate perturbation from distance to perturber and masses of particle and perturber More... | |
Public Attributes | |
Float | eps_sq |
Float | gravitational_constant |
More... | |
AR interaction clas.
typedef H4::ParticleH4<PtclHard> ARInteraction::H4Ptcl |
|
inline |
|
inline |
(Necessary) calculate acceleration from perturber and the perturbation factor for slowdown calculation
[out] | _force | force array to store the calculation results (in acc_pert[3], notice acc_pert may need to reset zero to avoid accummulating old values) |
[in] | _particles | member particle array |
[in] | _n_particle | number of member particles |
[in] | _particle_cm | center-of-mass particle |
[in] | _perturber | pertuber container |
[in] | _time | current time |
|
inline |
(Necessary) calculate acceleration from internal members and perturbers
The Force class acc_pert should be updated
[out] | _force | force array to store the calculation results (in acc_pert[3], notice acc_pert may need to reset zero to avoid accummulating old values) |
[out] | _epot | potential |
[in] | _particles | member particle array |
[in] | _n_particle | number of member particles |
[in] | _particle_cm | center-of-mass particle |
[in] | _perturber | pertuber container |
[in] | _time | current time |
|
inline |
(Necessary) calcualte the inverse time transformation factor for drift
The time transformation factor for drift only depends on (kinetic energy - total energy)
[in] | _ekin_minus_etot | ekin - etot |
|
inline |
(Necessary) calculate the time transformed Hamiltonian
calculate the time transformed Hamiltonian
[in] | _ekin_minus_etot | ekin - etot |
|
inline |
calculate inner member acceleration, potential and inverse time transformation function gradient and factor for kick
[out] | _force | force array to store the calculation results (in acc_in[3] for acceleration and gtgrad[3] for gradient, notice acc/gtgard may need to reset zero to avoid accummulating old values) |
[out] | _epot | total inner potential energy |
[in] | _particles | member particle array |
[in] | _n_particle | number of member particles |
|
inline |
(Necessary) calculate inner member acceleration, potential and inverse time transformation function gradient and factor for kick (two-body case)
[out] | _f1 | force for particle 1 to store the calculation results (in acc_in[3] for acceleration and gtgrad[3] for gradient, notice acc/gtgard are overwritten, not accummulating old values) |
[out] | _f2 | force for particle 2 |
[out] | _epot | total inner potential energy |
[in] | _p1 | particle 1 |
[in] | _p2 | particle 2 |
|
inlinestatic |
calculate perturbation from binary tree
|
inline |
calculate perturbation from c.m. acceleration
|
inlinestatic |
calculate perturbation from distance to perturber and masses of particle and perturber
|
inline |
(Necessary) check whether publicly initialized parameters are correctly set
|
inline |
(Necessary) modify the orbits and interrupt check
check the inner left binary whether their separation is smaller than particle radius sum and become close, if true, set one component stauts to merger with cm mass and the other unused with zero mass. Return the binary tree address
[in] | _bin_interrupt | interrupt binary information: adr: binary tree address; time_now: current physical time; time_end: integration finishing time; status: interrupt status: change, merge,none |
[in] | _bin | binarytree to check iteratively |
|
inline |
(Necessary) modify one particle function
[in] | _p | particle |
[in] | _time_now | current time (not physical time, NB unit) |
[in] | _time_end | required evolved time (not physical time, do not directly use, NB unit) |
|
inline |
print parameters
|
inline |
read class data to file with binary format
[in] | _fp | FILE type file for reading |
|
inline |
write class data to file with binary format
[in] | _fp | FILE type file for output |
Float ARInteraction::eps_sq |
Float ARInteraction::gravitational_constant |
softening parameter