SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
|
Go to the documentation of this file.
12 template <
class Tparticle,
class Tpcm>
16 bool origin_frame_flag;
31 origin_frame_flag =
true;
40 origin_frame_flag = _particle_group.origin_frame_flag;
41 cm = _particle_group.
cm;
103 _fout<<std::setw(_width)<<
"N";
123 fwrite(&num,
sizeof(
int), 1, _fout);
125 fwrite(&origin_frame_flag,
sizeof(
bool), 1, _fout);
126 cm.writeBinary(_fout);
157 int rn = fread(&n_new,
sizeof(
int),1, _fin);
159 std::cerr<<
"Error: cannot read particle number!\n";
163 std::cerr<<
"Error: reading particle number "<<n_new<<
"<=0!\n";
169 rn = fread(&origin_frame_flag,
sizeof(
bool), 1, _fin);
171 std::cerr<<
"Error: cannot read origin_frame_flag!\n";
190 std::cerr<<
"Error: reading particle number "<<n_new<<
"<=0!\n";
194 for (
int i=0; i<n_new; i++) {
206 if (origin_frame_flag) {
219 origin_frame_flag =
false;
222 std::cerr<<
"Warning: particles are already in the center-of-mass frame!\n";
231 if (origin_frame_flag) {
232 std::cerr<<
"Warning: particles are already in original frame!\n";
247 origin_frame_flag =
true;
255 rc[0] = rc[1] = rc[2] = 0.0;
256 vc[0] = vc[1] = vc[2] = 0.0;
282 return origin_frame_flag;
void shiftToCenterOfMassFrame()
shift particle to their c.m. frame
Definition: particle_group.h:205
ParticleGroup()
center of mass particle for the group
Definition: particle_group.h:24
Definition: binary_tree.h:8
void printColumnTitle(std::ostream &_fout, const int _width=20)
print titles of class members using column style
Definition: particle_group.h:102
void writeBinary(FILE *_fout)
write particle data to files (notice original address is lost)
Definition: particle_group.h:121
Tparticle * data_
member array to store the data, or a link to existed member array (not allocated)
Definition: list.h:23
ParticleGroup & operator=(const ParticleGroup &_particle_group)
operator = is copy
Definition: particle_group.h:37
int backupParticlePosVel(Float *_bk)
Backup member particle position and velocity.
Definition: particle_group.h:63
bool isOriginFrame() const
return true if the system is the in their origin frame
Definition: particle_group.h:281
int nmax_
maximum number of members allocated in memory
Definition: list.h:22
void clear()
Clear function.
Definition: list.h:76
void clear()
Clear function.
Definition: particle_group.h:29
int getBackupDataSize() const
get backup data size
Definition: particle_group.h:55
ListMode mode_
mode indicator
Definition: list.h:25
void readMemberAscii(std::istream &_fin)
Read particle data from file.
Definition: particle_group.h:182
void writeMemberAscii(std::ostream &_fout) const
write particle data to files (notice original address is lost)
Definition: particle_group.h:142
void calcCenterOfMass()
calculate center-of-mass
Definition: particle_group.h:252
Particle group class to store and manage a group of particle.
Definition: particle_group.h:13
Tpcm cm
Definition: particle_group.h:19
void shiftToOriginFrame()
shift particle to their original frame
Definition: particle_group.h:230
double Float
Definition: Float.h:25
int num_
number of current members in the list
Definition: list.h:21
~ParticleGroup()
destructor
Definition: particle_group.h:48
int restoreParticlePosVel(Float *_bk)
restore member particle position and velocity
Definition: particle_group.h:82
list class to store and manage a group of member
Definition: list.h:19
void printColumn(std::ostream &_fout, const int _width=20)
print data of class members using column style
Definition: particle_group.h:112
void reserveMem(const int _nmax)
Memory allocation for storing members.
Definition: list.h:48
void readBinary(FILE *_fin)
Read particle data from file.
Definition: particle_group.h:152