Collective Variables Module - Developer Documentation
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Private Member Functions | List of all members
colvarbias Class Reference

Collective variable bias, base class. More...

#include <colvarbias.h>

Inheritance diagram for colvarbias:
Inheritance graph
[legend]
Collaboration diagram for colvarbias:
Collaboration graph
[legend]

Public Member Functions

int add_colvar (std::string const &cv_name)
 Add a new collective variable to this bias.
 
size_t num_variables () const
 How many variables are defined for this bias.
 
std::vector< colvar * > * variables ()
 Access the variables vector.
 
colvarvariables (int i) const
 Access the i-th variable.
 
virtual int update ()
 
virtual bool can_accumulate_data ()
 
virtual int calc_energy (std::vector< colvarvalue > const *values)
 
virtual int calc_forces (std::vector< colvarvalue > const *values)
 
int communicate_forces ()
 Send forces to the collective variables.
 
virtual int end_of_step ()
 Carry out operations needed before next step is run.
 
virtual int change_configuration (std::string const &conf)
 Load new configuration - force constant and/or centers only.
 
virtual cvm::real energy_difference (std::string const &conf)
 Calculate change in energy from using alternate configuration.
 
virtual int bin_num ()
 Give the total number of bins for a given bias.
 
virtual int current_bin ()
 Calculate the bin index for a given bias.
 
virtual int bin_count (int bin_index)
 
virtual int local_sample_count (int radius)
 Return the average number of samples in a given "radius" around current bin.
 
virtual int replica_share ()
 
virtual size_t replica_share_freq () const
 Report the frequency at which this bias needs to communicate with replicas.
 
virtual void analyze ()
 Perform analysis tasks.
 
 colvarbias (char const *key)
 Constructor.
 
virtual int init (std::string const &conf)
 Parse config string and (re)initialize.
 
virtual int init_dependencies ()
 Initialize dependency tree.
 
virtual int reset ()
 Set to zero all mutable data.
 
virtual int clear ()
 Delete everything.
 
virtual int clear_state_data ()
 Delete only the allocatable data (save memory)
 
virtual ~colvarbias ()
 Destructor.
 
virtual std::string const get_state_params () const
 Write the values of specific mutable properties to a string.
 
int check_matching_state (std::string const &conf)
 Check the name of the bias vs. the given string, set the matching_state flag accordingly.
 
virtual int set_state_params (std::string const &state_conf)
 Read the values of specific mutable properties from a string.
 
virtual std::ostream & write_state_data (std::ostream &os)
 Write all mutable data not already written by get_state_params() to a formatted stream.
 
virtual cvm::memory_streamwrite_state_data (cvm::memory_stream &os)
 Write all mutable data not already written by get_state_params() to an unformatted stream.
 
virtual std::istream & read_state_data (std::istream &is)
 Read all mutable data not already set by set_state_params() from a formatted stream.
 
virtual cvm::memory_streamread_state_data (cvm::memory_stream &is)
 Read all mutable data not already set by set_state_params() from an unformatted stream.
 
std::ostream & write_state_data_key (std::ostream &os, std::string const &key, bool header=true)
 
cvm::memory_streamwrite_state_data_key (cvm::memory_stream &os, std::string const &key, bool header=true)
 
std::istream & read_state_data_key (std::istream &is, std::string const &key)
 
cvm::memory_streamread_state_data_key (cvm::memory_stream &is, std::string const &key)
 
std::ostream & write_state (std::ostream &os)
 Write the bias configuration to a formatted stream.
 
cvm::memory_streamwrite_state (cvm::memory_stream &os)
 Write the bias configuration to an unformatted stream.
 
std::istream & read_state (std::istream &is)
 Read the bias configuration from a formatted stream.
 
cvm::memory_streamread_state (cvm::memory_stream &is)
 Read the bias configuration from an unformatted stream.
 
int write_state_prefix (std::string const &prefix)
 Write the bias state to a file with the given prefix.
 
int write_state_string (std::string &output)
 Write the bias state to a string.
 
int read_state_prefix (std::string const &prefix)
 Read the bias state from a file with this name or prefix.
 
int read_state_string (char const *buffer)
 Read the bias state from this string buffer.
 
virtual std::ostream & write_traj_label (std::ostream &os)
 Write a label to the trajectory file (comment line)
 
virtual std::ostream & write_traj (std::ostream &os)
 Output quantities such as the bias energy to the trajectory file.
 
virtual int setup_output ()
 (Re)initialize the output files (does not write them yet)
 
virtual int write_output_files ()
 Write any output files that this bias may have (e.g. PMF files)
 
virtual int write_state_to_replicas ()
 If this bias is communicating with other replicas through files, send it to them.
 
cvm::real get_energy ()
 
virtual const std::vector< feature * > & features () const
 Implementation of the feature list accessor for colvarbias.
 
virtual std::vector< feature * > & modify_features ()
 
- Public Member Functions inherited from colvarparse
 colvarparse ()
 Default constructor.
 
 colvarparse (const std::string &conf)
 Constructor that stores the object's config string.
 
void clear ()
 Set the object ready to parse a new configuration string.
 
void set_string (std::string const &conf)
 Set a new config string for this object.
 
 ~colvarparse () override
 Default destructor.
 
std::string const & get_config () const
 Get the configuration string (includes comments)
 
int check_keywords (std::string &conf, char const *key)
 Check that all the keywords within "conf" are in the list of allowed keywords; this will invoke strip_values() first and then loop over all words.
 
void clear_keyword_registry ()
 Use this after parsing a config string (note that check_keywords() calls it already)
 
bool get_keyval (std::string const &conf, char const *key, int &value, int const &def_value=0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, size_t &value, size_t const &def_value=0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, long &value, long const &def_value=0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::step_number &value, cvm::step_number const &def_value=0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::string &value, std::string const &def_value=std::string(""), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::real &value, cvm::real const &def_value=0.0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::rvector &value, cvm::rvector const &def_value=cvm::rvector(), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::quaternion &value, cvm::quaternion const &def_value=cvm::quaternion(), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, colvarvalue &value, colvarvalue const &def_value=colvarvalue(colvarvalue::type_notset), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, bool &value, bool const &def_value=false, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< int > &values, std::vector< int > const &def_values=std::vector< int >(0, 0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< size_t > &values, std::vector< size_t > const &def_values=std::vector< size_t >(0, 0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< long > &values, std::vector< long > const &def_values=std::vector< long >(0, 0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< std::string > &values, std::vector< std::string > const &def_values=std::vector< std::string >(0, std::string("")), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< cvm::real > &values, std::vector< cvm::real > const &def_values=std::vector< cvm::real >(0, 0.0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< cvm::rvector > &values, std::vector< cvm::rvector > const &def_values=std::vector< cvm::rvector >(0, cvm::rvector()), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< cvm::quaternion > &values, std::vector< cvm::quaternion > const &def_values=std::vector< cvm::quaternion >(0, cvm::quaternion()), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< colvarvalue > &values, std::vector< colvarvalue > const &def_values=std::vector< colvarvalue >(0, colvarvalue(colvarvalue::type_notset)), Parse_Mode const parse_mode=parse_normal)
 
bool key_lookup (std::string const &conf, char const *key, std::string *data=nullptr, size_t *save_pos=nullptr)
 Low-level function for parsing configuration strings; automatically adds the requested keyword to the list of valid ones. More...
 
std::istream & read_config_line (std::istream &is, std::string &line)
 Reads a configuration line, adds it to config_string, and returns the stream. More...
 
template<>
int _get_keyval_scalar_value_ (std::string const &key_str, std::string const &data, bool &value, bool const &)
 
template<>
int _get_keyval_scalar_novalue_ (std::string const &key_str, bool &value, Parse_Mode const &parse_mode)
 
- Public Member Functions inherited from colvarparams
int param_exists (std::string const &param_name)
 Whether the parameter param_name exists.
 
virtual std::vector< std::string > get_param_names ()
 Get a copy of the names of registered parameters.
 
virtual std::vector< std::string > get_param_grad_names ()
 Get a copy of the names of registered parameter gradients.
 
virtual void const * get_param_ptr (std::string const &param_name)
 Pointer to the parameter param_name.
 
virtual void const * get_param_grad_ptr (std::string const &param_name)
 Pointer to the gradient of parameter param_name.
 
virtual cvm::real get_param (std::string const &param_name)
 Value of the parameter param_name (must be a scalar)
 
virtual int set_param (std::string const &param_name, void const *new_value)
 Set the named parameter to the given value.
 
- Public Member Functions inherited from colvardeps
int get_time_step_factor () const
 returns time_step_factor
 
void init_feature (int feature_id, const char *description, feature_type type)
 Pair a numerical feature ID with a description and type.
 
bool is_not_set (int id)
 
bool is_dynamic (int id)
 
bool is_static (int id)
 
bool is_user (int id)
 
void add_child (colvardeps *child)
 
void remove_child (colvardeps *child)
 
void remove_all_children ()
 
bool is_enabled (int f=f_cv_active) const
 
bool is_available (int f=f_cv_active) const
 
void provide (int feature_id, bool truefalse=true)
 
void set_enabled (int feature_id, bool truefalse=true)
 Enable or disable, depending on flag value.
 
int enable (int f, bool dry_run=false, bool toplevel=true)
 
int disable (int f)
 
void free_children_deps ()
 
void restore_children_deps ()
 re-enable children features (to be used when object becomes active)
 
int decr_ref_count (int f)
 
virtual void do_feature_side_effects (int)
 
void require_feature_self (int f, int g)
 Make feature f require feature g within the same object.
 
void exclude_feature_self (int f, int g)
 Make features f and g mutually exclusive within the same object.
 
void require_feature_children (int f, int g)
 Make feature f require feature g within children.
 
void require_feature_alt (int f, int g, int h)
 Make feature f require either g or h within the same object.
 
void require_feature_alt (int f, int g, int h, int i)
 Make feature f require any of g, h, or i within the same object.
 
void require_feature_alt (int f, int g, int h, int i, int j)
 Make feature f require any of g, h, i, or j within the same object.
 
void print_state ()
 print all enabled features and those of children, for debugging
 
void check_enabled (int f, std::string const &reason) const
 Check that a feature is enabled, raising COLVARS_BUG_ERROR if not.
 

Static Public Member Functions

static void delete_features ()
 
- Static Public Member Functions inherited from colvarparse
static std::string to_lower_cppstr (std::string const &in)
 Return a lowercased copy of the string.
 
static std::istream & getline_nocomments (std::istream &is, std::string &s)
 Works as std::getline() but also removes everything between a comment character and the following newline.
 
static int check_braces (std::string const &conf, size_t const start_pos)
 Check if the content of a config string has matching braces. More...
 
static int check_ascii (std::string const &conf)
 Check that a config string contains non-ASCII characters. More...
 
static void split_string (const std::string &data, const std::string &delim, std::vector< std::string > &dest)
 Split a string with a specified delimiter into a vector. More...
 

Public Attributes

std::string name
 Name of this bias.
 
std::string bias_type
 Keyword indicating the type of this bias.
 
std::string state_keyword
 Keyword used in state files (== bias_type most of the time)
 
int rank
 Track how many times a bias of this type was defined.
 
size_t output_freq
 Frequency for writing output files.
 
std::string output_prefix
 Use this prefix for all output files.
 
- Public Attributes inherited from colvardeps
std::string description
 

Static Public Attributes

static std::vector< feature * > cvb_features
 Implementation of the feature list for colvarbias.
 
- Static Public Attributes inherited from colvarparse
static const char *const white_space = " \t"
 Accepted white space delimiters, used in key_lookup()
 

Protected Attributes

std::vector< colvar * > colvars
 Pointers to collective variables to which the bias is applied; current values and metric functions will be obtained through each colvar object.
 
std::vector< colvarvaluecolvar_values
 Up to date value of each colvar.
 
std::vector< colvarvaluecolvar_forces
 Current forces from this bias to the variables.
 
std::vector< colvarvalueprevious_colvar_forces
 Forces last applied by this bias to the variables.
 
cvm::real bias_energy
 Current energy of this bias (colvar_forces should be obtained by deriving this)
 
bool b_output_energy
 Whether to write the current bias energy from this bias to the trajectory file.
 
bool has_data
 Whether this bias has already accumulated information (for history-dependent biases)
 
cvm::step_number state_file_step
 Step number read from the last state file.
 
bool matching_state
 Flag used to tell if the state string being read is for this bias.
 
colvar_grid_scalarbiasing_force_scaling_factors
 The biasing forces will be scaled by the factor in this grid if b_bias_force_scaled is true.
 
std::vector< int > biasing_force_scaling_factors_bin
 
- Protected Attributes inherited from colvarparse
std::string const keyword_delimiters_left
 Characters allowed immediately to the left of a kewyord.
 
std::string const keyword_delimiters_right
 Characters allowed immediately to the right of a kewyord.
 
std::list< std::string > allowed_keywords
 List of legal keywords for this object: this is updated by each call to colvarparse::get_keyval() or colvarparse::key_lookup()
 
std::map< std::string, key_set_modekey_set_modes
 Track which keywords have been already set, and how.
 
std::list< size_t > data_begin_pos
 List of delimiters for the values of each keyword in the configuration string; all keywords will be stripped of their values before the keyword check is performed.
 
std::list< size_t > data_end_pos
 List of delimiters for the values of each keyword in the configuration string; all keywords will be stripped of their values before the keyword check is performed.
 
std::string config_string
 Configuration string of the object (includes comments)
 
- Protected Attributes inherited from colvarparams
std::map< std::string, void const * > param_map
 Pointers to relevant parameters that may be accessed by other objects.
 
std::map< std::string, colvarvalue const * > param_grad_map
 Derivatives of the object with respect to internal parameters.
 
- Protected Attributes inherited from colvardeps
int time_step_factor
 
std::vector< feature_statefeature_states
 List of the states of all features.
 

Private Member Functions

 colvarbias ()
 Default constructor.
 
 colvarbias (colvarbias &)
 Copy constructor.
 
template<typename IST >
IST & read_state_data_key_template_ (IST &is, std::string const &key)
 
template<typename IST >
IST & read_state_template_ (IST &is)
 Generic stream reading function (formatted and not)
 

Additional Inherited Members

- Public Types inherited from colvarparse
enum  Parse_Mode {
  parse_null = 0, parse_echo = (1<<1), parse_echo_default = (1<<2), parse_deprecation_warning = (1<<3),
  parse_silent = 0, parse_required = (1<<16), parse_override = (1<<17), parse_restart = (1<<18),
  parse_normal = (1<<1) | (1<<2) | (1<<17), parse_deprecated = (1<<1) | (1<<3) | (1<<17)
}
 How a keyword is parsed in a string. More...
 
- Public Types inherited from colvardeps
enum  features_biases {
  f_cvb_active, f_cvb_awake, f_cvb_step_zero_data, f_cvb_apply_force,
  f_cvb_bypass_ext_lagrangian, f_cvb_get_total_force, f_cvb_output_acc_work, f_cvb_history_dependent,
  f_cvb_time_dependent, f_cvb_scalar_variables, f_cvb_calc_pmf, f_cvb_calc_ti_samples,
  f_cvb_write_ti_samples, f_cvb_write_ti_pmf, f_cvb_scale_biasing_force, f_cvb_extended,
  f_cvb_ntot
}
 
enum  features_colvar {
  f_cv_active, f_cv_awake, f_cv_gradient, f_cv_collect_gradient,
  f_cv_collect_atom_ids, f_cv_fdiff_velocity, f_cv_total_force, f_cv_total_force_calc,
  f_cv_subtract_applied_force, f_cv_Jacobian, f_cv_hide_Jacobian, f_cv_extended_Lagrangian,
  f_cv_external, f_cv_Langevin, f_cv_output_energy, f_cv_output_value,
  f_cv_output_velocity, f_cv_output_applied_force, f_cv_output_total_force, f_cv_lower_boundary,
  f_cv_upper_boundary, f_cv_hard_lower_boundary, f_cv_hard_upper_boundary, f_cv_reflecting_lower_boundary,
  f_cv_reflecting_upper_boundary, f_cv_grid, f_cv_runave, f_cv_corrfunc,
  f_cv_scripted, f_cv_custom_function, f_cv_periodic, f_cv_single_cvc,
  f_cv_scalar, f_cv_linear, f_cv_homogeneous, f_cv_multiple_ts,
  f_cv_ntot
}
 
enum  features_cvc {
  f_cvc_active, f_cvc_scalar, f_cvc_periodic, f_cvc_width,
  f_cvc_lower_boundary, f_cvc_upper_boundary, f_cvc_explicit_atom_groups, f_cvc_gradient,
  f_cvc_explicit_gradient, f_cvc_inv_gradient, f_cvc_Jacobian, f_cvc_one_site_total_force,
  f_cvc_debug_gradient, f_cvc_pbc_minimum_image, f_cvc_com_based, f_cvc_scalable,
  f_cvc_scalable_com, f_cvc_collect_atom_ids, f_cvc_ntot
}
 
enum  features_atomgroup {
  f_ag_active, f_ag_center, f_ag_center_origin, f_ag_rotate,
  f_ag_fitting_group, f_ag_explicit_gradient, f_ag_fit_gradients, f_ag_atom_forces,
  f_ag_scalable, f_ag_scalable_com, f_ag_collect_atom_ids, f_ag_ntot
}
 
- Protected Types inherited from colvarparse
enum  key_set_mode { key_not_set = 0, key_set_user = 1, key_set_default = 2 }
 How a keyword has been set.
 
- Protected Types inherited from colvardeps
enum  feature_type { f_type_not_set, f_type_dynamic, f_type_user, f_type_static }
 Enum of possible feature types.
 
- Protected Member Functions inherited from colvarparse
bool get_key_string_value (std::string const &conf, char const *key, std::string &data)
 Get the string value of a keyword, and save it for later parsing.
 
bool get_key_string_multi_value (std::string const &conf, char const *key, std::vector< std::string > &data)
 Get multiple strings from repeated instances of a same keyword.
 
template<typename TYPE >
bool _get_keyval_scalar_ (std::string const &conf, char const *key, TYPE &value, TYPE const &def_value, Parse_Mode const &parse_mode)
 Template for single-value keyword parsers.
 
template<typename TYPE >
bool _get_keyval_vector_ (std::string const &conf, char const *key, std::vector< TYPE > &values, std::vector< TYPE > const &def_values, Parse_Mode const &parse_mode)
 Template for multiple-value keyword parsers.
 
template<typename TYPE >
int _get_keyval_scalar_value_ (std::string const &key_str, std::string const &data, TYPE &value, TYPE const &def_value)
 Extract the value of a variable from a string.
 
template<typename TYPE >
int _get_keyval_scalar_novalue_ (std::string const &key_str, TYPE &value, Parse_Mode const &parse_mode)
 Handle the case where the user provides a keyword without value.
 
template<typename TYPE >
void mark_key_set_user (std::string const &key_str, TYPE const &value, Parse_Mode const &parse_mode)
 Record that the keyword has just been user-defined.
 
template<typename TYPE >
void mark_key_set_default (std::string const &key_str, TYPE const &def_value, Parse_Mode const &parse_mode)
 Record that the keyword has just been set to its default value.
 
void error_key_required (std::string const &key_str, Parse_Mode const &parse_mode)
 Raise error condition due to the keyword being required!
 
bool key_already_set (std::string const &key_str)
 True if the keyword has been set already.
 
void add_keyword (char const *key)
 Add a new valid keyword to the list.
 
void strip_values (std::string &conf)
 Remove all the values from the config string.
 
- Protected Member Functions inherited from colvarparams
 colvarparams ()
 Default constructor.
 
virtual ~colvarparams ()
 Default destructor.
 
void register_param (std::string const &param_name, void *param_ptr)
 Register the given parameter.
 
void register_param_grad (std::string const &param_name, colvarvalue *param_grad_ptr)
 Register the gradient of the given parameter.
 
- Protected Member Functions inherited from colvardeps
bool get_keyval_feature (colvarparse *cvp, std::string const &conf, char const *key, int feature_id, bool const &def_value, colvarparse::Parse_Mode const parse_mode=colvarparse::parse_normal)
 Parse a keyword and enable a feature accordingly.
 

Detailed Description

Collective variable bias, base class.

Member Function Documentation

◆ calc_energy()

int colvarbias::calc_energy ( std::vector< colvarvalue > const *  values)
virtual

Compute the energy of the bias Uses the vector of colvar values provided if not NULL, and the values currently cached in the bias instance otherwise

Reimplemented in colvarbias_abf, and colvarbias_meta.

◆ calc_forces()

int colvarbias::calc_forces ( std::vector< colvarvalue > const *  values)
virtual

Compute the forces due to the bias Uses the vector of colvar values provided if not NULL, and the values currently cached in the bias instance otherwise

Reimplemented in colvarbias_meta.

◆ can_accumulate_data()

bool colvarbias::can_accumulate_data ( )
virtual

Returns true if the current step represent a valid increment, whose data can be recorded (as opposed to e.g. a continuation step from a restart)

◆ read_state_data_key() [1/2]

std::istream & colvarbias::read_state_data_key ( std::istream &  is,
std::string const &  key 
)

Read a keyword header for a data sequence from a formatted stream

Parameters
[in,out]Inputstream
[in]Keywordlabeling the header block; an error will be raised if not matching

◆ read_state_data_key() [2/2]

cvm::memory_stream & colvarbias::read_state_data_key ( cvm::memory_stream is,
std::string const &  key 
)

Read a keyword header for a data sequence from an unformatted stream

Parameters
[in,out]Inputstream
[in]Keywordlabeling the header block; an error will be raised if not matching

◆ read_state_data_key_template_()

template<typename IST >
IST & colvarbias::read_state_data_key_template_ ( IST &  is,
std::string const &  key 
)
private

Read a keyword header for a data sequence from a stream

Parameters
[in,out]Inputstream
[in]Keywordlabeling the header block; an error will be raised if not matching

◆ update()

int colvarbias::update ( )
virtual

Retrieve colvar values and calculate their biasing forces Some implementations may use calc_energy() and calc_forces()

Reimplemented in colvarbias_ti, colvarbias_restraint_histogram, colvarbias_meta, colvarbias_abf, colvarbias_restraint, colvarbias_histogram, colvarbias_alb, and colvarbias_reweightaMD.

◆ write_state_data_key() [1/2]

std::ostream & colvarbias::write_state_data_key ( std::ostream &  os,
std::string const &  key,
bool  header = true 
)

Write a keyword header for a data sequence to a formatted stream

Parameters
[in,out]osOutput stream
[in]keyKeyword labeling the header block
[in]headerWhether this is the header of a multi-line segment vs a single line

◆ write_state_data_key() [2/2]

cvm::memory_stream & colvarbias::write_state_data_key ( cvm::memory_stream os,
std::string const &  key,
bool  header = true 
)

Write a keyword header for a data sequence to an unformatted stream

Parameters
[in,out]osOutput stream
[in]keyKeyword labeling the header block
[in]headerIgnored

The documentation for this class was generated from the following files: