Loading...
Searching...
No Matches
NEBZoom.h
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Repo:
10** https://github.com/TheochemUI/eOn
11*/
12#pragma once
13
14#include "Matter.h"
15#include "Parameters.h"
16
17#include <cstddef>
18#include <memory>
19#include <vector>
20
21namespace eonc::neb::zoom {
22
25struct Window {
26 std::size_t lo{0};
27 std::size_t hi{0};
28 bool valid{false};
29};
30
34Window selectWindow(const std::vector<double> &energy,
35 std::size_t climbingImage,
37
42bool redistributePath(std::vector<std::shared_ptr<Matter>> &path, Window window,
44
45} // namespace eonc::neb::zoom
Window selectWindow(const std::vector< double > &energy, std::size_t climbingImage, const neb_options_t::zoom_options_t &cfg)
Auto: contiguous images around the climbing image whose energy is above E_ref + alpha * barrier.
Definition NEBZoom.cpp:74
bool redistributePath(std::vector< std::shared_ptr< Matter > > &path, Window window, neb_options_t::zoom_options_t::Interpolation how)
Place every band image on the window by equal arc length.
Definition NEBZoom.cpp:118
Inclusive image indices on the current band.
Definition NEBZoom.h:25
Zoom-NEB packs every image onto a window around the climbing image once that image is stable and the ...