00001
00005 #ifndef ALLVARS_H
00006 #include "allvars.h"
00007 #endif
00008
00009 #ifdef HAVE_HDF5
00010 #include <hdf5.h>
00011 #endif
00012
00013 void advance_and_find_timesteps(void);
00014 void allocate_commbuffers(void);
00015 void allocate_memory(void);
00016 void begrun(void);
00017 int blockpresent(enum iofields blocknr);
00018 void catch_abort(int sig);
00019 void catch_fatal(int sig);
00020 void check_omega(void);
00021 void close_outputfiles(void);
00022 int compare_key(const void *a, const void *b);
00023 void compute_accelerations(int mode);
00024 void compute_global_quantities_of_system(void);
00025 void compute_potential(void);
00026 int dens_compare_key(const void *a, const void *b);
00027 void density(void);
00028 void density_decouple(void);
00029 void density_evaluate(int i, int mode);
00030
00031 void distribute_file(int nfiles, int firstfile, int firsttask, int lasttask, int *filenr, int *master, int *last);
00032 double dmax(double, double);
00033 double dmin(double, double);
00034 void do_box_wrapping(void);
00035
00036 void domain_Decomposition(void);
00037 int domain_compare_key(const void *a, const void *b);
00038 int domain_compare_key(const void *a, const void *b);
00039 int domain_compare_toplist(const void *a, const void *b);
00040 void domain_countToGo(void);
00041 void domain_decompose(void);
00042 void domain_determineTopTree(void);
00043 void domain_exchangeParticles(int partner, int sphflag, int send_count, int recv_count);
00044 void domain_findExchangeNumbers(int task, int partner, int sphflag, int *send, int *recv);
00045 void domain_findExtent(void);
00046 int domain_findSplit(int cpustart, int ncpu, int first, int last);
00047 void domain_shiftSplit(void);
00048 void domain_sumCost(void);
00049 void domain_topsplit(int node, peanokey startkey);
00050 void domain_topsplit_local(int node, peanokey startkey);
00051
00052 double drift_integ(double a, void *param);
00053 void dump_particles(void);
00054 void empty_read_buffer(enum iofields blocknr, int offset, int pc, int type);
00055 void endrun(int);
00056 void energy_statistics(void);
00057 void every_timestep_stuff(void);
00058
00059 void ewald_corr(double dx, double dy, double dz, double *fper);
00060 void ewald_force(int ii, int jj, int kk, double x[3], double force[3]);
00061 void ewald_init(void);
00062 double ewald_pot_corr(double dx, double dy, double dz);
00063 double ewald_psi(double x[3]);
00064
00065 void fill_Tab_IO_Labels(void);
00066 void fill_write_buffer(enum iofields blocknr, int *pindex, int pc, int type);
00067 void find_dt_displacement_constraint(double hfac);
00068 int find_files(char *fname);
00069 int find_next_outputtime(int time);
00070 void find_next_sync_point_and_drift(void);
00071
00072 void force_create_empty_nodes(int no, int topnode, int bits, int x, int y, int z, int *nodecount, int *nextfree);
00073 void force_exchange_pseudodata(void);
00074 void force_flag_localnodes(void);
00075 void force_insert_pseudo_particles(void);
00076 void force_setupnonrecursive(int no);
00077 void force_treeallocate(int maxnodes, int maxpart);
00078 int force_treebuild(int npart);
00079 int force_treebuild_single(int npart);
00080 int force_treeevaluate(int target, int mode, double *ewaldcountsum);
00081 int force_treeevaluate_direct(int target, int mode);
00082 int force_treeevaluate_ewald_correction(int target, int mode, double pos_x, double pos_y, double pos_z, double aold);
00083 void force_treeevaluate_potential(int target, int type);
00084 void force_treeevaluate_potential_shortrange(int target, int mode);
00085 int force_treeevaluate_shortrange(int target, int mode);
00086 void force_treefree(void);
00087 void force_treeupdate_pseudos(void);
00088 void force_update_hmax(void);
00089 void force_update_len(void);
00090 void force_update_node(int no, int flag);
00091 void force_update_node_hmax_local(void);
00092 void force_update_node_hmax_toptree(void);
00093 void force_update_node_len_local(void);
00094 void force_update_node_len_toptree(void);
00095 void force_update_node_recursive(int no, int sib, int father);
00096 void force_update_pseudoparticles(void);
00097 void force_update_size_of_parent_node(int no);
00098
00099 void free_memory(void);
00100
00101 int get_bytes_per_blockelement(enum iofields blocknr);
00102 void get_dataset_name(enum iofields blocknr, char *buf);
00103 int get_datatype_in_block(enum iofields blocknr);
00104 double get_drift_factor(int time0, int time1);
00105 double get_gravkick_factor(int time0, int time1);
00106 double get_hydrokick_factor(int time0, int time1);
00107 int get_particles_in_block(enum iofields blocknr, int *typelist);
00108 double get_random_number(int id);
00109 int get_timestep(int p, double *a, int flag);
00110 int get_values_per_blockelement(enum iofields blocknr);
00111
00112 int grav_tree_compare_key(const void *a, const void *b);
00113 void gravity_forcetest(void);
00114 void gravity_tree(void);
00115 void gravity_tree_shortrange(void);
00116 double gravkick_integ(double a, void *param);
00117
00118 int hydro_compare_key(const void *a, const void *b);
00119 void hydro_evaluate(int target, int mode);
00120 void hydro_force(void);
00121 double hydrokick_integ(double a, void *param);
00122
00123 int imax(int, int);
00124 int imin(int, int);
00125
00126 void init(void);
00127 void init_drift_table(void);
00128 void init_peano_map(void);
00129
00130 void long_range_force(void);
00131 void long_range_init(void);
00132 void long_range_init_regionsize(void);
00133 void move_particles(int time0, int time1);
00134 size_t my_fread(void *ptr, size_t size, size_t nmemb, FILE * stream);
00135 size_t my_fwrite(void *ptr, size_t size, size_t nmemb, FILE * stream);
00136
00137 int ngb_clear_buf(FLOAT searchcenter[3], FLOAT hguess, int numngb);
00138 void ngb_treeallocate(int npart);
00139 void ngb_treebuild(void);
00140 int ngb_treefind_pairs(FLOAT searchcenter[3], FLOAT hsml, int *startnode);
00141 int ngb_treefind_variable(FLOAT searchcenter[3], FLOAT hguess, int *startnode);
00142 void ngb_treefree(void);
00143 void ngb_treesearch(int);
00144 void ngb_treesearch_pairs(int);
00145 void ngb_update_nodes(void);
00146
00147 void open_outputfiles(void);
00148
00149 peanokey peano_hilbert_key(int x, int y, int z, int bits);
00150 void peano_hilbert_order(void);
00151
00152 void pm_init_nonperiodic(void);
00153 void pm_init_nonperiodic_allocate(int dimprod);
00154 void pm_init_nonperiodic_free(void);
00155 void pm_init_periodic(void);
00156 void pm_init_periodic_allocate(int dimprod);
00157 void pm_init_periodic_free(void);
00158 void pm_init_regionsize(void);
00159 void pm_setup_nonperiodic_kernel(void);
00160 int pmforce_nonperiodic(int grnr);
00161 void pmforce_periodic(void);
00162 void pmpotential_nonperiodic(int grnr);
00163 void pmpotential_periodic(void);
00164
00165 double pow(double, double);
00166
00167 void read_file(char *fname, int readTask, int lastTask);
00168 void read_header_attributes_in_hdf5(char *fname);
00169 void read_ic(char *fname);
00170 int read_outputlist(char *fname);
00171 void read_parameter_file(char *fname);
00172 void readjust_timebase(double TimeMax_old, double TimeMax_new);
00173
00174 void reorder_gas(void);
00175 void reorder_particles(void);
00176 void restart(int mod);
00177 void run(void);
00178 void savepositions(int num);
00179
00180 double second(void);
00181
00182 void seed_glass(void);
00183 void set_random_numbers(void);
00184 void set_softenings(void);
00185 void set_units(void);
00186
00187 void setup_smoothinglengths(void);
00188 void statistics(void);
00189 void terminate_processes(void);
00190 double timediff(double t0, double t1);
00191
00192 #ifdef HAVE_HDF5
00193 void write_header_attributes_in_hdf5(hid_t handle);
00194 #endif
00195 void write_file(char *fname, int readTask, int lastTask);
00196 void write_pid_file(void);
00197