SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
AR::SlowDown Class Reference

Slow-down parameter control class. More...

#include <slow_down.h>

Public Member Functions

 SlowDown ()
 defaulted constructor More...
 
void clear ()
 clear function More...
 
void initialSlowDownReference (const Float _kappa_ref, const Float _timescale_max)
 initialize slow-down parameters More...
 
void setUpdateTime (const Float _time)
 set update time for new slowdown factor More...
 
Float getUpdateTime () const
 get update time for new slowdown factor More...
 
void increaseUpdateTimeOnePeriod ()
 advance update time by one period More...
 
void setSlowDownFactor (const Float _kappa)
 manually set kappa More...
 
Float calcSlowDownFactor ()
 calculate slowdown factor based on perturbation and inner acceleration More...
 
Float getSlowDownFactor () const
 Get slow-down factor. More...
 
Float getSlowDownFactorOrigin () const
 Get original slow-down factor. More...
 
Float getSlowDownFactorReference () const
 Get sd reference factor. More...
 
Float getSlowDownFactorMax () const
 Get slow-down fact maximum. More...
 
Float getPertIn () const
 
Float getPertOut () const
 
Float getTimescaleMax () const
 
void writeBinary (FILE *_fout)
 write class data with BINARY format More...
 
void readBinary (FILE *_fin)
 read class data with BINARY format More...
 
int backup (Float *_bk)
 backup real time and force ratio More...
 
int restore (Float *_bk)
 restore real time and force ratio More...
 
void print (std::ostream &fout, const int precision=15, const int width=23)
 print slowdown data More...
 
void printColumn (std::ostream &_fout, const int _width=20)
 print data of class members using column style More...
 

Static Public Member Functions

static int getBackupDataSize ()
 get backup data size More...
 
static void printColumnTitle (std::ostream &_fout, const int _width=20)
 print titles of class members using column style More...
 

Public Attributes

Float pert_in
 
Float pert_out
 
Float timescale
 
Float period
 

Detailed Description

Slow-down parameter control class.

Determine the slow-down factor due to the perturbation and internal force \( \kappa = k_0 / [F_{pert,max}/F_{inner}] \)

Constructor & Destructor Documentation

◆ SlowDown()

AR::SlowDown::SlowDown ( )
inline

defaulted constructor

Member Function Documentation

◆ backup()

int AR::SlowDown::backup ( Float _bk)
inline

backup real time and force ratio

Parameters
[in]_bkbackup data array, should be size of getBackupDataSize() (2)
Returns
backup array size

◆ calcSlowDownFactor()

Float AR::SlowDown::calcSlowDownFactor ( )
inline

calculate slowdown factor based on perturbation and inner acceleration

Here is the caller graph for this function:

◆ clear()

void AR::SlowDown::clear ( )
inline

clear function

◆ getBackupDataSize()

static int AR::SlowDown::getBackupDataSize ( )
inlinestatic

get backup data size

Returns
the data array size for backupSlowDownFactorAndTimeReal()

◆ getPertIn()

Float AR::SlowDown::getPertIn ( ) const
inline

◆ getPertOut()

Float AR::SlowDown::getPertOut ( ) const
inline

◆ getSlowDownFactor()

Float AR::SlowDown::getSlowDownFactor ( ) const
inline

Get slow-down factor.

Returns
get adjusted kappa by keeping phase corrected

◆ getSlowDownFactorMax()

Float AR::SlowDown::getSlowDownFactorMax ( ) const
inline

Get slow-down fact maximum.

◆ getSlowDownFactorOrigin()

Float AR::SlowDown::getSlowDownFactorOrigin ( ) const
inline

Get original slow-down factor.

Returns
kappa_origin
Here is the caller graph for this function:

◆ getSlowDownFactorReference()

Float AR::SlowDown::getSlowDownFactorReference ( ) const
inline

Get sd reference factor.

◆ getTimescaleMax()

Float AR::SlowDown::getTimescaleMax ( ) const
inline

◆ getUpdateTime()

Float AR::SlowDown::getUpdateTime ( ) const
inline

get update time for new slowdown factor

◆ increaseUpdateTimeOnePeriod()

void AR::SlowDown::increaseUpdateTimeOnePeriod ( )
inline

advance update time by one period

◆ initialSlowDownReference()

void AR::SlowDown::initialSlowDownReference ( const Float  _kappa_ref,
const Float  _timescale_max 
)
inline

initialize slow-down parameters

Set slow-down parameters, slow-down method will be switched on

Parameters
[in]_kappa_refreference kappa factor; slow-down factor kappa = max(1,kref/perturbation_factor)
[in]_timescale_maxmaximum timescale
Here is the caller graph for this function:

◆ print()

void AR::SlowDown::print ( std::ostream &  fout,
const int  precision = 15,
const int  width = 23 
)
inline

print slowdown data

Print slowdown data

Parameters
[in]foutofstream for printing
[in]precisionprinted precision for one variable
[in]widthprinting width for one variable

◆ printColumn()

void AR::SlowDown::printColumn ( std::ostream &  _fout,
const int  _width = 20 
)
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 (defaulted 20)
Here is the caller graph for this function:

◆ printColumnTitle()

static void AR::SlowDown::printColumnTitle ( std::ostream &  _fout,
const int  _width = 20 
)
inlinestatic

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 (defaulted 20)
Here is the caller graph for this function:

◆ readBinary()

void AR::SlowDown::readBinary ( FILE *  _fin)
inline

read class data with BINARY format

Parameters
[in]_finfile IO for read

◆ restore()

int AR::SlowDown::restore ( Float _bk)
inline

restore real time and force ratio

Parameters
[in]_bkrestore data array[3]
Returns
backup array size

◆ setSlowDownFactor()

void AR::SlowDown::setSlowDownFactor ( const Float  _kappa)
inline

manually set kappa

◆ setUpdateTime()

void AR::SlowDown::setUpdateTime ( const Float  _time)
inline

set update time for new slowdown factor

◆ writeBinary()

void AR::SlowDown::writeBinary ( FILE *  _fout)
inline

write class data with BINARY format

Parameters
[in]_foutfile IO for write

Member Data Documentation

◆ period

Float AR::SlowDown::period

◆ pert_in

Float AR::SlowDown::pert_in

◆ pert_out

Float AR::SlowDown::pert_out

◆ timescale

Float AR::SlowDown::timescale

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