-
Notifications
You must be signed in to change notification settings - Fork 0
/
CBMC.h
48 lines (39 loc) · 1.3 KB
/
CBMC.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*******************************************************************************
GPU OPTIMIZED MONTE CARLO (GOMC) 2.31
Copyright (C) 2018 GOMC Group
A copy of the GNU General Public License can be found in the COPYRIGHT.txt
along with this program, also can be found at <http://www.gnu.org/licenses/>.
********************************************************************************/
#ifndef CBMC_H
#define CBMC_H
/* CBMC.h
* Base Class for CBMC algorithms
* Also includes Factory Functions for same
*
*/
#include "BasicTypes.h"
struct MolPick;
class Forcefield;
class MoleculeKind;
class Setup;
class System;
namespace cbmc
{
class TrialMol;
class CBMC
{
public:
//Builds a new molecule using a CBMC algorithm, oldMol and newMol
//will be modified to contain the energies of the old and new sites
virtual void Build(TrialMol& oldMol, TrialMol& newMol, uint molIndex) = 0;
//Regrowing the molecule using a CBMC algorithm, oldMol and newMol
virtual void Regrowth(TrialMol& oldMol, TrialMol& newMol, uint molIndex) = 0;
virtual ~CBMC() {}
};
//Max allowed bonds to any atom
static const uint MAX_BONDS = 6;
//Factory function, determines, prepares and returns appropriate CBMC
CBMC* MakeCBMC(System& sys, const Forcefield& ff,
const MoleculeKind& kind, const Setup& set);
}
#endif