24 #ifndef WORLD_H_INCLUDED 25 #define WORLD_H_INCLUDED 40 #include <boost/algorithm/string.hpp> 42 #include <Eigen/Sparse> 43 #include <Eigen/Eigenvalues> 45 #ifdef FFEA_PARALLEL_FUTURE 87 int init(
string FFEA_script_filename,
int frames_to_delete,
int mode,
bool writeEnergy);
90 int get_smallest_time_constants();
93 int lem(set<int> blob_indices,
int num_modes);
96 int dmm(set<int> blob_indices,
int num_modes);
99 int dmm_rp(set<int> blob_indices,
int num_modes);
105 int read_and_build_system(vector<string> script_vector);
108 int load_kinetic_maps(vector<string> map_fnames, vector<int> map_from, vector<int> map_to,
int blob_index);
111 int build_kinetic_identity_maps();
114 int load_kinetic_states(
string states_fname,
int blob_index);
117 int load_kinetic_rates(
string rates_fname,
int blob_index);
120 void print_kinetic_rates_to_screen(
int type);
123 void get_system_CoM(
vector3 *system_CoM);
126 void get_system_centroid(
vector3 *centroid);
129 void get_system_dimensions(
vector3 *dimenstion_vector);
132 int enm(
int *blob_index,
int num_modes);
215 scalar kineticenergy, strainenergy, springenergy, **springfieldenergy,
vdwenergy, preCompenergy;
277 int load_springs(
const char *fname);
279 void activate_springs();
283 scalar get_spring_field_energy(
int index0,
int index1);
286 int calculate_kinetic_rates();
289 int choose_new_kinetic_state(
int blob_index,
int *target);
292 int change_kinetic_state(
int blob_index,
int target_state);
294 int get_next_script_tag(FILE *in,
char *buf);
300 void make_trajectory_from_eigenvector(
string traj_out_fname,
int blob_index,
int mode_index,
Eigen_VectorX evec,
scalar step);
302 void print_evecs_to_file(
string fname,
Eigen_MatrixX ev,
int num_rows,
int num_modes);
306 void write_eig_to_files(
scalar *evals_ordered,
scalar **evecs_ordered,
int num_modes,
int num_nodes);
308 void write_output_header(FILE *fout,
string fname);
310 void print_trajectory_and_measurement_files(
int step,
scalar wtime);
311 void print_checkpoints();
312 void write_pre_print_to_trajfile(
int step);
315 int prebuild_nearest_neighbour_lookup_wrapper(
scalar cell_size);
316 #ifdef FFEA_PARALLEL_FUTURE 317 std::future<void> thread_writingTraj;
318 std::future<int> thread_updatingVdWLL;
319 std::future<int> thread_updatingPCLL;
320 bool updatingVdWLL();
321 bool updatingVdWLL_ready_to_swap();
322 int catch_thread_updatingVdWLL(
int step,
scalar wtime,
int where);
324 bool updatingPCLL_ready_to_swap();
325 int catch_thread_updatingPCLL(
int step,
scalar wtime,
int where);
328 void make_measurements();
330 void write_measurements_to_file(FILE *fout,
int step);
332 void write_detailed_measurements_to_file(FILE *fout);
334 void print_trajectory_conformation_changes(FILE *fout,
int step,
int *from_index,
int *to_index);
336 void print_kinetic_files(
int step);
338 void print_static_trajectory(
int step,
scalar wtime,
int blob_index);
341 void calc_blob_corr_matrix(
int num_blobs,
scalar *blob_corr);
345 int die_with_dignity(
int step,
scalar wtime);
KineticState ** kinetic_state
Kinetic State and Rate objects.
Definition: World.h:152
unsigned long ** Seeds
A pointer to an array of arrays, containing the seeds of the different RNGStreams.
Definition: World.h:176
BindingSite_matrix binding_matrix
Binding Interactions matrix.
Definition: World.h:260
Definition: BiCGSTAB_solver.h:34
scalar rmsd
Definition: World.h:224
scalar * blob_corr
Definition: World.h:343
scalar vdwenergy
Definition: World.h:215
scalar * work_vec
Definition: World.h:246
int num_seeds
The number of seeds stored in Seeds.
Definition: World.h:179
long long step_initial
Definition: World.h:275
vector3 box_dim
Definition: World.h:273
Definition: PreComp_solver.h:49
Eigen::MatrixXd Eigen_MatrixX
Definition: Blob.h:65
FFEA_input_reader * systemreader
Definition: World.h:211
Eigen::VectorXd Eigen_VectorX
Definition: Blob.h:66
NearestNeighbourLinkedListCube lookup
Data structure keeping track of which `cell' each face lies in (where the world has been discretised ...
Definition: World.h:191
Definition: SimulationParams.h:66
vector3 CoM
Definition: World.h:223
FILE * measurement_out
Output measurement file.
Definition: World.h:200
scalar *** kinetic_rate
Definition: World.h:153
int num_threads
How many threads are available for parallelisation.
Definition: World.h:170
Spring * spring_array
An array of springs which connect nodes if necessary.
Definition: World.h:158
Definition: KineticState.h:38
Definition: SparseMatrixFixedPattern.h:36
scalar * phi_Gamma
Vector of the electrostatic potential on each surface in entire system.
Definition: World.h:244
scalar *** kinetic_base_rate
Definition: World.h:154
SparseMatrixFixedPattern *** kinetic_map
Maps for kinetic switching of conformations.
Definition: World.h:147
Blob ** active_blob_array
Which conformation is active in each blob.
Definition: World.h:144
RngStream * rng
An array of pointers to random number generators (for use in parallel)
Definition: World.h:173
PreComp_solver pc_solver
PreComputed potentials solver.
Definition: World.h:270
SimulationParams params
Parameters being used for this simulation.
Definition: World.h:185
Definition: RngStream.h:43
FILE * kinetics_out
Output kinetics file.
Definition: World.h:197
Definition: BEM_Poisson_Boltzmann.h:42
RngStream * kinetic_rng
An array of pointers to random number generators for use in kinetics.
Definition: World.h:182
FILE * checkpoint_out
Output Checkpoint file
Definition: World.h:228
int total_num_surface_faces
Number of surface faces in entire system.
Definition: World.h:239
Blob ** blob_array
2-D Array of Blob objects (blob i, conformation j)
Definition: World.h:141
Definition: VdW_solver.h:39
Definition: SimulationParams.h:75
FILE * detailed_meas_out
Definition: World.h:204
int num_springs
And how many springs are there?
Definition: World.h:161
FILE * trajectory_out
Output trajectory file.
Definition: World.h:194
SparseMatrixFixedPattern **** kinetic_return_map
Definition: World.h:148
PreComp_params pc_params
stores info within the <precomp> block at the .ffea file.
Definition: World.h:266
FFEA_input_reader * ffeareader
Definition: World.h:210
BiCGSTAB_solver nonsymmetric_solver
Biconjugate gradient stabilised solver for nonsymmetric matrices.
Definition: World.h:251
LJ_matrix lj_matrix
LJ parameters matrix.
Definition: World.h:257
FILE * trajbeads_out
Output file for the trajectory beads. Completely optional.
Definition: World.h:207
vector3 L
Definition: World.h:219
int num_binding_sites
How many kinetic binding sites are there?
Definition: World.h:164
VdW_solver * vdw_solver
Definition: World.h:254
Definition: NearestNeighbourLinkedListCube.h:34
scalar * J_Gamma
Definition: World.h:245
bool mass_in_system
Check whether mass is present anywhere, to determine whether or not to write kinetic energies to file...
Definition: World.h:167
Definition: mat_vec_types.h:90
Definition: LJ_matrix.h:46
double scalar
Definition: mat_vec_types.h:36
bool writeDetailed
Output detailed measurements file. May be unneccesary.
Definition: World.h:203
BEM_Poisson_Boltzmann PB_solver
BEM solver for the exterior electrostatics.
Definition: World.h:236
Definition: BindingSite.h:82