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 91 int init(
string FFEA_script_filename,
int frames_to_delete,
int mode,
bool writeEnergy);
94 int get_smallest_time_constants();
97 int lem(set<int> blob_indices,
int num_modes);
100 int dmm(set<int> blob_indices,
int num_modes);
103 int dmm_rp(set<int> blob_indices,
int num_modes);
109 int read_and_build_system(vector<string> script_vector);
112 int load_kinetic_maps(vector<string> map_fnames, vector<int> map_from, vector<int> map_to,
int blob_index);
115 int build_kinetic_identity_maps();
118 int load_kinetic_states(
string states_fname,
int blob_index);
121 int load_kinetic_rates(
string rates_fname,
int blob_index);
124 void print_kinetic_rates_to_screen(
int type);
127 void get_system_CoM(
vector3 *system_CoM);
130 void get_system_centroid(
vector3 *centroid);
133 void get_system_dimensions(
vector3 *dimenstion_vector);
136 int enm(
int *blob_index,
int num_modes);
287 int load_springs(
const char *fname);
293 void activate_springs();
297 scalar get_spring_field_energy(
int index0,
int index1);
300 int calculate_kinetic_rates();
303 int choose_new_kinetic_state(
int blob_index,
int *target);
306 int change_kinetic_state(
int blob_index,
int target_state);
308 int get_next_script_tag(FILE *in,
char *buf);
314 void make_trajectory_from_eigenvector(
string traj_out_fname,
int blob_index,
int mode_index,
Eigen_VectorX evec,
scalar step);
316 void print_evecs_to_file(
string fname,
Eigen_MatrixX ev,
int num_rows,
int num_modes);
320 void write_eig_to_files(
scalar *evals_ordered,
scalar **evecs_ordered,
int num_modes,
int num_nodes);
322 void write_output_header(FILE *fout,
string fname);
324 void print_trajectory_and_measurement_files(
int step,
scalar wtime);
325 void print_checkpoints();
326 void write_pre_print_to_trajfile(
int step);
329 int prebuild_nearest_neighbour_lookup_wrapper(
scalar cell_size);
330 #ifdef FFEA_PARALLEL_FUTURE 331 std::future<void> thread_writingTraj;
332 std::future<int> thread_updatingVdWLL;
333 std::future<int> thread_updatingPCLL;
334 bool updatingVdWLL();
335 bool updatingVdWLL_ready_to_swap();
336 int catch_thread_updatingVdWLL(
int step,
scalar wtime,
int where);
338 bool updatingPCLL_ready_to_swap();
339 int catch_thread_updatingPCLL(
int step,
scalar wtime,
int where);
342 void make_measurements();
344 void write_measurements_to_file(FILE *fout,
int step);
346 void write_detailed_measurements_to_file(FILE *fout);
348 void print_trajectory_conformation_changes(FILE *fout,
int step,
int *from_index,
int *to_index);
350 void print_kinetic_files(
int step);
352 void print_static_trajectory(
int step,
scalar wtime,
int blob_index);
355 void calc_blob_corr_matrix(
int num_blobs,
scalar *blob_corr);
359 int die_with_dignity(
int step,
scalar wtime);
KineticState ** kinetic_state
Kinetic State and Rate objects.
Definition: World.h:162
unsigned long ** Seeds
A pointer to an array of arrays, containing the seeds of the different RNGStreams.
Definition: World.h:186
BindingSite_matrix binding_matrix
Binding Interactions matrix.
Definition: World.h:270
Definition: BiCGSTAB_solver.h:34
scalar rmsd
Definition: World.h:234
rod::Rod_blob_interface ** rod_blob_interface_array
1-D array containing pointers to all rod-blob interfaces
Definition: World.h:154
scalar * blob_corr
Definition: World.h:357
scalar * work_vec
Definition: World.h:256
SSINT_matrix ssint_matrix
LJ parameters matrix.
Definition: World.h:267
int num_seeds
The number of seeds stored in Seeds.
Definition: World.h:189
long long step_initial
Definition: World.h:285
vector3 box_dim
Definition: World.h:283
Definition: rod_structure.h:46
Definition: PreComp_solver.h:49
Eigen::MatrixXd Eigen_MatrixX
Definition: Blob.h:65
FFEA_input_reader * systemreader
Definition: World.h:221
Eigen::VectorXd Eigen_VectorX
Definition: Blob.h:66
Definition: rod_blob_interface.h:65
Definition: LJ_matrix.h:59
NearestNeighbourLinkedListCube lookup
Data structure keeping track of which `cell' each face lies in (where the world has been discretised ...
Definition: World.h:201
Definition: SimulationParams.h:66
vector3 CoM
Definition: World.h:233
FILE * measurement_out
Output measurement file.
Definition: World.h:210
static const int y
Definition: rod_math_v9.h:53
static const int x
Definition: rod_math_v9.h:52
scalar *** kinetic_rate
Definition: World.h:163
scalar strainenergy
Definition: World.h:225
int num_threads
How many threads are available for parallelisation.
Definition: World.h:180
Spring * spring_array
An array of springs which connect nodes if necessary.
Definition: World.h:168
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:254
scalar *** kinetic_base_rate
Definition: World.h:164
SparseMatrixFixedPattern *** kinetic_map
Maps for kinetic switching of conformations.
Definition: World.h:157
Blob ** active_blob_array
Which conformation is active in each blob.
Definition: World.h:148
RngStream * rng
An array of pointers to random number generators (for use in parallel)
Definition: World.h:183
PreComp_solver pc_solver
PreComputed potentials solver.
Definition: World.h:280
SimulationParams params
Parameters being used for this simulation.
Definition: World.h:195
Definition: RngStream.h:43
FILE * kinetics_out
Output kinetics file.
Definition: World.h:207
rod::Rod ** rod_array
1-D array containing pointers to all rod objects
Definition: World.h:151
Definition: BEM_Poisson_Boltzmann.h:42
RngStream * kinetic_rng
An array of pointers to random number generators for use in kinetics.
Definition: World.h:192
FILE * checkpoint_out
Output Checkpoint file
Definition: World.h:238
int total_num_surface_faces
Number of surface faces in entire system.
Definition: World.h:249
Blob ** blob_array
2-D Array of Blob objects (blob i, conformation j)
Definition: World.h:145
Definition: VdW_solver.h:34
Definition: SimulationParams.h:75
FILE * detailed_meas_out
Definition: World.h:214
int num_springs
And how many springs are there?
Definition: World.h:171
FILE * trajectory_out
Output trajectory file.
Definition: World.h:204
SparseMatrixFixedPattern **** kinetic_return_map
Definition: World.h:158
PreComp_params pc_params
stores info within the <precomp> block at the .ffea file.
Definition: World.h:276
FFEA_input_reader * ffeareader
Definition: World.h:220
BiCGSTAB_solver nonsymmetric_solver
Biconjugate gradient stabilised solver for nonsymmetric matrices.
Definition: World.h:261
FILE * trajbeads_out
Output file for the trajectory beads. Completely optional.
Definition: World.h:217
vector3 L
Definition: World.h:229
int num_binding_sites
How many kinetic binding sites are there?
Definition: World.h:174
VdW_solver * vdw_solver
Definition: World.h:264
Definition: NearestNeighbourLinkedListCube.h:34
scalar * J_Gamma
Definition: World.h:255
bool mass_in_system
Check whether mass is present anywhere, to determine whether or not to write kinetic energies to file...
Definition: World.h:177
Definition: mat_vec_types.h:90
double scalar
Definition: mat_vec_types.h:36
bool writeDetailed
Output detailed measurements file. May be unneccesary.
Definition: World.h:213
BEM_Poisson_Boltzmann PB_solver
BEM solver for the exterior electrostatics.
Definition: World.h:246
Definition: ffea_test.h:51
Definition: BindingSite.h:82