Loading...
Searching...
No Matches
EffectiveMediumTheory.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// serves as an interface between emt potentials provided by CamposASE and
15// dynamics provided by eOn
16
23
24#include "eon/Parameters.h"
25#include "eon/Potential.h"
26
30
31private:
32 bool emtRasmussen{false};
34 bool periodicity[3]{true, true, true};
35 Atoms *AtomsObj{nullptr};
37 EMT *EMTObj{nullptr};
39
40public:
42 : eonc::Potential(p), emtRasmussen{p.potential_options().EMTRasmussen} {}
44 void cleanMemory();
45
46 // To satify interface
47 void force(long N, const double *R, const int *atomicNrs, double *F,
48 double *U, double *variance, const double *box);
49
51 [[nodiscard]] bool isSharedInstanceThreadSafe() const noexcept override {
52 return false;
53 }
54};
-- Implements the EMT potential for multiple elements.
The main list of atoms class.
Definition Atoms.h:36
The Effective Medium Theory (EMT) potential.
Definition EMT.h:24
void force(long N, const double *R, const int *atomicNrs, double *F, double *U, double *variance, const double *box)
bool isSharedInstanceThreadSafe() const noexcept override
ASAP Atoms/EMT objects are mutated in force(); do not share one instance.
EffectiveMediumTheory(const eonc::Parameters &p)
EMTDefaultParameterProvider * EMTParameterObj
The SuperCell defines the size, shape and boundary condx of a simulation.
Definition SuperCell.h:20
Potential(PotType a_ptype)
Production default: construction-scope registry, else PotRegistry::get().
RAII resource manager for the ARTn C library with global synchronization.