SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo > Class Template Reference

Hermite integrator class. More...

#include <hermite_integrator.h>

Collaboration diagram for H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >:
[legend]

Public Member Functions

bool checkParams ()
 check whether parameters values are correct More...
 
 HermiteIntegrator ()
 constructor More...
 
void clear ()
 clear function More...
 
void reserveIntegratorMem ()
 reserve memory for system More...
 
void initialSystemSingle (const Float _time_sys)
 Initial system array. More...
 
void addGroups (const int *_particle_index, const int *_n_group_offset, const int _n_group)
 add groups from lists of particle index More...
 
void readGroupConfigureAscii (std::istream &_fin)
 Add group based on a configure file. More...
 
void breakGroups (int *_new_group_particle_index_origin, int *_new_n_group_offset, int &_new_n_group, const int *_break_group_index_with_offset, const int _n_break_no_add, const int _n_break)
 break groups More...
 
void checkBreak (int *_break_group_index_with_offset, int &_n_break, const bool _start_flag)
 Check break condition. More...
 
void checkNewGroup (int *_new_group_particle_index_origin, int *_new_n_group_offset, int &_new_n_group, int *_break_group_index_with_offset, int &_n_break_no_add, const int _n_break, const bool _start_flag)
 check the pair with distance below r_crit for ptcl in adr_dt_sorted_ More...
 
void adjustGroups (const bool _start_flag)
 adjust groups More...
 
void initialIntegration ()
 Initial Hermite integrator. More...
 
AR::InterruptBinary< Tparticle > & integrateGroupsOneStep ()
 Integrate groups. More...
 
void modifySingleParticles ()
 modify single particles due to external functions, update energy More...
 
void integrateSingleOneStepAct ()
 Integration single active particles and update steps. More...
 
void integrateToTimeList (const Float _time_next, const int *_particle_index, const int _n_particle)
 Integration a list of particle to current time (ingore dt) More...
 
void sortDtAndSelectActParticle ()
 sort time step array and select active particles More...
 
void writeBackGroupMembers ()
 write back group members to particles More...
 
void accumDESlowDownChangeBreakGroup (const int _igroup)
 correct Etot slowdown reference due to the groups change More...
 
void accumDESlowDownChange ()
 correct Etot slowdown reference due to the groups change More...
 
void calcEnergySlowDown (const bool _initial_flag=false)
 calculate slowdown energy More...
 
Float getEnergyErrorSlowDown () const
 get slowdown energy error More...
 
Float getEnergyError () const
 get energy error More...
 
Float getEtot () const
 Get current total energy from ekin and epot. More...
 
Float getEtotRef () const
 Get current total integrated energy. More...
 
Float getEtotSlowDown () const
 Get current total energy with slowdown from ekin_sd and epot_sd. More...
 
Float getEtotSlowDownRef () const
 Get current total integrated energy with inner slowdown. More...
 
Float getEkin () const
 Get current kinetic energy. More...
 
Float getEkinSlowDown () const
 Get current kinetic energy with slowdown. More...
 
Float getEpot () const
 Get current potential energy. More...
 
Float getEpotSlowDown () const
 Get current potential energy with slowdown. More...
 
Float getDESlowDownChangeCum () const
 get cumulative slowdown energy change due to slowdown change More...
 
void resetDESlowDownChangeCum ()
 reset cumulative slowdown energy change due to slowdown change More...
 
Float getDESlowDownChangeBinaryInterrupt () const
 get cumulative slowdown energy change due to interruption More...
 
void resetDESlowDownChangeBinaryInterrupt ()
 reset cumulative slowdown energy change due to interruption More...
 
Float getDESlowDownChangeModifySingle () const
 get cumulative slowdown energy change due to modification of one particle More...
 
void resetDESlowDownChangeModifySingle ()
 reset cumulative slowdown energy change due to modification of one particle More...
 
Float getDEChangeCum () const
 get cumulative energy change More...
 
void resetDEChangeCum ()
 reset cumulative energy change More...
 
Float getDEChangeBinaryInterrupt () const
 get cumulative energy change due to interruption More...
 
void resetDEChangeBinaryInterrupt ()
 reset cumulative energy change due to interruption More...
 
Float getDEChangeModifySingle () const
 get cumulative energy change due to modification of one particle More...
 
void resetDEChangeModifySingle ()
 reset cumulative energy change due to modification of one particle More...
 
Float getNextTime () const
 get next time for intergration More...
 
Float getTimeInt () const
 get current integration time More...
 
Float getTime () const
 get current real time More...
 
void setTimeOffset (const Float &_time_offset)
 set time offset More...
 
int getInterruptGroupIndex () const
 get interrupt group index More...
 
AR::InterruptBinary< Tparticle > & getInterruptBinary ()
 get interrupt binary (tree) address More...
 
int getNActSingle () const
 get active number of particles of singles More...
 
int getNActGroup () const
 get active number of particles of groups More...
 
int getNInitGroup () const
 get initial number of particles of groups More...
 
int getNInitSingle () const
 get initial number of particles of singles More...
 
int getNGroup () const
 get N groups More...
 
int getNSingle () const
 get N single More...
 
int getIndexOffsetGroup () const
 get group index offset (group index + N_single_max) More...
 
int * getSortDtIndexSingle ()
 get sorted dt index of singles More...
 
int * getSortDtIndexGroup ()
 get sorted dt index of groups More...
 
void printColumnTitle (std::ostream &_fout, const int _width, const int _n_sd_list[], const int _n_group, const int _n_sd_tot)
 print titles of class members using column style More...
 
void printColumn (std::ostream &_fout, const int _width, const int _n_sd_list[], const int _n_group, const int _n_sd_tot)
 print data of class members using column style More...
 
void printStepHist ()
 print step histogram More...
 

Public Attributes

BlockTimeStep4th step
 
HermiteManager< Tacc > * manager
 

time step calculator

More...
 
AR::TimeTransformedSymplecticManager< TARacc > * ar_manager
 integration manager More...
 
COMM::ParticleGroup< H4Ptcl, Tpcm > particles
 
COMM::List< ARSymgroups
 
COMM::List< Neighbor< Tparticle > > neighbors
 
Tpert perturber
 
Tinfo info
 information of the system More...
 
Profile profile
 

Detailed Description

template<class Tparticle, class Tpcm, class Tpert, class TARpert, class Tacc, class TARacc, class Tinfo>
class H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >

Hermite integrator class.

Constructor & Destructor Documentation

◆ HermiteIntegrator()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::HermiteIntegrator ( )
inline

constructor

Member Function Documentation

◆ accumDESlowDownChange()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::accumDESlowDownChange ( )
inline

correct Etot slowdown reference due to the groups change

Here is the call graph for this function:
Here is the caller graph for this function:

◆ accumDESlowDownChangeBreakGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::accumDESlowDownChangeBreakGroup ( const int  _igroup)
inline

correct Etot slowdown reference due to the groups change

Parameters
[in]_igroupgroup index to accumulative de_sd_change_cum
Here is the caller graph for this function:

◆ addGroups()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::addGroups ( const int *  _particle_index,
const int *  _n_group_offset,
const int  _n_group 
)
inline

add groups from lists of particle index

Parameters
[in]_particle_indexparticle index
[in]_n_group_offsetoffset to separate groups in _particle_index
[in]_n_groupnumber of new groups
Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjustGroups()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::adjustGroups ( const bool  _start_flag)
inline

adjust groups

Here is the call graph for this function:

◆ breakGroups()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::breakGroups ( int *  _new_group_particle_index_origin,
int *  _new_n_group_offset,
int &  _new_n_group,
const int *  _break_group_index_with_offset,
const int  _n_break_no_add,
const int  _n_break 
)
inline

break groups

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcEnergySlowDown()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::calcEnergySlowDown ( const bool  _initial_flag = false)
inline

calculate slowdown energy

Parameters
[in]_initial_flagif true, set energy reference
Here is the call graph for this function:

◆ checkBreak()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::checkBreak ( int *  _break_group_index_with_offset,
int &  _n_break,
const bool  _start_flag 
)
inline

Check break condition.

Check whether it is necessary to break the chain

  1. Inner distance criterion, for outmost pair:
    If \(r>\)r_break_crit, and ecca \(>0.0\), break. Also predict next step r to ensure break early enough.
  2. Perturbation criterion for closed orbit:
    For two body case, if slowdown factor \(>1.0\) break.
    For few-body, if no inner AR slowdown, break when inner kappa is large.
    Parameters
    [out]<em>break_group_index_with_offsetgroup index list to break with an offset of $index_offset_group
    [out]_n_breaknumber of groups need to break
    [in]_start_flagindicate this is the first adjust of the groups in the integration
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkNewGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::checkNewGroup ( int *  _new_group_particle_index_origin,
int *  _new_n_group_offset,
int &  _new_n_group,
int *  _break_group_index_with_offset,
int &  _n_break_no_add,
const int  _n_break,
const bool  _start_flag 
)
inline

check the pair with distance below r_crit for ptcl in adr_dt_sorted_

First check nearest neighbor distance r_min If r_min<r_crit, check the direction, if income, accept as group

Parameters
[out]_new_group_particle_index_originparticle index (for hermite particle data) of new group members
[out]_new_n_group_offsetgroup member boundary, first value is defined already
[out]_new_n_groupnumber of new group
[in,out]_break_group_index_with_offsetbreak group index in groups
[out]_n_break_no_addnumber of break groups without adding new particles
[in]_n_breaknumber of break groups
[in]_start_flagindicate this is the first adjust of the groups in the integration
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkParams()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
bool H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::checkParams ( )
inline

check whether parameters values are correct

Returns
true: all correct
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clear()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::clear ( )
inline

clear function

Here is the call graph for this function:

◆ getDEChangeBinaryInterrupt()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getDEChangeBinaryInterrupt ( ) const
inline

get cumulative energy change due to interruption

◆ getDEChangeCum()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getDEChangeCum ( ) const
inline

get cumulative energy change

◆ getDEChangeModifySingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getDEChangeModifySingle ( ) const
inline

get cumulative energy change due to modification of one particle

◆ getDESlowDownChangeBinaryInterrupt()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getDESlowDownChangeBinaryInterrupt ( ) const
inline

get cumulative slowdown energy change due to interruption

◆ getDESlowDownChangeCum()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getDESlowDownChangeCum ( ) const
inline

get cumulative slowdown energy change due to slowdown change

◆ getDESlowDownChangeModifySingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getDESlowDownChangeModifySingle ( ) const
inline

get cumulative slowdown energy change due to modification of one particle

◆ getEkin()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEkin ( ) const
inline

Get current kinetic energy.

Returns
current kinetic energy

◆ getEkinSlowDown()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEkinSlowDown ( ) const
inline

Get current kinetic energy with slowdown.

Returns
current slowdown kinetic energy

◆ getEnergyError()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEnergyError ( ) const
inline

get energy error

Returns
energy error
Here is the call graph for this function:

◆ getEnergyErrorSlowDown()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEnergyErrorSlowDown ( ) const
inline

get slowdown energy error

Here is the call graph for this function:

◆ getEpot()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEpot ( ) const
inline

Get current potential energy.

Returns
current potetnial energy (negative value for bounded systems)

◆ getEpotSlowDown()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEpotSlowDown ( ) const
inline

Get current potential energy with slowdown.

Returns
current potetnial energy with slowdown (negative value for bounded systems)

◆ getEtot()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEtot ( ) const
inline

Get current total energy from ekin and epot.

Returns
total integrated energy
Here is the call graph for this function:

◆ getEtotRef()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEtotRef ( ) const
inline

Get current total integrated energy.

Returns
total integrated energy

◆ getEtotSlowDown()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEtotSlowDown ( ) const
inline

Get current total energy with slowdown from ekin_sd and epot_sd.

Returns
total energy with slowdown
Here is the call graph for this function:

◆ getEtotSlowDownRef()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getEtotSlowDownRef ( ) const
inline

Get current total integrated energy with inner slowdown.

Returns
total integrated energy with inner slowdown

◆ getIndexOffsetGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getIndexOffsetGroup ( ) const
inline

get group index offset (group index + N_single_max)

◆ getInterruptBinary()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
AR::InterruptBinary<Tparticle>& H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getInterruptBinary ( )
inline

get interrupt binary (tree) address

if not exist, return NULL

◆ getInterruptGroupIndex()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getInterruptGroupIndex ( ) const
inline

get interrupt group index

if not exist, return -1

◆ getNActGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNActGroup ( ) const
inline

get active number of particles of groups

◆ getNActSingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNActSingle ( ) const
inline

get active number of particles of singles

◆ getNextTime()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNextTime ( ) const
inline

get next time for intergration

Here is the caller graph for this function:

◆ getNGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNGroup ( ) const
inline

get N groups

Here is the call graph for this function:

◆ getNInitGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNInitGroup ( ) const
inline

get initial number of particles of groups

◆ getNInitSingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNInitSingle ( ) const
inline

get initial number of particles of singles

◆ getNSingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getNSingle ( ) const
inline

get N single

Here is the call graph for this function:

◆ getSortDtIndexGroup()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int* H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getSortDtIndexGroup ( )
inline

get sorted dt index of groups

Here is the call graph for this function:

◆ getSortDtIndexSingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
int* H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getSortDtIndexSingle ( )
inline

get sorted dt index of singles

Here is the call graph for this function:

◆ getTime()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getTime ( ) const
inline

get current real time

Here is the caller graph for this function:

◆ getTimeInt()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Float H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::getTimeInt ( ) const
inline

get current integration time

◆ initialIntegration()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::initialIntegration ( )
inline

Initial Hermite integrator.

Initial f, fdot and step for new add/remove particles. If start_flag, the whole system are initialized; else the first n_init_single_ and n_init_group_ of sorted index list will be initialized. The active particle number will be set to the total number of particles

Parameters
[in]_start_flagtrue: the starting step of integration.
Here is the call graph for this function:

◆ initialSystemSingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::initialSystemSingle ( const Float  _time_sys)
inline

Initial system array.

Parameters
[in]_time_syscurrent set time
Here is the call graph for this function:

◆ integrateGroupsOneStep()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
AR::InterruptBinary<Tparticle>& H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::integrateGroupsOneStep ( )
inline

Integrate groups.

Integrate all groups to time

Returns
interrupted binarytree if exist
Here is the call graph for this function:

◆ integrateSingleOneStepAct()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::integrateSingleOneStepAct ( )
inline

Integration single active particles and update steps.

Integrated to next time given by minimum step particle

Here is the call graph for this function:

◆ integrateToTimeList()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::integrateToTimeList ( const Float  _time_next,
const int *  _particle_index,
const int  _n_particle 
)
inline

Integration a list of particle to current time (ingore dt)

Integrate a list of particle to current time.

Parameters
[in]_time_nexttime to integrate (without offset)
[in]_particle_indexparticle index to integrate
[in]_n_particlenumber of particles
Here is the call graph for this function:
Here is the caller graph for this function:

◆ modifySingleParticles()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::modifySingleParticles ( )
inline

modify single particles due to external functions, update energy

Here is the call graph for this function:

◆ printColumn()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::printColumn ( std::ostream &  _fout,
const int  _width,
const int  _n_sd_list[],
const int  _n_group,
const int  _n_sd_tot 
)
inline

print data of class members using column style

print data of class members in one line for column style. Notice no newline is printed at the end

Parameters
[out]_foutstd::ostream output object
[in]_widthprint width
[in]_n_sd_listAR inner slowdown numbers per group (list)
[in]_n_grouptotal AR group number
[in]_n_sd_tottotal slowdown numbers
Here is the call graph for this function:

◆ printColumnTitle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::printColumnTitle ( std::ostream &  _fout,
const int  _width,
const int  _n_sd_list[],
const int  _n_group,
const int  _n_sd_tot 
)
inline

print titles of class members using column style

print titles of class members in one line for column style

Parameters
[out]_foutstd::ostream output object
[in]_widthprint width
[in]_n_sd_listAR inner slowdown numbers per group (list)
[in]_n_grouptotal AR group number
[in]_n_sd_tottotal slowdown numbers
Here is the call graph for this function:

◆ printStepHist()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::printStepHist ( )
inline

print step histogram

Here is the call graph for this function:

◆ readGroupConfigureAscii()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::readGroupConfigureAscii ( std::istream &  _fin)
inline

Add group based on a configure file.

Parameters
[in]_finstd::istream IO for read File format: N_group, group_offset_index_lst[N_group number], group_member_particle_index[total group member number]
Here is the call graph for this function:

◆ reserveIntegratorMem()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::reserveIntegratorMem ( )
inline

reserve memory for system

The memory size depends in the particles and groups memory sizes, thus particles and groups are reserved first

Here is the call graph for this function:

◆ resetDEChangeBinaryInterrupt()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::resetDEChangeBinaryInterrupt ( )
inline

reset cumulative energy change due to interruption

◆ resetDEChangeCum()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::resetDEChangeCum ( )
inline

reset cumulative energy change

◆ resetDEChangeModifySingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::resetDEChangeModifySingle ( )
inline

reset cumulative energy change due to modification of one particle

◆ resetDESlowDownChangeBinaryInterrupt()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::resetDESlowDownChangeBinaryInterrupt ( )
inline

reset cumulative slowdown energy change due to interruption

◆ resetDESlowDownChangeCum()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::resetDESlowDownChangeCum ( )
inline

reset cumulative slowdown energy change due to slowdown change

◆ resetDESlowDownChangeModifySingle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::resetDESlowDownChangeModifySingle ( )
inline

reset cumulative slowdown energy change due to modification of one particle

◆ setTimeOffset()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::setTimeOffset ( const Float _time_offset)
inline

set time offset

◆ sortDtAndSelectActParticle()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::sortDtAndSelectActParticle ( )
inline

sort time step array and select active particles

Make sure time_next_ is updated already

Here is the call graph for this function:

◆ writeBackGroupMembers()

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
void H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::writeBackGroupMembers ( )
inline

write back group members to particles

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ ar_manager

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
AR::TimeTransformedSymplecticManager<TARacc>* H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::ar_manager

integration manager

◆ groups

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
COMM::List<ARSym> H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::groups

◆ info

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Tinfo H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::info

information of the system

◆ manager

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
HermiteManager<Tacc>* H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::manager

time step calculator

integration manager

◆ neighbors

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
COMM::List<Neighbor<Tparticle> > H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::neighbors

◆ particles

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
COMM::ParticleGroup<H4Ptcl, Tpcm> H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::particles

◆ perturber

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Tpert H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::perturber

◆ profile

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
Profile H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::profile

◆ step

template<class Tparticle , class Tpcm , class Tpert , class TARpert , class Tacc , class TARacc , class Tinfo >
BlockTimeStep4th H4::HermiteIntegrator< Tparticle, Tpcm, Tpert, TARpert, Tacc, TARacc, Tinfo >::step

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