FreeBirdIO
Functions
FreeBird.FreeBirdIO
— ModuleFreeBirdIO
Module for input/output operations in the FreeBird package.
FreeBird.FreeBirdIO.DataSavingStrategy
— Typeabstract type DataSavingStrategy
Abstract type representing a strategy for saving data.
FreeBird.FreeBirdIO.SaveEveryN
— Typestruct SaveEveryN <: DataSavingStrategy
SaveEveryN is a concrete subtype of DataSavingStrategy that specifies saving data every N steps.
Fields
df_filename::String
: The name of the file to save the DataFrame to.wk_filename::String
: The name of the file to save the atom walker to.ls_filename::String
: The name of the file to save the liveset to.n_traj::Int
: The number of steps between each save of the culled walker into a trajectory file.n_snap::Int
: The number of steps between each save of the liveset into a snapshot file.n_info::Int
: The number of steps between each print of information.
FreeBird.FreeBirdIO.SaveFreePartEveryN
— Typestruct SaveFreePartEveryN <: DataSavingStrategy
SaveFreePartEveryN is a concrete subtype of DataSavingStrategy that specifies saving data every N steps. Only the free particles are saved into the trajectory and snapshot files.
Fields
df_filename::String
: The name of the file to save the DataFrame to.wk_filename::String
: The name of the file to save the atom walker to.ls_filename::String
: The name of the file to save the liveset to.n_traj::Int
: The number of steps between each save of the culled walker into a trajectory file.n_snap::Int
: The number of steps between each save of the liveset into a snapshot file.n_info::Int
: The number of steps between each print of information.
FreeBird.FreeBirdIO.append_system
— Methodappend_system(ats1::FlexibleSystem, ats2::FlexibleSystem)
Append two FlexibleSystem
objects into a single FastSystem
object. The first argument is the system to be appended to, and its bounding box and boundary conditions will be used for the new system.
Arguments
ats1::FlexibleSystem
: The base system to be appended.ats2::FlexibleSystem
: The system to append.
Returns
new_list
: A newFastSystem
object containing the appended systems.
FreeBird.FreeBirdIO.append_walker
— Methodappend_walker(filename::String, at::AtomWalker)
Append an AtomWalker
object to a file.
FreeBird.FreeBirdIO.convert_system_to_walker
— Methodconvert_system_to_walker(at::FlexibleSystem, resume::Bool)
Converts a FlexibleSystem
object to an AtomWalker
object.
Arguments
at::FlexibleSystem
: TheFlexibleSystem
object to convert.resume::Bool
: Whether to resume from previous data.
Returns
AtomWalker
: The convertedAtomWalker
object.
FreeBird.FreeBirdIO.convert_walker_to_system
— Methodconvert_walker_to_system(at::AtomWalker)
Converts an AtomWalker
object to an AbstractSystem
object.
Arguments
at::AtomWalker
: TheAtomWalker
object to be converted.
Returns
AbstractSystem
: The convertedAbstractSystem
object.
FreeBird.FreeBirdIO.generate_initial_configs
— Methodgenerate_initial_configs(num_walkers::Int, volume_per_particle::Float64, num_particle::Int; particle_type::Symbol=:H)
Generate initial configurations for a given number of walkers.
Arguments
num_walkers::Int
: The number of walkers.volume_per_particle::Float64
: The volume per particle.num_particle::Int
: The number of particles.particle_type::Symbol=:H
: The type of particle (default is :H).
Returns
An array of initial configurations for each walker.
FreeBird.FreeBirdIO.generate_multi_type_random_starting_config
— Methodgenerate_multi_type_random_starting_config(volume_per_particle::Float64, num_particle::Vector{Int}; particle_types::Vector{Symbol}=[Symbol(:H), Symbol(:O)])
Generate a random starting configuration for a system of particles with multiple types.
Arguments
volume_per_particle::Float64
: The volume per particle.num_particle::Vector{Int}
: The number of particles of each type.particle_types::Vector{Symbol}=[Symbol(:H), Symbol(:O)]
: The types of particles.
Returns
FastSystem
: A FastSystem object representing the generated system.
FreeBird.FreeBirdIO.generate_random_starting_config
— Methodgenerate_random_starting_config(volume_per_particle::Float64, num_particle::Int; particle_type::Symbol=:H)
Generate a random starting configuration for a system of particles.
Arguments
volume_per_particle::Float64
: The volume per particle.num_particle::Int
: The number of particles.particle_type::Symbol=:H
: The type of particle (default is hydrogen).
Returns
FastSystem
: A FastSystem object representing the generated system.
FreeBird.FreeBirdIO.read_configs
— Methodread_configs(filename::String, pbc::Vector)
Reads atomic configurations from a file and applies periodic boundary conditions.
Arguments
filename::String
: The name of the file containing the atomic configurations.pbc::Vector
: A vector specifying the periodic boundary conditions.
Returns
An array of atomic configurations with periodic boundary conditions applied.
FreeBird.FreeBirdIO.read_configs
— Methodread_configs(filename::String; pbc::String="TTT")
Reads configurations from a file.
Arguments
filename::String
: The name of the file to read configurations from.pbc::String="TTT"
: Periodic boundary conditions. A string of length 3, where each character represents whether the corresponding dimension has periodic boundary conditions ('T') or not ('F').
Returns
- The configurations read from the file.
FreeBird.FreeBirdIO.read_single_config
— Methodread_single_config(filename::String, pbc::Vector)
Reads a single configuration from the specified file and sets the periodic boundary conditions (PBC) for the atoms.
Arguments
filename::String
: The name of the file to read the configuration from.pbc::Vector
: A vector specifying the periodic boundary conditions.
Returns
at::Atoms
: The atoms with the PBC set.
FreeBird.FreeBirdIO.read_single_config
— Methodread_single_config(filename::String; pbc::String="TTT")
Reads a single configuration from the specified file.
Arguments
filename::String
: The name of the file to read from.pbc::String="TTT"
: The periodic boundary conditions. Default is "TTT".
Returns
- The configuration read from the file.
FreeBird.FreeBirdIO.read_single_walker
— Methodread_single_walker(filename::String; pbc::String="TTT", resume::Bool=true)
Reads a single walker from the specified file.
Arguments
filename::String
: The path to the file containing the walker data.pbc::String
: (optional) The periodic boundary conditions. Default is "TTT".resume::Bool
: (optional) Whether to resume reading from a previous checkpoint. Default istrue
.
Returns
- The walker object read from the file.
FreeBird.FreeBirdIO.read_walkers
— Methodread_walkers(filename::String; pbc::String="TTT", resume::Bool=true)
Reads walker configurations from a file.
Arguments
filename::String
: The name of the file to read the walker configurations from.pbc::String
: A string specifying the periodic boundary conditions. Default is "TTT".resume::Bool
: A boolean indicating whether to resume reading from a previous checkpoint. Default istrue
.
Returns
An array of walker objects.
FreeBird.FreeBirdIO.set_pbc
— Methodset_pbc(at::Atoms, pbc::Vector)
Set the periodic boundary conditions for a system of atoms.
Arguments
at::Atoms
: The system of atoms.pbc::Vector
: A vector of length 3 specifying the periodic boundary conditions for each dimension. Each element can be eithertrue
for periodic boundary conditions orfalse
for Dirichlet zero boundary conditions.
Returns
FlexibleSystem
: A flexible system with the specified boundary conditions.
FreeBird.FreeBirdIO.write_df
— Methodwrite_df(filename::String, df::DataFrame)
Write a DataFrame to a CSV file.
Arguments
filename::String
: The name of the file to write to.df::DataFrame
: The DataFrame to write.
FreeBird.FreeBirdIO.write_df_every_n
— Methodwrite_df_every_n(df::DataFrame, step::Int, d_strategy::SaveEveryN)
Write the DataFrame df
to a file specified by d_strategy.filename
every d_strategy.n
steps.
Arguments
df::DataFrame
: The DataFrame to be written.step::Int
: The current step number.d_strategy::SaveEveryN
: The save strategy specifying the filename and the step interval.
FreeBird.FreeBirdIO.write_ls_every_n
— Methodwrite_ls_every_n(ls::AtomWalkers, step::Int, d_strategy::SaveEveryN)
Write the liveset ls
to file every n
steps, as specified by the d_strategy
.
Arguments
ls::AbstractLiveSet
: The liveset to be written.step::Int
: The current step number.d_strategy::SaveEveryN
: The save strategy specifying the frequency of writing.
FreeBird.FreeBirdIO.write_single_walker
— Methodwrite_single_walker(filename::String, at::AtomWalker, append::Bool)
Write a single AtomWalker object to a file. If the file already exists, append the walker to the file.
Arguments
filename::String
: The name of the file to write to.at::AtomWalker
: The AtomWalker object to write.append::Bool
: A boolean indicating whether to append the walker to the file if it already exists.
FreeBird.FreeBirdIO.write_single_walker
— Methodwrite_single_walker(filename::String, at::AtomWalker)
Write a single AtomWalker object to a file.
Arguments
filename::String
: The name of the file to write to.at::AtomWalker
: The AtomWalker object to write.
FreeBird.FreeBirdIO.write_walker_every_n
— Methodwrite_walker_every_n(at::AtomWalker, step::Int, d_strategy::SaveEveryN)
Write the atom walker at
to a file specified by d_strategy.wk_filename
every d_strategy.n
steps.
Arguments
at::AtomWalker
: The atom walker to be written.step::Int
: The current step number.d_strategy::SaveEveryN
: The save strategy specifying the file name and the interval.
FreeBird.FreeBirdIO.write_walkers
— Methodwrite_walkers(filename::String, ats::Vector{AtomWalker})
Write a collection of AtomWalker
objects to a file.
Arguments
filename::String
: The name of the file to write the walkers to.ats::Vector{AtomWalker}
: The collection ofAtomWalker
objects to write.
FreeBird.FreeBirdIO.write_walkers
— Methodwrite_walkers(filename::String, ats::Vector{LatticeWalker})
Write a collection of LatticeWalker
objects to a file.
Arguments
filename::String
: The name of the file to write the walkers to.ats::Vector{LatticeWalker}
: The collection ofLatticeWalker
objects to write.