/** * @file System.hpp * @author jun * @brief System declarations * @version 0.1 * @date 2023-07-25 * * Copyright (c) 2023 jun * */ #pragma once #include #include "Atom.hpp" class System { private: std::vector atoms; ///< Atoms in the system std::vector atomsOld; ///< Atoms in the system in the previous step double timeDelta = 0; ///< Time delta between steps /** * @brief Initialize the force table * */ void initForceTable(); /** * @brief Initialize the potential table * */ void initPotentialTable(); public: explicit System(double timeDelta); void step(); void stepFirst(); /** * @brief Add an atom to the system * * @param atom */ void addAtom(Atom atom); /** * @brief Add a vector of atoms to the system * * @param atoms */ void addAtom(std::vector atoms); /** * @brief Print atoms * */ void printAtoms(); };