SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
|
Go to the documentation of this file.
30 time_update_ =
Float(0.0);
31 kappa_ = kappa_org_ = kappa_max_ =
Float(1.0);
32 kappa_ref_ =
Float(1.0e-6);
43 ASSERT(_kappa_ref>0.0);
44 ASSERT(_timescale_max>0.0);
45 kappa_ref_ = _kappa_ref;
46 timescale_max_ = _timescale_max;
77 kappa_org_ = kappa_max_ = kappa_ =
Float(1.0);
82 if (
pert_out==0.0) kappa_org_ = kappa_max_;
84 kappa_ = std::min(kappa_org_, kappa_max_);
85 kappa_ = std::max(
Float(1.0), kappa_);
125 return timescale_max_;
132 fwrite(
this,
sizeof(*
this),1,_fout);
139 size_t rcount = fread(
this,
sizeof(*
this), 1, _fin);
141 std::cerr<<
"Error: Data reading fails! requiring data number is 1, only obtain "<<rcount<<
".\n";
159 _bk[1] = time_update_;
169 time_update_ = _bk[1];
179 void print(std::ostream & fout,
const int precision=15,
const int width=23) {
182 fout<<
"kappa= "<<std::setw(width)<<kappa_
183 <<
"kappa_org= "<<std::setw(width)<<kappa_org_
184 <<
"kappa_max= "<<std::setw(width)<<kappa_max_
185 <<
"kappa_ref= "<<std::setw(width)<<kappa_ref_;
194 _fout<<std::setw(_width)<<
"SD_factor"
195 <<std::setw(_width)<<
"SD_factor_org"
196 <<std::setw(_width)<<
"SD_factor_max";
205 _fout<<std::setw(_width)<<kappa_
206 <<std::setw(_width)<<kappa_org_
207 <<std::setw(_width)<<kappa_max_;
Float getTimescaleMax() const
Definition: slow_down.h:124
SlowDown()
defaulted constructor
Definition: slow_down.h:26
Float timescale
Definition: slow_down.h:22
Float getPertIn() const
Definition: slow_down.h:116
Float getPertOut() const
Definition: slow_down.h:120
Algorithmic regularization (time transformed explicit symplectic integrator) namespace.
Definition: force.h:5
Float getSlowDownFactorMax() const
Get slow-down fact maximum.
Definition: slow_down.h:112
void clear()
clear function
Definition: slow_down.h:29
const Float NUMERIC_FLOAT_MAX
Definition: Float.h:29
void readBinary(FILE *_fin)
read class data with BINARY format
Definition: slow_down.h:138
static void printColumnTitle(std::ostream &_fout, const int _width=20)
print titles of class members using column style
Definition: slow_down.h:193
void print(std::ostream &fout, const int precision=15, const int width=23)
print slowdown data
Definition: slow_down.h:179
Float pert_out
Definition: slow_down.h:21
Float getSlowDownFactor() const
Get slow-down factor.
Definition: slow_down.h:94
Float getUpdateTime() const
get update time for new slowdown factor
Definition: slow_down.h:55
Float calcSlowDownFactor()
calculate slowdown factor based on perturbation and inner acceleration
Definition: slow_down.h:74
int backup(Float *_bk)
backup real time and force ratio
Definition: slow_down.h:157
double Float
Definition: Float.h:25
void setUpdateTime(const Float _time)
set update time for new slowdown factor
Definition: slow_down.h:50
Float pert_in
Definition: slow_down.h:20
static int getBackupDataSize()
get backup data size
Definition: slow_down.h:149
int restore(Float *_bk)
restore real time and force ratio
Definition: slow_down.h:167
void initialSlowDownReference(const Float _kappa_ref, const Float _timescale_max)
initialize slow-down parameters
Definition: slow_down.h:42
Float getSlowDownFactorReference() const
Get sd reference factor.
Definition: slow_down.h:107
void increaseUpdateTimeOnePeriod()
advance update time by one period
Definition: slow_down.h:60
Float getSlowDownFactorOrigin() const
Get original slow-down factor.
Definition: slow_down.h:102
Slow-down parameter control class.
Definition: slow_down.h:11
void writeBinary(FILE *_fout)
write class data with BINARY format
Definition: slow_down.h:131
Float period
Definition: slow_down.h:23
void setSlowDownFactor(const Float _kappa)
manually set kappa
Definition: slow_down.h:65
void printColumn(std::ostream &_fout, const int _width=20)
print data of class members using column style
Definition: slow_down.h:204