PeTar
N-body code for collisional gravitational systems
|
Go to the documentation of this file.
2 #include<particle_simulator.hpp>
72 void print(std::ostream & _fout)
const{
87 _fout<<std::setw(_width)<<
"r_search"
88 <<std::setw(_width)<<
"id";
100 int counter = _counter;
103 _fout<<std::setw(_offset)<<
" "<<counter<<
". r_search: neighbor searching radius (0.0)\n";
105 _fout<<std::setw(_offset)<<
" "<<counter<<
". id: identification of particle, should be a positive unique value (>0)\n";
119 <<std::setw(_width)<<
id;
130 template <
class Tpcm>
134 <<std::setw(_width)<<
id;
144 #ifdef GROUP_DATA_WRITE_ARTIFICIAL
145 fprintf(_fout,
"%26.17e %lld ",
146 this->r_search, this->
id);
149 fprintf(_fout,
"%26.17e %lld %lld %lld",
150 this->r_search, this->
id, this->group_data.
data_int64.
data1, this->group_data.data_int64.data2);
160 fwrite(&(this->r_search),
sizeof(
PS::F64), 4, _fout);
170 #ifdef GROUP_DATA_WRITE_ARTIFICIAL
171 PS::S64 rcount=fscanf(_fin,
"%lf %lld ",
172 &this->r_search, &this->
id);
174 std::cerr<<
"Error: Ptcl data reading fails! requiring data number is 2, only obtain "<<rcount<<
".\n";
175 std::cerr<<
"Check your input data, whether the consistent features (interrupt mode and external mode) are used in configuring petar and the data generation\n";
180 PS::S64 rcount=fscanf(_fin,
"%lf %lld %lld %lld",
181 &this->r_search, &this->
id, &this->group_data.
data_int64.
data1, &this->group_data.data_int64.data2);
183 std::cerr<<
"Error: Ptcl data reading fails! requiring data number is 4, only obtain "<<rcount<<
".\n";
184 std::cerr<<
"Check your input data, whether the consistent features (interrupt mode and external mode) are used in configuring petar and the data generation\n";
196 size_t rcount = fread(&(this->r_search),
sizeof(
PS::F64), 4, _fin);
198 std::cerr<<
"Error: Ptcl data reading fails! requiring data number is 4, only obtain "<<rcount<<
".\n";
199 std::cerr<<
"Check your input data, whether the consistent features (interrupt mode and external mode) are used in configuring petar and the data generation\n";
208 #ifdef ARTIFICIAL_PARTICLE_DEBUG
216 #ifdef ARTIFICIAL_PARTICLE_DEBUG
220 if (status==-PS::LARGE_FLOAT)
return -1;
void DataCopy(const Tptcl &_p)
Definition: ptcl.hpp:58
struct GroupDataDeliver::@4 cm
Ptcl(const Tptcl &_p)
Definition: ptcl.hpp:52
void setParticleCMAddress(const PS::S64 _adr)
set status to c.m. particle address
Definition: ptcl.hpp:207
void writeBinary(FILE *fp) const
write class data with BINARY format
Definition: particle_base.hpp:178
Basic particle class.
Definition: particle_base.hpp:20
static GroupDataMode group_data_mode
Definition: ptcl.hpp:47
static PS::F64 mean_mass_inv
Definition: ptcl.hpp:45
static void printColumnTitle(std::ostream &_fout, const int _width=20)
print titles of class members using column style
Definition: particle_base.hpp:217
void readBinary(FILE *fp)
read class data with BINARY format
Definition: particle_base.hpp:186
void writeAscii(FILE *_fout) const
write class data with ASCII format
Definition: artificial_particles.hpp:188
static int printTitleWithMeaning(std::ostream &_fout, const int _counter=0, const int _offset=0)
print column title with meaning (each line for one column)
Definition: changeover.hpp:119
static int printTitleWithMeaning(std::ostream &_fout, const int _counter=0, const int _offset=0)
print column title with meaning (each line for one column)
Definition: ptcl.hpp:99
group data delivery, used for two purpose
Definition: ptcl.hpp:17
GroupDataDeliver(const GroupDataDeliver &_data)
Definition: ptcl.hpp:24
double F64
Definition: pikg_vector.hpp:17
void printColumn(std::ostream &_fout, const int _width=20) const
print data of class members using column style
Definition: particle_base.hpp:274
void calcRSearch(const PS::F64 _dt_tree)
calculate new rsearch
Definition: ptcl.hpp:227
PS::F64 getRNeighbor() const
Get neighbor distance criterion.
Definition: ptcl.hpp:241
void writeBinary(FILE *_fout) const
write class data with BINARY format
Definition: ptcl.hpp:158
PS::F32vec vel
Definition: ptcl.hpp:19
static void printColumnTitle(std::ostream &_fout, const int _width=20)
print titles of class members using column style
Definition: ptcl.hpp:85
Particle class.
Definition: ptcl.hpp:36
void writeBinary(FILE *_fp) const
write class data to file with binary format
Definition: changeover.hpp:141
int64_t S64
Definition: pikg_vector.hpp:23
void printColumnWithOffset(Tpcm &_pcm, std::ostream &_fout, const int _width=20) const
print data of class members with pos and vel offset using column style
Definition: particle_base.hpp:301
PS::F64vec vel
Definition: particle_base.hpp:25
const PS::F64 SAFTY_FACTOR_FOR_SEARCH
Definition: ptcl.hpp:8
Ptcl & operator=(const Tptcl &_p)
Definition: ptcl.hpp:67
Vector3< F32 > F32vec
Definition: pikg_vector.hpp:168
static PS::F64 r_search_min
Definition: ptcl.hpp:43
static void printColumnTitle(std::ostream &_fout, const int _width=20)
print titles of class members using column style
Definition: changeover.hpp:108
PS::F64 getStatus() const
get status
Definition: artificial_particles.hpp:135
GroupDataMode
group data deliver mode
Definition: ptcl.hpp:33
GroupDataDeliver & operator=(const GroupDataDeliver &_data)
Definition: ptcl.hpp:26
void printColumn(std::ostream &_fout, const int _width=20)
print data of class members using column style
Definition: artificial_particles.hpp:180
void printColumn(std::ostream &_fout, const int _width=20)
print data of class members using column style
Definition: changeover.hpp:133
PS::F64 r_search
Definition: ptcl.hpp:38
Changeover function class.
Definition: changeover.hpp:7
void writeAscii(FILE *_fout) const
write class data with ASCII format
Definition: ptcl.hpp:142
ChangeOver changeover
Definition: ptcl.hpp:41
struct GroupDataDeliver::@5 data_int64
GroupDataDeliver()
Definition: ptcl.hpp:22
void writeAscii(FILE *_fp) const
write class data to file with binary format
Definition: changeover.hpp:160
PS::F64 getRGroupCandidate() const
Get group candidate distance criterion.
Definition: ptcl.hpp:249
void print(std::ostream &_fout) const
print parameters
Definition: artificial_particles.hpp:224
void DataCopy(const Tp &din)
Copy from another ParticleBase.
Definition: particle_base.hpp:327
void readBinary(FILE *_fin)
read class data to file with binary format
Definition: changeover.hpp:148
const Float & getRin() const
get r_in
Definition: changeover.hpp:87
void printColumn(std::ostream &_fout, const int _width=20)
print data of class members using column style
Definition: ptcl.hpp:116
void printColumnWithOffset(Tpcm &_pcm, std::ostream &_fout, const int _width=20)
print data of class members with pos and vel offset using column style
Definition: ptcl.hpp:131
const Float & getRout() const
get r_out
Definition: changeover.hpp:94
static int printTitleWithMeaning(std::ostream &_fout, const int _counter=0, const int _offset=0)
print column title with meaning (each line for one column)
Definition: artificial_particles.hpp:166
PS::F32 mass
Definition: ptcl.hpp:19
T max(const Vector3< T > &v)
Definition: pikg_vector.hpp:143
void print(std::ostream &fout) const
for print debugging
Definition: particle_base.hpp:196
void readAscii(FILE *_fin)
read class data with ASCII format
Definition: artificial_particles.hpp:203
void readAscii(FILE *_fin)
read class data with ASCII format
Definition: ptcl.hpp:168
ArtificialParticleInformation artificial
Definition: ptcl.hpp:18
void print(std::ostream &_fout) const
Definition: changeover.hpp:98
bool isMember() const
return whether the particle type is member
Definition: artificial_particles.hpp:41
Ptcl()
Definition: ptcl.hpp:49
PS::F64 getRGroup() const
Get group distance criterion.
Definition: ptcl.hpp:254
void readAscii(FILE *_fin)
read class data to file with binary format
Definition: changeover.hpp:168
Ptcl(const Tptcl &_p, const PS::F64 _r_search, const PS::S64 _id, const GroupDataDeliver &_group_data, const ChangeOver &_co)
Definition: ptcl.hpp:55
static void printColumnTitle(std::ostream &_fout, const int _width=20)
print titles of class members using column style
Definition: artificial_particles.hpp:155
PS::S64 data2
Definition: ptcl.hpp:20
void writeAscii(FILE *fp) const
write class data with ASCII format
Definition: particle_base.hpp:150
static PS::F64 search_factor
Definition: ptcl.hpp:42
static int printTitleWithMeaning(std::ostream &_fout, const int _counter=0, const int _offset=0)
print column title with meaning (each line for one column)
Definition: particle_base.hpp:243
PS::S64 id
Definition: ptcl.hpp:39
PS::S64 getParticleCMAddress() const
get c.m. particle address
Definition: ptcl.hpp:215
static PS::F64 r_group_crit_ratio
Definition: ptcl.hpp:44
GroupDataDeliver group_data
Definition: ptcl.hpp:40
void readBinary(FILE *_fin)
read class data with BINARY format
Definition: ptcl.hpp:194
PS::S64 data1
Definition: ptcl.hpp:20
void setStatus(const PS::F64 _status)
set status
Definition: artificial_particles.hpp:127
float F32
Definition: pikg_vector.hpp:18
void readAscii(FILE *fp)
read class data with ASCII format
Definition: particle_base.hpp:161
class to store necessary information for using artificial particles
Definition: artificial_particles.hpp:20
void print(std::ostream &_fout) const
Definition: ptcl.hpp:72