before implement periodic boundary conditions
use function pointer and better initialization
start implementing different boundary conditions