Add atoms generation methods
This commit is contained in:
62
src/md/System.hpp
Normal file
62
src/md/System.hpp
Normal file
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* @file System.hpp
|
||||
* @author jun <jun@firmwarejun.net>
|
||||
* @brief System declarations
|
||||
* @version 0.1
|
||||
* @date 2023-07-25
|
||||
*
|
||||
* Copyright (c) 2023 jun <https://git.firmwarejun.net/jun/MolecularDynamics2>
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "Atom.hpp"
|
||||
|
||||
class System {
|
||||
private:
|
||||
std::vector<Atom> atoms; ///< Atoms in the system
|
||||
std::vector<Atom> 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<Atom> atoms);
|
||||
|
||||
/**
|
||||
* @brief Print atoms
|
||||
*
|
||||
*/
|
||||
void printAtoms();
|
||||
};
|
||||
Reference in New Issue
Block a user